Files
roll20-character-sheets-tester/Shadowrun Sixth World/Shadowrun6thEdition.html
T
James A Culp III b6e31c95fa Added Social Rating to derived tests (even though it's not a test) just to the right of the Edge Attribute. This is a total of Charisma + any cumulative + primary armor social adjustments.
Added mouseovers for Composure, Judge Intentions, Memory and Lift & Carry buttons detailing where the values come from for those of us that forget.
Added the ability to add Spells, NPC Spells, Qualities and Augmentations by pasting raw data into the Notes textarea for a new repeating row.
2021-08-29 19:17:36 -04:00

8335 lines
458 KiB
HTML

<div id='SR6WE'>
<input class="sheet_type" name="attr_sheet_type" type="hidden" value="pc"/>
<input class="character-type" name="attr_flag_special" type="hidden" value="mundane"/>
<input class="enable-modifiers" name="attr_enable_modifiers" type="hidden" value="0"/>
<div class="pc">
<img class="shadowrun-logo" alt="Shadowrun sixth edition logo" src="https://s3.amazonaws.com/files.d20.io/images/204802539/QInmmma8HvUBA90c8e8H8Q/max.png?1614545502"/>
<div class="tabs">
<div class="header-names">
<h1 data-i18n="character">Character</h1>
<label data-i18n-title="character name" title="character name">
<input type="text" name="attr_character_name" placeholder="Character name" title="@{character_name}"/>
</label>
<h1 data-i18n="player">Player</h1>
<label data-i18n-title="player name" title="player name">
<input type="text" name="attr_player_name" placeholder="Player name" title="@{player_name}"/>
</label>
</div>
<div class="header-toggles">
<span>&nbsp;</span>
<h2 data-i18n-title="whispergm">/w GM</h2>
<label class="switch" data-i18n-title="whispergm" title="Whisper rolls to GM">
<input class="whisper-toggle" name="attr_gm_toggle" type="checkbox" value="/w gm"/><span class="slider"></span>
</label>
<h2 data-i18n-title="wounds">Wounds</h2>
<label class="switch" data-i18n-title="wounds" title="Wounds">
<input class="whisper-toggle" name="attr_wounds_toggle" type="checkbox" value="@{wounds}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="dicepoolmodifiers">Modifiers</h2>
<label class="switch" data-i18n-title="dicepoolmodifiers" title="Dicepool Modifiers">
<input class="whisper-toggle" name="attr_modifiers_toggle" type="checkbox" value="?{Modifiers +/-|0}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="addedgetodicepool">Edge</h2>
<label class="switch" data-i18n-title="addedgetodicepool" title="Add Edge to your dice pool and exploding 6's">
<input class="whisper-toggle" name="attr_edge_toggle" type="checkbox" value="@{edge}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="wilddie">Wild Die</h2>
<label class="switch" data-i18n-title="wilddie" title="Roll a single wild die">
<input class="whisper-toggle" name="attr_wild_die" type="checkbox" value="1"/><span class="slider"></span>
</label>
<span>&nbsp;</span>
</div>
<div class="header-navtabs">
<input name="attr_tab" type="hidden" value="core"/>
<h1>&nbsp;</h1>
<button name="d6" title="Roll D6s" type="roll" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{d6}}}{{dice=[[(?{d6s|0}d6>5?{Exploding 6's?|N, |Y,!})]]}}{{wilddie=[[?{Wild Die?|N,0|Y,1}d6]]}}">L</button>
<button class="pictos" name="act_tab_options" title="@{tab}" type="action">y</button>
<button data-i18n="core" name="act_tab_core" type="action" title="@{tab}">core</button>
<button data-i18n="arms" name="act_tab_arms" type="action" title="@{tab}">arms</button>
<button data-i18n="augs" name="act_tab_augs" type="action" title="@{tab}">augs</button>
<button data-i18n="gear" name="act_tab_gear" type="action" title="@{tab}">gear</button>
<button data-i18n="magic" name="act_tab_magic" type="action" title="@{tab}">magic</button>
<button data-i18n="matrix" name="act_tab_matrix" type="action" title="@{tab}">matrix</button>
<button data-i18n="social" name="act_tab_social" type="action" title="@{tab}">social</button>
<button data-i18n="vehicle" name="act_tab_vehicle" type="action" title="@{tab}">vehicle</button>
<button data-i18n="notes" name="act_tab_notes" type="action" title="@{tab}">notes</button>
<button data-i18n="rolls" name="act_tab_rolls" type="action" title="@{tab}">rolls</button>
</div>
</div>
<input class="options_toggle" name="attr_tab" type="hidden" value="options"/>
<div class="static pc-col">
<div class="pc-row core-info">
<div class="header"><div class="triangle"></div><h1 data-i18n="personal">Personal Data</h1></div>
<div class="border-box">
<div class="pc-box small-box">
<div class="row-long pd-nam">
<h2 data-i18n="namealias">NAME/PRIMARY ALIAS</h2><input type="text" name="attr_character_name" placeholder="name" title="@{name}" />
</div>
<div class="row-long pd-meta">
<h2 data-i18n="metatype">Metatype</h2><input type="text" name="attr_metatype" placeholder="metatype" title="@{metatype}" />
<h2 data-i18n="ethnicity">Ethnicity</h2><input type="text" name="attr_ethnicity" placeholder="ethnicity" title="@{ethnicity}" />
</div>
<div class="row-long pd-age">
<h2 data-i18n="age">Age</h2><input type="text" name="attr_age" placeholder="age" title="@{age}" />
<h2 data-i18n="sex">Sex</h2><input type="text" name="attr_sex" placeholder="sex" title="@{sex}" />
<h2 data-i18n="height-u">Height</h2><input type="text" name="attr_height" placeholder="height" title="@{height}" >
<h2 data-i18n="weight">Weight</h2><input type="text" name="attr_weight" placeholder="weight" title="@{weight}" />
</div>
<div class="row-long pd-rep">
<h2 data-i18n="reputation">Reputation</h2><input type="number" name="attr_reputation" placeholder="#" title="@{reputation}" />
<h2 data-i18n="heat">Heat</h2><input type="number" name="attr_heat" placeholder="#" title="@{heat}" />
<h2>¥</h2><input type="number" name="attr_nuyen" placeholder="0" title="@{nuyen}" />
</div>
<div class="row-long pd-kar">
<h2 data-i18n="karma">Karma</h2><input style="width: 2em;" type="number" name="attr_karma" placeholder="#" title="@{karma}" />
<h2 data-i18n="total karma">Total Karma</h2><input style="width: 2em;" type="number" name="attr_total_karma" placeholder="#" title="@{total_karma}" />
</div>
<div class="row-long pd-kar">
<h2 data-i18n="essence">Base Essence</h2><input disabled="disabled" style="width: 1.5em !important;" type="number" step="0.01" min="0.00" name="attr_essence_base" value="6" title="@{essence_base}" /> + <h2 data-i18n="essencemodifier">Modifier</h2><input style="width: 3em !important;" type="number" step="0.01" min="-6.00" name="attr_essence_mod" placeholder="0" title="@{essence_mod}" /> - <h2 data-i18n="augmentations">Augmentations</h2><span name="attr_aug_essence_cost" title="@{aug_essence_cost}"></span> = <h2 data-i18n="currentessence">Current Essence</h2><span name="attr_essence" title="@{essence}"></span>
</div>
</div>
</div>
</div>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ START OF ATTRIBUTES ROW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<div class="pc-row">
<div class="header"><div class="triangle"></div>
<h1 data-i18n="attributes">Attributes</h1></div>
<div class="border-box">
<div class="pc-box medium-box attr-box">
<input type="checkbox" class="settings-toggle" name="attr_flag_attribute" checked="checked" title="Settings toggle" /><span>x</span>
<div class="attr-col attr-col-left">
<!-- ~~:+: Body :+:~~ -->
<input type="hidden" name="attr_body" value="" />
<button type="roll" name="body" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{body}}}{{dice=[[(@{body}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span class="red" data-i18n="body">Body</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_body_base" value="1" placeholder="3" title="@{body_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_body_modifier" value="" placeholder="0" title="@{body_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_body" title="@{body}"></span>
</div>
<div class="display"><span name="attr_display_body" title="@{body}"></span></div>
</div>
<!-- ~~:+: Agility :+:~~ -->
<input type="hidden" name="attr_agility" value="" />
<button type="roll" name="agility" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{agility}}}{{dice=[[(@{agility}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span class="red" data-i18n="agility">Agility</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_agility_base" value="1" placeholder="3" title="@{agility_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_agility_modifier" value="" placeholder="0" title="@{agility_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_agility" title="@{agility}"></span>
</div>
<div class="display"><span name="attr_display_agility" title="@{agility}"></span></div>
</div>
<!-- ~~:+: Reaction :+:~~ -->
<input type="hidden" name="attr_reaction" value="" />
<button type="roll" name="reaction" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{reaction}}}{{dice=[[(@{reaction}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span class="red" data-i18n="reaction">Reaction</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_reaction_base" value="1" placeholder="3" title="@{reaction_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_reaction_modifier" value="" placeholder="0" title="@{reaction_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_reaction" title="@{reaction}"></span>
</div>
<div class="display"><span name="attr_display_reaction" title="@{reaction}"></span></div>
</div>
<!-- ~~:+: Strength :+:~~ -->
<input type="hidden" name="attr_strength" value="" />
<button type="roll" name="strength" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{strength}}}{{dice=[[(@{strength}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span class="red" data-i18n="strength">Strength</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_strength_base" value="1" placeholder="3" title="@{strength_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_strength_modifier" value="" placeholder="0" title="@{strength_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_strength" title="@{strength}"></span>
</div>
<div class="display"><span name="attr_display_strength" title="@{strength}"></span></div>
</div>
<!-- ~~:+: Willpower :+:~~ -->
<input type="hidden" name="attr_willpower" value="" />
<button type="roll" name="willpower" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{willpower}}}{{dice=[[(@{willpower}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="willpower">Willpower</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_willpower_base" value="1" placeholder="3" title="@{willpower_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_willpower_modifier" value="" placeholder="0" title="@{willpower_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_willpower" title="@{willpower}"></span>
</div>
<div class="display"><span name="attr_display_willpower" title="@{willpower}"></span></div>
</div>
<!-- ~~:+: Logic :+:~~ -->
<input type="hidden" name="attr_logic" value="" />
<button type="roll" name="logic" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{logic}}}{{dice=[[(@{logic}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="logic">Logic</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_logic_base" value="1" placeholder="3" title="@{logic_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_logic_modifier" value="" placeholder="0" title="@{logic_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_logic" title="@{logic}"></span>
</div>
<div class="display"><span name="attr_display_logic" title="@{logic}"></span></div>
</div>
<!-- ~~:+: Intuition :+:~~ -->
<input type="hidden" name="attr_intuition" value="" />
<button type="roll" name="intuition" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{intuition}}}{{dice=[[(@{intuition}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="intuition">Intuition</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_intuition_base" value="1" placeholder="3" title="@{intuition_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_intuition_modifier" value="" placeholder="0" title="@{intuition_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_intuition" title="@{intuition}"></span>
</div>
<div class="display"><span name="attr_display_intuition" title="@{intuition}"></span></div>
</div>
<!-- ~~:+: Charisma :+:~~ -->
<input type="hidden" name="attr_charisma" value="" />
<button type="roll" name="charisma" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{charisma}}}{{dice=[[(@{charisma}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="charisma">Charisma</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_charisma_base" value="1" placeholder="3" title="@{charisma_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_charisma_modifier" value="" placeholder="0" title="@{charisma_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_charisma" title="@{charisma}"></span>
</div>
<div class="display"><span name="attr_display_charisma" title="@{charisma}"></span></div>
</div>
<!-- ~~:+: Edge :+:~~ -->
<button type="roll" name="edge" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{edge}}}{{dice=[[(@{edge}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="edge">Edge</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_edge" value="1" placeholder="3" title="@{edge}" />
</div>
<div class="display"><span name="attr_edge" title="@{edge}"></span></div>
</div>
<div class="edg-hex" style="width: 100%;">
<input class="edge-zero" type="hidden" name="attr_edge_hex" value="0"/>
<input class="hex-hider" type="hidden" name="attr_edge_max" value="7"/>
<input type="hidden" name="attr_edge_hex_max" value="7"/>
<input type="checkbox" name="attr_edge_hex" value="1" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="2" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="3" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="4" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="5" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="6" /><span class="hexagon"></span>
<input type="checkbox" name="attr_edge_hex" value="7" /><span class="hexagon"></span>
</div>
</div>
<div class="attr-col attr-col-right">
<!-- ~~:+: Magic or Resonance :+:~~ -->
<input type="hidden" name="attr_display_magic" value="" />
<input type="hidden" name="attr_magic_max" value="6" />
<input type="hidden" name="attr_display_resonance" value="" />
<label data-i18n="magicres">Magic/Resonance</label>
<div class="attr-und">
<div class="settings">
<div class="hide-magic">
<input type="number" name="attr_magic_base" placeholder="0" title="@{magic_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_magic_modifier" placeholder="0" title="@{magic_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_magic" title="@{magic}"></span>
</div>
<div class="hide-resonance">
<input type="number" name="attr_resonance_base" placeholder="0" title="@{resonance_base}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_resonance_modifier" placeholder="0" title="@{resonance_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_display_resonance" title="@{resonance}"></span>
</div>
</div>
<div class="display">
<div class="hide-magic"><span name="attr_display_magic" title="@{magic}"></span></div>
<div class="hide-resonance"><span name="attr_display_resonance" title="@{resonance}"></span></div>
</div>
</div>
<!-- ~~:+: Initiative :+:~~ -->
<input type="hidden" name="attr_initiative_base" value="0" />
<input type="hidden" name="attr_initiative_dice_mod" value="1" />
<input type="hidden" name="attr_initiative_dice" value="1" />
<button class="attr-ini" name="initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{combat_paralysis=[[@{combat_paralysis}]]}}{{header=@{character_name}}}{{base=^{initiative}}}{{dice=[[ceil([[(@{initiative_base}+@{modifiers_toggle})+(1d6cf0 + (@{initiative_dice} + @{wounds_toggle} - 1)d6cf0)]] @{combat_paralysis_initiative_mod}) &{tracker}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}"><span class="attr-ini red" data-i18n="initiative">Initiative</span></button>
<div class="attr-und attr-ini">
<div class="settings">
<input type="number" name="attr_initiative_mod" value="0" placeholder="0" title="@{initiative_mod}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_initiative_dice_mod" value="0" min="0" max="4" placeholder="mod" title="@{initiative_dice_mod}" />
<span class="tiny-span"> = </span>
<span name="attr_display_initiative_base"></span><span class="tiny-span"> + </span>
<span name="attr_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
<div class="display">
<span name="attr_display_initiative_base" title="@{display_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_initiative_dice" title="@{initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
</div>
<!-- ~~:+: Astral Initative :+:~~ -->
<input type="hidden" name="attr_astral_initiative_base" value="0" />
<input type="hidden" name="attr_astral_initiative_dice_mod" value="0" />
<input type="hidden" name="attr_astral_initiative_dice" value="2" />
<div class="hide-magic" style="width: 100% !important">
<button class="attr-ini" name="astral_initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{combat_paralysis=[[@{combat_paralysis}]]}}{{header=@{character_name}}}{{base=^{astral} ^{initiative}}}{{dice=[[ceil([[(@{astral_initiative_base}+@{modifiers_toggle})+(1d6cf0 + (@{astral_initiative_dice} + @{wounds_toggle} - 1)d6cf0)]] @{combat_paralysis_initiative_mod}) &{tracker}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}">
<span class="attr-ini red init-settings" data-i18n="astralini">Astral Ini</span>
<span class="attr-ini red init-display" data-i18n="astralinitiative">Astral Initiative</span>
</button>
<div class="attr-und attr-ini">
<div class="settings">
<input type="number" name="attr_astral_initiative_mod" value="0" placeholder="modifier" title="@{astral_initiative_mod}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_astral_initiative_dice_mod" value="0" min="0" max="3" placeholder="modifier" title="@{astral_initiative_dice_mod}" />
<span class="tiny-span"> = </span>
<span name="attr_display_astral_initiative_base" title="@{display_astral_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_astral_initiative_dice" title="@{astral_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
<div class="display">
<span name="attr_display_astral_initiative_base" title="@{display_astral_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_astral_initiative_dice" title="@{astral_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
</div>
</div>
<!-- ~~:+: Matrix Initative :+:~~ -->
<input type="hidden" name="attr_matrix_initiative_base" value="0" />
<input type="hidden" name="attr_matrix_initiative_dice_mod" value="0" />
<input type="hidden" name="attr_matrix_initiative_dice" value="0" />
<button class="attr-ini" name="matrix_initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{combat_paralysis=[[@{combat_paralysis}]]}}{{header=@{character_name}}}{{base=^{matrixinitiative}}}{{dice=[[ceil([[(@{matrix_initiative_base}+@{modifiers_toggle})+(1d6cf0 + (@{matrix_initiative_dice}+@{wounds_toggle} - 1)d6cf0)]] @{combat_paralysis_initiative_mod}) &{tracker}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}">
<span class="attr-ini red init-settings" data-i18n="matrixinit">Matrix AR Ini</span>
<span class="attr-ini red init-display" data-i18n="matrixinitiative">Matrix AR Initiative</span>
</button>
<div class="attr-und attr-ini">
<div class="settings">
<input type="number" name="attr_matrix_initiative_mod" value="0" placeholder="0" title="@{matrix_initiative_mod}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_matrix_initiative_dice_mod" value="0" min="0" max="5" placeholder="0" title="@{matrix_dice_mod}" />
<span class="tiny-span"> = </span>
<span name="attr_matrix_initiative_base" title="@{matrix_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_matrix_initiative_dice" title="@{matrix_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
<div class="display">
<span name="attr_matrix_initiative_base" title="@{matrix_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_matrix_initiative_dice" title="@{matrix_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
</div>
<!-- ~~:+: Cold Sim VR Initative :+:~~ -->
<input type="hidden" name="attr_cold_sim_initiative_base" value="0" />
<input type="hidden" name="attr_cold_sim_initiative_dice_mod" value="0" />
<input type="hidden" name="attr_cold_sim_initiative_dice" />
<button class="attr-ini" name="cold_sim_initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{combat_paralysis=[[@{combat_paralysis}]]}}{{header=@{character_name}}}{{base=^{coldsiminitiative}}}{{dice=[[ceil([[(@{cold_sim_initiative_base}+@{modifiers_toggle})+(1d6cf0 + (@{cold_sim_initiative_dice}+@{wounds_toggle} - 1)d6cf0)]] @{combat_paralysis_initiative_mod}) &{tracker}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}">
<span class="attr-ini red init-settings" data-i18n="coldsiminit">Cold Sim Init</span>
<span class="attr-ini red init-display" data-i18n="coldsiminitiative">Cold Sim VR Initiative</span>
</button>
<div class="attr-und attr-ini">
<div class="settings">
<input type="number" name="attr_cold_sim_initiative_mod" value="0" placeholder="0" title="@{cold_sim_initiative_mod}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_cold_sim_initiative_dice_mod" value="0" min="0" max="5" placeholder="0" title="@{cold_sim_dice_mod}" />
<span class="tiny-span"> = </span>
<span name="attr_cold_sim_initiative_base" title="@{cold_sim_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_cold_sim_initiative_dice" title="@{cold_sim_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
<div class="display">
<span name="attr_cold_sim_initiative_base" title="@{cold_sim_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_cold_sim_initiative_dice" title="@{cold_sim_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
</div>
<!-- ~~:+: Hot Sim VR Initative :+:~~ -->
<input type="hidden" name="attr_hot_sim_initiative_base" value="0" />
<input type="hidden" name="attr_hot_sim_initiative_dice_mod" value="0" />
<input type="hidden" name="attr_hot_sim_initiative_dice" value="0" />
<button class="attr-ini" name="hot_sim_initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{combat_paralysis=[[@{combat_paralysis}]]}}{{header=@{character_name}}}{{base=^{hotsiminitiative}}}{{dice=[[ceil([[(@{hot_sim_initiative_base}+@{modifiers_toggle})+(1d6cf0+ (@{hot_sim_initiative_dice}+@{wounds_toggle}-1)d6cf0)]] @{combat_paralysis_initiative_mod}) &{tracker}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}">
<span class="attr-ini red init-settings" data-i18n="hotsiminit">Hot Sim Init</span>
<span class="attr-ini red init-display" data-i18n="hotsiminitiative">Hot Sim VR Initiative</span>
</button>
<div class="attr-und attr-ini">
<div class="settings">
<input type="number" name="attr_hot_sim_initiative_mod" value="0" placeholder="0" title="@{hot_sim_initiative_mod}" /><span class="tiny-span"> + </span>
<input type="number" name="attr_hot_sim_initiative_dice_mod" value="0" min="0" max="5" placeholder="0" title="@{hot_sim_dice_mod}" />
<span class="tiny-span"> = </span>
<span name="attr_hot_sim_initiative_base" title="@{hot_sim_initiative_base}"></span><span class="tiny-span"> + </span>
<span name="attr_hot_sim_initiative_dice" title="@{hot_sim_initiative_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
<div class="display">
<span name="attr_hot_sim_initiative_base" title="@{hot_sim_base}"></span><span class="tiny-span"> + </span>
<span name="attr_hot_sim_initiative_dice" title="@{hot_sim_dice}"></span><span class="tiny-span" data-i18n="d6">d6</span>
</div>
</div>
<!-- ~~:+: Composure :+:~~ -->
<input type="hidden" name="attr_composure" value="" />
<button type="roll" name="composure" data-i18n-title="Willpower + Charisma" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{composure}}}{{dice=[[(@{composure}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="composure">Composure</span></button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_composure_modifier" placeholder="0" title="@{composure_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_composure" title="@{composure}"></span>
</div>
<div class="display">
<span name="attr_composure" title="@{composure}"></span>
</div>
</div>
<!-- ~~:+: Judge Intentions :+:~~ -->
<input type="hidden" name="attr_judge_intentions" value="" />
<button type="roll" name="judge intentions" data-i18n-title="Willpower + Intuition" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{judgeintentions}}}{{dice=[[(@{judge_intentions}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span data-i18n="judgeintentions">Judge Intentions</span>
</button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_judge_intentions_modifier" placeholder="0" title="@{judge_intentions_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_judge_intentions" title="@{judge_intentions}"></span>
</div>
<div class="display">
<span name="attr_judge_intentions" title="@{judge_intentions}"></span>
</div>
</div>
<!-- ~~:+: Memory :+:~~ -->
<input type="hidden" name="attr_memory" value="" />
<button type="roll" name="memory" data-i18n-title="Logic + Intuition" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{memory}}}{{dice=[[(@{memory}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span data-i18n="memory">Memory</span>
</button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_memory_modifier" placeholder="0" title="@{memory_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_memory" title="@{memory}"></span>
</div>
<div class="display">
<span name="attr_memory" title="@{memory}"></span>
</div>
</div>
<!-- ~~:+: Social Rating :+:~~ -->
<input type="hidden" name="attr_social_rating" value="" />
<button type="roll" name="roll_social_rating" data-i18n-title="social_rating_desc" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{social_rating}}}{{rating=@{social_rating}}}">
<span data-i18n="social_rating">Social Rating</span>
</button>
<div class="attr-und">
<div class="settings">
<span name="attr_social_rating" title="@{social_rating}"></span>
</div>
<div class="display">
<span name="attr_social_rating" title="@{social_rating}"></span>
</div>
</div>
<!-- ~~:+: Lift & Carry :+:~~ -->
<input type="hidden" name="attr_lift_carry" value="" />
<button type="roll" name="lift & carry" data-i18n-title="Body + Willpower" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{liftcarry}}}{{dice=[[(@{lift_carry}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span data-i18n="liftcarry">Lift & Carry</span>
</button>
<div class="attr-und">
<div class="settings">
<input type="number" name="attr_lift_carry_modifier" placeholder="0" title="@{lift_carry_modifier}" /><span class="tiny-span"> = </span>
<span class="totals" name="attr_lift_carry" title="@{lift_carry}"></span>
</div>
<div class="display">
<span name="attr_lift_carry" title="@{lift_carry}"></span>
</div>
</div>
<!-- ~~:+: Walk & Run :+:~~ -->
<label data-i18n="movement">Movement</label>
<div class="attr-und">
<div class="settings">
<input style="width: 1.75em !important;" type="number" name="attr_move_speed" value="10" placeholder="10" title="@{move_speed}" />
<span class="tiny-span">/</span>
<input style="width: 1.75em !important;" type="number" name="attr_sprint_speed" value="15" placeholder="15" title="@{sprint_speed}" />
<span class="tiny-span">+</span>
<input style="width: 1.5em !important;" type="number" name="attr_sprint_modifier" value="1" title="@{sprint_modifier}" />
</div>
<div class="display">
<button type="roll" name="sprint" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=@{sprint_speed}+(Athletics+Agility hits * @{sprint_modifier})}}{{dice=[[@{sprint_speed}+((@{athletics}+@{agility}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle} * @{sprint_modifier})]] meters}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span data-i18n="sprint">Sprint</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div><!-- ~~~~~~~~ End of PC Attributes~~~~~~~~ -->
<div class="pc-row">
<div class="header left-header">
<div class="header htab">
<div class="triangle"></div>
<input class="skills-toggle" name="attr_skills_toggle" title="@{skills_toggle}" type="radio" value="knowledge"/>
<h1>Knowledge</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="skills-toggle" name="attr_skills_toggle" title="@{skills_toggle}" type="radio" value="active" checked="checked"/>
<h1>Skills</h1>
</div>
</div>
<div class="border-box skill-box">
<div class="pc-box medium-box">
<input class="skills-toggle" name="attr_skills_toggle" type="hidden" value="active"/>
<div class="skills-active">
<div class="rows repeating-container">
<div class="row-long headers">
<h2 data-i18n="skill">Skill</h2>
<h2 data-i18n="rtg">RTG</h2>
<h2 data-i18n="mod">Mod</h2>
<h2 data-i18n="attribute">Attribute</h2>
</div>
<div class="row-long">
<input name="attr_default_display" type="hidden" value="Agility"/>
<button data-i18n="default" name="roll_default" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{default} = @{default_display} - 1}}{{dice=[[((@{default_attribute}+@{unskilled_mod}+-1)+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">default</button><span class="text-align-center">-1</span>
<input name="attr_unskilled_mod" min="0" placeholder="0" type="number" step="1" value="0" title="attr_unskilled_mod"/>
<select class="attribute-select" name="attr_default_attribute" title="Skill attribute">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}" selected="selected">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
</div>
<fieldset class="repeating_skills">
<input name="attr_display_rating" type="hidden"/>
<input name="attr_display_spec" type="hidden" value=""/>
<input name="attr_display_expert" type="hidden" value=""/>
<input name="attr_display_attribute" type="hidden" value="Agility"/>
<input name="attr_dicepool" type="hidden" value="0"/>
<input class="settings-flag" name="attr_flag" type="hidden" value="settings" title="undefined_flag}"/>
<div class="buttons">
<button name="roll_skill" class="skill" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[((@{rating}+@{attribute}+@{mod})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="skill-button-hider" name="attr_spec">hideme</span><button name="roll_spec" class="skill_spec" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} +2 (Spec: @{display_spec})}}{{dice=[[((@{rating}+@{attribute}+@{mod}+2)+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Spec: @{spec}\n@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span class="skill_spec" name="attr_display_spec"></span></button>
<span class="skill-button-hider" name="attr_expert">hideme</span><button name="roll_expert" class="skill_expert" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} +3 (Expert: @{display_expert})}}{{dice=[[((@{rating}+@{attribute}+@{mod}+3)+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Expertise: @{expert}\n@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span class="skill_expert" name="attr_display_expert"></span></button>
</div>
<span class="text-align-center" name="attr_rating" title="@{repeating_skills_${x}_rating}"></span>
<input name="attr_mod" step="1" value="0" placeholder="0" type="number" title="mod"/>
<select class="attribute-select" name="attr_attribute" title="undefined_attribute">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}" selected="selected">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<select class="skill-select" name="attr_name" title="name">
<option value="Astral" data-i18n="astral">Astral</option>
<option value="Athletics" data-i18n="athletics">Athletics</option>
<option value="Biotech" data-i18n="biotech">Biotech</option>
<option value="Close Combat" data-i18n="closecombat">Close Combat</option>
<option value="Con" data-i18n="con">Con</option>
<option value="Conjuring" data-i18n="conjuring">Conjuring</option>
<option value="Cracking" data-i18n="cracking">Cracking</option>
<option value="Electronics" data-i18n="electronics">Electronics</option>
<option value="Enchanting" data-i18n="enchanting">Enchanting</option>
<option value="Engineering" data-i18n="engineering">Engineering</option>
<option value="Exotic Weapons" data-i18n="exoticweapons">Exotic Weapons</option>
<option value="Firearms" data-i18n="firearms">Firearms</option>
<option value="Influence" data-i18n="influence">Influence</option>
<option value="Outdoors" data-i18n="outdoors">Outdoors</option>
<option value="Perception" data-i18n="perception">Perception</option>
<option value="Piloting" data-i18n="piloting">Piloting</option>
<option value="Sorcery" data-i18n="sorcery">Sorcery</option>
<option value="Stealth" data-i18n="stealth">Stealth</option>
<option value="Tasking" data-i18n="tasking">Tasking</option>
<option value="Language" data-i18n="language">Language</option>
<option value="Knowledge" data-i18n="knowledge">Knowledge</option>
</select>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" step="1" placeholder="Rtg" type="number" title="rating" value='' />
</label>
<label data-i18n-title="mod" title="mod">
<input name="attr_mod" value="0" step="1" placeholder="Mod" type="number" title="mod"/>
</label>
<select class="attribute-select" name="attr_attribute" title="undefined_attribute">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}" selected="selected">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<label data-i18n-title="specialization" title="specialization"> <span class="skill_spec" data-i18n="specialization">specialization</span>
<input name="attr_spec" placeholder="specialization" type="text" title="specialization"/>
</label>
<label data-i18n-title="expertise" title="expertise"> <span class="skill_expert" data-i18n="expertise">Expertise</span>
<input name="attr_expert" placeholder="expertise" type="text" title="expertise"/>
</label>
<label data-i18n-title="notes" title="notes"><span data-i18n="notes">Notes</span>
<textarea name="attr_notes" placeholder="Notes" title="undefined_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="skills-knowledge">
<div class="rows repeating-container">
<div class="row-long headers">
<h2 data-i18n="knowledge">Knowledge</h2>
<h2 data-i18n="type">Type</h2>
</div>
<fieldset class="repeating_knowledges">
<span name="attr_name"></span>
<span class="center" name="attr_type"></span>
<input class="settings-flag" name="attr_flag" type="hidden" value="settings" title="undefined_flag}"/>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<input type="text" name="attr_name" value="" placeholder="" title="Knowledge / Language Name" />
<select class="center" data-i18n-title="type" name="attr_type" title="skill_type">
<option data-i18n="knowledge" value="Knowledge">Knowledge</option>
<option data-i18n="language" value="Language">Language</option>
</select>
<label data-i18n-title="notes" title="notes"><span data-i18n="notes">Notes</span>
<textarea name="attr_notes" placeholder="Notes" title="undefined_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="options pc-col">
<div class="pc-row">
<div class="header right-header"><h1 data-i18n="options">Options</h1><div class="right-tri"></div></div>
<div class="border-box">
<div class="pc-box">
<div class="op-col">
<div>
<h2 data-i18n="character">Character</h2><br />
<label data-i18n="mundane">Mundane</label><input class="character-type" type="checkbox" name="attr_flag_special" value="mundane" title="@{flag_special}" checked /><br />
<label data-i18n="awakened">Awakened</label><input class="character-type" type="checkbox" name="attr_flag_special" value="magic" title="@{flag_special}" /><br />
<label data-i18n="technomancer">Technomancer</label><input class="character-type" type="checkbox" name="attr_flag_special" value="resonance" title="@{flag_special}" />
</div>
<hr />
<div>
<h2 data-i18n="sheetselect">Sheet Select</h2><br />
<select name="attr_sheet_type" title="@{sheet_type}">
<option value="pc" data-i18n="pc">PC</option>
<option value="grunt" data-i18n="grunt">Grunt</option>
<option value="spirit" data=i18n="spirit">Spirit</option>
<option value="host" data-i18n="host">Host</option>
<option value="sprite" data-i18n="sprite">Sprite</option>
<option value="vehicle" data-i18n="vehicle">Vehicle</option>
</select>
</div>
<hr />
<div>
<h2 data-i18n="modifier_text_boxes">Modifier Text Boxes</h2><br />
<label data-i18n="enable_modifier_changes">Enable Modifier Changes</label><input class="enable-modifiers" type="checkbox" name="attr_enable_modifiers" value="1" title="@{enable_modifiers}" /><br />
<span class="tiny red">Warning: If not used correctly this can break your character data.</span><br />
<label data-i18n="enable_unrestricted_modifiers">Enable Unrestricted Modifiers</label><input type="checkbox" name="attr_enable_unrestricted_modifiers" value="1" title="@{enable_unrestricted_modifiers}" /><br />
</div>
</div>
<div class="op-col">
<div>
<h2 data-i18n="temporarymodifiers">Temporary Modifiers</h2><br />
<label data-i18n="defense">Defense</label><input type="number" name="attr_defense_temp" title="@{defense_temp}" /><input type="checkbox" name="attr_defense_temp_flag" value="on" checked />
<label data-i18n="soak">Soak</label><input type="number" name="attr_soak_temp" title="@{soak_temp}" /><input type="checkbox" name="attr_soak_temp_flag" value="on" checked />
<hr />
<label data-i18n="body">Body</label><input type="number" name="attr_body_temp" title="@{body_temp}" /><input type="checkbox" name="attr_body_temp_flag" value="on" checked />
<label data-i18n="agility">Agility</label><input type="number" name="attr_agility_temp" title="@{agility_temp}" /><input type="checkbox" name="attr_agility_temp_flag" value="on" checked />
<label data-i18n="reaction">Reaction</label><input type="number" name="attr_reaction_temp" title="@{reaction_temp}" /><input type="checkbox" name="attr_reaction_temp_flag" value="on" checked />
<label data-i18n="strength">Strength</label><input type="number" name="attr_strength_temp" title="@{strength_temp}" /><input type="checkbox" name="attr_strength_temp_flag" value="on" checked />
<label data-i18n="willpower">Willpower</label><input type="number" name="attr_willpower_temp" title="@{willpower_temp}" /><input type="checkbox" name="attr_willpower_temp_flag" value="on" checked />
<label data-i18n="logic">Logic</label><input type="number" name="attr_logic_temp" title="@{logic_temp}" /><input type="checkbox" name="attr_logic_temp_flag" value="on" checked />
<label data-i18n="intuition">Intuition</label><input type="number" name="attr_intuition_temp" title="@{intuition_temp}" /><input type="checkbox" name="attr_intuition_temp_flag" value="on" checked />
<label data-i18n="charisma">Charisma</label><input type="number" name="attr_charisma_temp" title="@{charisma_temp}" /><input type="checkbox" name="attr_charisma_temp_flag" value="on" checked />
<label data-i18n="magic">Magic</label><input type="number" name="attr_magic_temp" title="@{magic_temp}" /><input type="checkbox" name="attr_magic_temp_flag" value="on" checked />
<label data-i18n="resonance">Resonance</label><input type="number" name="attr_resonance_temp" title="@{resonance_temp}" /><input type="checkbox" name="attr_resonance_temp_flag" value="on" checked />
<hr />
<label data-i18n="initiative">Initiative</label><input type="number" name="attr_initiative_temp" title="@{initiative_temp}" /><input type="checkbox" name="attr_initiative_temp_flag" value="on" checked />
<label data-i18n="initiativedice">Initiative Dice</label><input type="number" name="attr_initiative_dice_temp" title="@{initiative_dice_temp}" /><input type="checkbox" name="attr_initiative_dice_temp_flag" value="on" checked />
<label data-i18n="astralinitiative">Astral Initiative</label><input type="number" name="attr_astral_initiative_temp" title="@{astral_initiative_temp}" /><input type="checkbox" name="attr_astral_initiative_temp_flag" value="on" checked />
<label data-i18n="astralinitiativedice">Initiative Dice</label><input type="number" name="attr_astral_initiative_dice_temp" title="@{astral_initiative_dice_temp}" /><input type="checkbox" name="attr_astral_initiative_dice_temp_flag" value="on" checked />
<label data-i18n="matrixinitiative">Matrix Initiative</label><input type="number" name="attr_matrix_initiative_temp" title="@{matrix_initiative_temp}" /><input type="checkbox" name="attr_matrix_initiative_temp_flag" value="on" checked />
<label data-i18n="matrixinitiativedice">Matrix Initiative Dice</label><input type="number" name="attr_matrix_initiative_dice_temp" title="@{matrix_initiative_dice_temp}" /><input type="checkbox" name="attr_matrix_initiative_dice_temp_flag" value="on" checked />
<label data-i18n="coldsiminitiative">Cold Sim VR Initiative</label><input type="number" name="attr_cold_sim_initiative_temp" title="@{cold_sim_initiative_temp}" /><input type="checkbox" name="attr_cold_sim_initiative_temp_flag" value="on" checked />
<label data-i18n="coldsiminitiativedice">Cold Sim VR Initiative Dice</label><input type="number" name="attr_cold_sim_initiative_dice_temp" title="@{cold_sim_initiative_dice_temp}" /><input type="checkbox" name="attr_cold_sim_initiative_dice_temp_flag" value="on" checked />
<label data-i18n="hotsiminitiative">Hot Sim VR Initiative</label><input type="number" name="attr_hot_sim_initiative_temp" title="@{hot_sim_initiative_temp}" /><input type="checkbox" name="attr_hot_sim_initiative_temp_flag" value="on" checked />
<label data-i18n="hotsiminitiativedice">Hot Sim VR Initiative Dice</label><input type="number" name="attr_hot_sim_initiative_dice_temp" title="@{hot_sim_initiative_dice_temp}" /><input type="checkbox" name="attr_hot_sim_initiative_dice_temp_flag" value="on" checked />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="core pc-col">
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="corecombatinfo">Core Combat Info</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box small-box core-combat">
<div class="row-long cc-arm">
<div class="armor-info">
<div>&nbsp;</div>
<button type="roll" name="roll_dr" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{defense} ^{rating}}}{{rating=@{armor_rating}}}">
<span class="center"><span data-i18n="dr">DR</span> <span name="attr_armor_rating"></span></span>
</button>
<div>&nbsp;</div>
<button type="roll" name="roll_defense" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{defense} = ^{reaction} + ^{intuition}}}{{dice=[[((@{defense})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span class="center" name="defense" title="@{defense}">Defense</span>
</button>
<div>&nbsp;</div>
<button type="roll" name="roll_soak" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{soak} ^{damage}}}{{dice=[[((@{soak})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">
<span class="center" name="soak" title="@{soak}">Soak Damage</span>
</button>
<div>&nbsp;</div>
</div>
<div class="magic-defense">
<div>&nbsp;</div>
<button type="roll" name="roll_magic_dr" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{magic} ^{attack} ^{rating}}}{{rating=@{magic_ar}}}">
<span class="center"><span data-i18n="magicar">Magic AR</span> <span name="attr_magic_ar"></span></span>
</button>
<div>&nbsp;</div>
<button type="roll" name="roll_direct_magic_defense" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{direct} ^{magic} ^{defense}}}{{dice=[[((@{willpower}+@{intuition})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{desc=Willpower + Intuition}}{{wilddie=[[@{wild_die}d6]]}}">
<span class="center"><span class="center" data-i18n="directmagicdefense">Direct Magic Defense</span></span>
</button>
<div>&nbsp;</div>
<button type="roll" name="roll_indirect_magic_defense" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{indirect} ^{magic} ^{defense}}}{{dice=[[((@{reaction}+@{willpower})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{desc=Reaction + Willpower}}{{wilddie=[[@{wild_die}d6]]}}">
<span class="center"><span class="center" data-i18n="indirectmagicdefense">Indirect Magic Defense</span></span>
</button>
<div>&nbsp;</div>
</div>
<div class="armor-resists">
<h2 data-i18n="resists">Resists</h2>
<span class="armor-resist" title="@{resist_chem_total}"><span class="pictos3 chem">d</span><span class="chem"> Chem </span><span class="armor-resist-value" name="attr_resist_chem_total"></span></span>
<span class="armor-resist" title="@{resist_cold_total}"><span class='pictos cold'>b</span><span class="cold"> Cold </span><span class="armor-resist-value" name="attr_resist_cold_total"></span></span>
<span class="armor-resist" title="@{resist_elec_total}"><span class='pictos elec'>e</span><span class="elec"> Elec </span><span class="armor-resist-value" name="attr_resist_elec_total"></span></span>
<span class="armor-resist" title="@{resist_fire_total}"><span class="pictos3 fire">j</span><span class="fire"> Fire </span><span class="armor-resist-value" name="attr_resist_fire_total"></span></span>
</div>
</div>
<div>
<span>&nbsp;</span>
</div>
<div class="row-long cc-row primary-range">
<h2 data-i18n="primaryrangedweapon">Primary Ranged Weapon</h2>
<h2>&nbsp;</h2>
<h2 class="center" data-i18n="pool">Pool</h2>
<h2 class="center" data-i18n="dam">Dam</h2>
<h2 class="center" data-i18n="c" title="Close 0-3">C</h2>
<h2 class="center" data-i18n="n" title="Near 4-50">N</h2>
<h2 class="center" data-i18n="m" title="Medium 51-250">M</h2>
<h2 class="center" data-i18n="f" title="Far 251-500">F</h2>
<h2 class="center" data-i18n="e" title="Extreme 500+">E</h2>
</div>
<div class="cc-row primary-range">
<button name="roll_range_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{primary_range_weapon}}}{{dice=[[(@{primary_range_weapon_rating}+@{primary_range_weapon_attr_rating}+@{primary_range_weapon_spec}+@{primary_range_weapon_expert}+@{primary_range_weapon_dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Mode @{primary_range_weapon_mode}, Damage @{primary_range_weapon_damage}, Skill @{primary_range_weapon_skill}, Attribute: @{primary_range_weapon_attribute}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_primary_range_weapon" title="@{primary_range_weapon}"></span></button>
<span>&nbsp;</span>
<span class="center" name="attr_primary_range_weapon_dicepool"></span>
<span class="center" name="attr_primary_range_weapon_damage"></span>
<span class="center" name="attr_primary_range_weapon_close"></span>
<span class="center" name="attr_primary_range_weapon_near"></span>
<span class="center" name="attr_primary_range_weapon_medium"></span>
<span class="center" name="attr_primary_range_weapon_far"></span>
<span class="center" name="attr_primary_range_weapon_extreme"></span>
</div>
<div class="row-long cc-row primary-range-row2">
<input type="hidden" name="attr_primary_range_weapon_mode_singleshot" value="0" />
<input type="hidden" name="attr_primary_range_weapon_mode_semiauto" value="0" />
<input type="hidden" name="attr_primary_range_weapon_mode_burst" value="0" />
<input type="hidden" name="attr_primary_range_weapon_mode_fullauto" value="0" />
<input type="hidden" name="attr_primary_range_weapon_mode_other" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_damage" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_close" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_near" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_medium" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_far" value="0" />
<input type="hidden" name="attr_primary_range_weapon_base_extreme" value="0" />
<select name="attr_primary_range_weapon_mode" title="@{primary_range_weapon_mode}">
<option data-i18n="singleshot" value="Single Shot" selected="selected">Single Shot</option>
<option data-i18n="semiauto" value="Semi Auto">Semi-Auto</option>
<option data-i18n="burstfire" value="Burst Fire">Burst Fire</option>
<option data-i18n="fullauto" value="Full Auto">Full Auto</option>
<option data-i18n="other" value="Other">Other</option>
</select>
<span>&nbsp;</span>
<!-- Ammo removal button -->
<button name="act_shots_remove" type="action">4</button>
<button type="action" name="act_primary_ammo" title="Shots Fired">
<img alt="small handgun icon" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Shadowrun5thEdition/images/gun.png" /><span name="attr_shots_fired"></span>
</button>
<button name="act_shots_add" type="action">4</button>
<span>&nbsp;</span>
<span name="attr_primary_range_weapon_ammo" title="@{primary_range_weapon_ammo}"></span>
<span name="attr_primary_range_weapon_ammo_max" title="@{primary_range_weapon_ammo_max}"></span>
<button class="pictos" name="act_reload" type="action">0</button>
</div>
<div>
<span>&nbsp;</span>
</div>
<div class="row-long cc-row primary-melee">
<h2 data-i18n="primarymeleeweapon">Primary Melee Weapon</h2>
<h2>&nbsp;</h2>
<h2 class="center" data-i18n="pool">Pool</h2>
<h2 class="center" data-i18n="dam">Dam</h2>
<h2 class="center" data-i18n="c" title="Close 0-3">C</h2>
<h2 class="center" data-i18n="n" title="Near 4-50">N</h2>
<h2 class="center" data-i18n="m" title="Medium 51-250">M</h2>
<h2 class="center" data-i18n="f" title="Far 251-500">F</h2>
<h2 class="center" data-i18n="e" title="Extreme 500+">E</h2>
</div>
<div class="cc-row primary-melee">
<button name="roll_melee_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{primary_melee_weapon_weapon}}}{{dice=[[(@{primary_melee_weapon_rating}+@{primary_melee_weapon_attr_rating}+@{primary_melee_weapon_spec}+@{primary_melee_weapon_expert}+@{primary_melee_weapon_dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Damage @{primary_melee_weapon_damage}, Skill: @{primary_melee_weapon_skill}, Attribute: @{primary_melee_weapon_attribute}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_primary_melee_weapon_weapon"></span></button>
<span>&nbsp;</span>
<span class="center" name="attr_primary_melee_weapon_dicepool" title="@{primary_melee_weapon_dicepool}"></span>
<span class="center" name="attr_primary_melee_weapon_damage" title="@{primary_melee_weapon_damage}"></span>
<span class="center" name="attr_primary_melee_weapon_close" title="@{primary_melee_weapon_close}"></span>
<span class="center" name="attr_primary_melee_weapon_near" title="@{primary_melee_weapon_near}"></span>
<span class="center" name="attr_primary_melee_weapon_medium" title="@{primary_melee_weapon_medium}"></span>
<span class="center" name="attr_primary_melee_weapon_far" title="@{primary_melee_weapon_far}"></span>
<span class="center" name="attr_primary_melee_weapon_extreme" title="@{primary_melee_weapon_extreme}"></span>
</div>
</div>
</div>
</div>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ START OF THE CONDITION MONITOR ROW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<div class="pc-row">
<div class="header right-header"><h1 data-i18n="conditionmonitor">Condition Monitor</h1><div class="right-tri"></div></div>
<div class="border-box">
<div class="pc-box medium-box condition-box">
<input type="checkbox" class="settings-toggle" name="attr_flag_condition" checked="checked" title="Settings toggle" /><span>x</span>
<div class="settings">
<label data-i18n="conditionmonitormodifiers">Condition Monitor Modifiers (P/S): </label>
<input type="hidden" name="attr_physical" value="10" />
<input type="hidden" name="attr_stun" value="10" />
<input type="hidden" name="attr_physical_max" value="10" />
<input type="hidden" name="attr_stun_max" value="10" />
<input type="number" name="attr_physical_modifier" value="" placeholder="#" title="@{physical_modifier}" /><span> / </span>
<input type="number" name="attr_stun_modifier" value="" placeholder="#" title="@{stun_modifier}" /><br />
<input type="hidden" name="attr_overflow" value="3" />
<label data-i18n="overflowmodifier">Overflow Modifier</label><input type="number" name="attr_overflow_modifier" value="" placeholder="#" title="@{overflow_modifier}" /><br />
<label data-i18n="paintolerance">Pain Tolerance</label>
<select name="attr_pain_tolerance">
<option value="+1" data-i18n="highpaintolerance">High Pain Tolerance</option>
<option value="0" data-i18n="none" selected="selected">None</option>
<option value="-1" data-i18n="lowpaintolerance">Low Pain Tolerance</option>
</select>
<div class="con-footer">
<span data-i18n="painfooter">Low Pain Tolerance doubles wound modifiers and High Pain Tolerance lowers the modifier to wound modifiers by 1 per level.</span>
</div>
</div>
<div class="display">
<div class="con-track">
<input type="hidden" name="attr_physical_damage" value="0" />
<button name="act_cond_reset_physical" type="action" data-i18n="resetphysicaltrack">Reset Physical Track</button>
<button type="roll" name="roll_natural_healing_physical" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{natural} ^{healing} ^{physical}\n^{body} + ^{body}}}{{dice=[[(@{body}+@{body}+?{Medical Care?|No,0|Yes,2})d6>5]]}}{{desc=Natural Healing (Physical), This test can be performed once per 24 hours of rest to recover Overflow/Physical damage.\n\n&star; Duration is halved with the Quick Healer quality.}}{{wilddie=[[@{wild_die}d6]]}}{{glitch=[[0]]}}"><span class="center"><span class="center" data-i18n="naturalhealingphysical">Natural Healing (Physical)</span></span></button>
<div class="squares">
<input class="hex-hider" type="hidden" name="attr_physical_max" value="10" />
<input type="radio" name="attr_physical_damage" value="1" /><span></span>
<input type="radio" name="attr_physical_damage" value="2" /><span></span>
<input type="radio" name="attr_physical_damage" value="3" /><span></span><div>-1</div>
<input type="radio" name="attr_physical_damage" value="4" /><span></span>
<input type="radio" name="attr_physical_damage" value="5" /><span></span>
<input type="radio" name="attr_physical_damage" value="6" /><span></span><div>-2</div>
<input type="radio" name="attr_physical_damage" value="7" /><span></span>
<input type="radio" name="attr_physical_damage" value="8" /><span></span>
<input type="radio" name="attr_physical_damage" value="9" /><span></span><div>-3</div>
<input type="radio" name="attr_physical_damage" value="10" /><span></span>
<input type="radio" name="attr_physical_damage" value="11" /><span></span>
<input type="radio" name="attr_physical_damage" value="12" /><span></span><div>-4</div>
<input type="radio" name="attr_physical_damage" value="13" /><span></span>
<input type="radio" name="attr_physical_damage" value="14" /><span></span>
<input type="radio" name="attr_physical_damage" value="15" /><span></span><div>-5</div>
<input type="radio" name="attr_physical_damage" value="16" /><span></span>
<input type="radio" name="attr_physical_damage" value="17" /><span></span>
<input type="radio" name="attr_physical_damage" value="18" /><span></span><div>-6</div>
</div>
<div class="con-footer" title="@{overflow}">
<label data-i18n="overflow">Overflow</label><div class="attr-und"><span name="attr_overflow"></span></div>
</div>
</div>
<div class="con-track">
<input type="hidden" name="attr_stun_damage" value="0" />
<button type="action" name="act_cond_reset_stun" data-i18n="resetstuntrack">Reset Stun Track</button>
<button type="roll" name="roll_natural_healing_stun" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{natural} ^{healing} ^{stun}\n^{body} + ^{willpower}}}{{dice=[[(@{body}+@{willpower}+?{Medical Care?|No,0|Yes,2})d6>5]]}}{{desc=Natural Healing (Stun), This test can be performed once per hour of rest to recover stun damage. &star;Duration is halved with the Quick Healer quality}}"><span class="center"><span class="center" data-i18n="naturalhealingstun">Natural Healing (Stun)</span></span></button>
<div class="squares">
<input class="hex-hider" type="hidden" name="attr_stun_max" value="10" />
<input type="radio" name="attr_stun_damage" value="1" /><span></span>
<input type="radio" name="attr_stun_damage" value="2" /><span></span>
<input type="radio" name="attr_stun_damage" value="3" /><span></span><div>-1</div>
<input type="radio" name="attr_stun_damage" value="4" /><span></span>
<input type="radio" name="attr_stun_damage" value="5" /><span></span>
<input type="radio" name="attr_stun_damage" value="6" /><span></span><div>-2</div>
<input type="radio" name="attr_stun_damage" value="7" /><span></span>
<input type="radio" name="attr_stun_damage" value="8" /><span></span>
<input type="radio" name="attr_stun_damage" value="9" /><span></span><div>-3</div>
<input type="radio" name="attr_stun_damage" value="10" /><span></span>
<input type="radio" name="attr_stun_damage" value="11" /><span></span>
<input type="radio" name="attr_stun_damage" value="12" /><span></span><div>-4</div>
<input type="radio" name="attr_stun_damage" value="13" /><span></span>
<input type="radio" name="attr_stun_damage" value="14" /><span></span>
<input type="radio" name="attr_stun_damage" value="15" /><span></span><div>-5</div>
</div>
<div class="con-footer">
<span data-i18n="conditionfooter">For every 3 boxes of damage on any one damage track, the character takes a -1 Dice Pool modifier on tests; these modifiers are cumulative within and across damage tracks.</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ~~~~~~~~ End of Condition Monitor ~~~~~~~~ -->
<div class="quality-box">
<div class="header right-header">
<div class="header htab">
<input class="tab-switch" name="attr_quality_toggle" type="radio" value="quality" checked="checked"/>
<h1 data-i18n="qualities">Qualities</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_quality_toggle" type="radio" value="martial"/>
<h1 data-i18n="martialarts">Martial Arts</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<input class="tab-switch" name="attr_quality_toggle" type="hidden" value="quality"/>
<div class="quality">
<div class="row-long headers">
<h2 data-i18n="quality">Quality</h2>
<h2 data-i18n="rtg">RTG</h2>
<h2 data-i18n="type">Type</h2>
<h2>&nbsp;</h2>
</div>
<div class="rows repeating-container">
<fieldset class="repeating_quality">
<span name="attr_quality"></span>
<span class="center" name="attr_rating"></span>
<span class="center" name="attr_type"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<button class="pictos" name="quality_chat" type="roll" value="@{gm_toggle} &{template:quality}{{header=@{character_name}}}{{base=@{quality}}}{{desc=@{notes}}}{{rating=@{rating}}}">w</button>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<input name="attr_quality" placeholder="quality name" title="@{repeating_quality_${x}_quality}" type="text"/>
<label data-i18n-title="rating" title="@{repeating_quality_${x}_rating}">
<input name="attr_rating" placeholder="-" type="number" title="@{repeating_quality_${x}_rating}"/>
</label>
<select name="attr_type" title="@{repeating_quality_${x}_type}">
<option data-i18n="p" value="P" selected="selected">P</option>
<option data-i18n="n" value="N">N</option>
</select>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_quality_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Mechanic: +/- mod" title="@{repeating_quality_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="martial">
<div class="row-long headers">
<h2 data-i18n="technique">Technique</h2>
<h2 data-i18n="style">Style</h2>
</div>
<div class="rows repeating-container">
<fieldset class="repeating_martial"><span name="attr_technique"></span><span class="center" name="attr_style"></span>
<button class="pictos" name="technique_chat" type="roll" value="@{gm_toggle} &amp;{template:rolls}{{header=@{character_name}}}{{base=@{style} - @{technique}}}{{desc=@{notes}}}">w</button>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<input name="attr_technique" placeholder="technique name" title="@{repeating_martial_${x}_technique}" type="text"/>
<input name="attr_style" placeholder="style name" title="@{repeating_martial_${x}_style}" type="text"/>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_martial_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="arms pc-col">
<div class="pc-row weapons">
<div class="header right-header">
<h1 data-i18n="weapons">Weapons</h1>
<div class="right-tri"></div>
</div>
<div class="header right-header">
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_weapon_type_toggle" type="radio" value="range" checked="checked"/>
<h1 data-i18n="ranged">Ranged</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_weapon_type_toggle" type="radio" value="melee"/>
<h1 data-i18n="melee">Melee</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_weapon_type_toggle" type="radio" value="grenade"/>
<h1 data-i18n="grenade">Grenade</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<input class="tab-switch" name="attr_weapon_type_toggle" type="hidden" value="range"/>
<div class="rows repeating-container weapon-range">
<div class="row-long headers">
<h2 data-i18n="weapon">Weapon</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="dam">Dam</h2>
<h2 class="center" data-i18n="c" title="Close 0-3">C</h2>
<h2 class="center" data-i18n="n" title="Near 4-50">N</h2>
<h2 class="center" data-i18n="m" title="Medium 51-250">M</h2>
<h2 class="center" data-i18n="f" title="Far 251-500">F</h2>
<h2 class="center" data-i18n="e" title="Extreme 500+">E</h2>
<h2 data-i18n="mode">Mode</h2>
<h2 data-i18n="ammo">Ammo</h2>
</div>
<fieldset class="repeating_range">
<input title="@{repeating_range_${x}_rating}" name="attr_rating" type="hidden" value="0" />
<input name="attr_skill" type="hidden" value=""/>
<input name="attr_attribute" type="hidden" value="Agility"/>
<input name="attr_attr_rating" type="hidden" value="1"/>
<input name="attr_updateme" type="hidden" value="0"/>
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<input class="flag-primary" name="attr_additional" type="hidden" value=""/>
<button name="roll_range_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{weapon}}}{{dice=[[(@{rating}+@{attr_rating}+@{spec}+@{expert}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Mode @{mode}, Damage @{damage}, Skill: @{skill}, Attribute: @{attribute}, Notes @{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_weapon"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_damage"></span>
<span class="center" name="attr_close"></span>
<span class="center" name="attr_near"></span>
<span class="center" name="attr_medium"></span>
<span class="center" name="attr_far"></span>
<span class="center" name="attr_extreme"></span>
<select name="attr_mode" title="@{mode}">
<option data-i18n="ss" value="SS">SS</option>
<option data-i18n="sa" value="SA">SA</option>
<option data-i18n="bf" value="BF">BF</option>
<option data-i18n="fa" value="FA">FA</option>
<option data-i18n="other" value="Other">Other</option>
</select>
<span class="center" name="attr_ammo"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="weapon" title="weapon">
<input name="attr_weapon" placeholder="Ares Predator" title="@{repeating_range_${x}_weapon}" type="text" value=""/>
</label>
<label data-i18n-title="pool" title="pool">
<input name="attr_dicepool" placeholder="" title="@{repeating_range_${x}_dicepool}" type="text" value=""/>
</label>
<label data-i18n-title="dam" title="dam">
<input name="attr_damage" placeholder="9P" title="@{repeating_range_${x}_damage}" type="text" value=""/>
</label>
<label data-i18n-title="c" title="Close">
<input name="attr_close" placeholder="-" title="@{repeating_range_${x}_close}" type="text" value=""/>
</label>
<label data-i18n-title="n" title="Near">
<input name="attr_near" placeholder="-" title="@{repeating_range_${x}_near}" type="text" value=""/>
</label>
<label data-i18n-title="m" title="Medium">
<input name="attr_medium" placeholder="-" title="@{repeating_range_${x}_medium}" type="text" value=""/>
</label>
<label data-i18n-title="f" title="Far">
<input name="attr_far" placeholder="-" title="@{repeating_range_${x}_far}" type="text" value=""/>
</label>
<label data-i18n-title="e" title="Extreme">
<input name="attr_extreme" placeholder="-" title="@{repeating_range_${x}_extreme}" type="text" value=""/>
</label>
<select name="attr_mode" title="@{mode}">
<option data-i18n="ss" value="SS">SS</option>
<option data-i18n="sa" value="SA">SA</option>
<option data-i18n="bf" value="BF">BF</option>
<option data-i18n="fa" value="FA">FA</option>
<option data-i18n="other" value="Other">Other</option>
</select>
<label data-i18n-title="ammo" title="ammo">
<input name="attr_ammo" placeholder="15" title="@{repeating_range_${x}_ammo}" type="number" value=""/>
</label>
<span></span>
<span></span>
<div class="row">
<h3 data-i18n="firingmodes">Firing Modes</h3>
<label data-i18n-title="modeoptions" title="Mode Options">
<input name="attr_firing_modes" placeholder="SA/BF/FA" type="text" title="@{repeating_range_${x}_firing_modes}}"/>
</label>
<h3 data-i18n="primary">primary</h3>
<label data-i18n-title="primary" title="Primary">
<input name="attr_primary" type="checkbox" title="@{repeating_range_${x}_primary}" value="primary"/>
</label>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{repeating_range_${x}_dicepool_modifier}" value='0' type="number"/>
</label>
</div>
<div class="row">
<h3 data-i18n="skill">skill</h3>
<select name="attr_skill" title="@{repeating_range_${x}_skill}">
<option data-i18n="firearms" value="Firearms" selected="selected">Firearms</option>
<option data-i18n="exoticweapons" value="Exotic Weapons">Exotic Weapons</option>
<option data-i18n="athletics" value="Athletics">Athletics</option>
<option data-i18n="engineering" value="Engineering">Engineering</option>
</select>
<h3 data-i18n="specialization">specialization</h3>
<label data-i18n-title="specialization" title="specialization">
<input name="attr_spec" value="2" title="@{repeating_range_${x}_spec}" type="checkbox"/>
</label>
<h3 data-i18n="expertise">expertise</h3>
<label data-i18n-title="expertise" title="expertise">
<input name="attr_expert" value="3" title="@{repeating_range_${x}_expert}" type="checkbox"/>
</label>
<input name="attr_skill" type="hidden" value=""/>
<input name="attr_rating" type="hidden" value=""/>
<div class="exotic-warning"><i data-i18n="exoticnote">Exotic weapons are not linked to a skill. Use Modifier input to set dicepool.</i></div>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_range_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows repeating-container weapon-melee">
<div class="row-long headers">
<h2 data-i18n="weapon">Weapon</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="dam">Dam</h2>
<h2 data-i18n="c" title="Close 0-3">C</h2>
<h2 data-i18n="n" title="Near 4-50">N</h2>
<h2 data-i18n="m" title="Medium 51-250">M</h2>
<h2 data-i18n="f" title="Far 251-500">F</h2>
<h2 data-i18n="e" title="Extreme 500+">E</h2>
</div>
<fieldset class="repeating_melee">
<input title="@{repeating_melee_${x}_rating}" name="attr_rating" type="hidden" value="0" />
<input name="attr_skill" type="hidden" value=""/>
<input name="attr_attribute" type="hidden" value="Agility"/>
<input name="attr_attr_rating" type="hidden" value="1"/>
<input name="attr_updateme" type="hidden" value="0"/>
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<input class="flag-primary" name="attr_additional" type="hidden" value=""/>
<button name="roll_melee_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{weapon}}}{{dice=[[(@{rating}+@{attr_rating}+@{spec}+@{expert}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Damage @{damage}, Skill: @{skill}, Attribute: @{attribute}, Notes: @{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_weapon"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_damage"></span>
<span class="center" name="attr_close"></span>
<span class="center" name="attr_near"></span>
<span class="center" name="attr_medium"></span>
<span class="center" name="attr_far"></span>
<span class="center" name="attr_extreme"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="weapon" title="weapon">
<input name="attr_weapon" placeholder="Katana" title="@{repeating_melee_${x}_weapon}" type="text" value=""/>
</label>
<label data-i18n-title="pool" title="pool">
<input name="attr_dicepool" placeholder="0d6" title="@{repeating_melee_${x}_dicepool}" type="text" value=""/>
</label>
<label data-i18n-title="dam" title="dam">
<input name="attr_damage" placeholder="5P" title="@{repeating_melee_${x}_damage}" type="text" value=""/>
</label>
<label data-i18n-title="close" title="Close 0-3">
<input name="attr_close" placeholder="-" title="@{repeating_melee_${x}_close}" type="text" value=""/>
</label>
<label data-i18n-title="near" title="Near 4-50">
<input name="attr_near" placeholder="-" title="@{repeating_melee_${x}_near}" type="text" value=""/>
</label>
<label data-i18n-title="medium" title="Medium 51-250">
<input name="attr_medium" placeholder="-" title="@{repeating_melee_${x}_medium}" type="text" value=""/>
</label>
<label data-i18n-title="far" title="Far 251-500">
<input name="attr_far" placeholder="-" title="@{repeating_melee_${x}_far}" type="text" value=""/>
</label>
<label data-i18n-title="extreme" title="Extreme 500+">
<input name="attr_extreme" placeholder="-" title="@{repeating_melee_${x}_extreme}" type="text" value=""/>
</label>
<div class="row">
<h3 data-i18n="skill">skill</h3>
<select name="attr_skill" title="@{repeating_melee_${x}_skill}">
<option data-i18n="closecombat" value="Close Combat" selected="selected">Close Combat</option>
<option data-i18n="athletics" value="Athletics">Athletics</option>
<option data-i18n="exoticweapons" value="Exotic Weapons">Exotic Weapons</option>
<option data-i18n="engineering" value="Engineering">Engineering</option>
</select>
<h3 data-i18n="specialization">specialization</h3>
<label data-i18n-title="specialization" title="specialization">
<input name="attr_spec" value="2" title="@{repeating_melee_${x}_spec}" type="checkbox"/>
</label>
<h3 data-i18n="expertise">expertise</h3>
<label data-i18n-title="expertise" title="expertise">
<input name="attr_expert" value="3" title="@{repeating_melee_${x}_expert}" type="checkbox"/>
</label>
<div class="exotic-warning"><i data-i18n="exoticnote">Exotic weapons are not linked to a skill. Use Modifier input to set dicepool.</i></div>
</div>
<div class="row">
<h3 data-i18n="primary">primary</h3>
<label data-i18n-title="primary" title="Primary">
<input name="attr_primary" type="checkbox" title="@{repeating_melee_${x}_primary}" value="primary"/>
</label>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{repeating_melee_${x}_dicepool_modifier}" value='0' type="number"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_melee_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows repeating-container weapon-grenade">
<button name="roll_GrenadeScatterAndDistance" style="display: none !important;" type="roll" value="/w GM &{template:multirow}{{header=Grenade}}{{base=Bounce & Scatter}}{{desc=Scatter Direction [[2d6]]}}{{desc2=Bounce Distance [[{[[2d6]]-(?{Hits?|0}?{Range?|Close,+4|Near,+2|Medium,+0|Far,-2|Extreme,-4}),0}kh1]]m}}"></button>
<div class="row-long headers">
<h2 data-i18n="weapon">Grenade</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="gz" title="Ground Zero ~1m">GZ</h2>
<h2 data-i18n="c" title="Close 1-3">C</h2>
<h2 data-i18n="n" title="Near 4-50">N</h2>
<h2 data-i18n="blast" title="Blast Area">Blast</h2>
</div>
<fieldset class="repeating_grenade">
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<input class="flag-primary" name="attr_additional" type="hidden" value=""/>
<button name="roll_grenade_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{weapon}}}{{dice=[[(@{type}+@{spec}+@{expert}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=DV @{ground_zero}/@{close}/@{near}, Blast Area: @{blast}, Notes: @{notes} [GM Roll Scatter](~@{character_name}|GrenadeScatterAndDistance)}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_weapon"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_ground_zero"></span>
<span class="center" name="attr_close"></span>
<span class="center" name="attr_near"></span>
<span class="center" name="attr_blast"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="weapon" title="weapon">
<input name="attr_weapon" placeholder="Fragmentation" title="@{repeating_grenade_${x}_weapon}" type="text" value=""/>
</label>
<label data-i18n-title="pool" title="pool">
<input name="attr_dicepool" title="@{repeating_grenade_${x}_dicepool}" type="text" value=""/>
</label>
<label data-i18n-title="gz" title="Ground Zero <1m">
<input name="attr_ground_zero" placeholder="16P" title="@{repeating_grenade_${x}_ground_zero}" type="text" value=""/>
</label>
<label data-i18n-title="close" title="Close 1-3">
<input name="attr_close" placeholder="12P" title="@{repeating_grenade_${x}_close}" type="text" value=""/>
</label>
<label data-i18n-title="near" title="Near 4-50">
<input name="attr_near" placeholder="8P" title="@{repeating_grenade_${x}_near}" type="text" value=""/>
</label>
<label data-i18n-title="blast" title="Blast Area">
<input name="attr_blast" placeholder="20m" title="@{repeating_grenade_${x}_blast}" type="text" value=""/>
</label>
<div class="row">
<h3 data-i18n="type">type</h3>
<select name="attr_type" title="@{repeating_grenade_${x}_type}">
<option data-i18n="thrown" value="@{athletics}+@{agility}">thrown</option>
<option data-i18n="launcher" value="@{exotic weapons}+@{logic}">Exotic Weapons</option>
</select>
<h3 data-i18n="specialization">specialization</h3>
<label data-i18n-title="specialization" title="specialization">
<input name="attr_spec" value="2" title="@{repeating_grenade_${x}_spec}" type="checkbox"/>
</label>
<h3 data-i18n="expertise">expertise</h3>
<label data-i18n-title="expertise" title="expertise">
<input name="attr_expert" value="3" title="@{repeating_grenade_${x}_expert}" type="checkbox"/>
</label>
</div>
<div class="row">
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{repeating_grenade_${x}_dicepool_modifier}" placeholder='0' type="number" value="0"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_grenade_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<div class="pc-row armor">
<div class="header right-header">
<h1 data-i18n="armor">Armor</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<div class="rows repeating-container">
<div class="row-long headers">
<h2 data-i18n="armor">Armor</h2>
<h2 data-i18n="dr">DR</h2>
<h2 data-i18n="chem">Chem</h2>
<h2 data-i18n="cold">Cold</h2>
<h2 data-i18n="elec">Elec</h2>
<h2 data-i18n="fire">Fire</h2>
<h2 data-i18n="social">Social</h2>
</div>
<fieldset class="repeating_armor">
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<span name="attr_name"></span>
<span class="center" name="attr_rating"></span>
<span class="center" name="attr_chem"></span>
<span class="center" name="attr_cold"></span>
<span class="center" name="attr_elec"></span>
<span class="center" name="attr_fire"></span>
<span class="center" name="attr_social"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="Armor Jacket" title="@{repeating_armor_${x}_name}" type="text" value=""/>
</label>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" placeholder="12" title="@{repeating_armor_${x}_rating}" type="number" value=""/>
</label>
<label data-i18n-title="chemical" title="chemical">
<input name="attr_chem" placeholder="0" title="@{repeating_armor_${x}_chem}" type="number" value="0" min="0" step="1"/>
</label>
<label data-i18n-title="cold" title="cold">
<input name="attr_cold" placeholder="0" title="@{repeating_armor_${x}_cold}" type="number" value="0" min="0" step="1"/>
</label>
<label data-i18n-title="elec" title="elec">
<input name="attr_elec" placeholder="0" title="@{repeating_armor_${x}_elec}" type="number" value="0" min="0" step="1"/>
</label>
<label data-i18n-title="fire" title="fire">
<input name="attr_fire" placeholder="0" title="@{repeating_armor_${x}_fire}" type="number" value="0" min="0" step="1"/>
</label>
<label data-i18n-title="social" title="social">
<input name="attr_social" placeholder="0" title="@{repeating_armor_${x}_social}" type="number" value="0" step="1"/>
</label>
<div class="row">
<h3 data-i18n="primary">Primary</h3>
<label data-i18n-title="primary" title="Primary">
<input name="attr_primary" type="checkbox" title="@{repeating_armor_${x}_primary}" value="primary"/>
</label>
<h3 data-i18n="cumulative">Cumulative</h3>
<label data-i18n-title="cumulative" title="Cumulative">
<input name="attr_cumulative" type="checkbox" title="@{repeating_armor_${x}_cumulative}" value="cumulative"/>
</label>
<h3 data-i18n="capacity">Capacity</h3>
<label data-i18n-title="capacity" title="Capacity">
<input name="attr_capacity" placeholder="0" title="@{repeating_armor_${x}_capacity}" type="number" value="0" step="1"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_armor_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<div class="augs pc-col">
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="augmentations">Augmentations</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<div class="row-long headers">
<h2 data-i18n="augmentations">Augmentations</h2>
<h2 data-i18n="rating">Rating</h2>
<h2 data-i18n="esscost">Ess Cost</h2>
</div>
<div class="rows repeating-container">
<fieldset class="repeating_augmentations"><span name="attr_augmentation"></span><span class="center" name="attr_rating"></span><span class="center" name="attr_essence_cost"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="Augmentations" title="Augmentations">
<input name="attr_augmentation" placeholder="name" title="@{repeating_augmentations_${x}_augmentation}" type="text" value=""/>
</label>
<label data-i18n-title="Rating" title="Rating">
<input name="attr_rating" placeholder="0" title="@{repeating_augmentations_${x}_rating}" type="number" value=""/>
</label>
<label data-i18n-title="Essence" title="Essence">
<input class="augmentation_essence" name="attr_essence_cost" placeholder="0" title="@{repeating_augmentations_${x}_essence_cost}" type="number" step='0.01' value=""/>
</label>
<span>&nbsp;</span>
<span>&nbsp;</span>
<label data-i18n-title="Grade" title="Grade">
<span data-i18n="grade"></span>
<select name="attr_grade" title="@{repeating_augmentations_${x}_grade}">
<option data-i18n="used" value="Used">Used</option>
<option data-i18n="standard" value="Standard" selected="selected">Standard</option>
<option data-i18n="alphaware" value="Alphaware">Alphaware</option>
<option data-i18n="betaware" value="Betaware">Betaware</option>
<option data-i18n="deltaware" value="Deltaware">Deltaware</option>
</select>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_augmentations_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Mechanic: +/- mod" title="@{repeating_augmentations_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<div class="gear pc-col">
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="gear">Gear</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<div class="row-long headers">
<h2 data-i18n="item">Item</h2>
<h2 data-i18n="rating">Rating</h2>
<h2 data-i18n="quantity">Quantity</h2>
</div>
<div class="rows repeating-container">
<fieldset class="repeating_items"><span name="attr_item"></span><span class="center" name="attr_rating"></span><span class="center" name="attr_quantity"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<button class="pictos" name="quality_chat" type="roll" value="@{gm_toggle} &{template:quality}{{header=@{character_name}}}{{base=@{item}}}{{desc=@{notes}}}{{rating=@{rating}}}">w</button>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="item" title="item">
<input name="attr_item" placeholder="Jammer" title="@{repeating_items_${x}_item}" type="text" value=""/>
</label>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" placeholder="3" title="@{repeating_items_${x}_rating}" type="text" value=""/>
</label>
<label data-i18n-title="quantity" title="quantity">
<input name="attr_quantity" placeholder="x3" title="@{repeating_items_${x}_quantity}" type="text" value=""/>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_items_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/- mod" title="@{repeating_items_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<div class="magic pc-col">
<div class="pc-row spell-box">
<div class="header right-header">
<h1 data-i18n="magic">Magic</h1>
<div class="right-tri"></div>
</div>
<div class="header right-header">
<div class="header htab">
<div class="triangle"></div>
<input class="magic-toggle" name="attr_magic_toggle" title="@{magic_toggle}" type="radio" value="spells" checked="checked"/>
<h1 data-i18n="spells">Spells</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="magic-toggle" name="attr_magic_toggle" title="@{magic_toggle}" type="radio" value="preps"/>
<h1 data-i18n="prep">Prep...</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="magic-toggle" name="attr_magic_toggle" title="@{magic_toggle}" type="radio" value="rituals"/>
<h1 data-i18n="rituals">Rituals</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<input class="magic-toggle" name="attr_magic_toggle" type="hidden" value="spells"/>
<div class="magic-spells spellsFormulas">
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{spell} ^{drain}}}{{dice=[[((@{spell_drain_attribute_1}+@{spell_drain_attribute_2}+@{spell_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_spell_drain_attribute_1" title="@{spell_drain_attribute_1}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}" selected="selected">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_spell_drain_attribute_2" title="@{spell_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_spell_drain_modifier" title="@{spell_drain_modifier}" type="number" value="0"/>
</label>
</div>
<div class="rows repeating-container">
<div class="row-long headers">
<h2 data-i18n="spell">Spell</h2>
<h2 data-i18n="type">Type</h2>
<h2 data-i18n="range">Range</h2>
<h2 data-i18n="duration">Duration</h2>
<h2 data-i18n="drain">Drain</h2>
</div>
<fieldset class="repeating_spell">
<input name="attr_dicepool" type="hidden" value="0"/>
<button name="roll_spell" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{dice=[[((@{skill}+@{magic}+@{dicepool_modifier}+@{specialization}+@{expertise})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{ampup=[[?{Amp Up|0|1|2|3|4|5|6|7|8|9|10}]]}}{{increasearea=[[?{Increase Area|0m,0|2m,1|4m,2|6m,3|8m,4|10m,5|12m,5|14m,6|16m,8|18m,9|20m,10}*2]]}}{{drain=[[?{Amp Up}*2+?{Increase Area}+(@{drain})]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="center" name="attr_type"></span>
<span class="center" name="attr_range"></span>
<span class="center" name="attr_duration"></span>
<span class="center" name="attr_drain"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox" checked="checked"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="Name">
<input name="attr_name" placeholder="Fireball" title="@{repeating_spell_${x}_name}" type="text"/>
</label>
<select name="attr_type" title="@{repeating_spell_${x}_type}">
<option data-i18n="mana" value="Mana">mana</option>
<option data-i18n="physical" value="Physical" selected="selected">physical</option>
</select>
<select name="attr_range" title="@{repeating_spell_${x}_range}">
<option data-i18n="los" value="LOS" selected="selected">los</option>
<option data-i18n="los (a)" value="LOS (A)">los (a)</option>
<option data-i18n="special" value="Special">special</option>
<option data-i18n="touch" value="T">touch</option>
</select>
<select name="attr_duration" title="@{repeating_spell_${x}_duration}">
<option data-i18n="instant" value="Instant" selected="selected">Instant</option>
<option data-i18n="sustained" value="Sustained">Sustained</option>
<option data-i18n="limited" value="Limited">Limited</option>
<option data-i18n="permanent" value="Permanent">Permanent</option>
</select>
<label data-i18n-title="drain" title="Drain">
<input name="attr_drain" placeholder="1" title="@{repeating_spell_${x}_drain}" type="number"/>
</label>
<div class="row">
<h3 data-i18n="category">Category</h3>
<select name="attr_category" title="@{repeating_spell_${x}_category}">
<option data-i18n="combat" value="Combat" selected="selected">combat</option>
<option data-i18n="detection" value="Detection">detection</option>
<option data-i18n="health" value="Health">health</option>
<option data-i18n="illusion" value="Illusion">illusion</option>
<option data-i18n="manipulation" value="Manipulation">manipulation</option>
</select>
<h3 data-i18n="effecttype">Effect Type</h3>
<select name="attr_effect_type" title="@{repeating_spell_${x}_effect_type}">
<option data-i18n="none" value="" selected="selected">None</option>
<option data-i18n="directcombat" value="Direct Combat">Direct Combat</option>
<option data-i18n="directcombatarea" value="Direct Combat, Area">Direct Combat, Area</option>
<option data-i18n="indirectcombat" value="Indirect Combat">Indirect Combat</option>
<option data-i18n="indirectcombatarea" value="Indirect Combat, Area">Indirect Combat, Area</option>
<option data-i18n="singlesense" value="Single-Sense">Single-Sense</option>
<option data-i18n="multisense" value="Multi-Sense">Multi-Sense</option>
</select>
</div>
<div class="row">
<h3 data-i18n="skill">Skill</h3>
<select name="attr_skill" title="@{repeating_spell_${x}_skill}">
<option data-i18n="conjuring" value="@{conjuring}" selected="selected">Conjuring</option>
<option data-i18n="enchanting" value="@{enchanting}">Enchanting</option>
<option data-i18n="sorcery" value="@{sorcery}">Sorcery</option>
</select>
<h3 data-i18n="specialization">Specialization</h3>
<label data-i18n-title="specialization" title="Specialization">
<input name="attr_specialization" title="@{repeating_spell_${x}_specialization}" type="checkbox" value="2"/>
</label>
<h3 data-i18n="expertise">Expertise</h3>
<label data-i18n-title="expertise" title="Expertise">
<input name="attr_expertise" title="@{repeating_spell_${x}_expertise}" type="checkbox" value="3"/>
</label>
</div>
<div class="row">
<h3 data-i18n="modifierdice">modifier dice</h3>
<label data-i18n-title="modifierdice" title="modifier dice">
<input name="attr_dicepool_modifier" placeholder="0" title="@{repeating_spell_${x}_dicepool_modifier}" type="text" value="0" />
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_spell_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="magic-preps spellsFormulas">
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{preparation} ^{drain}}}{{dice=[[((@{spell_drain_attribute_1}+@{spell_drain_attribute_2}+@{spell_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_spell_drain_attribute_1" title="@{spell_drain_attribute_1}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}" selected="selected">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_spell_drain_attribute_2" title="@{spell_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_spell_drain_modifier" title="@{spell_drain_modifier}" type="number" value="0"/>
</label>
</div>
<div class="rows repeating-container prepared-preparations">
<div class="row-long headers">
<h3 data-i18n="preparation">preparation</h3>
<h3 data-i18n="magic">magic</h3>
<h3 data-i18n="potency">potency</h3>
<h3 data-i18n="trigger">trigger</h3>
</div>
<fieldset class="repeating_preparations">
<button name="roll_preparation" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[((@{magic}+@{potency}+@{expert}+@{spec})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="center" name="attr_magic"></span>
<span class="center" name="attr_potency"></span>
<span class="center" name="attr_trigger"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="Name" title="@{repeating_preparations_${x}_name}" type="text" value=""/>
</label>
<label data-i18n-title="magic" title="magic">
<input name="attr_magic" placeholder="1" title="@{repeating_preparations_${x}_magic}" type="number" value=""/>
</label>
<label data-i18n-title="potency" title="potency">
<input name="attr_potency" placeholder="1" title="@{repeating_preparations_${x}_potency}" type="number" value=""/>
</label>
<select name="attr_trigger" title="@{repeating_preparations_${x}_trigger}">
<option data-i18n="command" value="Command">command</option>
<option data-i18n="contact" value="Contact" selected="selected">contact</option>
<option data-i18n="time" value="Time">time</option>
<option data-i18n="special" value="Special">special</option>
</select>
<div class="row">
<h3 data-i18n="specialization">Specialization</h3>
<label data-i18n-title="specialization" title="Specialization">
<input name="attr_spec" title="@{repeating_preparations_${x}_specialization}" type="checkbox" value="2"/>
</label>
<h3 data-i18n="expertise">Expertise</h3>
<label data-i18n-title="expertise" title="Expertise">
<input name="attr_expert" title="@{repeating_preparations_${x}_expertise}" type="checkbox" value="3"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_preparations_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="magic-rituals">
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{ritual} ^{drain}}}{{dice=[[((@{spell_drain_attribute_1}+@{spell_drain_attribute_2}+@{spell_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_spell_drain_attribute_1" title="@{spell_drain_attribute_1}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}" selected="selected">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_spell_drain_attribute_2" title="@{spell_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_spell_drain_modifier" title="@{spell_drain_modifier}" type="number" value="0"/>
</label>
</div>
<div class="rows repeating-container">
<div class="row-long headers">
<h2 data-i18n="ritual">Ritual</h2>
<h2 class="center" data-i18n="threshold">Threshold</h2>
</div>
<fieldset class="repeating_ritual">
<input name="attr_dicepool" type="hidden" value="0"/>
<button name="roll_ritual" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (Sorcery + Magic + Teamwork Hits)}}{{dice=[[((@{skill}+@{magic}+@{spec}+@{expert}+@{dicepool_modifier}+?{Teamwork test hits?|})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Threshold: @{threshold}, Teamwork Test Hits: ?{Teamwork test hits?|}\nNotes:@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="center" name="attr_threshold"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="Ritual Name" title="@{@{repeating_undefined_${x}_name}" type="text"/>
</label>
<label data-i18n-title="threshold" title="threshold">
<input name="attr_threshold" title="@{@{repeating_ritual_${x}_threshold}" type="number" value="1" step="1"/>
</label>
<div class="row">
<input type="hidden" name="attr_skill" value="@{sorcery}">
<h3 data-i18n="specialization">Specialization</h3>
<label data-i18n-title="specialization" title="specialization">
<input name="attr_spec" title="@{@{repeating_ritual_${x}_spec}" type="checkbox" value="2"/>
</label>
<h3 data-i18n="expertise">Expertise</h3>
<label data-i18n-title="expertise" title="expertise">
<input name="attr_expert" title="@{@{repeating_ritual_${x}_expert}" type="checkbox" value="3"/>
</label>
<h3 data-i18n="mod">mod</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{@{repeating_ritual_${x}_dicepool_modifier}" type="number"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_ritual_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<div class="pc-row powers-box">
<div class="header right-header">
<div class="header htab">
<div class="triangle"></div>
<input class="powers-toggle" name="attr_powers_toggle" title="@{powers_toggle}" type="radio" value="adept" checked="checked"/>
<h1 data-i18n="adept">Adept</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="powers-toggle" name="attr_powers_toggle" title="@{powers_toggle}" type="radio" value="conjuring"/>
<h1 data-i18n="conjuring">Conjuring</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="powers-toggle" name="attr_powers_toggle" title="@{powers_toggle}" type="radio" value="meta"/>
<h1 data-i18n="meta">Meta</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<input class="powers-toggle" name="attr_powers_toggle" type="hidden" value="adept"/>
<div class="powers-adept">
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{adept} ^{power} ^{drain}}}{{dice=[[((@{adept_drain_attribute_1}+@{adept_drain_attribute_2}+@{adept_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_adept_drain_attribute_1" title="@{adept_drain_attribute_1}">
<option data-i18n="body" value="@{body}" selected="selected">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_adept_drain_attribute_2" title="@{adept_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_adept_drain_modifier" title="@{adept_drain_modifier}" type="number" value="0"/>
</label>
</div>
<div class="row-long headers">
<h2 data-i18n="name">Power</h2>
<h2 class="center" data-i18n="level">Level</h2>
<h2 class="center" data-i18n="act">Act</h2>
</div>
<div class="rows repeating-container powers">
<fieldset class="repeating_powers">
<span name="attr_name"></span>
<span class="center" name="attr_rating"></span>
<span class="center" name="attr_activation"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="name" title="@{repeating_powers_${x}_name}" type="text" value=""/>
</label>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" placeholder="rating" title="@{repeating_powers_${x}_rating}" type="number" value=""/>
</label>
<label data-i18n-title="activation" title="activation">
<select class="attribute-select" name="attr_activation" title="@{repeating_powers_${x}_activation}">
<option data-i18n="major" value="Major">Major</option>
<option data-i18n="minor" value="Minor">Minor</option>
<option data-i18n="passive" value="Passive">Passive</option>
</select>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_powers_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/- mod" title="@{repeating_items_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="powers-conjuring">
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{conjuring} ^{drain}}}{{dice=[[((@{conjuring_drain_attribute_1}+@{conjuring_drain_attribute_2}+@{conjuring_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_conjuring_drain_attribute_1" title="@{conjuring_drain_attribute_1}">
<option data-i18n="body" value="@{body}" selected="selected">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_conjuring_drain_attribute_2" title="@{conjuring_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="mod">Mod</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_conjuring_drain_modifier" title="@{conjuring_drain_modifier}" placeholder="mod" type="number" value="0"/>
</label>
</div>
<div class="row-long summon-spirit-button">
<span>&nbsp;</span>
<button name="roll_conjuring" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Conjuring Spirit of ?{Spirit Type?|Air|Beasts|Earth|Fire|Kin|Water|Plant|Guardian|Guidance|Task} Force ?{Force?|1|2|3|4|5|6|7|8|9|10}}}{{dice=[[((@{conjuring}+@{magic}+?{Skill Level?|Skilled (+0),0|Specialization (+2),2|Expertise (+3),3})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=[Spirit Resist](~@{character_name}|SpiritResistForce?{Force?})}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="summonspirit"></span></button>
<span>&nbsp;</span>
<!-- hidden spirit resist buttons -->
<button class="btn ui-draggable" name="roll_SpiritResistForce1" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 1 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[2d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce2" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 2 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[4d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce3" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 3 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[6d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce4" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 4 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[8d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce5" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 5 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[10d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce6" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 6 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[12d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce7" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 7 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[14d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce8" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 8 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[16d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce9" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 9 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[18d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
<button class="btn ui-draggable" name="roll_SpiritResistForce10" type="roll" style="display: none;" value="@{gm_toggle} &{template:rolls}{{header=^{force} 10 ^{spirit}}}{{base=Summoning Resist}}{{dice=[[20d6>5]]}}{{desc=[Resist Drain](~@{character_name}|Drain)}}"></button>
</div>
<div class="row-long headers">
<h2 data-i18n="force">Force</h2>
<h2 class="left" data-i18n="spirit">Spirit</h2>
<h2 data-i18n="favors">Favors</h2>
</div>
<div class="rows repeating-container spirits">
<fieldset class="repeating_spirits">
<span class="center" name="attr_force"></span>
<span class="left" name="attr_spirit"></span>
<span class="center" name="attr_services"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_skills"></span></div>
<div class="collapse"><span name="attr_powers"></span></div>
<div class="collapse"><span name="attr_attacks"></span></div>
<div class="settings">
<div class="row spirit-top">
<label data-i18n-title="force" title="force">
<input name="attr_force" placeholder="force" title="@{repeating_spirits_${x}_force}" type="number" value=""/>
</label>
<label data-i18n-title="spirit" title="spirit">
<input class="left" name="attr_spirit" placeholder="spirit" title="@{repeating_spirits_${x}_spirit}" type="text" value=""/>
</label>
<label data-i18n-title="services" title="Services">
<input name="attr_services" placeholder="1" title="@{repeating_spirits_${x}_services}" type="number" value=""/>
</label>
</div>
<div class="row attr-headers">
<h2 data-i18n="b">B</h2>
<h2 data-i18n="a">A</h2>
<h2 data-i18n="r">R</h2>
<h2 data-i18n="s">S</h2>
<h2 data-i18n="w">W</h2>
<h2 data-i18n="l">L</h2>
<h2 data-i18n="i">I</h2>
<h2 data-i18n="c">C</h2>
<h2 data-i18n="m">M</h2>
<h2 data-i18n="ess">Ess</h2>
</div>
<div class="row spirit-attr">
<label data-i18n-title="body" title="Body">
<input name="attr_body" title="@{repeating_spirits_${x}_body}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="agility" title="Agility">
<input name="attr_agility" title="@{repeating_spirits_${x}_agility}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="reaction" title="Reaction">
<input name="attr_reaction" title="@{repeating_spirits_${x}_reaction}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="strength" title="Strength">
<input name="attr_strength" title="@{repeating_spirits_${x}_strength}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="willpower" title="Willpower">
<input name="attr_willpower" title="@{repeating_spirits_${x}_willpower}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="logic" title="Logic">
<input name="attr_logic" title="@{repeating_spirits_${x}_logic}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="intuition" title="Intuition">
<input name="attr_intuition" title="@{repeating_spirits_${x}_intuition}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="charisma" title="Charisma">
<input name="attr_charisma" title="@{repeating_spirits_${x}_charisma}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="magic" title="Magic">
<input name="attr_magic" title="@{repeating_spirits_${x}_magic}" placeholder="" type="number" step="1" value=""/>
</label>
<label data-i18n-title="essence" title="Essence">
<input name="attr_essence" title="@{repeating_spirits_${x}_essence}" placeholder="" type="number" step="1" value=""/>
</label>
</div>
<div class="row spirit-cmmove">
<h3 data-i18n="actions">Actions</h3>
<label data-i18n-title="actions" title="Actions">
<span data-i18n="a"> </span><input name="attr_actions_major" title="@{repeating_spirits_${x}_actions_major}" type="number" value="1"/>
<span class="tiny">/</span>
<span data-i18n="i"> </span><input name="attr_actions_minor" title="@{repeating_spirits_${x}_actions_minor}" type="number" value="2"/>
</label>
<h3 data-i18n="conditionmonitor">Condition Monitor</h3>
<label data-i18n-title="conditionmonitor" title="Condition Monitor">
<input name="attr_physical" title="@{repeating_spirits_${x}_physical}" type="number" value=""/>
</label>
<h3 data-i18n="movement">Movement</h3>
<label data-i18n-title="movement" title="Movement">
<input name="attr_move_speed" title="@{repeating_spirits_${x}_move_speed}" type="number" value="10"/>
<input name="attr_sprint_speed" title="@{repeating_spirits_${x}_sprint_speed}" type="number" value="15"/>
<input name="attr_sprint_mod" title="@{repeating_spirits_${x}_sprint_mod}" type="number" value="1"/>
</label>
</div>
<div class="row spirit-initiatives">
<h3 data-i18n="initiative">Initiative</h3>
<label data-i18n-title="initiative" title="Initiative">
<input name="attr_initiative_base" title="@{repeating_spirits_${x}_initiative_base}" type="number" value=""/>
<span class="tiny"> + </span>
<input name="attr_initiative_dice" title="@{repeating_spirits_${x}_initiative_dice}" type="number" value=""/>
<span class="tiny">d6</span>
</label>
<h3 data-i18n="astralinitiative">Astral Initiative</h3>
<label data-i18n-title="astralinitiative" title="Astral Initiative">
<input name="attr_astral_initiative_base" title="@{repeating_spirits_${x}_astral_initiative_base}" type="number" value=""/>
<span class="tiny"> + </span>
<input name="attr_astral_initiative_dice" title="@{repeating_spirits_${x}_astral_initiative_dice}" type="number" value=""/>
<span class="tiny">d6</span>
</label>
</div>
<div class="row spirit-skills">
<h3 data-i18n="skills">Skills</h3>
<label data-i18n-title="skills" title="Skills">
<textarea name="attr_skills" placeholder="Skills" title="@{repeating_spirits_${x}_skills}"></textarea>
</label>
</div>
<div class="row spirit-powers">
<h3 data-i18n="powers">powers</h3>
<label data-i18n-title="powers" title="powers">
<textarea name="attr_powers" placeholder="powers" title="@{repeating_spirits_${x}_powers}"></textarea>
</label>
</div>
<div class="row spirit-attacks">
<h3 data-i18n="attacks">attacks</h3>
<label data-i18n-title="attacks" title="attacks">
<textarea name="attr_attacks" placeholder="attacks" title="@{repeating_spirits_${x}_attacks}"></textarea>
</label>
</div>
</div>
</fieldset>
</div>
</div>
<div class="powers-meta">
<div class="row-long mage-setup">
<select class='mage-type' name='attr_mage_type' title='@{mage_type}'>
<option data-i18n="mage" value="Mage" selected="selected">Mage</option>
<option data-i18n="adept" value="Adept">Adept</option>
<option data-i18n="mysticadept" value="Mystic Adept">Mystic Adept</option>
</select>
<h3 data-i18n="initiategrade">Initiate Grade</h3>
<label data-i18n-title="initiategrade" title="initiategrade">
<input name="attr_initiate_grade" placeholder="-" title="@{initiate_grade}" type="number" min="0" step="1" value="">
</label>
<h2 class="magic-aspect" data-i18n-title="aspect" title="aspect">Aspect</h2>
<select class="magic-aspect" name='attr_aspect' title='@{aspect}'>
<option data-i18n="non-aspected" value="Non-Aspected">Non-Aspected</option>
<option data-i18n="sorcery" value="Sorcery">Sorcery</option>
<option data-i18n="conjuring" value="Conjuring">Conjuring</option>
<option data-i18n="enchanting" value="Enchanting">Enchanting</option>
</select>
<br>
<h2 data-i18n="tradition">Tradition</h2>
<label data-i18n-title="tradition" title="tradition">
<select name='attr_tradition' title='@{tradition}'>
<option data-i18n="hermeticism" value="Hermeticism">Hermeticism</option>
<option data-i18n="hermeticism-intuition" value="Hermeticism (Intuition)">Hermeticism (Intuition)</option>
<option data-i18n="hermeticism-charisma" value="Hermeticism (Charisma)">Hermeticism (Charisma)</option>
<option data-i18n="shamanism" value="Shamanism">Shamanism</option>
<option data-i18n="shamanism-logic" value="Shamanism (Logic)">Shamanism (Logic)</option>
<option data-i18n="shamanism-intuition" value="Shamanism (Intuition)">Shamanism (Intuition)</option>
</select>
</label>
<h2 data-i18n="magicar">Magic AR</h2>
<input type="hidden" name="attr_magic_ar" value="0">
<span name="attr_magic_ar"></span>
</div>
<div class="row-long headers">
<h2 data-i18n="metamagic">Metamagic</h2>
<h2 class="center" data-i18n="level">Level</h2>
</div>
<div class="rows repeating-container metamagic">
<fieldset class="repeating_metamagic">
<span name="attr_name"></span>
<span class="center" name="attr_rating"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="name" title="@{repeating_powers_${x}_name}" type="text" value=""/>
</label>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" placeholder="rating" title="@{repeating_powers_${x}_rating}" type="number" value=""/>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_powers_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/- mod" title="@{repeating_items_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="matrix pc-col">
<div class="pc-row matrix-box">
<div class="header right-header">
<h1 data-i18n="persona">Persona</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<div class="cyberdeck">
<div class="row-long row-matrix-combat-stats">
<input type="hidden" name="attr_matrix_device_rating" value="0">
<input type="hidden" name="attr_matrix_defense_rating" value="0">
<input type="hidden" name="attr_matrix_attack_rating" value="0">
<input type="hidden" name="attr_matrix_device_initiative_bonus" value="0">
<input type="hidden" name="attr_matrix_device_essence_cost" value="0">
<span>&nbsp;</span>
<label><button type="roll" class="techno-hide" name="roll_matrix_device_rating" value="&{template:rolls}{{header=@{character_name}}}{{base=Matrix Device Rating}}{{rating=@{matrix_device_rating}}}" title="Matrix Device Rating"><span data-i18n="devicerating">Device Rating</span><span name='attr_matrix_device_rating'></span></button></label>
<span>&nbsp;</span>
<label><button type="roll" name="roll_matrix_attack_rating" value="&{template:rolls}{{header=@{character_name}}}{{base=Matrix Attack Rating}}{{rating=[[(@{attack}+@{sleaze})]]}}{{desc=Attack + Sleaze}}" title="Matrix Attack Rating"><span data-i18n="attackrating">Attack Rating</span><span name='attr_matrix_attack_rating'></span></button></label>
<span>&nbsp;</span>
<label><button type="roll" name="roll_matrix_defense_rating" value="&{template:rolls}{{header=@{character_name}}}{{base=Matrix Defense Rating}}{{rating=[[@{matrix_defense_rating}]]}}{{desc=Data Processing + Firewall}}" title="Matrix Defense Rating"><span data-i18n="defenserating">Defense Rating</span><span name='attr_matrix_defense_rating'></span></button></label>
<span>&nbsp;</span>
</div>
<div class="row-long technomancer-attributes techno-see">
<span>&nbsp;</span>
<label data-i18n="attributearray">Attribute Array</label>
<input type="number" name="attr_attack_base" step="1" min="0" value="" placeholder="A" />
<input type="number" name="attr_sleaze_base" step="1" min="0" value="" placeholder="S" />
<input type="number" name="attr_data_processing_base" step="1" min="0" value="" placeholder="D" />
<input type="number" name="attr_firewall_base" step="1" min="0" value="" placeholder="F" />
<span>&nbsp;</span>
</div>
<div class="row-long">
<h3 data-i18n="total">Total</h3>
<h3 data-i18n="temp">Temp</h3>
<h3 data-i18n="modifier">modifier</h3>
<h3 data-i18n="base">Base</h3>
<h3 data-i18n="baseslider">Base slider</h3>
<br />
<label><button type="roll" name="roll_matrix_attack" value="&{template:rolls}{{header=@{character_name}}}{{base=^{matrix} ^{attack}}}{{dice=[[(@{attack}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" title="Roll attack" data-i18n="attack">Attack</button></label>
<div class="matrix-tot" title="@{attack}" ><span name="attr_attack"></span></div><span> = </span>
<input type="number" name="attr_attack_temp" min="0" value="0" placeholder="0" title="@{attack_temp}" /> +
<input type="number" name="attr_attack_modifier" min="0" value="0" placeholder="0" title="@{attack_modifier}" /> +
<input type="number" name="attr_attack_base" min="0" value="0" placeholder="7" title="@{attack_base}" />
<div class="device-attr">
<div class="matrix-bubble matrixAttack">
<input type="radio" name="attr_attack_base" value="0" /><span></span>
<input type="radio" name="attr_attack_base" value="1" /><span></span>
<input type="radio" name="attr_attack_base" value="2" /><span></span>
<input type="radio" name="attr_attack_base" value="3" /><span></span>
<input type="radio" name="attr_attack_base" value="4" /><span></span>
<input type="radio" name="attr_attack_base" value="5" /><span></span>
<input type="radio" name="attr_attack_base" value="6" /><span></span>
<input type="radio" name="attr_attack_base" value="7" /><span></span>
<input type="radio" name="attr_attack_base" value="8" /><span></span>
<input type="radio" name="attr_attack_base" value="9" /><span></span>
<input type="radio" name="attr_attack_base" value="10" /><span></span>
</div>
</div>
</div>
<div class="row-long">
<label><button type="roll" name="roll_matrix_sleaze" value="&{template:rolls}{{header=@{character_name}}}{{base=^{matrix} ^{sleaze}}}{{dice=[[(@{sleaze}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" title="Roll sleaze" data-i18n="sleaze">Sleaze</button></label>
<div class="matrix-tot" title="@{sleaze}" ><span name="attr_sleaze"></span></div><span> = </span>
<input type="number" name="attr_sleaze_temp" min="0" value="0" placeholder="0" title="@{sleaze_temp}" /> +
<input type="number" name="attr_sleaze_modifier" min="0" value="0" placeholder="0" title="@{sleaze_modifier}" /> +
<input type="number" name="attr_sleaze_base" min="0" value="0" placeholder="6" title="@{sleaze_base}" />
<div class="device-attr">
<div class="matrix-bubble matrixSleaze">
<input type="radio" name="attr_sleaze_base" value="0" /><span></span>
<input type="radio" name="attr_sleaze_base" value="1" /><span></span>
<input type="radio" name="attr_sleaze_base" value="2" /><span></span>
<input type="radio" name="attr_sleaze_base" value="3" /><span></span>
<input type="radio" name="attr_sleaze_base" value="4" /><span></span>
<input type="radio" name="attr_sleaze_base" value="5" /><span></span>
<input type="radio" name="attr_sleaze_base" value="6" /><span></span>
<input type="radio" name="attr_sleaze_base" value="7" /><span></span>
<input type="radio" name="attr_sleaze_base" value="8" /><span></span>
<input type="radio" name="attr_sleaze_base" value="9" /><span></span>
<input type="radio" name="attr_sleaze_base" value="10" /><span></span>
</div>
</div>
</div>
<div class="row-long">
<label><button type="roll" name="roll_matrix_data_processing" value="&{template:rolls}{{header=@{character_name}}}{{base=^{matrix} ^{data_processing}}}{{dice=[[(@{data_processing}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" title="Roll data processing" data-i18n="dataproc">Data Proc.</button></label>
<div class="matrix-tot" title="@{data_processing}" ><span name="attr_data_processing"></span></div><span> = </span>
<input type="number" name="attr_data_processing_temp" min="0" value="0" placeholder="0" title="@{data_processing_temp}" /> +
<input type="number" name="attr_data_processing_modifier" min="0" value="0" placeholder="0" title="@{data_processing_modifier}" /> +
<input type="number" name="attr_data_processing_base" min="0" value="0" placeholder="5" title="@{data_processing_base}" />
<div class="device-attr">
<div class="matrix-bubble matrixData">
<input type="radio" name="attr_data_processing_base" value="0" /><span></span>
<input type="radio" name="attr_data_processing_base" value="1" /><span></span>
<input type="radio" name="attr_data_processing_base" value="2" /><span></span>
<input type="radio" name="attr_data_processing_base" value="3" /><span></span>
<input type="radio" name="attr_data_processing_base" value="4" /><span></span>
<input type="radio" name="attr_data_processing_base" value="5" /><span></span>
<input type="radio" name="attr_data_processing_base" value="6" /><span></span>
<input type="radio" name="attr_data_processing_base" value="7" /><span></span>
<input type="radio" name="attr_data_processing_base" value="8" /><span></span>
<input type="radio" name="attr_data_processing_base" value="9" /><span></span>
<input type="radio" name="attr_data_processing_base" value="10" /><span></span>
</div>
</div>
</div>
<div class="row-long">
<label><button type="roll" name="roll_matrix_firewall" value="&{template:rolls}{{header=@{character_name}}}{{base=^{matrix} ^{firewall}}}{{dice=[[(@{firewall}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" title="Roll firewall" data-i18n="firewall">Firewall</button></label>
<div class="matrix-tot" title="@{firewall}" ><span name="attr_firewall"></span></div><span> = </span>
<input type="number" name="attr_firewall_temp" min="0" value="0" placeholder="0" title="@{firewall_temp}" /> +
<input type="number" name="attr_firewall_modifier" min="0" value="0" placeholder="0" title="@{firewall_modifier}" /> +
<input type="number" name="attr_firewall_base" min="0" value="0" placeholder="4" title="@{firewall_base}" />
<div class="device-attr">
<div class="matrix-bubble matrixFirewall">
<input type="radio" name="attr_firewall_base" value="0" /><span></span>
<input type="radio" name="attr_firewall_base" value="1" /><span></span>
<input type="radio" name="attr_firewall_base" value="2" /><span></span>
<input type="radio" name="attr_firewall_base" value="3" /><span></span>
<input type="radio" name="attr_firewall_base" value="4" /><span></span>
<input type="radio" name="attr_firewall_base" value="5" /><span></span>
<input type="radio" name="attr_firewall_base" value="6" /><span></span>
<input type="radio" name="attr_firewall_base" value="7" /><span></span>
<input type="radio" name="attr_firewall_base" value="8" /><span></span>
<input type="radio" name="attr_firewall_base" value="9" /><span></span>
<input type="radio" name="attr_firewall_base" value="10" /><span></span>
</div>
</div>
</div>
<div class="con-hex techno-hide">
<input type="hidden" name="attr_condition_monitor_link" value="">
<input type="hidden" name="attr_matrix_hex_max" value="12">
<input type="radio" name="attr_matrix_hex" value="0" /><h2 data-i18n="conditionmonitor">Condition Monitor</h2>
<input type="radio" name="attr_matrix_hex" value="1" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="2" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="3" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="4" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="5" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="6" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="7" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="8" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="9" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="10" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="11" /><span class="hexagon"></span>
<input type="radio" name="attr_matrix_hex" value="12" /><span class="hexagon"></span>
</div>
</div>
<div>&nbsp;</div>
<div class="rows repeating-container devices">
<div class="row-long headers">
<h2 data-i18n="device">Device</h2>
<h2 data-i18n="rtg">RTG</h2>
<h2 data-i18n="primary">Primary</h2>
<h2>&nbsp;</h2>
<h2>&nbsp;</h2>
</div>
<fieldset class="repeating_devices">
<span name="attr_device"></span>
<span name="attr_device_rating"></span>
<span name="attr_primary_device"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="persona-attribute-buttons techno-hide">
<div class="row3">
<span>&nbsp;</span>
<span>
<input type="checkbox" name="attr_attack_primary" value="1">
<button name="attack"><span data-i18n="attack">Attack</span> <span name="attr_attack"></span></button>
</span>
<span>
<input type="checkbox" name="attr_sleaze_primary" value="1">
<button name="sleaze"><span data-i18n="sleaze"></span> <span name="attr_sleaze"></span></button>
</span>
<span>
<input type="checkbox" name="attr_data_processing_primary" value="1">
<button name="dataproc"><span data-i18n="dataproc"></span> <span name="attr_data_processing"></span></button>
</span>
<span>
<input type="checkbox" name="attr_firewall_primary" value="1">
<button name="firewall"><span data-i18n="firewall"></span> <span name="attr_firewall"></span></button>
</span>
<span>&nbsp;</span>
</div>
</div>
<div class="collapse">
<span name="attr_notes"></span>
</div>
<div class="settings">
<div class="rows">
<div class="row1">
<label data-i18n-title="device" title="device">
<input name="attr_device" title="@{repeating_devices_${x}_device}" type="text" value="" placeholder="Fairlight Excalibur"/>
</label>
<label data-i18n-title="devicerating" title="devicerating">
<input name="attr_device_rating" placeholder="6" title="@{repeating_devices_${x}_device_rating}" type="number" value=""/>
</label>
<label data-i18n-title="primary" title="primary">
<input type="checkbox" name="attr_primary_device" title="@{repeating_devices_${x}_primary_device}" value="1">
</label>
</div>
<div class="row2">
<span>&nbsp;</span>
<h3 data-i18n="devicetype">Device Type</h3>
<label data-i18n-title="devicetype" title="Device Type">
<select name="attr_type" title="@{repeating_devices_${x}_device}">
<option data-i18n="commlink" value="Commlink">Commlink</option>
<option data-i18n="cyberdeck" value="Cyberdeck">Cyberdeck</option>
<option data-i18n="cyberjack" value="Cyberjack">Cyberjack</option>
<option data-i18n="commandconsole" value="Command Console">Command Console</option>
</select>
</label>
<span>&nbsp;</span>
<h3 data-i18n="activeprogramslots">Program Slots</h3>
<label data-i18n-title="activeprogramslots" title="Program Slots">
<input name="attr_active_program_slots" title="@{repeating_devices_${x}_active_program_slots" type="number" step="1" value="0">
</label>
<span>&nbsp;</span>
</div>
<div class="row3">
<span>&nbsp;</span>
<label data-i18n-title="attack" title="attack">
<span data-i18n="attack"></span>
<input type="number" name="attr_attack" value="" placeholder="9" title="@{repeating_devices_${x}_attack" step="1">
</label>
<label data-i18n-title="sleaze" title="Sleaze">
<span data-i18n="sleaze"></span>
<input type="number" name="attr_sleaze" value="" placeholder="9" title="@{repeating_devices_${x}_sleaze" step="1">
</label>
<label data-i18n-title="dataproc" title="Data Proc">
<span data-i18n="dataproc"></span>
<input type="number" name="attr_data_processing" value="" placeholder="9" title="@{repeating_devices_${x}_data_processing" step="1">
</label>
<label data-i18n-title="firewall" title="Firewall">
<span data-i18n="firewall"></span>
<input type="number" name="attr_firewall" value="" placeholder="9" title="@{repeating_devices_${x}_firewall" step="1">
</label>
<span>&nbsp;</span>
</div>
<div class="row4">
<span>&nbsp;</span>
<h3 data-i18n="matrixinitiativebonus">Matrix Initiative Bonus</h3>
<label data-i18n-title="matrixinitiativebonus" title="Matrix Initiative Bonus">
<input type="number" name="attr_matrix_initiative_bonus" value="" title="@{repeating_devices_${x}_matrix_initiative_bonus" step="1">
</label>
<span>&nbsp;</span>
<h3 data-i18n="essencecost">Essence Cost</h3>
<label data-i18n-title="essencecost" title="Essence Cost">
<input type="number" name="attr_essence_cost" value="" title="@{repeating_devices_${x}_essence_cost" step=".01">
</label>
<span>&nbsp;</span>
</div>
<div class="row-condition-monitor">
<span>&nbsp;</span>
<h3 data-i18n="conditionmonitor">Current Condition Monitor</h3>
<label data-i18n-title="conditionmonitor" title="conditionmonitor">
<input type="number" name="attr_condition_monitor" value="" title="@{repeating_devices_${x}_condition_monitor}" step="1">
</label>
<span>&nbsp;</span>
<h3 data-i18n="conditionmonitormax">Condition Monitor Max</h3>
<label data-i18n-title="conditionmonitormax" title="conditionmonitormax">
<input type="number" name="attr_condition_monitor_max" value="" title="@{repeating_devices_${x}_condition_monitor_max}" step="1">
</label>
<span>&nbsp;</span>
</div>
<div class="row5">
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_devices_${x}_notes}"></textarea>
</label>
</div>
<div class="row5">
<h3 data-i18n="modifications">modifications</h3>
<label data-i18n-title="modifications" title="modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/-mod" title="@{repeating_devices_${x}_modifications}"></textarea>
</label>
</div>
</div><!-- end rows -->
</div><!-- end settings -->
</fieldset>
</div>
<div class="rows repeating-container programs">
<h2 data-i18n="programs">Programs</h2>
<fieldset class="repeating_programs">
<input class="toggle" name="attr_powered_on" type="checkbox" checked="checked"/>
<span class="pictos">Q</span>
<span name="attr_program"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="programs" title="programs">
<input name="attr_program" placeholder="Program name" title="@{repeating_programs_${x}_program}" type="text" value=""/>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_programs_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">Modifications</h3>
<label data-i18n-title="modifications" title="Modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/-mod" title="@{repeating_programs_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<!-- Technomancer -->
<div class="pc-row techno techno-see">
<div class="header right-header">
<h1 data-i18n="technomancer">Technomancer</h1>
<div class="right-tri"></div>
</div>
<div class="header right-header">
<div class="header htab">
<div class="triangle"></div>
<input class="techno-toggle" name="attr_techno_toggle" title="@{techno_toggle}" type="radio" value="complexforms"/>
<h1 data-i18n="complexforms">Complex Forms</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="techno-toggle" name="attr_techno_toggle" title="@{techno_toggle}" type="radio" value="submersion"/>
<h1 data-i18n="submersion">Submersion</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box medium-box">
<input class="techno-toggle" name="attr_techno_toggle" type="hidden" value="complexforms"/>
<div class="complex-forms-rolls complexforms">
<input type="hidden" name="attr_complex_form_attack_rating" value="0">
<button type="roll" name="roll_complex_forms_attack_rating" value="&{template:rolls}{{header=@{character_name}}}{{base=Complex Form Attack Rating}}{{rating=[[@{electronics}+@{resonance}]]}}{{desc=Electronics + Resonance}}" title="Complex Form Attack Rating"><span data-i18n="attackrating">Attack Rating</span><span name='attr_complex_form_attack_rating'></span></button>
<button data-i18n="resistfade" name="roll_fade" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{resistfade}}}{{dice=[[(@{willpower}+@{logic}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}{{desc=Willpower + Logic}}"></button>
<div class="rows repeating-container complex-forms">
<div class="row-long headers">
<h2 data-i18n="complexform">Complex Form</h2>
<h2 data-i18n="duration">Duration</h2>
<h2 data-i18n="fade">Fade</h2>
</div>
<fieldset class="repeating_forms">
<input name="attr_dicepool" type="hidden" value="0"/>
<span class='hide-roll-button' name='attr_skill'></span><span class='show-name' name='attr_name'></span><button name="roll_complex_form" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{complexform} @{name}}}{{dice=[[((@{skill}+@{resonance}+@{dicepool_modifier}+@{spec}+@{expert})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=@{notes}}}{{fade=[[@{fade}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="center" name="attr_duration"></span>
<span class="center" name="attr_fade"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="name" title="@{repeating_forms_${x}_name}" type="text" value=""/>
</label>
<select name="attr_duration" title="@{repeating_forms_${x}_duration}">
<option data-i18n="instant" value="Instant">Instant</option>
<option data-i18n="sustained" value="Sustained">Sustained</option>
<option data-i18n="permanent" value="Permanent">Permanent</option>
<option data-i18n="other" value="Other">Other</option>
</select>
<label data-i18n-title="fade" title="fade">
<input name="attr_fade" placeholder="-1" title="@{repeating_forms_${x}_fade}" type="number" value=""/>
</label>
<div class="row">
<h3 data-i18n="skill">skill</h3>
<select name="attr_skill" title="@{repeating_forms_${x}_skill}">
<option data-i18n="noroll" value="">No Roll</option>
<option data-i18n="cracking" value="@{cracking}">Cracking</option>
<option data-i18n="electronics" value="@{electronics}">Electronics</option>
<option data-i18n="tasking" value="@{tasking}">Tasking</option>
<option data-i18n="other" value="@{other}">Other</option>
</select>
<h3 data-i18n="specialization">Specialization</h3>
<label data-i18n-title="specialization" title="Specialization">
<input name="attr_spec" value="2" title="@{repeating_forms_${x}_spec}" type="checkbox"/>
</label>
<h3 data-i18n="expertise">Expertise</h3>
<label data-i18n-title="expertise" title="Expertise">
<input name="attr_expert" value="3" title="@{repeating_forms_${x}_expert}" type="checkbox"/>
</label>
</div>
<div class="row">
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{repeating_forms_${x}_dicepool_modifier}" type="number"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_forms_${x}_notes}"></textarea>
</label>
<h3 data-i18n="modifications">Modifications</h3>
<label data-i18n-title="modifications" title="Modifications">
<textarea name="attr_modifications" placeholder="Attribute: +/-mod" title="@{repeating_forms_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
<div class="complex-forms-rolls submersion">
<input class="techno-toggle" name="attr_techno_toggle" type="hidden" value="submersion"/>
<div class="pc-row submersion-headers">
<button data-i18n="resistfade" name="roll_fade" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{resistfade} ^{compiling}}}{{dice=[[(@{willpower}+@{charisma}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}{{desc=Willpower + Charisma}}"></button>
<span>&nbsp;</span>
<h2 data-i18n="submersionlevel">Submersion Level</h2>
<label data-i18n-title="submersionlevel" title="Submersion Level">
<input name="attr_submersion_level" value="0" title="@{submersion_level}" type="number" min='0' step='1'>
</label>
</div>
<div class="row-long compile-sprite-button">
<span>&nbsp;</span>
<button name="roll_compiling" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Compiling ?{sprite Type?|Courier|Crack|Data|Fault|Machine|Other} Sprite, Level ?{Level?|1|2|3|4|5|6|7|8|9|10}}}{{dice=[[((@{tasking}+@{resonance}+?{Skill Level?|Skilled (+0),0|Specialization (+2),2|Expertise (+3),3})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=[Sprite Resist](~@{character_name}|spriteResistLevel?{Level?})}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="compilesprite"></span></button>
<span>&nbsp;</span>
<!-- hidden sprite resist buttons -->
<button class="btn ui-draggable" name="roll_spriteResistLevel1" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 1 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[2d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel2" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 2 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[4d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel3" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 3 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[6d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel4" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 4 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[8d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel5" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 5 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[10d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel6" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 6 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[12d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel7" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 7 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[14d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel8" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 8 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[16d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel9" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 9 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[18d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
<button class="btn ui-draggable" name="roll_spriteResistLevel10" type="roll" style="display: none !important;" value="@{gm_toggle} &{template:rolls}{{header=^{level} 10 ^{sprite}}}{{base=Compiling Resist}}{{dice=[[20d6>5]]}}{{desc=[Resist Fade](~@{character_name}|fade)}}"></button>
</div>
<div class="rows">
<h1 data-i18n="echos">Echos</h1>
</div>
<div class="rows repeating-container echoes">
<fieldset class="repeating_echoes">
<span name="attr_echo"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="echo" title="Echo">
<input name="attr_echo" type="text" title="Echo">
</label>
<label data-i18n-title="notes" title="Notes"><span data-i18n="notes">Notes</span>
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_echos_${x}_notes}"></textarea>
</label>
<label data-i18n-title="modifications" title="Modifications"><span data-i18n="modifications">Modifications</span>
<textarea name="attr_modifications" placeholder="Attribute: +/-mod" title="@{repeating_echos_${x}_modifications}"></textarea>
</label>
</div>
</fieldset>
</div>
<div>&nbsp;</div>
<div class="rows">
<h1 data-i18n="sprites">Sprites</h1>
</div>
<div class="rows repeating-container sprites">
<div class="pc-row headers">
<span>&nbsp;</span>
<h2 data-i18n="lvl">Lvl</h2>
<h2 data-i18n="type">Type</h2>
<h2 data-i18n="tasks">Tasks</h2>
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<fieldset class="repeating_sprites">
<span>&nbsp;</span>
<span name="attr_level"></span>
<span name="attr_type"></span>
<span name="attr_tasks"></span>
<span>&nbsp;</span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="level" title="Level">
<input name="attr_level" title="@{repeating_sprites_${x}_level}" type="number" min='0' step='1' value=''>
</label>
<label data-i18n-title="tasks" title="Tasks">
<select name="attr_type" title="@{repeating_sprites_${x}_type}">
<option data-i18n="couriersprite" value="Courier">Courier</option>
<option data-i18n="cracksprite" value="Crack">Crack</option>
<option data-i18n="datasprite" value="Data">Data</option>
<option data-i18n="faultsprite" value="Fault">Fault</option>
<option data-i18n="machinesprite" value="Machine">Machine</option>
<option data-i18n="other" value="Other">Other</option>
</select>
</label>
<label data-i18n-title="tasks" title="@{repeating_sprites_${x}_tasks}">
<input name="attr_tasks" type="number" title="@{repeating_sprites_${x}_tasks}" min='0' step='1' value=''>
</label>
<span>&nbsp;</span>
<label data-i18n-title="notes" title="Notes"><span data-i18n="notes">Notes</span>
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_sprites_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="social pc-col">
<div class="pc-row"><!-- ~~~~~~~~ Start of Lifestyles Row ~~~~~~~~ -->
<div class="header right-header">
<h1 data-i18n="idslifestylecurrency">IDs/Lifestyles/Currency</h1>
<div class="right-tri"></div>
</div>
<div class="border-box repeat-box lifestyle">
<div class="pc-box small-box social-box">
<div class="row-long">
<h3>¥</h3>
<input type="text" name="attr_nuyen" placeholder="-" title="@{nuyen}" />
<h3 data-i18n="birthname">Birth Name</h3>
<input type="text" name="attr_birth_name" placeholder="John Q Public" title="@{birth_name}" />
</div>
<div class="row-long">
&nbsp;
</div>
<div class="row-long sins-headers">
<h3 data-i18n="sinname">SIN Name</h3>
<h3 data-i18n="rtg">RTG</h3>
<h3 data-i18n="lifestylelicensesnotes" class="center">Lifestyle / Licenses / Notes</h3>
</div>
<fieldset class="repeating_lifestyle">
<input type="hidden" class="settings-toggle" name="attr_flag" value="settings" />
<div class="settings">
<div>
<h3 data-i18n="fakeid">Fake ID</h3>
<input type="text" name="attr_name" placeholder="SIN Name" title="SIN Name">
<h3 data-i18n="rating">Rating</h3>
<input type="number" name="attr_rating" placeholder="1" title="Rating">
<h3 data-i18n="relatedlifestyle">Related Lifestyle</h3>
<textarea name="attr_lifestyle" placeholder="Middle" title="Related lifestyle"></textarea>
<h3 data-i18n="licenses">Licenses</h3>
<textarea name="attr_licenses" placeholder="Technomancer, Pistols" title="Licenses"></textarea>
<h3 data-i18n="notes">Notes</h3>
<textarea name="attr_notes" placeholder="Notes" title="Notes"></textarea>
</div>
</div>
<div class="display">
<input class="display-flag" type="checkbox" name="attr_display_flag" />
<div class="display-row" title="SIN Name">
<span name="attr_name"></span>
<span class="center" name="attr_rating"></span>
</div>
<div class="collapsible">
<span class="desc-lifestyle" name="attr_lifestyle"></span>
<span class="desc-lifestyle" name="attr_licenses"></span>
<span class="desc-lifestyle" name="attr_notes"></span>
</div>
</div>
<button class="pictos settings-button" name="act_lifestyle" type="action">x</button>
</fieldset>
</div>
</div>
</div>
<!-- ~~~~~~~~ End of Lifestyle Row ~~~~~~~~ -->
<!-- ~~~~~~~~ Start Contacts Row ~~~~~~~~ -->
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="contacts">Contacts</h1>
<div class="right-tri"></div>
</div>
<div class="border-box repeat-box contacts">
<div class="pc-box small-box">
<button class="btn ui-draggable" name="roll_Loyalty1" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 1}}{{dice=[[(@{charisma}+@{influence}+1)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty2" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 2}}{{dice=[[(@{charisma}+@{influence}+2)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty3" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 3}}{{dice=[[(@{charisma}+@{influence}+3)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty4" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 4}}{{dice=[[(@{charisma}+@{influence}+4)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty5" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 5}}{{dice=[[(@{charisma}+@{influence}+5)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty6" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 6}}{{dice=[[(@{charisma}+@{influence}+6)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty7" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 7}}{{dice=[[(@{charisma}+@{influence}+7)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty8" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 8}}{{dice=[[(@{charisma}+@{influence}+8)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty9" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 9}}{{dice=[[(@{charisma}+@{influence}+9)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Loyalty10" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{loyalty} 10}}{{dice=[[(@{charisma}+@{influence}+10)d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections1" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 1}}{{dice=[[2d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections2" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 2}}{{dice=[[4d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections3" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 3}}{{dice=[[6d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections4" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 4}}{{dice=[[8d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections5" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 5}}{{dice=[[10d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections6" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 6}}{{dice=[[12d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections7" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 7}}{{dice=[[14d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections8" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 8}}{{dice=[[16d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections9" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 9}}{{dice=[[18d6>5]]}}"></button>
<button class="btn ui-draggable" name="roll_Connections10" type="roll" style="display: none;" value="/w GM &{template:rolls}{{header=@{character_name}}}{{base=^{connection} 10}}{{dice=[[20d6>5]]}}"></button>
<div class="row-long">
<h3 data-i18n="name">Name</h3>
<h3 data-i18n="loyalty">Loyalty</h3>
<h3 data-i18n="connection">Connection</h3>
<h3 data-i18n="favor">Favor</h3>
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<fieldset class="repeating_contacts">
<input type="hidden" class="settings-toggle" name="attr_flag" value="settings" />
<div class="settings">
<div>
<input type="text" name="attr_name" placeholder="Contact Name" title="Contact name" />
<input type="number" name="attr_loyalty" min="1" placeholder="1" title="Loyalty" />
<input type="number" name="attr_influence" min="1" placeholder="1" title="Influence" />
<input type="number" name="attr_favors" placeholder="-" title="Favors" />
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<div>
<h3 data-i18n="notes">Notes</h3>
<textarea name="attr_notes" placeholder="Notes"></textarea>
</div>
</div>
<div class="display">
<input class="display-flag" type="checkbox" name="attr_display_flag" />
<label title="Contact name"><span name="attr_display"></span></label>
<label title="Loyalty"><span name="attr_loyalty"></span></label>
<label title="Influence"><span name="attr_influence"></span></label>
<label title="Favors"><span name="attr_favors"></span></label>
<span>&nbsp;</span>
<span>&nbsp;</span>
<div class="collapsible">
<div class="desc" title="Notes"><span name="attr_notes"></span></div>
</div>
</div>
<button class="pictos" name="contact_chat" type="roll" value="@{gm_toggle} &{template:contact}{{header=@{character_name}}}{{name=@{name}}}{{loyalty=@{loyalty}}}{{connection=@{influence}}}{{favor=@{favors}}}{{desc=@{notes}}}">w</button>
<button class="pictos settings-button" name="act_contacts" type="action">x</button>
</fieldset>
</div>
</div>
</div><!-- ~~~~~~~~ End of Contacts row ~~~~~~~~ -->
</div>
<!-- PC Vehicles / Drones -->
<div class="vehicle pc-col">
<div class="pc-row">
<div class="header right-header"><h1 data-i18n="vehicle">Vehicle</h1><div class="right-tri"></div></div>
<div class="border-box repeat-box vehicle-box">
<div class="pc-box medium-box">
<fieldset class="repeating_vehicle">
<input type="hidden" class="settings-toggle" name="attr_flag" value="settings" />
<div class="settings">
<div>
<div class="row-long">
<label style="width: 10%;" data-i18n="vehicle">Vehicle</label>
<input style="width: 30%;" type="text" name="attr_name" placeholder="name" title="Vehicle name" />
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<label data-i18n="type" style="width: 10%; text-align: right;">Type</label>
<select class="attribute-select" style="width: 30%" name="attr_type" title="@{repeating_vehicle_${x}_type}">
<option data-i18n="bike" value="Bike">Bike</option>
<option data-i18n="car" value="Car">Car</option>
<option data-i18n="truck" value="Truck">Truck</option>
<option data-i18n="van" value="Van">van</option>
<option data-i18n="boat" value="Boat">Boat</option>
<option data-i18n="submarine" value="Submarine">Submarine</option>
<option data-i18n="fixedwingaircraft" value="Fixed Wing Aircraft">Fixed Wing Aircraft</option>
<option data-i18n="rotorcraft" value="Rotorcraft">Rotorcraft</option>
<option data-i18n="vtolvstol" value="VTOL/VSTOL">VTOL/VSTOL</option>
<option data-i18n="microdrone" value="Microdrone">Microdrone</option>
<option data-i18n="minidrone" value="Minidrone">Minidrone</option>
<option data-i18n="smalldrone" value="Small Drone">Small Drone</option>
<option data-i18n="mediumdrone" value="Medium Drone">Medium Drone</option>
<option data-i18n="largedrone" value="Large Drone">Large Drone</option>
<option data-i18n="other" value="Other">Other</option>
</select>
</div>
<div class="row-long">
<label data-i18n="handling">Handling</label>
<input type="hidden" name="attr_handling" />
<input type="number" name="attr_handling_onroad" placeholder="On" title="Handling On-Road" />
<input type="number" name="attr_handling_offroad" placeholder="Off" title="Handling Off-Road" />
<input type="number" name="attr_handling_modifier" placeholder="Mod" title="Handling Temp Modifier" />
<input type="hidden" name="attr_display_handling" />
<input type="hidden" name="attr_seats" />
<label data-i18n="seats" style="width: 14%;" >Seats</label>
<input type="number" name="attr_seats" placeholder="#" title="# Seats" />
</div>
<div class="row-long">
<label data-i18n="acceleration">Acceleration</label>
<input type="hidden" name="attr_acceleration" />
<input type="number" name="attr_acceleration_base" placeholder="Base" title="Acceleration Base" />
<input type="number" name="attr_acceleration_modifier" placeholder="Mod" title="Acceleration Modifier" />
<input type="hidden" name="attr_display_acceleration" />
<span>&nbsp;</span>
<label data-i18n="speed">Speed</label>
<input type="hidden" name="attr_speed" />
<input type="number" name="attr_speed_base" placeholder="Base" title="Speed Interval" />
<input type="number" name="attr_speed_modifier" placeholder="Mod" title="Speed Modifier" />
<input type="number" name="attr_speed_max" placeholder="Max" title="Speed Max" />
<input type="hidden" name="attr_display_speed" />
</div>
<div class="row-long">
<label data-i18n="body">Body</label>
<input type="hidden" name="attr_body" />
<input type="number" name="attr_body_base" placeholder="Base" title="Body Base" />
<input type="number" name="attr_body_modifier" placeholder="Mod" title="Body Modifier" />
<span>&nbsp;</span>
<input type="hidden" name="attr_display_body" />
<label data-i18n="armor">Armor</label>
<input type="hidden" name="attr_armor" />
<input type="number" name="attr_armor_base" placeholder="Base" title="Armor Base" />
<input type="number" name="attr_armor_modifier" placeholder="Mod" title="Armor Modifier" />
<span>&nbsp;</span>
<input type="hidden" name="attr_display_armor" />
</div>
<div class="row-long">
<label data-i18n="pilot">Pilot</label>
<input type="hidden" name="attr_pilot" />
<input type="number" name="attr_pilot_base" placeholder="Base" title="Pilot Base" />
<input type="number" name="attr_pilot_modifier" placeholder="Mod" title="Pilot Modifier" />
<span>&nbsp;</span>
<input type="hidden" name="attr_display_pilot" />
<label data-i18n="sensor">Sensor</label>
<input type="hidden" name="attr_sensor" />
<input type="number" name="attr_sensor_base" placeholder="Base" title="Sensor Base" />
<input type="number" name="attr_sensor_modifier" placeholder="Mod" title="Sensor Modifier" />
<span>&nbsp;</span>
<input type="hidden" name="attr_display_sensor" />
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_clearsight" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="clearsight" name="roll_clearsight" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{clearsight} = ^{clearsight} + ^{sensor}}}{{dice=[[(@{clearsight}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_clearsight" title="Clearsight" value="0">
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_electronicwarfare" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="electronicwarfare" name="roll_ew" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{electronicwarfare} = ^{electronicwarfare} + ^{sensor}}}{{dice=[[(@{electronicwarfare}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_electronicwarfare" title="Electronic Warfare" value="0">
</div>
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_evasion" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="evasion" name="roll_evasion" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{evasion} = ^{evasion} + ^{pilot}}}{{dice=[[(@{evasion}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_evasion" title="evasion" value="0">
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_maneuvering" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="maneuvering" name="roll_maneuvering" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{maneuvering} = ^{maneuvering} + ^{pilot}}}{{dice=[[(@{maneuvering}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_maneuvering" title="Electronic Warfare" value="0">
</div>
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_stealth" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="stealth" name="roll_stealth" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{stealth} = ^{stealth} + ^{pilot}}}{{dice=[[(@{stealth}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_stealth" title="stealth" value="0">
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_targeting_0" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="targeting" name="roll_targeting" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input type="number" name="attr_targeting" title="[Weapon] Targeting" value="0">
</div>
</div>
<h3 data-i18n="notes">Notes</h3>
<textarea name="attr_notes" placeholder="Notes"></textarea>
</div>
<div><br><br></div>
</div>
<div class="display">
<input class="display-flag" type="checkbox" name="attr_display_flag" />
<div class="row-long">
<div class="display-row" title="Vehicle">
<h3 data-i18n="vehicle">Vehicle</h3>
<div>
<span name="attr_name"></span>
</div>
</div>
<div class="display-row" title="Type">
<h3 data-i18n="type">Type</h3>
<div>
<span name="attr_type"></span>
</div>
</div>
</div>
<div class="row-long">
<div class="display-row" title="Handling">
<h3 data-i18n="handling">Handling</h3>
<div class="vehicle-stat">
<span name="attr_display_handling"></span>
</div>
</div>
<div class="display-row" title="Seats">
<h3 data-i18n="seats">Seats</h3>
<div class="vehicle-stat">
<span name="attr_seats"></span>
</div>
</div>
</div>
<div class="row-long">
<div class="display-row" title="Acceleration">
<h3 data-i18n="acceleration">Acceleration</h3>
<div class="vehicle-stat">
<span name="attr_display_acceleration"></span>
</div>
</div>
<div class="display-row" title="Speed">
<h3 data-i18n="speed">Speed</h3>
<div class="vehicle-stat">
<span name="attr_display_speed"></span>
</div>
</div>
</div>
<div class="row-long">
<div class="display-row" title="Body">
<h3 data-i18n="body">Body</h3>
<div class="vehicle-stat">
<span name="attr_display_body"></span>
</div>
</div>
<div class="display-row" title="Armor">
<h3 data-i18n="armor">Armor</h3>
<div class="vehicle-stat">
<span name="attr_display_armor"></span>
</div>
</div>
</div>
<div class="row-long">
<div class="display-row" title="Pilot">
<h3 data-i18n="pilot">Pilot</h3>
<div class="vehicle-stat">
<span name="attr_display_pilot"></span>
</div>
</div>
<div class="display-row" title="Sensor">
<h3 data-i18n="sensor">Sensor</h3>
<div class="vehicle-stat">
<span name="attr_display_sensor"></span>
</div>
</div>
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_clearsight" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="clearsight" name="roll_clearsight" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{clearsight} = ^{clearsight} + ^{sensor}}}{{dice=[[(@{clearsight}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_clearsight"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_electronicwarfare" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="electronicwarfare" name="roll_ew" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{electronicwarfare} = ^{electronicwarfare} + ^{sensor}}}{{dice=[[(@{electronicwarfare}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_electronicwarfare"></span>
</div>
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_evasion" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="evasion" name="roll_evasion" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{evasion} = ^{evasion} + ^{pilot}}}{{dice=[[(@{evasion}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_evasion"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_maneuvering" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="maneuvering" name="roll_maneuvering" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{maneuvering} = ^{maneuvering} + ^{pilot}}}{{dice=[[(@{maneuvering}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_maneuvering"></span>
</div>
</div>
<div class="row-long autosofts">
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_stealth" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="stealth" name="roll_stealth" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{stealth} = ^{stealth} + ^{pilot}}}{{dice=[[(@{stealth}+@{display_pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_stealth"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_targeting_0" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="targeting" name="roll_targeting" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name} / @{name}}}{{base=^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting}+@{display_sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<span name="attr_targeting"></span>
</div>
</div>
<div class="collapsible">
<div class="desc"><span name="attr_notes"></span></div>
</div>
</div>
<button class="pictos settings-button" name="act_vehicle" type="action">x</button>
</fieldset>
</div>
</div>
</div>
</div>
<div class="notes pc-col">
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="notes">Notes</h1>
<div class="right-tri"></div>
</div>
<div class="border-box">
<div class="pc-box">
<div class="notes-col">
<textarea name="attr_player_notes" placeholder="This space intentionally left blank."></textarea>
</div>
</div>
</div>
</div>
</div>
<div class="rolls pc-col">
<div class="pc-row">
<div class="header right-header">
<h1 data-i18n="rolls">Rolls</h1>
<div class="right-tri"></div>
</div>
<br>
<div class="header right-header">
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_rolls_toggle" type="radio" value="matrix" checked="checked"/>
<h1 data-i18n="matrixactions">Matrix Actions</h1>
<div class="right-tri"></div>
</div>
<div class="header htab">
<div class="triangle"></div>
<input class="tab-switch" name="attr_rolls_toggle" type="radio" value="misc"/>
<h1 data-i18n="misc">Misc</h1>
<div class="right-tri"></div>
</div>
</div>
<div class="border-box">
<div class="pc-box">
<div class="rolls-col">
<input class="tab-switch" name="attr_rolls_toggle" type="hidden" value="matrix"/>
<div class="rolls-matrix">
<h3 data-i18n="rollbuttonsdisclaimer"></h3><br>
<h2 data-i18n="matrixmajor">Matrix Major Actions</h2>
<button type="roll" title="Cracking + Logic" class="illegal outsider" name="roll_matrix_backdoor_entry" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Backdoor Entry}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Willpower + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="backdoorentry"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal outsider user admin" name="roll_matrix_brute_force" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Brute Force}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Willpower + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="bruteforce"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal admin" name="roll_matrix_check_os" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Check OS}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), Threshold: 4}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="checkos"></span></button>
<button type="roll" title="Electronics + Logic" class="legal user admin" name="roll_matrix_control_device" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Control Device}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Willpower + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="controldevice"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal user admin" name="roll_matrix_crack_file" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Crack File}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Encryption Rating x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="crackfile"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal admin" name="roll_matrix_crash_program" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Crash Program}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Data Processing + Device Rating}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="crashprogram"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal outsider user admin" name="roll_matrix_data_spike" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Data Spike}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Data Processing + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="dataspike"></span></button>
<button type="roll" title="Cracking + Logic" class="legal user admin" name="roll_matrix_disarm_data_bomb" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Disarm Data Bomb}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Data Bomb Rating x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="disarmdatabomb"></span></button>
<button type="roll" title="Electronics + Logic" class="legal user admin" name="roll_matrix_edit_file" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Edit File}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Intuition + Firewall |or| Firewall + Sleaze}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="editfile"></span></button>
<button type="roll" title="Electronics + Logic" class="legal user admin" name="roll_matrix_encrypt_file" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Encrypt File}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), Hits = Encryption Rating}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="encryptfile"></span></button>
<button type="roll" title="Electronics + Logic" class="illegal user admin" name="roll_matrix_erase_matrix_signature" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Erase Matrix Signature}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Willpower + Firewall |or| Firewall x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="erasematrixsignature"></span></button>
<button type="roll" title="Electronics + Logic" class="legal admin" name="roll_matrix_format_device" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Format Device}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Willpower + Firewall |or| Firewall x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="formatdevice"></span></button>
<span class="matrix-action legal outsider user admin" data-i18n="fullmatrixdefense"></span>
<button type="roll" title="Electronics + Logic" class="illegal user" name="roll_matrix_hash_check" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Hash Check}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), CRB pg.182}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="hashcheck"></span></button>
<button type="roll" title="Cracking + Intuition" class="illegal outsider user admin" name="roll_matrix_hide" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Hide}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{intuition}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Intuition + Data Processing |or| Data Processing + Sleaze}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="hide"></span></button>
<button type="roll" title="Electronics + Willpower" class="legal outsider user admin" name="roll_matrix_jackout" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Jack Out}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{willpower}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Charisma + Data Processing |or| Attack + Data Processing}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="jackout"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal admin" name="roll_matrix_jam_signals" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Jam Signals}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), CRB pg.182}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="jamsignals"></span></button>
<button type="roll" title="Electronics + Logic" class="legal user admin" name="roll_matrix_jump_into_rigged_device" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Jump Into Rigged Device}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Willpower + Firewall |or| Firewall x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="jumpintoriggeddevice"></span></button>
<button type="roll" title="Electronics + Intuition" class="legal outsider user admin" name="roll_matrix_matrix_perception" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Matrix Perception}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{intuition}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), * Without Resonance or Cyberdeck), vs. Willpower + Sleaze}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="matrixperception"></span></button>
<button type="roll" title="Electronics + Intuition" class="legal outsider user admin" name="roll_matrix_matrix_search" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Matrix Search}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{intuition}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), Extended Test, 10 Minute Interval}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="matrixsearch"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal outsider user admin" name="roll_matrix_probe" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Probe}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Willpower + Firewall |or| Firewall x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="probe"></span></button>
<button type="roll" title="Electronics + Logic" class="legal admin" name="roll_matrix_reboot_device" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Reboot Device}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Legal), vs. Willpower + Firewall |or| Firewall x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="rebootdevice"></span></button>
<button type="roll" title="Electronics + Logic" class="illegal admin" name="roll_matrix_set_data_bomb" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Set Data Bomb}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Device Rating x 2}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="setdatabomb"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal admin" name="roll_matrix_snoop" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Snoop}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Logic + Firewall |or| Data Processing + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="snoop"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal outsider user admin" name="roll_matrix_spoof_command" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Spoof Command}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. (Data Processing or Pilot) + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="spoofcommand"></span></button>
<button type="roll" title="Cracking + Logic" class="illegal outsider user admin" name="roll_matrix_tarpit" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Tar Pit}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{cracking}+@{logic}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Data Processing + Firewall}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="tarpit"></span></button>
<button type="roll" title="Electronics + Intuition" class="illegal admin" name="roll_matrix_trace_icon" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Trace Icon}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{intuition}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=(Illegal), vs. Willpower + Sleaze |or| Firewall + Sleaze}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="traceicon"></span></button>
<h2 data-i18n="matrixminor">Matrix Minor Actions</h2>
<span class="matrix-action legal user admin" data-i18n="changeicon"></span>
<span class="matrix-action legal" data-i18n="enterexithost"></span>
<button type="roll" title="Electronics + Intuition" class="legal outsider user admin" name="roll_matrix_matrix_perception" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=Matrix Matrix Perception}}{{?{Specialization or Expertise?|No,0|Specialized,2|Expertise,3}}}{{dice=[[(@{electronics}+@{intuition}+?{Specialization or Expertise?|0}+@{modifiers_toggle}+@{wounds_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=* With Resonance or Cyberdeck, (Legal), vs. Willpower + Sleaze}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="matrixperception"></span></button>
<span class="matrix-action legal admin" data-i18n="reconfigurematrixattribute"></span>
<span class="matrix-action legal outsider user admin" data-i18n="sendmessage"></span>
<span class="matrix-action legal admin" data-i18n="switchinterfacemode"></span>
</div>
<input class="tab-switch" name="attr_rolls_toggle" type="hidden" value="misc"/>
<div class="rolls-misc">
<h2 data-i18n="convert">Convert</h2>
<span>&nbsp;</span>
<input type=number name="attr_measurement1" value="">
<select name="attr_conversion">
<option data-i18n="lb-kg" value="lb-kg">lb <=> kg</option>
<option data-i18n="ft-m" value="ft-m">ft <=> m</option>
<option data-i18n="mi-km" value="mi-km">mi <=> km</option>
</select>
<input type=number name="attr_measurement2" value="">
<span>&nbsp;</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- NPC SHEET -->
<div class="npc">
<img class="shadowrun-logo" alt="Shadowrun sixth edition logo" src="https://s3.amazonaws.com/files.d20.io/images/204802539/QInmmma8HvUBA90c8e8H8Q/max.png?1614545502"/>
<input name="attr_stats_toggle" type="hidden" value="settings" checked="checked"/>
<div class="tabs border-box">
<div class="pc-box">
<div class="header-nav">
<input name="attr_stats_toggle" type="checkbox" value="settings" checked="checked"/>
<span class="pictos">y</span>
<select name="attr_sheet_type" title="Sheet Type">
<option value="pc" data-i18n="pc">PC</option>
<option value="grunt" data-i18n="grunt">Grunt</option>
<option value="spirit" data=i18n="spirit">Spirit</option>
<option value="host" data-i18n="host">Host</option>
<option value="sprite" data-i18n="sprite">Sprite</option>
<option value="vehicle" data-i18n="vehicle">Vehicle</option>
</select>
<select class="sprite" name="attr_sprite_type" title="Sprite Type">
<option value="Courier" data-i18n="couriersprite">Courier</option>
<option value="Crack" data-i18n="cracksprite">Crack</option>
<option value="Data" data-i18n="datasprite">Data</option>
<option value="Fault" data-i18n="faultsprite">Fault</option>
<option value="Machine" data-i18n="machinesprite">Machine</option>
<option value="Other" data-i18n="other">Other</option>
</select>
<select class="spirit" name="attr_spirit_type" title="Sprite Type">
<option value="Air" data-i18n="air">Air</option>
<option value="Beasts" data-i18n="beasts">Beasts</option>
<option value="Earth" data-i18n="earth">Earth</option>
<option value="Fire" data-i18n="fire">Fire</option>
<option value="Guardian" data-i18n="guardian">Guardian</option>
<option value="Guidance" data-i18n="guidance">Guidance</option>
<option value="Kin" data-i18n="kin">Kin</option>
<option value="Plant" data-i18n="plant">Plant</option>
<option value="Task" data-i18n="task">Task</option>
<option value="Water" data-i18n="water">Water</option>
<option value="Other" data-i18n="other">Other</option>
</select>
<h2 class="grunt" data-i18n="metatype"></h2>
<input class="grunt" name="attr_metatype" type="text" />
<span class="host vehicle">&nbsp;</span>
<span class="spirit">
<h3 data-i18n-title="resettoggle" data-i18n="reset"></h3>
</span>
<span class="spirit">
<label class="switch" data-i18n-title="resettoggle" title="Reset skills, powers and weapons when changing type or force">
<input name="attr_spirit_reset_toggle" type="checkbox" value="reset"/><span class="slider"></span>
</label>
</span>
<span class="host vehicle sprite">&nbsp;</span>
<span></span>
<h2 data-i18n="name"></h2>
<input name="attr_character_name" type="text" />
</div>
<div class="header-toggles pc-box">
<span>&nbsp;</span>
<button name="d6" title="Roll D6s" type="roll" value="@{gm_toggle} &amp;{template:rolls}{{header=^{d6}}}{{base=^{d6}}}{{dice=[[(?{d6s|0}d6&gt;5)]]}}{{wilddie=[[@{wild_die}d6]]}}">L</button>
<h2 data-i18n-title="whispergm">/w GM</h2>
<label class="switch" data-i18n-title="whispergm" title="Whisper rolls to GM">
<input class="whisper-toggle" name="attr_gm_toggle" type="checkbox" value="/w gm"/><span class="slider"></span>
</label>
<h2 data-i18n-title="wounds">Wounds</h2>
<label class="switch" data-i18n-title="wounds" title="Wounds">
<input class="whisper-toggle" name="attr_wounds_toggle" type="checkbox" value="@{wounds}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="dicepoolmodifiers">Modifiers</h2>
<label class="switch" data-i18n-title="dicepoolmodifiers" title="Dicepool Modifiers">
<input class="whisper-toggle" name="attr_modifiers_toggle" type="checkbox" value="?{Modifiers +/-|0}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="addedgetodicepool">Edge</h2>
<label class="switch" data-i18n-title="addedgetodicepool" title="Add Edge to your dice pool and exploding 6's">
<input class="whisper-toggle" name="attr_edge_toggle" type="checkbox" value="@{edge}"/><span class="slider"></span>
</label>
<h2 data-i18n-title="wilddie">Wild Die</h2>
<label class="switch" data-i18n-title="wilddie" title="Roll a single wild die">
<input class="whisper-toggle" name="attr_wild_die" type="checkbox" value="1"/><span class="slider"></span>
</label>
<span>&nbsp;</span>
</div>
</div>
</div>
<div class="border-box">
<div class="grunt attribute pc-box">
<button data-i18n="body" name="roll_body" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{body}}}{{dice=[[(@{body}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">b</button>
<span name="attr_display_body"></span>
<label class="settings" data-i18n-title="Body" title="Body">
<input name="attr_body_base" placeholder="3" title="@{body_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_body_modifier" placeholder="+" title="@{body_modifier}" type="number" value=""/>
</label>
<button data-i18n="agility" name="roll_agility" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{agility}}}{{dice=[[(@{agility}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">a</button>
<span name="attr_display_agility"></span>
<label class="settings" data-i18n-title="Agility" title="Agility">
<input name="attr_agility_base" placeholder="3" title="@{agility_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_agility_modifier" placeholder="+" title="@{agility_modifier}" type="number" value=""/>
</label>
<button data-i18n="reaction" name="roll_reaction" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{reaction}}}{{dice=[[(@{reaction}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">r</button>
<span name="attr_display_reaction"></span>
<label class="settings" data-i18n-title="Reaction" title="Reaction">
<input name="attr_reaction_base" placeholder="3" title="@{reaction_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_reaction_modifier" placeholder="+" title="@{reaction_modifier}" type="number" value=""/>
</label>
<button data-i18n="strength" name="roll_strength" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{strength}}}{{dice=[[(@{strength}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">s</button>
<span name="attr_display_strength"></span>
<label class="settings" data-i18n-title="Strength" title="Strength">
<input name="attr_strength_base" placeholder="3" title="@{strength_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_strength_modifier" placeholder="+" title="@{strength_modifier}" type="number" value=""/>
</label>
<button data-i18n="willpower" name="roll_willpower" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{willpower}}}{{dice=[[(@{willpower}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">w</button>
<span name="attr_display_willpower"></span>
<label class="settings" data-i18n-title="Willpower" title="Willpower">
<input name="attr_willpower_base" placeholder="3" title="@{willpower_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_willpower_modifier" placeholder="+" title="@{willpower_modifier}" type="number" value=""/>
</label>
<button data-i18n="logic" name="roll_logic" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{logic}}}{{dice=[[(@{logic}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">l</button>
<span name="attr_display_logic"></span>
<label class="settings" data-i18n-title="Logic" title="Logic">
<input name="attr_logic_base" placeholder="3" title="@{logic_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_logic_modifier" placeholder="+" title="@{logic_modifier}" type="number" value=""/>
</label>
<button data-i18n="intuition" name="roll_intuition" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{intuition}}}{{dice=[[(@{intuition}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">i</button>
<span name="attr_display_intuition"></span>
<label class="settings" data-i18n-title="Intuition" title="Intuition">
<input name="attr_intuition_base" placeholder="3" title="@{intuition_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_intuition_modifier" placeholder="+" title="@{intuition_modifier}" type="number" value=""/>
</label>
<button data-i18n="charisma" name="roll_charisma" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{charisma}}}{{dice=[[(@{charisma}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">c</button>
<span name="attr_display_charisma"></span>
<label class="settings" data-i18n-title="Charisma" title="Charisma">
<input name="attr_charisma_base" placeholder="3" title="@{charisma_base}" type="number" value="3"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_charisma_modifier" placeholder="+" title="@{charisma_modifier}" type="number" value=""/>
</label>
<button data-i18n="edge" name="roll_edge" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{edge}}}{{dice=[[(@{edge}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">e</button>
<span name="attr_edge"></span>
<label class="settings" data-i18n-title="edge" title="edge">
<input name="attr_edge" placeholder="3" title="@{edge}" type="number" value="3"/>
</label>
<h1 data-i18n="ess">ess</h1><span name="attr_essence"></span>
<label class="settings" data-i18n-title="essence" title="essence">
<input name="attr_essence" placeholder="6" title="@{essence}" type="number" step='0.01' min='-6.00' max='6.00' value="6"/>
</label>
<h1 class="hide-magic" data-i18n="magic">m</h1><span class="hide-magic" name="attr_magic"></span>
<label class="hide-magic" data-i18n-title="magic" title="magic"><span class="settings">
<input name="attr_magic" placeholder="6" title="@{magic}" type="number" value="6"/>
</span></label>
<h1 class="hide-resonance" data-i18n="resonance">r</h1><span class="hide-resonance" name="attr_resonance"></span>
<label class="hide-resonance" data-i18n-title="resonance" title="resonance"><span class="settings">
<input class="hide-resonance" name="attr_resonance" placeholder="6" title="@{resonance}" type="number" value="6"/>
</span></label>
</div>
<div class="spirit attribute pc-box">
<h1 data-i18n="force">Force</h1><span name="attr_force"></span>
<label data-i18n-title="force" title="force"><span class="settings">
<input name="attr_force" placeholder="0" title="@{force}" type="number" value="1"/>
</span></label>
<label class="settings" data-i18n-title="modifier" title="modifier" style="display: none;"></label>
<h1 data-i18n="tasks">Tasks</h1><span class="spirit" name="attr_tasks"></span>
<label data-i18n-title="tasks" title="tasks"><span class="settings">
<input name="attr_tasks_base" placeholder="0" title="@{tasks}" type="number" value="1"/>
</span></label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_tasks_modifier" placeholder="+" title="@{tasks_modifier}" type="number" value=""/>
</label>
<button data-i18n="body" name="roll_body" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{body}}}{{dice=[[(@{body}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">b</button>
<span name="attr_display_body"></span>
<label class="settings" data-i18n-title="Body" title="Body">
<input name="attr_body_base" placeholder="3" title="@{body_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_body_modifier" placeholder="+" title="@{body_modifier}" type="number" value=""/>
</label>
<button data-i18n="agility" name="roll_agility" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{agility}}}{{dice=[[(@{agility}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">a</button>
<span name="attr_display_agility"></span>
<label class="settings" data-i18n-title="Agility" title="Agility">
<input name="attr_agility_base" placeholder="3" title="@{agility_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_agility_modifier" placeholder="+" title="@{agility_modifier}" type="number" value=""/>
</label>
<button data-i18n="reaction" name="roll_reaction" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{reaction}}}{{dice=[[(@{reaction}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">r</button>
<span name="attr_display_reaction"></span>
<label class="settings" data-i18n-title="Reaction" title="Reaction">
<input name="attr_reaction_base" placeholder="3" title="@{reaction_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_reaction_modifier" placeholder="+" title="@{reaction_modifier}" type="number" value=""/>
</label>
<button data-i18n="strength" name="roll_strength" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{strength}}}{{dice=[[(@{strength}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">s</button>
<span name="attr_display_strength"></span>
<label class="settings" data-i18n-title="Strength" title="Strength">
<input name="attr_strength_base" placeholder="3" title="@{strength_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_strength_modifier" placeholder="+" title="@{strength_modifier}" type="number" value=""/>
</label>
<button data-i18n="willpower" name="roll_willpower" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{willpower}}}{{dice=[[(@{willpower}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">w</button>
<span name="attr_display_willpower"></span>
<label class="settings" data-i18n-title="Willpower" title="Willpower">
<input name="attr_willpower_base" placeholder="3" title="@{willpower_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_willpower_modifier" placeholder="+" title="@{willpower_modifier}" type="number" value=""/>
</label>
<button data-i18n="logic" name="roll_logic" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{logic}}}{{dice=[[(@{logic}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">l</button>
<span name="attr_display_logic"></span>
<label class="settings" data-i18n-title="Logic" title="Logic">
<input name="attr_logic_base" placeholder="3" title="@{logic_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_logic_modifier" placeholder="+" title="@{logic_modifier}" type="number" value=""/>
</label>
<button data-i18n="intuition" name="roll_intuition" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{intuition}}}{{dice=[[(@{intuition}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">i</button>
<span name="attr_display_intuition"></span>
<label class="settings" data-i18n-title="Intuition" title="Intuition">
<input name="attr_intuition_base" placeholder="3" title="@{intuition_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_intuition_modifier" placeholder="+" title="@{intuition_modifier}" type="number" value=""/>
</label>
<button data-i18n="charisma" name="roll_charisma" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{charisma}}}{{dice=[[(@{charisma}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">c</button>
<span name="attr_display_charisma"></span>
<label class="settings" data-i18n-title="Charisma" title="Charisma">
<input name="attr_charisma_base" placeholder="3" title="@{charisma_base}" type="number" value="1"/>
</label>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_charisma_modifier" placeholder="+" title="@{charisma_modifier}" type="number" value=""/>
</label>
<button data-i18n="edge" name="roll_edge" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{edge}}}{{dice=[[(@{edge}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">e</button>
<span name="attr_edge"></span>
<label class="settings" data-i18n-title="edge" title="edge">
<input name="attr_edge" placeholder="3" title="@{edge}" type="number" value="0"/>
</label>
<h1 data-i18n="ess">ess</h1><span name="attr_essence"></span>
<label class="settings" data-i18n-title="essence" title="essence">
<input name="attr_essence" placeholder="6" title="@{essence}" type="number" step='0.01' min='-6.00' max='6' value="6"/>
</label>
<h1 data-i18n="magic">m</h1><span name="attr_magic"></span>
<label data-i18n-title="magic" title="magic"><span class="settings">
<input name="attr_magic" placeholder="6" title="@{magic}" type="number" value="1"/>
</span></label>
</div>
<div class="host attribute pc-box">
<button data-i18n="host_rating" name="roll_host_rating" type="roll" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{host_rating}}}{{rating=@{host_rating}}}{{wilddie=[[@{wild_die}d6]]}}">host_rating</button><span name="attr_host_rating"></span>
<label class="settings" data-i18n-title="host_rating" title="Host Rating">
<input name="attr_host_rating" placeholder="5" title="@{host_rating}" type="number" value=""/>
</label>
<button data-i18n="attack" name="roll_attack" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{attack}}}{{dice=[[(@{attack}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">attack</button><span name="attr_attack"></span>
<label class="settings" data-i18n-title="attack" title="Attack">
<input name="attr_attack" placeholder="5" title="@{attack}" type="number" value=""/>
</label>
<button data-i18n="sleaze" name="roll_sleaze" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{sleaze}}}{{dice=[[(@{sleaze}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">sleaze</button><span name="attr_sleaze"></span>
<label class="settings" data-i18n-title="sleaze" title="Sleaze">
<input name="attr_sleaze" placeholder="6" title="@{sleaze}" type="number" value=""/>
</label>
<button data-i18n="data_processing" name="roll_data_processing" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{data_processing}}}{{dice=[[(@{data_processing}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">data_processing</button><span name="attr_data_processing"></span>
<label class="settings" data-i18n-title="data_processing" title="Data Processing">
<input name="attr_data_processing" placeholder="7" title="@{data_processing}" type="number" value=""/>
</label>
<button data-i18n="firewall" name="roll_firewall" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{firewall}}}{{dice=[[@{firewall}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">firewall</button><span name="attr_firewall"></span>
<label class="settings" data-i18n-title="firewall" title="Firewall">
<input name="attr_firewall" placeholder="8" title="@{firewall}" type="number" value=""/>
</label>
</div>
<div class="vehicle attribute pc-box">
<h1 data-i18n="hand">Hand</h1><span name="attr_handling"></span>
<label class="settings" data-i18n-title="hand" title="Handling">
<input name="attr_handling" placeholder="3" title="@{handling}" type="number" value=""/>
</label>
<h1 data-i18n="handoff">Hand (Off)</h1><span name="attr_handling_offroad"></span>
<label class="settings" data-i18n-title="handoff" title="Handling (Offroad)">
<input name="attr_handling_offroad" placeholder="3" title="@{handling_offroad}" type="number" value=""/>
</label>
<h1 data-i18n="accel">Accel</h1><span name="attr_acceleration"></span>
<label class="settings" data-i18n-title="accel" title="Accel">
<input name="attr_acceleration" placeholder="3" title="@{acceleration}" type="number" value=""/>
</label>
<h1 data-i18n="interval">Interval</h1><span name="attr_interval"></span>
<label class="settings" data-i18n-title="interval" title="Speed Interval">
<input name="attr_interval" placeholder="3" title="@{interval}" type="number" value=""/>
</label>
<input name='attr_speed' type='hidden' value='0'>
<h1 data-i18n="maxspeed">Max Speed</h1><span name="attr_speed_max"></span>
<label class="settings" data-i18n-title="maxspeed" title="Max Speed">
<input name="attr_speed_max" placeholder="3" title="@{speed_max}" type="number" value=""/>
</label>
<h1 data-i18n="body">Body</h1><span name="attr_body"></span>
<label class="settings" data-i18n-title="body" title="Body">
<input name="attr_body_base" placeholder="3" title="@{body}" type="number" value=""/>
</label>
<h1 data-i18n="armor">Armor</h1><span name="attr_armor"></span>
<label class="settings" data-i18n-title="armor" title="Armor">
<input name="attr_armor" placeholder="3" title="@{armor}" type="number" value=""/>
</label>
<button data-i18n="pilot" name="roll_pilot" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=^{pilot}}}{{base=^{pilot}}}{{dice=[[(@{pilot}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">pilot</button><span name="attr_pilot"></span>
<label class="settings" data-i18n-title="pilot" title="Pilot">
<input name="attr_pilot" placeholder="3" title="@{pilot}" type="number" value=""/>
</label>
<h1 data-i18n="sensor">Sensor</h1><span name="attr_sensor"></span>
<label class="settings" data-i18n-title="sensor" title="Sensor">
<input name="attr_sensor" placeholder="3" title="@{sensor}" type="number" value=""/>
</label>
<h1 data-i18n="seat">Seat</h1><span name="attr_seating"></span>
<label class="settings" data-i18n-title="seat" title="Seat">
<input name="attr_seating" placeholder="3" title="@{seating}" type="number" value=""/>
</label>
</div>
<div class="sprite attribute pc-box">
<button data-i18n="level" name="roll_level" type="roll" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{level}}}{{rating=@{level}}}">Level</button><span name="attr_level"></span>
<label class="settings" data-i18n-title="level" title="Level">
<input name="attr_level" placeholder="5" title="@{level}" type="number" value=""/>
</label>
<h1 data-i18n="tasks">Tasks</h1><span name="attr_tasks"></span>
<label class="settings" data-i18n-title="tasks" title="Tasks">
<input name="attr_tasks" placeholder="0" title="@{tasks}" type="number" value=""/>
</label>
<button data-i18n="attack" name="roll_attack" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{attack}}}{{dice=[[(@{attack}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">attack</button><span name="attr_attack"></span>
<label class="settings" data-i18n-title="attack" title="Attack">
<input name="attr_attack" placeholder="5" title="@{attack}" type="number" value=""/>
</label>
<button data-i18n="sleaze" name="roll_sleaze" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{sleaze}}}{{dice=[[(@{sleaze}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">sleaze</button><span name="attr_sleaze"></span>
<label class="settings" data-i18n-title="sleaze" title="Sleaze">
<input name="attr_sleaze" placeholder="6" title="@{sleaze}" type="number" value=""/>
</label>
<button data-i18n="data_processing" name="roll_data_processing" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{data_processing}}}{{dice=[[(@{data_processing}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">data_processing</button><span name="attr_data_processing"></span>
<label class="settings" data-i18n-title="data_processing" title="Data Processing">
<input name="attr_data_processing" placeholder="7" title="@{data_processing}" type="number" value=""/>
</label>
<button data-i18n="firewall" name="roll_firewall" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{firewall}}}{{dice=[[(@{firewall}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">firewall</button><span name="attr_firewall"></span>
<label class="settings" data-i18n-title="firewall" title="Firewall">
<input name="attr_firewall" placeholder="8" title="@{firewall}" type="number" value=""/>
</label>
<button data-i18n="resonance" name="roll_resonance" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{resonance}}}{{dice=[[(@{resonance}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">resonance</button><span name="attr_resonance"></span>
<label class="settings" data-i18n-title="resonance" title="resonance">
<input name="attr_resonance" placeholder="8" title="@{resonance}" type="number" value=""/>
</label>
</div>
</div>
<div class="mid body">
<div class="column">
<input name="attr_pr" type="hidden" value=""/>
<div class="rows grunt">
<h2 data-i18n="pr">Professional Rating</h2><span name="attr_pr" style="margin-left: 2%;"></span>
<label class="settings" data-i18n-title="pr" title="Professional Rating">
<input name="attr_pr" title="@{pr}" type="number"/>
</label>
</div>
<div class="rows grunt spirit vehicle sprite host">
<h2 data-i18n="actions">Actions</h2>
<label class="settings" data-i18n-title="majoractions" title="Major Actions">
<span data-i18n="a">A</span><input name="attr_major_actions" placeholder="1" title="@{major_actions}" type="number" value="1"/>
</label>
<span class="settings">, </span>
<label class="settings" data-i18n-title="minoractions" title="Minor Actions">
<span data-i18n="i">I</span><input min="0" name="attr_minor_actions" placeholder="2" title="@{minor_actions}" type="number" value="2"/>
</label>
<span class="toggle-display"> <span data-i18n="a">A</span><span name="attr_major_actions"></span><span class="tiny-span">, </span><span data-i18n="i">I</span><span name="attr_minor_actions"></span></span>
</div>
<div class="rows grunt spirit">
<button data-i18n="initiative" name="Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{initiative}}}{{dice=[[(@{initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_initiative_base" placeholder="0" title="@{initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="initiativedice" title="Initiative Dice">
<input min="0" max="4" name="attr_initiative_dice" placeholder="0" title="@{initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_initiative_base"></span><span class="tiny-span">+</span><span name="attr_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows grunt hide-magic">
<button data-i18n="astralinitiative" name="Astral Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{astralinitiative}}}{{dice=[[(@{astral_initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{astral_initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Astral Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_astral_initiative_base" placeholder="0" title="@{astral_initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="astral_initiative_dice" title="Astral Initiative Dice">
<input min="0" max="4" name="attr_astral_initiative_dice" placeholder="0" title="@{astral_initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_astral_initiative_base"></span><span class="tiny-span">+</span><span name="attr_astral_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows spirit">
<button data-i18n="astralinitiative" name="Astral Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{astralinitiative}}}{{dice=[[(@{astral_initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{astral_initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Astral Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_astral_initiative_base" placeholder="0" title="@{astral_initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="astral_initiative_dice" title="Astral Initiative Dice">
<input min="0" max="4" name="attr_astral_initiative_dice" placeholder="0" title="@{astral_initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_astral_initiative_base"></span><span class="tiny-span">+</span><span name="attr_astral_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows grunt">
<button data-i18n="matrixinitiative" name="Matrix Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{matrixinitiative}}}{{dice=[[(@{matrix_initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{matrix_initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Matrix Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_matrix_initiative_base" placeholder="0" title="@{matrix_initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="matrix_initiative_dice" title="Matrix Initiative Dice">
<input min="0" max="4" name="attr_matrix_initiative_dice" placeholder="0" title="@{matrix_initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_matrix_initiative_base"></span><span class="tiny-span">+</span><span name="attr_matrix_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows grunt">
<button data-i18n="coldsiminitiative" name="Cold Sim Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{coldsiminitiative}}}{{dice=[[(@{cold_sim_initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{cold_sim_initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Cold Sim Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_cold_sim_initiative_base" placeholder="0" title="@{cold_sim_initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="coldsiminitiativedice" title="Cold Sim Initiative Dice">
<input min="0" max="4" name="attr_cold_sim_initiative_dice" placeholder="0" title="@{cold_sim_initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_cold_sim_initiative_base"></span><span class="tiny-span">+</span><span name="attr_cold_sim_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows grunt vehicle sprite host">
<button data-i18n="hotsiminitiative" name="Hot Sim Initiative" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{hotsiminitiative}}}{{dice=[[(@{hot_sim_initiative_base}+@{wounds_toggle}+@{modifiers_toggle})+(@{hot_sim_initiative_dice})d6cf0 &{tracker}]]}}{{wilddie=[[@{wild_die}d6]]}}">Hot Sim Initiative</button>
<label class="settings" data-i18n-title="modifier" title="modifier">
<input name="attr_hot_sim_initiative_base" placeholder="0" title="@{hot_sim_initiative_base}" type="number" value="0"/>
</label><span class="settings">+</span>
<label class="settings" data-i18n-title="hotsiminitiativedice" title="Hot Sim Initiative Dice">
<input min="0" max="4" name="attr_hot_sim_initiative_dice" placeholder="0" title="@{hot_sim_initiative_dice}" type="number" value="0"/>
</label><span class="settings" data-i18n="d6">d6</span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_hot_sim_initiative_base"></span><span class="tiny-span">+</span><span name="attr_hot_sim_initiative_dice"></span><span class="tiny-span" data-i18n="d6">d6</span></span>
</div>
<div class="rows grunt spirit">
<button type="roll" name="sprint" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=@{sprint_speed}+(Athletics+Agility hits * @{sprint_modifier})}}{{dice=[[@{sprint_speed}+((@{athletics}+@{agility}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle} * @{sprint_modifier})]] meters}}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span data-i18n="sprint"></span></button>
<label class="settings" data-i18n-title="move speed" title="Move Speed">
<input name="attr_move_speed" placeholder="0" title="@{move_speed}" type="number" value="10"/>
</label><span class="settings"> / </span>
<label class="settings" data-i18n-title="sprint speed" title="Sprint Speed">
<input name="attr_sprint_speed" placeholder="0" title="@{sprint_speed}" type="number" value="15"/>
</label><span class="settings"> / + </span>
<label class="settings" data-i18n-title="sprint modifier" title="Sprint Modifier">
<input name="attr_sprint_modifier" placeholder="2" title="@{sprint_modifier}" type="number" value="1"/>
</label><span class="settings"></span>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_move_speed" title="@{move_speed}"></span><span> / </span><span name="attr_sprint_speed" title="@{sprint_speed}"></span><span> / + </span><span name="attr_sprint_modifier" title="@{sprint_modifier}"></span><span></span></span>
</div>
<div class="rows grunt spirit">
<button data-i18n="conditionmonitor" name="act_cond_reset" type="action">Condition Monitor</button>
<label class="settings" data-i18n-title="conditionmonitor" title="Condition Monitor">
<input name="attr_physical" placeholder="0" title="@{physical}" type="number" value=""/>
</label>
<span class="toggle-display" name="attr_physical" title="@{physical}"></span>
</div>
<div class="rows vehicle">
<button data-i18n="conditionmonitorpm" name="act_cond_reset" type="action">Condition Monitor (P/M)</button>
<label class="settings" data-i18n-title="physicalbonus" title="physicalbonus">
<input name="attr_physical" placeholder="0" title="@{physical}" type="number" value="0"/>
</label><span class="settings">/</span>
<label class="settings" data-i18n-title="matrix" title="matrix">
<input name="attr_matrix" placeholder="0" title="@{matrix}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="settings tiny-span">=</span><span name="attr_physical" title="@{physical}"></span><span>/</span><span name="attr_matrix" title="@{matrix}"></span></span>
</div>
<div class="rows host sprite">
<button data-i18n="conditionmonitor" name="act_cond_reset" type="action">Condition Monitor</button>
<label class="settings" data-i18n-title="matrix" title="matrix">
<input name="attr_matrix" placeholder="0" title="@{matrix}" type="number" value="0"/>
</label>
<span class="toggle-display"><span name="attr_matrix"></span></span>
</div>
</div>
<div class="column">
<div class="rows sprite host">
<button data-i18n="attackrating" name="roll_ar" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{attackrating} = ^{attack} + ^{sleaze}}}{{rating=[[@{attack}+@{sleaze}]]}}">attackrating</button> <span name="attr_matrix_attack_rating"></span>
</div>
<div class="rows sprite host">
<button data-i18n="defenserating" name="roll_dr" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defenserating} = ^{data_processing} + ^{firewall}}}{{rating=[[@{data_processing}+@{firewall}]]}}{{wilddie=[[@{wild_die}d6]]}}">defenserating</button> <span name="attr_matrix_defense_rating"></span>
</div>
<div class="rows grunt spirit">
<button data-i18n="defenserating" name="roll_dr" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defenserating}}}{{rating=@{defense_rating}}}">defenserating</button>
<label class="settings" data-i18n-title="ddefenserating" title="defenserating">
<input name="attr_defense_rating" placeholder="9" title="@{defense_rating}" type="number" value="0"/>
</label>
<span class="toggle-display"><span name="attr_defense_rating"></span></span>
</div>
<div class="rows grunt spirit">
<button data-i18n="defense" name="roll_defense" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defense} = ^{reaction} + ^{intuition}}}{{dice=[[(@{reaction}+@{intuition}+@{defense_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">defense</button>
<label class="settings" data-i18n-title="defense" title="defense">
<input name="attr_defense_modifier" placeholder="9" title="@{defense_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_defense_modifier"></span></span>
</div>
<div class="rows vehicle">
<button data-i18n="defense" name="roll_defense" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defense} = ^{pilot} + ^{evasion}}}{{dice=[[((?{Pilot Rating?| No Pilot, @{pilot}| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10}+?{Evasion Autosoft Rating?| No Evasion Autosoft, 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10}+@{defense_modifier})+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">defense</button>
<label class="settings" data-i18n-title="defense" title="defense">
<input name="attr_defense_modifier" placeholder="9" title="@{defense_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_defense_modifier"></span></span>
</div>
<div class="rows host">
<button data-i18n="defense" name="roll_defense" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{defense} = ^{data_processing} + ^{firewall}}}{{dice=[[(@{data_processing}+@{firewall}+@{defense_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">defense</button>
<label class="settings" data-i18n-title="defense" title="defense">
<input name="attr_defense_modifier" placeholder="9" title="@{defense_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_defense_modifier"></span></span>
</div>
<div class="rows grunt spirit vehicle">
<button data-i18n="soak" name="roll_soak" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{soak} ^{damage}}}{{dice=[[(@{body}+@{soak_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">soak</button>
<label class="settings" data-i18n-title="soak" title="soak">
<input name="attr_soak_modifier" placeholder="0" title="@{soak_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_soak_modifier"></span></span>
</div>
<div class="rows grunt vehicle">
<button data-i18n="soakmatrix" name="roll_soak" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{soak} ^{matrix} ^{damage} = ^{firewall}}}{{dice=[[(@{firewall}+@{soak_matrix_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">soak matrix</button>
<label class="settings" data-i18n-title="soakmatrix" title="soak">
<input name="attr_soak_matrix_modifier" placeholder="0" title="@{soak_matrix_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_soak_matrix_modifier"></span></span>
</div>
<div class="rows grunt">
<button data-i18n="soakbiofeedback" name="roll_soak" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{soak} ^{biofeedback} ^{damage} = ^{willpower}}}{{dice=[[(@{willpower}+@{soak_biofeedback_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}">soak biofeedback</button>
<label class="settings" data-i18n-title="soakbiofeedback" title="soak">
<input name="attr_soak_biofeedback_modifier" placeholder="0" title="@{soak_biofeedback_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span class="tiny">+</span><span name="attr_soak_biofeedback_modifier"></span></span>
</div>
<div class="rows grunt">
<span class="pictos3 chem">d</span><span class="chem"> Chem </span> <span name="attr_chem_total"></span>
<label class="settings" data-i18n-title="chemprotection" title="chemprotection">
<input name="attr_chem_modifier" placeholder="0" title="@{chem_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span name="attr_chem_modifier"></span></span>
</div>
<div class="rows grunt">
<span class="pictos cold">b</span><span class="cold"> Cold </span> <span name="attr_cold_total"></span>
<label class="settings" data-i18n-title="coldprotection" title="coldprotection">
<input name="attr_cold_modifier" placeholder="0" title="@{cold_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span name="attr_cold_modifier"></span></span>
</div>
<div class="rows grunt">
<span class="pictos elec">e</span><span class="elec"> Elec </span> <span name="attr_elec_total"></span>
<label class="settings" data-i18n-title="elecprotection" title="elecprotection">
<input name="attr_elec_modifier" placeholder="0" title="@{elec_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span name="attr_elec_modifier"></span></span>
</div>
<div class="rows grunt">
<span class="pictos3 fire">j</span><span class="fire"> Fire </span> <span name="attr_fire_total"></span>
<label class="settings" data-i18n-title="fireprotection" title="fireprotection">
<input name="attr_fire_modifier" placeholder="0" title="@{fire_modifier}" type="number" value="0"/>
</label>
<span class="toggle-display"> <span name="attr_fire_modifier"></span></span>
</div>
</div>
<!--/- OPTIONS-->
<div class="column">
<div class="rows">
<h1 class="settings" data-i18n="options">Options</h1>
</div>
<div class="rows grunt">
<label class="settings" data-i18n-title="archetype" title="Archetype">
<h2 data-i18n="archetype">Archetype</h2>
<select name="attr_flag_special">
<option value="mundane" data-i18n="mundane" selected="selected">Mundane</option>
<option value="magic" data-i18n="awakened">Awakened</option>
<option value="resonance" data-i18n="technomancer">Technomancer</option>
</select>
</label>
<label class="settings" data-i18n-title="paintolerance" title="Pain Tolerance">
<h2 data-i18n="paintolerance">Pain Tolerance</h2>
<select name="attr_pain_tolerance">
<option value="+1" data-i18n="highpaintolerance">High Pain Tolerance</option>
<option value="0" data-i18n="none" selected="selected">None</option>
<option value="-1" data-i18n="lowpaintolerance">Low Pain Tolerance</option>
</select>
</label>
</div>
<div class="rows host grunt vehicle">
<label class="settings" title="Has Matrix Device">
<input class="character-type" name="attr_flag_matrix" title="@{flag_matrix}" type="checkbox" value="matrix"/>
<h2 data-i18n="hasmatrixdevice">Has Matrix Device</h2>
</label>
</div>
<div class="rows grunt spirit">
<label class="settings" title="Grunt Group">
<input class="grunt-group-member" name="attr_grunt_group_member" title="@{grunt_group_member}" type="checkbox" value="grunt_group_member"/>
<h2 data-i18n="gruntgroupmember">Grunt Group Member</h2>
</label>
</div>
<div class="rows grunt spirit">
<label class="settings" title="Grunt Count">
<h2 data-i18n="number_grunts"># Grunts</h2>
<input class="grunt-group-count" name="attr_grunt_group_count" title="@{grunt_group_count}" type="number" min='0' value="0"/>
</label>
</div>
<div class="rows vehicle">
<label class="settings" title="Drone">
<input class="character-type" name="attr_flag_drone" title="@{flag_drone}" type="checkbox" value="drone"/>
<h2>Drone</h2>
</label>
</div>
</div>
</div>
<div class="end body">
<input name="attr_quality" type="hidden" value=""/>
<div class="textrow grunt">
<h1 data-i18n="qualities">Qualities</h1>
<span name="attr_quality"></span><br>
<label class="settings" data-i18n-title="quality" title="Qualities">
<textarea class="full-row" name="attr_quality" placeholder="Qualities" title="@{quality}"></textarea>
</label>
</div>
<input name="attr_augmentations" type="hidden" value=""/>
<div class="textrow grunt">
<h1 data-i18n="augmentations">Augmentations</h1>
<span name="attr_augmentations"></span><br>
<label class="settings" data-i18n-title="augmentations" title="Augmentations">
<textarea class="full-row" name="attr_augmentations" placeholder="Augmentations" title="@{augmentations}"></textarea>
</label>
</div>
<input name="attr_gear" type="hidden" value=""/>
<div class="textrow grunt vehicle">
<h1 data-i18n="gear">Gear</h1>
<span name="attr_gear"></span><br>
<label class="settings" data-i18n-title="gear" title="Gear">
<textarea class="full-row" name="attr_gear" placeholder="Gear" title="@{gear}"></textarea>
</label>
</div>
<div class="textrow vehicle">
<h1 data-i18n="autosofts">Autosofts</h1>
<div class="textrow autosofts">
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_clearsight" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="clearsight" name="roll_clearsight" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{clearsight} = ^{clearsight} + ^{sensor}}}{{dice=[[(@{clearsight}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_clearsight" title="Clearsight" value="0">
<span class="toggle-display" name="attr_clearsight"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_electronicwarfare" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="electronicwarfare" name="roll_ew" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{electronicwarfare} = ^{electronicwarfare} + ^{sensor}}}{{dice=[[(@{electronicwarfare}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_electronicwarfare" title="Electronic Warfare" value="0">
<span class="toggle-display" name="attr_electronicwarfare"></span>
</div>
<span>&nbsp;</span>
</div>
<div class="textrow autosofts">
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_evasion" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="evasion" name="roll_evasion" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{evasion} = ^{evasion} + ^{pilot}}}{{dice=[[(@{evasion}+@{pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_evasion" title="evasion" value="0">
<span class="toggle-display" name="attr_evasion"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_maneuvering" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="maneuvering" name="roll_maneuvering" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{maneuvering} = ^{maneuvering} + ^{pilot}}}{{dice=[[(@{maneuvering}+@{pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_maneuvering" title="Electronic Warfare" value="0">
<span class="toggle-display" name="attr_maneuvering"></span>
</div>
<span>&nbsp;</span>
</div>
<div class="textrow autosofts">
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_stealth" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="stealth" name="roll_stealth" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{stealth} = ^{stealth} + ^{pilot}}}{{dice=[[(@{stealth}+@{pilot}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_stealth" title="stealth" value="0">
<span class="toggle-display" name="attr_stealth"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_targeting_1" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="targeting" name="roll_targeting" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{targeting_weapon} ^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_targeting" title="[Weapon] Targeting" value="0">
<input class="settings" type="text" name="attr_targeting_weapon" title="[Weapon]" value="" placeholder="AK-97">
<span class="toggle-display" name="attr_targeting"></span>
<span class="toggle-display"></span>
<span class="toggle-display" name="attr_targeting_weapon"></span>
</div>
<span>&nbsp;</span>
</div>
<div class="textrow autosofts">
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_targeting_2" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="targeting" name="roll_targeting" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{targeting2_weapon} ^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting2}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_targeting2" title="[Weapon2] Targeting" value="0">
<input class="settings" type="text" name="attr_targeting2_weapon" title="[Weapon2]" value="" placeholder="AK-97">
<span class="toggle-display" name="attr_targeting2"></span>
<span class="toggle-display"></span>
<span class="toggle-display" name="attr_targeting2_weapon"></span>
</div>
<span>&nbsp;</span>
<div class="autosoft-column">
<input class="toggle" name="attr_powered_on_targeting_3" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button data-i18n="targeting" name="roll_targeting" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{targeting3_weapon} ^{targeting} = ^{targeting} + ^{sensor}}}{{dice=[[(@{targeting3}+@{sensor}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<input class="settings" type="number" name="attr_targeting3" title="[Weapon3] Targeting" value="0">
<input class="settings" type="text" name="attr_targeting3_weapon" title="[Weapon3]" value="" placeholder="AK-97">
<span class="toggle-display" name="attr_targeting3"></span>
<span class="toggle-display"></span>
<span class="toggle-display" name="attr_targeting3_weapon"></span>
</div>
<span>&nbsp;</span>
</div>
</div>
<input name="attr_programs" type="hidden" value=""/>
<div class="textrow vehicle">
<h1 data-i18n="programs">Programs</h1>
<span name="attr_programs"></span><br>
<label class="settings" data-i18n-title="programs" title="Programs">
<textarea class="full-row" name="attr_programs" placeholder="Programs" title="@{programs}"></textarea>
</label>
</div>
<input name="attr_modifications" type="hidden" value=""/>
<div class="textrow vehicle">
<h1 data-i18n="modifications">Modifications</h1>
<span name="attr_modifications"></span><br>
<label class="settings" data-i18n-title="modifications" title="Modifications">
<textarea class="full-row" name="attr_modifications" placeholder="Modifications" title="@{modifications}"></textarea>
</label>
</div>
<input name="attr_powers" type="hidden" value=""/>
<div class="textrow grunt hide-magic">
<h1 data-i18n="powers">Powers</h1>
<span name="attr_powers"></span><br>
<label class="settings" data-i18n-title="powers" title="Powers">
<textarea class="full-row" name="attr_powers" placeholder="Powers" title="@{powers}"></textarea>
</label>
</div>
<div class="textrow grunt hide-magic">
<input name="attr_initiate" type="hidden" value=""/>
<h1 data-i18n="initiation">Initiation</h1>
<span name="attr_initiate"></span><br>
<label class="settings" data-i18n-title="initiate" title="Initiate">
<input name="attr_initiate" placeholder="initiate" type="number" title="@{initiate}"/>
</label><br/><span name="attr_metamagic"></span>
<label class="settings" data-i18n-title="metamagic" title="metamagic">
<textarea class="full-row" name="attr_metamagic" placeholder="metamagic" title="@{metamagic}"></textarea>
</label>
</div>
<div class="textrow grunt hide-resonance">
<input name="attr_submersion" type="hidden" value=""/>
<h1 data-i18n="submersion">key</h1><span name="attr_submersion"></span>
<label class="settings" data-i18n-title="submersion" title="Submersion">
<input name="attr_submersion" placeholder="submersion" type="number" title="@{submersion}"/>
</label><br/><span name="attr_echos"></span>
<label class="settings" data-i18n-title="echos" title="echos">
<textarea class="full-row" name="attr_echos" placeholder="echos" title="@{echos}"></textarea>
</label>
</div>
<div class="rows grunt repeating inline-repeating">
<h1 data-i18n="skills">skills</h1>
<fieldset class="repeating_skills">
<input name="attr_display_rating" type="hidden"/>
<input name="attr_specialization" type="hidden" value=""/>
<input name="attr_expertise" type="hidden" value=""/>
<input name="attr_display_limit" type="hidden" value="Physical"/>
<input name="attr_display_attribute" type="hidden" value="Agility"/>
<input name="attr_dicepool" type="hidden" value="0"/>
<input class="toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<button name="roll_skill" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{display_attribute})}}{{dice=[[(@{dicepool}+@{attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<button name="roll_specialization" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{display_attribute}) + ^{specialization}}}{{dice=[[(@{dicepool}+@{attribute}+2+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Spec: @{specialization}}}{{wilddie=[[@{wild_die}d6]]}}"><span class="skill_spec" name="attr_specialization"></span></button>
<button name="roll_expertise" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{display_attribute}) + ^{expertise}}}{{dice=[[(@{dicepool}+@{attribute}+3+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Expert: @{expertise}}}{{wilddie=[[@{wild_die}d6]]}}"><span class="skill_expert" name="attr_expertise"></span></button><span class="tiny">, </span>
<div class="settings">
<h2 data-i18n="skill">Skill</h2>
<h2 data-i18n="rating">Rating</h2>
<h2 data-i18n="mod">Mod</h2>
<h2 data-i18n="attribute">Attribute</h2>
<select class="skill-select" name="attr_name" title="@{repeating_skills_${x}_name}">
<option value="Astral" data-i18n="astral">Astral</option>
<option value="Athletics" data-i18n="athletics">Athletics</option>
<option value="Biotech" data-i18n="biotech">Biotech</option>
<option value="Close Combat" data-i18n="closecombat">Close Combat</option>
<option value="Con" data-i18n="con">Con</option>
<option value="Conjuring" data-i18n="conjuring">Conjuring</option>
<option value="Cracking" data-i18n="cracking">Cracking</option>
<option value="Electronics" data-i18n="electronics">Electronics</option>
<option value="Enchanting" data-i18n="enchanting">Enchanting</option>
<option value="Engineering" data-i18n="engineering">Engineering</option>
<option value="Exotic Weapons" data-i18n="exoticweapons">Exotic Weapons</option>
<option value="Firearms" data-i18n="firearms">Firearms</option>
<option value="Influence" data-i18n="influence">Influence</option>
<option value="Outdoors" data-i18n="outdoors">Outdoors</option>
<option value="Perception" data-i18n="perception">Perception</option>
<option value="Piloting" data-i18n="piloting">Piloting</option>
<option value="Sorcery" data-i18n="sorcery">Sorcery</option>
<option value="Stealth" data-i18n="stealth">Stealth</option>
<option value="Tasking" data-i18n="tasking">Tasking</option>
</select>
<label data-i18n-title="rating" title="rating">
<input name="attr_rating" min="0" placeholder="0" title="@{repeating_skills_${x}_rating}" type="number"/>
</label>
<label data-i18n-title="ratingmodifier" title="Rating Modifier">
<input name="attr_rating_modifier" min="0" placeholder="0" title="@{repeating_skills_${x}_rating_modifier}" type="number"/>
</label>
<select class="attribute-select" name="attr_attribute" title="@{repeating_skills_${x}_attribute}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}" selected="selected">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h2 class="full-row skill_spec" data-i18n="specialization">Specialization (+2)</h2>
<label class="full-row" data-i18n-title="specialization" title="specialization">
<input name="attr_specialization" placeholder="Specalizations" title="@{repeating_skills_${x}_specialization}" type="text"/>
</label>
<h2 class="full-row skill_expert" data-i18n="expertise">Expertise (+3)</h2>
<label class="full-row" data-i18n-title="expertise" title="expertise">
<input name="attr_expertise" placeholder="Expertise" title="@{repeating_skills_${x}_expertise}" type="text"/>
</label>
</div>
</fieldset>
</div>
<div class="rows grunt repeating inline-repeating">
<h1 data-i18n="knowledge">knowledge</h1><br>
<fieldset class="repeating_knowledge">
<input class="toggle red" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<button name="roll_skill" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{type})}}{{desc=@{notes}}}"><span name="attr_name"></span></button>
<div class="settings">
<h2 data-i18n="skill">Skill</h2>
<label data-i18n-title="name" title="Name">
<input name="attr_name" placeholder="Name" title="@{repeating_knowledge_${x}_name}" type="text"/>
</label>
<label data-i18n-title="type" title="Type">
<select class="center" data-i18n-title="type" name="attr_type" title="skill_type">
<option data-i18n="knowledge" value="Knowledge">Knowledge</option>
<option data-i18n="language" value="Language">Language</option>
</select>
</label>
<label data-i18n-title="notes" title="notes"><span data-i18n="notes">Notes</span>
<textarea class="full-row" name="attr_notes" placeholder="Notes" title="@{repeating_knowledge_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows sprite repeating inline-repeating">
<h1 data-i18n="skills">skills</h1>
<fieldset class="repeating_skills">
<input class="toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<button name="roll_skill" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{skill} @{level} + Attribute ?{Attribute|Logic,@{data_processing}|Intuition,@{sleaze}|Charisma,@{attack}|Willpower,@{firewall}|None,0}}}{{dice=[[(@{level}+?{Attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_skill"></span></button>
<div class="settings">
<h2 class="full-row" data-i18n="skill">Skill</h2>
<select class="skill-select" name="attr_skill" title="@{repeating_skills_${x}_skill}">
<option value="Cracking" data-i18n="cracking">Cracking</option>
<option value="Electronics" data-i18n="electronics">Electronics</option>
<option value="Engineering" data-i18n="engineering">Engineering</option>
</select>
</div>
</fieldset>
</div>
<div class="rows spirit repeating inline-repeating">
<h1 data-i18n="skills">Skills</h1>
<fieldset class="repeating_skills">
<input class="toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<button name="roll_skill" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{skill} ^{force} (@{force}) + ^{attribute} (?{Attribute|Body,@{body}|Agility,@{agility}|Reaction,@{reaction}|Strength,@{strength}|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}|Charisma,@{charisma}|None,0})}}{{dice=[[(@{force}+?{Attribute}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_skill"></span></button>
<div class="settings">
<h2 class="full-row" data-i18n="skill">Skill</h2>
<label data-i18n-title="name" title="name">
<input name="attr_skill" placeholder="name" title="@{repeating_skills_${x}_skill}" type="text"/>
</label>
<h2 class="full-row" data-i18n="notes">Notes</h2>
<label class="full-row" data-i18n-title="notes" title="notes">
<textarea class="full-row" name="attr_notes" placeholder="skills notes" title="@{repeating_skills_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows sprite spirit repeating inline-repeating">
<h1 data-i18n="powers">Powers</h1>
<fieldset class="repeating_powers">
<input class="toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<button name="roll_power" type="roll" value="@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=@{name}}}{{desc=@{notes}}}"><span name="attr_name"></span></button>
<div class="settings">
<h2 class="full-row" data-i18n="name">name</h2>
<label data-i18n-title="name" title="name">
<input name="attr_name" placeholder="name" title="@{repeating_powers_${x}_name}" type="text"/>
</label>
<h2 class="full-row" data-i18n="notes">Notes</h2>
<label class="full-row" data-i18n-title="notes" title="notes">
<textarea class="full-row" name="attr_notes" placeholder="Powers notes" title="@{repeating_powers_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows grunt spirit vehicle repeating-container weapon-range">
<h1 data-i18n="rangedweapons">Ranged Weapons</h1>
<div class="row-long headers">
<h2 data-i18n="weapon">Weapon</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="dam">Dam</h2>
<h2 data-i18n="c">C</h2>
<h2 data-i18n="n">N</h2>
<h2 data-i18n="m">M</h2>
<h2 data-i18n="f">F</h2>
<h2 data-i18n="e">E</h2>
<h2 data-i18n="mode">Mode</h2>
<h2 data-i18n="ammo">Ammo</h2>
</div>
<fieldset class="repeating_range">
<input title="@{repeating_range_${x}_rating}" name="attr_rating" type="hidden" value="0" />
<input name="attr_skill" type="hidden" value=""/>
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<input class="flag-primary" name="attr_additional" type="hidden" value=""/>
<input name="attr_dicepool" type="hidden" value=""/>
<input name="attr_damage" type="hidden" value=""/>
<input name="attr_close" type="hidden" value=""/>
<input name="attr_near" type="hidden" value=""/>
<input name="attr_medium" type="hidden" value=""/>
<input name="attr_far" type="hidden" value=""/>
<input name="attr_extreme" type="hidden" value=""/>
<button name="roll_range_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{weapon} (Dicepool: @{dicepool})}}{{dice=[[(@{dicepool}+@{dicepool_modifier}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Mode @{mode}, Damage @{damage}, Dicepool = @{dicepool} + Wounds @{wounds_toggle} + Modifiers @{modifiers_toggle} + Edge @{edge_toggle}, Notes @{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_weapon"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_damage"></span>
<span class="center" name="attr_close"></span>
<span class="center" name="attr_near"></span>
<span class="center" name="attr_medium"></span>
<span class="center" name="attr_far"></span>
<span class="center" name="attr_extreme"></span>
<select name="attr_mode" title="@{mode}">
<option data-i18n="ss" value="SS">SS</option>
<option data-i18n="sa" value="SA">SA</option>
<option data-i18n="bf" value="BF">BF</option>
<option data-i18n="fa" value="FA">FA</option>
<option data-i18n="other" value="Other">Other</option>
</select>
<span class="center" name="attr_ammo"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="weapon" title="weapon">
<input name="attr_weapon" placeholder="Ares Predator" title="@{repeating_range_${x}_weapon}" type="text" value=""/>
</label>
<label data-i18n-title="pool" title="pool">
<input name="attr_dicepool_base" placeholder="" title="@{repeating_range_${x}_dicepool_base}" type="text" value=""/>
</label>
<label data-i18n-title="dam" title="dam">
<input name="attr_damage_base" placeholder="9P" title="@{repeating_range_${x}_damage_base}" type="text" value=""/>
</label>
<label data-i18n-title="c" title="Close">
<input name="attr_close_base" placeholder="-" title="@{repeating_range_${x}_close_base}" type="text" value=""/>
</label>
<label data-i18n-title="n" title="Near">
<input name="attr_near_base" placeholder="-" title="@{repeating_range_${x}_near_base}" type="text" value=""/>
</label>
<label data-i18n-title="m" title="Medium">
<input name="attr_medium_base" placeholder="-" title="@{repeating_range_${x}_medium_base}" type="text" value=""/>
</label>
<label data-i18n-title="f" title="Far">
<input name="attr_far_base" placeholder="-" title="@{repeating_range_${x}_far_base}" type="text" value=""/>
</label>
<label data-i18n-title="e" title="Extreme">
<input name="attr_extreme_base" placeholder="-" title="@{repeating_range_${x}_extreme_base}" type="text" value=""/>
</label>
<span class="center">SS</span>
<label data-i18n-title="ammo" title="ammo">
<input name="attr_ammo" placeholder="15" title="@{repeating_range_${x}_ammo}" type="number" value=""/>
</label>
<span></span>
<span></span>
<div class="row">
<h3 data-i18n="firingmodes">Firing Modes</h3>
<label data-i18n-title="modeoptions" title="Mode Options">
<input name="attr_firing_modes" placeholder="SA/BF/FA" type="text" title="@{repeating_range_${x}_firing_modes}}"/>
</label>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_dicepool_modifier" title="@{repeating_range_${x}_dicepool_modifier}" type="number" value="0"/>
</label>
</div>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_range_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows grunt spirit vehicle rows repeating-container weapon-melee">
<h1 data-i18n="meleeweapons">Melee Weapons</h1>
<div class="row-long headers">
<h2 data-i18n="weapon">Weapon</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="dam">Dam</h2>
<h2 data-i18n="c" title="Close 0-3">C</h2>
<h2 data-i18n="n" title="Near 4-50">N</h2>
<h2 data-i18n="m" title="Medium 51-250">M</h2>
<h2 data-i18n="f" title="Far 251-500">F</h2>
<h2 data-i18n="e" title="Extreme 500+">E</h2>
</div>
<fieldset class="repeating_melee">
<input title="@{repeating_melee_${x}_rating}" name="attr_rating" type="hidden" value="0" />
<input name="attr_skill" type="hidden" value=""/>
<input class="flag-primary" name="attr_primary" type="hidden" value=""/>
<input class="flag-primary" name="attr_additional" type="hidden" value=""/>
<input name="attr_dicepool" type="hidden" value=""/>
<input name="attr_damage" type="hidden" value=""/>
<input name="attr_close" type="hidden" value=""/>
<input name="attr_near" type="hidden" value=""/>
<input name="attr_medium" type="hidden" value=""/>
<input name="attr_far" type="hidden" value=""/>
<input name="attr_extreme" type="hidden" value=""/>
<button name="roll_melee_weapon" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{weapon} (Dicepool: @{dicepool})}}{{dice=[[(@{dicepool}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=DV @{damage}, Notes: @{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_weapon"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_damage"></span>
<span class="center" name="attr_close"></span>
<span class="center" name="attr_near"></span>
<span class="center" name="attr_medium"></span>
<span class="center" name="attr_far"></span>
<span class="center" name="attr_extreme"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<label data-i18n-title="weapon" title="weapon">
<input name="attr_weapon" placeholder="Katana" title="@{repeating_melee_${x}_weapon}" type="text" value=""/>
</label>
<label data-i18n-title="pool" title="pool">
<input name="attr_dicepool_base" placeholder="0d6" title="@{repeating_melee_${x}_dicepool_base}" type="text" value=""/>
</label>
<label data-i18n-title="dam" title="dam">
<input name="attr_damage_base" placeholder="5P" title="@{repeating_melee_${x}_damage_base}" type="text" value=""/>
</label>
<label data-i18n-title="close" title="Close 0-3">
<input name="attr_close_base" placeholder="-" title="@{repeating_melee_${x}_close_base}" type="text" value=""/>
</label>
<label data-i18n-title="near" title="Near 4-50">
<input name="attr_near_base" placeholder="-" title="@{repeating_melee_${x}_near_base}" type="text" value=""/>
</label>
<label data-i18n-title="medium" title="Medium 51-250">
<input name="attr_medium_base" placeholder="-" title="@{repeating_melee_${x}_medium_base}" type="text" value=""/>
</label>
<label data-i18n-title="far" title="Far 251-500">
<input name="attr_far_base" placeholder="-" title="@{repeating_melee_${x}_far_base}" type="text" value=""/>
</label>
<label data-i18n-title="extreme" title="Extreme 500+">
<input name="attr_extreme_base" placeholder="-" title="@{repeating_melee_${x}_extreme_base}" type="text" value=""/>
</label>
<h3 data-i18n="notes">notes</h3>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_notes" placeholder="Notes" title="@{repeating_melee_${x}_notes}"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="rows grunt repeating-container spells hide-magic">
<h1 data-i18n="spells">Spells</h1>
<div class="row-long">
<button data-i18n="drain" name="roll_drain" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{spell} ^{drain}}}{{dice=[[((@{spell_drain_attribute_1}+@{spell_drain_attribute_2}+@{spell_drain_modifier})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}"></button>
<select class="attribute-select" name="attr_spell_drain_attribute_1" title="@{spell_drain_attribute_1}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}">Willpower</option>
<option data-i18n="logic" value="@{logic}" selected="selected">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select><span>+</span>
<select class="attribute-select" name="attr_spell_drain_attribute_2" title="@{spell_drain_attribute_2}">
<option data-i18n="body" value="@{body}">Body</option>
<option data-i18n="agility" value="@{agility}">Agility</option>
<option data-i18n="reaction" value="@{reaction}">Reaction</option>
<option data-i18n="strength" value="@{strength}">Strength</option>
<option data-i18n="willpower" value="@{willpower}" selected="selected">Willpower</option>
<option data-i18n="logic" value="@{logic}">Logic</option>
<option data-i18n="intuition" value="@{intuition}">Intuition</option>
<option data-i18n="charisma" value="@{charisma}">Charisma</option>
<option data-i18n="magic" value="@{magic}">Magic</option>
<option data-i18n="resonance" value="@{resonance}">Resonance</option>
</select>
<h3 data-i18n="modifier">modifier</h3>
<label data-i18n-title="modifier" title="modifier">
<input name="attr_spell_drain_modifier" title="@{spell_drain_modifier}" type="number" value="0"/>
</label>
</div>
<div class="rows headers spells-header">
<h2 data-i18n="name">Name</h2>
<h2 data-i18n="dice">Dice</h2>
<h2 data-i18n="type">Type</h2>
<h2 data-i18n="range">Range</h2>
<h2 data-i18n="duration">Duration</h2>
<h2 data-i18n="drain">Drain</h2>
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<fieldset class="repeating_NPCspell">
<button name="roll_spell" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name} (@{category} ^{magic})}}{{effecttype=@{effect_type}}}{{dice=[[(@{dicepool}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{ampup=[[?{Amp Up|0|1|2|3|4|5|6|7|8|9|10}]]}}{{increasearea=[[?{Increase Area|0m,0|2m,1|4m,2|6m,3|8m,4|10m,5|12m,5|14m,6|16m,8|18m,9|20m,10}*2]]}}{{drain=[[?{Amp Up}*2+?{Increase Area}+(@{drain})]]}}{{desc=@{notes}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span class="center" name="attr_dicepool"></span>
<span class="center" name="attr_type"></span>
<span class="center" name="attr_range"></span>
<span class="center" name="attr_duration"></span>
<span class="center" name="attr_drain"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox" checked="checked"/><span class="pictos">i</span>
<input class="settings-flag" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<div class="collapse"><span name="attr_notes"></span></div>
<div class="settings">
<div class="row1">
<label data-i18n-title="name" title="Name">
<input name="attr_name" placeholder="Fireball" title="@{repeating_NPCspell_${x}_name}" type="text"/>
</label>
<label data-i18n-title="dice" title="Dice">
<input name="attr_dicepool" placeholder="18" title="@{repeating_NPCspell_${x}_dicepool}" type="number"/>
</label>
<select name="attr_type" title="@{repeating_NPCspell_${x}_type}">
<option data-i18n="mana" value="M">mana</option>
<option data-i18n="physical" value="P">physical</option>
</select>
<select name="attr_range" title="@{repeating_NPCspell_${x}_range}">
<option data-i18n="los" value="LOS">los</option>
<option data-i18n="los (a)" value="LOS (A)">los (a)</option>
<option data-i18n="special" value="Special">special</option>
<option data-i18n="touch" value="T">Touch</option>
</select>
<select name="attr_duration" title="@{repeating_NPCspell_${x}_duration}">
<option data-i18n="instant" value="Instant">instant</option>
<option data-i18n="permanent" value="Permanent">permanent</option>
<option data-i18n="special" value="Special">special</option>
<option data-i18n="sustained" value="Sustained">sustained</option>
</select>
<label data-i18n-title="drain" title="Drain">
<input name="attr_drain" placeholder="-1" title="@{repeating_NPCspell_${x}_drain}" type="number"/>
</label>
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<div class="row2">
<input name="attr_category" type="hidden" value="combat"/>
<h3 class="right" data-i18n="category">Category</h3>
<select name="attr_category" title="@{repeating_NPCspell_${x}_category}">
<option data-i18n="combat" value="Combat" selected="selected">combat</option>
<option data-i18n="detection" value="Detection">detection</option>
<option data-i18n="health" value="Health">health</option>
<option data-i18n="illusion" value="Illusion">illusion</option>
<option data-i18n="manipulation" value="Manipulation">manipulation</option>
</select>
<h3 class="right" data-i18n="effecttype">Effect Type</h3>
<select name="attr_effect_type" title="@{repeating_NPCspell_${x}_effect_type}">
<option data-i18n="none" value="" selected="selected">None</option>
<option data-i18n="directcombat" value="Direct Combat">Direct Combat</option>
<option data-i18n="directcombatarea" value="Direct Combat, Area">Direct Combat, Area</option>
<option data-i18n="indirectcombat" value="Indirect Combat">Indirect Combat</option>
<option data-i18n="indirectcombatarea" value="Indirect Combat, Area">Indirect Combat, Area</option>
<option data-i18n="singlesense" value="Single-Sense">Single-Sense</option>
<option data-i18n="multisense" value="Multi-Sense">Multi-Sense</option>
</select>
<h3 class="right" data-i18n="damage">Damage</h3>
<select name="attr_damage" title="@{repeating_NPCspell_${x}_damage}">
<option data-i18n="physical" value="Physical">Physical</option>
<option data-i18n="stun" value="Stun">Stun</option>
<option data-i18n="pspecial" value="Physical, Special">Physical, Special</option>
</select>
<h3 data-i18n="notes">Notes</h3>
<label data-i18n-title="notes" title="Notes">
<textarea class="full-row" name="attr_notes" placeholder="may start fires" title="@{repeating_NPCspell_${x}_notes}" type="text"/></textarea>
</label>
</div>
</div>
</fieldset>
</div>
<div class="rows grunt repeating forms hide-resonance">
<h1 data-i18n="complexform">Complex Forms</h1>
<fieldset class="repeating_form">
<input name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/><span class="pictos">x</span>
<input name="attr_form" type="hidden" value=""/>
<span name="attr_dice"></span>
<button name="roll_complex form" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{name}}}{{dice=[[(@{dice}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=Fade @{fade}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_name"></span></button>
<span name="attr_duration"></span>
<span name="attr_fade"></span>
<div class="settings">
<h2 data-i18n="dice">Dice</h2>
<h2 data-i18n="name">Name</h2>
<h2 data-i18n="duration">Duration</h2>
<h2 data-i18n="fade">Fade</h2>
<label data-i18n-title="dice" title="Dice">
<input name="attr_dice" placeholder="18" title="@{repeating_form_${x}_dice}" type="number"/>
</label>
<label data-i18n-title="name" title="Name">
<input name="attr_name" placeholder="Editor" title="@{repeating_form_${x}_name}" type="text"/>
</label>
<label data-i18n-title="duration" title="Duration">
<select name="attr_duration" title="@{repeating_forms_${x}_duration}">
<option data-i18n="instant" value="Instant">Instant</option>
<option data-i18n="sustained" value="Sustained">Sustained</option>
<option data-i18n="permanent" value="Permanent">Permanent</option>
<option data-i18n="other" value="Other">Other</option>
</select>
</label>
<label data-i18n-title="fade" title="Fade">
<input name="attr_fade" placeholder="+2" title="@{repeating_form_${x}_fade}" type="number"/>
</label>
<label data-i18n-title="notes" title="Notes">
<input name="attr_notes" placeholder="edit files" title="@{repeating_form_${x}_notes}" type="text"/>
</label>
</div>
</fieldset>
</div>
<div class="rows host repeating-container ic">
<h1 data-i18n="intrusioncountermeasures">Intrusion Countermeasures</h1>
<div class="row-long headers">
<span>&nbsp;</span>
<h2 data-i18n="ic">IC</h2>
<h2 data-i18n="pool">Pool</h2>
<h2 data-i18n="ar">AR</h2>
<h2 data-i18n="cm">CM</h2>
<h2 data-i18n="init">Init</h2>
<h2 data-i18n="defense">Defense</h2>
<span>&nbsp;</span>
<span>&nbsp;</span>
</div>
<fieldset class="repeating_IC">
<input name="attr_IC" type="hidden" value=""/>
<input class="toggle" name="attr_powered_on_IC" type="checkbox" value='1'/>
<span class="pictos">Q</span>
<button name="roll_IC" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=^{ic}: @{IC_name}}}{{dice=[[(@{IC_dice}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{desc=vs. @{IC_attribute}+@{IC_matrix}}}{{wilddie=[[@{wild_die}d6]]}}"><span name="attr_IC_name"></span></button>
<span class="center" name="attr_IC_dice"></span>
<span class="center" name="attr_IC_ar"></span>
<label data-i18n-title="cm" title="Condition Monitor">
<input name="attr_IC_cm" title="@{repeating_form_${x}_cm}" type="number"/>
</label>
<button name="roll_IC_init" type="roll" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}:IC}}{{base=^{ic}: ^{initiative}}}{{dice=[[(@{IC_initdice}+@{modifiers_toggle}+@{edge_toggle})d6+@{IC_init}]]}}"><span data-i18n="initiative"></span></button>
<span class="center" name="attr_IC_defense"></span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox" />
<span class="pictos">i</span>
<input class="settings-toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked" />
<span class="pictos">x</span>
<div class="collapse"><span name="attr_IC_note"></span></div>
<div class="settings">
<span>&nbsp;</span>
<label data-i18n-title="name" title="Name">
<input name="attr_IC_name" placeholder="Black" title="@{repeating_IC_${x}_name}" type="text"/>
</label>
<label data-i18n-title="dice" title="Dice">
<input name="attr_IC_dice" title="@{repeating_IC_${x}_dice}" type="number"/>
</label>
<label data-i18n-title="ar" title="Attack Rating">
<input name="attr_IC_ar" title="@{repeating_IC_${x}_ar}" type="number"/>
</label>
<label data-i18n-title="cm" title="Condition Monitor">
<input name="attr_IC_cm" title="@{repeating_IC_${x}_cm}" type="number"/>
</label>
<span class="initiative center">
<label data-i18n-title="init" title="Initiative">
<input name="attr_IC_init" title="@{repeating_IC_${x}_init}" type="number" />
</label>
<span class="tiny">+</span>
<label data-i18n-title="init" title="Initiative Dice">
<input name="attr_IC_initdice" title="@{repeating_IC_${x}_initdice}" type="number" value="3" />
</label>
<span class="tiny">d6</span>
</span>
<span class="defense_attributes center">
<select name="attr_IC_attribute" title="@{repeating_IC_${x}_attribute}">
<option data-i18n="none" value="None">None</option>
<option data-i18n="intuition" value="Intuition">intuition</option>
<option data-i18n="logic" value="Logic">logic</option>
<option data-i18n="willpower" value="Willpower" selected="selected">willpower</option>
</select>
<span class="tiny">+</span>
<select name="attr_IC_matrix" title="@{repeating_IC_${x}_matrix}">
<option data-i18n="none" value="None">None</option>
<option data-i18n="attack" value="Attack">attack</option>
<option data-i18n="sleaze" value="Sleaze">sleaze</option>
<option data-i18n="data_processing" value="Data Processing">data_processing</option>
<option data-i18n="firewall" value="Firewall" selected="selected">firewall</option>
</select>
</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<label data-i18n-title="notes" title="Notes">
<textarea name="attr_IC_note" placeholder="deploy the ic"></textarea>
</label>
</div>
</fieldset>
</div>
<div class="textrow host slaved-devices">
<h1 data-i18n="slaveddevices">Slaved Devices</h1><br>
<span name='attr_slaved_devices'></span>
<label class="settings" data-i18n-title="slaveddevices" title="Slaved Devices">
<textarea class="full-row" name="attr_slaved_devices" placeholder="Cameras, door locks, elevator controls..." title="@{slaved_devices}"></textarea>
</label>
</div>
<div class="textrow host sculpting">
<h1 data-i18n="sculpting">Sculpting</h1><br>
<span name='attr_sculpting'></span>
<label class="settings" data-i18n-title="sculpting" title="Sculpting">
<textarea class="full-row" name="attr_sculpting" placeholder="In VR, the host is designed to look like a large black pyramid..." title="@{sculpting}"></textarea>
</label>
</div>
<div class="textrow host security-procedures">
<h1 data-i18n="securityprocedures">Security Procedures</h1><br>
<span name='attr_security_procedures'></span>
<label class="settings" data-i18n-title="securityprocedures" title="Security Procedures">
<textarea class="full-row" name="attr_security_procedures" placeholder="Patrol IC running at all times, Once alarmed, the host launches IC in this order..." title="@{security_procedures}"></textarea>
</label>
</div>
<div class="textrow host pay-data">
<h1 data-i18n="paydata">Pay Data</h1><br>
<span name='attr_pay_data'></span>
<label class="settings" data-i18n-title="paydata" title="Pay Data">
<textarea class="full-row" name="attr_pay_data" placeholder="Housekeeping codes worth 500nuyen if sold within a week..." title="@{pay_data}"></textarea>
</label>
</div>
<div class="textrow grunt host sprite spirit vehicle notes">
<h1 data-i18n="notes">Notes</h1><br>
<span name='attr_notes'></span>
<label class="settings" data-i18n-title="notes" title="Notes">
<textarea class="full-row" name="attr_notes" placeholder="" title="@{notes}"></textarea>
</label>
</div>
</div>
<input name="attr_flag_matrix" type="hidden" value=""/>
<div class="matrix body matrix-device">
<div class="rows">
<h1 data-i18n="matrixdevice">Matrix Device</h1>
<label data-i18n-title="device" title="device">
<input name="attr_device_name" placeholder="Sony CIY-720" type="text"/>
</label>
<button data-i18n="devicerating" name="device rating" value="@{gm_toggle} &{template:rolls}{{mod=[[@{modifiers_toggle}]]}}{{wound=[[@{wounds_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{header=@{character_name}}}{{base=@{device_name} ^{device} ^{rating}}}{{dice=[[(@{device_rating}+@{wounds_toggle}+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}" type="roll">Device Rating</button>
<label class="round" data-i18n-title="devicerating" title="devicerating">
<input name="attr_device_rating" placeholder="4" type="number" value=""/>
</label>
</div>
<div class="rows">
<button data-i18n="attack" name="Attack" value="&{template:rolls}{{header=@{character_name}}}{{base=^{attack}}}{{dice=[[(@{attack}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" type="roll">Attack</button>
<div class="matrix-bubble matrixAttack">
<input name="attr_attack" value="0" type="radio"/><span></span>
<input name="attr_attack" value="1" type="radio"/><span></span>
<input name="attr_attack" value="2" type="radio"/><span></span>
<input name="attr_attack" value="3" type="radio"/><span></span>
<input name="attr_attack" value="4" type="radio"/><span></span>
<input name="attr_attack" value="5" type="radio"/><span></span>
<input name="attr_attack" value="6" type="radio"/><span></span>
<input name="attr_attack" value="7" type="radio"/><span></span>
<input name="attr_attack" value="8" type="radio"/><span></span>
<input name="attr_attack" value="9" type="radio"/><span></span>
<input name="attr_attack" value="10" type="radio"/><span></span>
<input name="attr_attack" value="11" type="radio"/><span></span>
<input name="attr_attack" value="12" type="radio"/><span></span>
<input name="attr_attack" value="13" type="radio"/><span></span>
<input name="attr_attack" value="14" type="radio"/><span></span>
<input name="attr_attack" value="15" type="radio"/><span></span>
<input name="attr_attack" value="16" type="radio"/><span></span>
<input name="attr_attack" value="17" type="radio"/><span></span>
<input name="attr_attack" value="18" type="radio"/><span></span>
<input name="attr_attack" value="19" type="radio"/><span></span>
<input name="attr_attack" value="20" type="radio"/><span></span>
</div>
<label class="round" data-i18n-title="attack" title="attack">
<input name="attr_attack" placeholder="4" type="number" value=""/>
</label>
</div>
<div class="rows">
<button data-i18n="sleaze" name="Sleaze" value="&{template:rolls}{{header=@{character_name}}}{{base=^{sleaze}}}{{dice=[[(@{sleaze}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" type="roll">Sleaze</button>
<div class="matrix-bubble matrixSleaze">
<input name="attr_sleaze" value="0" type="radio"/><span></span>
<input name="attr_sleaze" value="1" type="radio"/><span></span>
<input name="attr_sleaze" value="2" type="radio"/><span></span>
<input name="attr_sleaze" value="3" type="radio"/><span></span>
<input name="attr_sleaze" value="4" type="radio"/><span></span>
<input name="attr_sleaze" value="5" type="radio"/><span></span>
<input name="attr_sleaze" value="6" type="radio"/><span></span>
<input name="attr_sleaze" value="7" type="radio"/><span></span>
<input name="attr_sleaze" value="8" type="radio"/><span></span>
<input name="attr_sleaze" value="9" type="radio"/><span></span>
<input name="attr_sleaze" value="10" type="radio"/><span></span>
<input name="attr_sleaze" value="11" type="radio"/><span></span>
<input name="attr_sleaze" value="12" type="radio"/><span></span>
<input name="attr_sleaze" value="13" type="radio"/><span></span>
<input name="attr_sleaze" value="14" type="radio"/><span></span>
<input name="attr_sleaze" value="15" type="radio"/><span></span>
<input name="attr_sleaze" value="16" type="radio"/><span></span>
<input name="attr_sleaze" value="17" type="radio"/><span></span>
<input name="attr_sleaze" value="18" type="radio"/><span></span>
<input name="attr_sleaze" value="19" type="radio"/><span></span>
<input name="attr_sleaze" value="20" type="radio"/><span></span>
</div>
<label class="round" data-i18n-title="sleaze" title="sleaze">
<input name="attr_sleaze" placeholder="4" type="number" value=""/>
</label>
</div>
<div class="rows">
<button data-i18n="data_processing" name="Data Processing" value="&{template:rolls}{{header=@{character_name}}}{{base=^{data_processing}}}{{dice=[[(@{data_processing}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" type="roll">Data Processing</button>
<div class="matrix-bubble matrixData">
<input name="attr_data_processing" value="0" type="radio"/><span></span>
<input name="attr_data_processing" value="1" type="radio"/><span></span>
<input name="attr_data_processing" value="2" type="radio"/><span></span>
<input name="attr_data_processing" value="3" type="radio"/><span></span>
<input name="attr_data_processing" value="4" type="radio"/><span></span>
<input name="attr_data_processing" value="5" type="radio"/><span></span>
<input name="attr_data_processing" value="6" type="radio"/><span></span>
<input name="attr_data_processing" value="7" type="radio"/><span></span>
<input name="attr_data_processing" value="8" type="radio"/><span></span>
<input name="attr_data_processing" value="9" type="radio"/><span></span>
<input name="attr_data_processing" value="10" type="radio"/><span></span>
<input name="attr_data_processing" value="11" type="radio"/><span></span>
<input name="attr_data_processing" value="12" type="radio"/><span></span>
<input name="attr_data_processing" value="13" type="radio"/><span></span>
<input name="attr_data_processing" value="14" type="radio"/><span></span>
<input name="attr_data_processing" value="15" type="radio"/><span></span>
<input name="attr_data_processing" value="16" type="radio"/><span></span>
<input name="attr_data_processing" value="17" type="radio"/><span></span>
<input name="attr_data_processing" value="18" type="radio"/><span></span>
<input name="attr_data_processing" value="19" type="radio"/><span></span>
<input name="attr_data_processing" value="20" type="radio"/><span></span>
</div>
<label class="round" data-i18n-title="data_processing" title="data_processing">
<input name="attr_data_processing" placeholder="4" type="number" value=""/>
</label>
</div>
<div class="rows">
<button data-i18n="firewall" name="Firewall" value="&{template:rolls}{{header=@{character_name}}}{{base=^{firewall}}}{{dice=[[(@{firewall}+(?{Attribute|Willpower,@{willpower}|Logic,@{logic}|Intuition,@{intuition}})+@{modifiers_toggle}+@{edge_toggle})d6>5@{explode_toggle}]]}}{{mod=[[@{modifiers_toggle}]]}}{{edge=[[@{edge_toggle}]]}}{{wilddie=[[@{wild_die}d6]]}}" type="roll">Firewall</button>
<div class="matrix-bubble matrixFirewall">
<input name="attr_firewall" value="0" type="radio"/><span></span>
<input name="attr_firewall" value="1" type="radio"/><span></span>
<input name="attr_firewall" value="2" type="radio"/><span></span>
<input name="attr_firewall" value="3" type="radio"/><span></span>
<input name="attr_firewall" value="4" type="radio"/><span></span>
<input name="attr_firewall" value="5" type="radio"/><span></span>
<input name="attr_firewall" value="6" type="radio"/><span></span>
<input name="attr_firewall" value="7" type="radio"/><span></span>
<input name="attr_firewall" value="8" type="radio"/><span></span>
<input name="attr_firewall" value="9" type="radio"/><span></span>
<input name="attr_firewall" value="10" type="radio"/><span></span>
<input name="attr_firewall" value="11" type="radio"/><span></span>
<input name="attr_firewall" value="12" type="radio"/><span></span>
<input name="attr_firewall" value="13" type="radio"/><span></span>
<input name="attr_firewall" value="14" type="radio"/><span></span>
<input name="attr_firewall" value="15" type="radio"/><span></span>
<input name="attr_firewall" value="16" type="radio"/><span></span>
<input name="attr_firewall" value="17" type="radio"/><span></span>
<input name="attr_firewall" value="18" type="radio"/><span></span>
<input name="attr_firewall" value="19" type="radio"/><span></span>
<input name="attr_firewall" value="20" type="radio"/><span></span>
</div>
<label class="round" data-i18n-title="firewall" title="firewall">
<input name="attr_firewall" placeholder="4" type="number" value=""/>
</label>
</div>
<div class="rows repeating">
<h1 data-i18n="programs">Programs</h1>
<fieldset class="repeating_programs">
<input class="toggle" name="attr_powered_on" type="checkbox" checked="checked"/>
<span class="pictos">Q</span>
<button name="roll_program" type="roll" value="@{gm_toggle} &amp;{template:rolls}{{header=@{character_name}}}{{base=@{program}}}{{desc=@{program_note}}}"><span name="attr_program"></span></button>
<input class="toggle" name="attr_flag" title="Settings toggle" type="checkbox" checked="checked"/>
<span class="pictos">x</span>
<input class="collapse-flag" name="attr_display_flag" type="checkbox"/>
<span class="pictos">i</span>
<div class="collapse">
<span name="attr_program_note"></span>
</div>
<div class="settings">
<h2 data-i18n="name">name</h2>
<label data-i18n-title="name" title="name">
<input name="attr_program" placeholder="Program Name" title="@{repeating_programs_${x}_program}" type="text" value=""/>
</label>
<h2 data-i18n="notes">notes</h2>
<label data-i18n-title="notes" title="notes">
<textarea name="attr_program_note" placeholder="Program Description" title="@{repeating_programs_${x}_program_note}"></textarea>
</label>
</div>
</fieldset>
</div>
</div>
</div>
<div class="footer">
<div>
<span data-i18n="copyrightfooter">The Topps Company, Inc. has sole ownership of the names, logo, artwork, marks, photographs, sounds, audio, video and/or any proprietary material used in influence with the game Shadowrun. The Topps Company, Inc. has granted permission to use such names, logos, artwork, marks and/or any proprietary materials for promotional and informational purposes on its website but does not endorse, and is not affiliated with any official capacity whatsoever.
</span>
<span>Version </span><span name="attr_version"></span>
</div>
</div>
<div class="rolltemplates">
<!--Roll Template for Generic Info 6 each desc and bigdesc rows-->
<rolltemplate class="rolltemplate-multirow">
<div class="template-body">
<div class="template-header">
{{#header}}{{header}}{{/header}}
{{#base}}<br><span>{{base}}</span>{{/base}}
</div>
{{#desc}}<div class="template-row">
<span class="template-desc">
{{desc}}
</span>
</div>{{/desc}}
{{#bigdesc}}<div class="template-row">
{{bigdesc}}
</div>{{/bigdesc}}
{{#divided}}<div class="template-row split">
<span>{{#left}}{{left}}{{/left}}</span>
<span>{{#right}}{{right}}{{/right}}</span>
</div>{{/divided}}
{{#desc2}}<div class="template-row">
<span class="template-desc">
{{desc2}}
</span>
</div>{{/desc2}}
{{#bigdesc2}}<div class="template-row">
{{bigdesc2}}
</div>{{/bigdesc2}}
{{#divided2}}<div class="template-row split">
<span>{{#left2}}{{left2}}{{/left2}}</span>
<span>{{#right2}}{{right2}}{{/right2}}</span>
</div>{{/divided2}}
{{#desc3}}<div class="template-row">
<span class="template-desc">
{{desc3}}
</span>
</div>{{/desc3}}
{{#bigdesc3}}<div class="template-row">
{{bigdesc3}}
</div>{{/bigdesc3}}
{{#divided3}}<div class="template-row split">
<span>{{#left3}}{{left3}}{{/left3}}</span>
<span>{{#right3}}{{right3}}{{/right3}}</span>
</div>{{/divided3}}
{{#desc4}}<div class="template-row">
<span class="template-desc">
{{desc4}}
</span>
</div>{{/desc4}}
{{#bigdesc4}}<div class="template-row">
{{bigdesc4}}
</div>{{/bigdesc4}}
{{#divided4}}<div class="template-row split">
<span>{{#left4}}{{left4}}{{/left4}}</span>
<span>{{#right4}}{{right4}}{{/right4}}</span>
</div>{{/divided4}}
{{#desc5}}<div class="template-row">
<span class="template-desc">
{{desc5}}
</span>
</div>{{/desc5}}
{{#bigdesc5}}<div class="template-row">
{{bigdesc5}}
</div>{{/bigdesc5}}
{{#divided5}}<div class="template-row split">
<span>{{#left5}}{{left5}}{{/left5}}</span>
<span>{{#right5}}{{right5}}{{/right5}}</span>
</div>{{/divided5}}
{{#desc6}}<div class="template-row">
<span class="template-desc">
{{desc6}}
</span>
</div>{{/desc6}}
{{#bigdesc6}}<div class="template-row">
{{bigdesc6}}
</div>{{/bigdesc6}}
{{#divided6}}<div class="template-row split">
<span>{{#left6}}{{left6}}{{/left6}}</span>
<span>{{#right6}}{{right6}}{{/right6}}</span>
</div>{{/divided6}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-multirow">
<div class="sheet-template-body">
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}
{{#base}}<br><span>{{base}}</span>{{/base}}
</div>
{{#desc}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc}}
</span>
</div>{{/desc}}
{{#bigdesc}}<div class="sheet-template-row">
{{bigdesc}}
</div>{{/bigdesc}}
{{#divided}}<div class="sheet-template-row sheet-split">
<span>{{#left}}{{left}}{{/left}}</span>
<span>{{#right}}{{right}}{{/right}}</span>
</div>{{/divided}}
{{#desc2}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc2}}
</span>
</div>{{/desc2}}
{{#bigdesc2}}<div class="sheet-template-row">
{{bigdesc2}}
</div>{{/bigdesc2}}
{{#divided2}}<div class="sheet-template-row sheet-split">
<span>{{#left2}}{{left2}}{{/left2}}</span>
<span>{{#right2}}{{right2}}{{/right2}}</span>
</div>{{/divided2}}
{{#desc3}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc3}}
</span>
</div>{{/desc3}}
{{#bigdesc3}}<div class="sheet-template-row">
{{bigdesc3}}
</div>{{/bigdesc3}}
{{#divided3}}<div class="sheet-template-row sheet-split">
<span>{{#left3}}{{left3}}{{/left3}}</span>
<span>{{#right3}}{{right3}}{{/right3}}</span>
</div>{{/divided3}}
{{#desc4}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc4}}
</span>
</div>{{/desc4}}
{{#bigdesc4}}<div class="sheet-template-row">
{{bigdesc4}}
</div>{{/bigdesc4}}
{{#divided4}}<div class="sheet-template-row sheet-split">
<span>{{#left4}}{{left4}}{{/left4}}</span>
<span>{{#right4}}{{right4}}{{/right4}}</span>
</div>{{/divided4}}
{{#desc5}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc5}}
</span>
</div>{{/desc5}}
{{#bigdesc5}}<div class="sheet-template-row">
{{bigdesc5}}
</div>{{/bigdesc5}}
{{#divided5}}<div class="sheet-template-row sheet-split">
<span>{{#left5}}{{left5}}{{/left5}}</span>
<span>{{#right5}}{{right5}}{{/right5}}</span>
</div>{{/divided5}}
{{#desc6}}<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc6}}
</span>
</div>{{/desc6}}
{{#bigdesc6}}<div class="sheet-template-row">
{{bigdesc6}}
</div>{{/bigdesc6}}
{{#divided6}}<div class="sheet-template-row sheet-split">
<span>{{#left6}}{{left6}}{{/left6}}</span>
<span>{{#right6}}{{right6}}{{/right6}}</span>
</div>{{/divided6}}
</div>
</rolltemplate>
<!--Roll Template for sharing Quality Info-->
<rolltemplate class="rolltemplate-quality">
<div class="template-body">
<div class="template-header">
{{#header}}{{header}}{{/header}}
{{#base}}<br><span>{{base}}</span>{{/base}}
{{#rating}}<br><span>Rating: {{rating}}</span>{{/rating}}
</div>
<div class="template-row">
<span class="template-desc">
{{#desc}}{{desc}}{{/desc}}
</span>
</div>
</div>
</rolltemplate>
<!--Roll Template for sharing Quality Info-->
<rolltemplate class="sheet-rolltemplate-quality">
<div class="sheet-template-body">
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}
{{#base}}<br><span>{{base}}</span>{{/base}}
{{#rating}}<br><span>Rating: {{rating}}</span>{{/rating}}
</div>
<div class="sheet-template-row">
<span class="sheet-template-desc">
{{#desc}}{{desc}}{{/desc}}
</span>
</div>
</div>
</rolltemplate>
<!--Roll Template for sharing Contact Info-->
<rolltemplate class="rolltemplate-contact">
<div class="template-body">
<div class="template-header">
{{#header}}{{header}}{{/header}}
</div>
{{#name}}<div class="template-row">{{name}}</div>{{/name}}
<div class="template-row sheet-split">
<span>{{#loyalty}}Loyalty<br>{{loyalty}}{{/loyalty}}</span>
<span>{{#connection}}Connection<br>{{connection}}{{/connection}}</span>
</div>
{{#desc}}
<div class="template-row">
<span class="template-desc">
{{desc}}
</span>
</div>
{{/desc}}
<div class="template-row">
<span class="template-desc">
[Roll Loyalty](~{{header}}|Loyalty{{loyalty}})
</span>
<span class="template-desc">
[Roll Connections](~{{header}}|Connections{{connection}})
</span>
</div>
</div>
</rolltemplate>
<!--Roll Template for sharing Contact Info-->
<rolltemplate class="sheet-rolltemplate-contact">
<div class="sheet-template-body">
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}
</div>
{{#name}}<div class="sheet-template-row">{{name}}</div>{{/name}}
<div class="sheet-template-row sheet-split">
<span>{{#loyalty}}Loyalty<br>{{loyalty}}{{/loyalty}}</span>
<span>{{#connection}}Connection<br>{{connection}}{{/connection}}</span>
</div>
{{#desc}}
<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc}}
</span>
</div>
{{/desc}}
<div class="sheet-template-row">
<span class="sheet-template-desc">
[Roll Loyalty](~{{header}}|Loyalty{{loyalty}})
</span>
<span class="sheet-template-desc">
[Roll Connections](~{{header}}|Connections{{connection}})
</span>
</div>
</div>
</rolltemplate>
<!--Roll Template for rolling without Focus-->
<rolltemplate class="sheet-rolltemplate-rolls">
<div class="sheet-template-body">
<div class="sheet-template-header">
{{#header}}{{header}}{{/header}}{{#spec}}<span> ({{spec}})</span>{{/spec}}<br />
{{#arm}}<span>{{arm}}</span>{{/arm}}
{{#base}}<span>{{base}}</span><br>{{/base}}
{{#rollLess() wound 0}}<span>|</span><span data-i18n="wounds">Wounds</span> ({{wound}})<span>|</span>{{/rollLess() wound 0}}
{{#rollLess() mod 0}}<span>|</span><span data-i18n="modifier">Modifier</span> ({{mod}})<span>|</span>{{/rollLess() mod 0}}
{{#rollGreater() mod 0}}<span>|</span><span data-i18n="modifier">Modifier</span> ({{mod}})<span>|</span>{{/rollGreater() mod 0}}
{{#rollGreater() edge 0}}<span>|</span><span data-i18n="edge">Edge</span> ({{edge}})<span>|</span>{{/rollGreater() edge 0}}
{{#rollGreater() combat_paralysis 0}}<span>|</span><span data-i18n="combat_paralysis">Combat Paralysis</span><span>|</span>{{/rollGreater() combat_paralysis 0}}
{{#effecttype}}<br /><span>{{effecttype}}</span>{{/effecttype}}
</div>
{{#rollGreater() computed::glitch 0}}
{{#rollLess() computed::glitch 2}}<div class="sheet-template-row red"><span class="sheet-red">GLITCH!</span></div>{{/rollLess() computed::glitch 2}}
{{#rollGreater() computed::glitch 1}}<div class="sheet-template-row red"><span class="sheet-red">CRITICAL GLITCH!</span></div>{{/rollGreater() computed::glitch 1}}
{{/rollGreater() computed::glitch 0}}
{{#dice}}<div class="sheet-template-row">Hits: {{dice}}</div>{{/dice}}
{{#rollGreater() wilddie 0}}
<div class="sheet-template-row">Wild Die Rolled! {{wilddie}}<br>
{{#rollLess() wilddie 2}}
<div class="sheet-template-row"><span class="sheet-red">Remove all 5s!</span></div>
{{/rollLess() wilddie 2}}
{{#rollBetween() wilddie 2 4}}
<div class="sheet-template-row">No Change!</div>
{{/rollBetween() wilddie 2 4}}
{{#rollGreater() wilddie 4}}
<div class="sheet-template-row green"><span class="sheet-green">+3 Hits!</span></div>
{{/rollGreater() wilddie 4}}
</div>
{{/rollGreater() wilddie 0}}
{{#rating}}<div class="sheet-template-row">{{rating}}</div>{{/rating}}
{{#ampup}}{{#rollGreater() ampup 0}}
<div class="sheet-template-row">
<span class="sheet-template-desc">Amp Up: {{ampup}}</span>
</div>
{{/rollGreater() ampup 0}}{{/ampup}}
{{#drain}}{{#rollGreater() drain 0}}
<div class="sheet-template-row">
<span class="sheet-template-desc">Drain: {{drain}}</span>
</div>
{{/rollGreater() drain 0}}{{/drain}}
{{#increasearea}}{{#rollGreater() increasearea 0}}
<div class="sheet-template-row">
<span class="sheet-template-desc">Increase Area: {{increasearea}}m</span>
</div>
{{/rollGreater() increasearea 0}}{{/increasearea}}
{{#fade}}{{#rollGreater() fade 0}}
<div class="sheet-template-row">
<span class="sheet-template-desc">Fade: {{fade}}</span>
</div>
{{/rollGreater() fade 0}}{{/fade}}
{{#desc}}
<div class="sheet-template-row">
<span class="sheet-template-desc">
{{desc}}
{{#rollGreater() rea 0}}, <span data-i18n="reach">Reach</span> {{rea}}{{/rollGreater() rea 0}}
{{#rollLess() drain 2}}, <span data-i18n="drain-2">Drain 2</span>{{/rollLess() drain 2}}
</span>
</div>
{{/desc}}
{{#opp}}<div class="sheet-template-row">{{opp}}</div>{{/opp}}
</div>
</rolltemplate>
</div>
<input type="hidden" name="attr_wounds" value="0" />
<input type="hidden" name="attr_explode_toggle" value="" />
<input type="hidden" name="attr_attribute_roll" value="" />
<input type="hidden" name="attr_armor_name" value="select a Primary in Arms" />
<input type="hidden" name="attr_soak" value="3" />
<input type="hidden" name="attr_armor" value="3" />
<input type="hidden" name="attr_chem_protection" value="3" />
<input type="hidden" name="attr_cold_protection" value="3" />
<input type="hidden" name="attr_elec_protection" value="3" />
<input type="hidden" name="attr_fire_protection" value="3" />
<input type="hidden" name="attr_radiation_protection" value="3" />
<input type="hidden" name="attr_primary_range_weapon" value="select a Primary in Arms" />
<input type="hidden" name="attr_primary_range_weapon_skill" />
<input type="hidden" name="attr_primary_range_weapon_damage" />
<input type="hidden" name="attr_primary_range_weapon_dicepool" />
<input type="hidden" name="attr_primary_range_weapon_spec" />
<input type="hidden" name="attr_primary_range_weapon_expert" />
<input type="hidden" name="attr_primary_range_weapon_ammo" />
<input type="hidden" name="attr_shots_fired" value="1" />
<input type="hidden" name="attr_primary_melee_weapon" value="select a Primary in Arms" />
<input type="hidden" name="attr_primary_melee_weapon_skill" />
<input type="hidden" name="attr_primary_melee_weapon_damage" />
<input type="hidden" name="attr_primary_melee_weapon_dicepool" />
<input type="hidden" name="attr_primary_melee_weapon_reach" />
<input type="hidden" name="attr_aug_essence_cost" value="0" />
<input type="hidden" name="attr_initiative_mod" value="0" />
<input type="hidden" name="attr_initiative_dice" value="1" />
<input type="hidden" name="attr_astral_mod" value="6" />
<input type="hidden" name="attr_astral_dice" value="2" />
<input type="hidden" name="attr_matrix_mod" value="0" />
<input type="hidden" name="attr_matrix_dice" />
<input type="hidden" name="attr_matrix_dice_mod" value="0" />
<input type="hidden" name="attr_cold_sim_mod" value="0" />
<input type="hidden" name="attr_cold_sim_dice" />
<input type="hidden" name="attr_cold_sim_dice_mod" value="0" />
<input type="hidden" name="attr_hot_sim_mod" value="0" />
<input type="hidden" name="attr_hot_sim_dice" />
<input type="hidden" name="attr_hot_sim_dice_mod" value="0" />
<input type="hidden" name="attr_walk" value="12" />
<input type="hidden" name="attr_run" value="24" />
<input type="hidden" name="attr_physical" value="10" />
<input type="hidden" name="attr_stun" value="10" />
<input type="hidden" name="attr_physical_max" value="10" />
<input type="hidden" name="attr_stun_max" value="10" />
<input type="hidden" name="attr_matrix" value="10" />
<input type="hidden" name="attr_matrix_max" value="10" />
<input type="hidden" name="attr_defense" value="6" />
<input type="hidden" name="attr_acting" value="0" />
<input type="hidden" name="attr_aeronauticsmechanic" value="0" />
<input type="hidden" name="attr_alchemy" value="0" />
<input type="hidden" name="attr_animalhandling" value="0" />
<input type="hidden" name="attr_arcana" value="0" />
<input type="hidden" name="attr_archery" value="0" />
<input type="hidden" name="attr_armorer" value="0" />
<input type="hidden" name="attr_artificing" value="0" />
<input type="hidden" name="attr_artisan" value="0" />
<input type="hidden" name="attr_assensing" value="0" />
<input type="hidden" name="attr_astralcombat" value="0" />
<input type="hidden" name="attr_athletics" value="0" />
<input type="hidden" name="attr_automatics" value="0" />
<input type="hidden" name="attr_automotivemechanic" value="0" />
<input type="hidden" name="attr_banishing" value="0" />
<input type="hidden" name="attr_binding" value="0" />
<input type="hidden" name="attr_biotech" value="0" />
<input type="hidden" name="attr_biotechnology" value="0" />
<input type="hidden" name="attr_blades" value="0" />
<input type="hidden" name="attr_chemistry" value="0" />
<input type="hidden" name="attr_closecombat" value="0" />
<input type="hidden" name="attr_clubs" value="0" />
<input type="hidden" name="attr_compiling" value="0" />
<input type="hidden" name="attr_computer" value="0" />
<input type="hidden" name="attr_con" value="0" />
<input type="hidden" name="attr_conjuring" value="0" />
<input type="hidden" name="attr_counterspelling" value="0" />
<input type="hidden" name="attr_cracking" value="0" />
<input type="hidden" name="attr_cybercombat" value="0" />
<input type="hidden" name="attr_cybertechnology" value="0" />
<input type="hidden" name="attr_decompiling" value="0" />
<input type="hidden" name="attr_demolitions" value="0" />
<input type="hidden" name="attr_disenchanting" value="0" />
<input type="hidden" name="attr_disguise" value="0" />
<input type="hidden" name="attr_diving" value="0" />
<input type="hidden" name="attr_electronics" value="0" />
<input type="hidden" name="attr_electronicwarfare" value="0" />
<input type="hidden" name="attr_enchanting" value="0" />
<input type="hidden" name="attr_engineering" value="0" />
<input type="hidden" name="attr_escapeartist" value="0" />
<input type="hidden" name="attr_etiquette" value="0" />
<input type="hidden" name="attr_exoticmelee" value="0" />
<input type="hidden" name="attr_exoticrange" value="0" />
<input type="hidden" name="attr_exoticweapons" value="0" />
<input type="hidden" name="attr_firearms" value="0" />
<input type="hidden" name="attr_firstaid" value="0" />
<input type="hidden" name="attr_flight" value="0" />
<input type="hidden" name="attr_forgery" value="0" />
<input type="hidden" name="attr_freefall" value="0" />
<input type="hidden" name="attr_gunnery" value="0" />
<input type="hidden" name="attr_gymnastics" value="0" />
<input type="hidden" name="attr_hacking" value="0" />
<input type="hidden" name="attr_hardware" value="0" />
<input type="hidden" name="attr_heavyweapons" value="0" />
<input type="hidden" name="attr_impersonation" value="0" />
<input type="hidden" name="attr_industrialmechanic" value="0" />
<input type="hidden" name="attr_influence" value="0" />
<input type="hidden" name="attr_instruction" value="0" />
<input type="hidden" name="attr_intimidation" value="0" />
<input type="hidden" name="attr_leadership" value="0" />
<input type="hidden" name="attr_locksmith" value="0" />
<input type="hidden" name="attr_longarms" value="0" />
<input type="hidden" name="attr_medicine" value="0" />
<input type="hidden" name="attr_nauticalmechanic" value="0" />
<input type="hidden" name="attr_navigation" value="0" />
<input type="hidden" name="attr_negotiation" value="0" />
<input type="hidden" name="attr_outdoors" value="0" />
<input type="hidden" name="attr_palming" value="0" />
<input type="hidden" name="attr_perception" value="0" />
<input type="hidden" name="attr_performance" value="0" />
<input type="hidden" name="attr_pilot" value="0" />
<input type="hidden" name="attr_pistols" value="0" />
<input type="hidden" name="attr_registering" value="0" />
<input type="hidden" name="attr_ritualspellcasting" value="0" />
<input type="hidden" name="attr_running" value="0" />
<input type="hidden" name="attr_sneaking" value="0" />
<input type="hidden" name="attr_software" value="0" />
<input type="hidden" name="attr_sorcery" value="0" />
<input type="hidden" name="attr_spellcasting" value="0" />
<input type="hidden" name="attr_stealth" value="0" />
<input type="hidden" name="attr_summoning" value="0" />
<input type="hidden" name="attr_survival" value="0" />
<input type="hidden" name="attr_swimming" value="0" />
<input type="hidden" name="attr_tasking" value="0" />
<input type="hidden" name="attr_throwingweapons" value="0" />
<input type="hidden" name="attr_tracking" value="0" />
<input type="hidden" name="attr_unarmedcombat" value="0" />
<input type="hidden" name="attr_combat_paralysis" value="0" />
<input type="hidden" name="attr_combat_paralysis_initiative_mod" value="" />
<input type="hidden" name="attr_bad_luck" value="1" />
<input type="hidden" name="attr_sheet_version" value="0.40">
<input type="hidden" name="attr_data_version" value="0">
<script type="text/worker">
//Sheet workers
on("change:repeating_spell:notes change:repeating_npcspell:notes change:repeating_augmentations:notes change:repeating_quality:notes", (eventInfo) => {
if(eventInfo.sourceType != 'player') {
return;
}
var rep_row = eventInfo.sourceAttribute.match(/(repeating_[^_]+?)_([^_]+?)_(.+)/);
var note = eventInfo.newValue;
var dat = {};
if(note.search("JSON=") == 0) {
note = note.slice(5);
dat = JSON.parse(note);
toSave = {};
Object.keys(dat).forEach(k => {
toSave[`${rep_row[1]}_${rep_row[2]}_${k}`] = dat[k];
});
setAttrs(toSave);
}
});
on("clicked:natural_healing_physical", (eventInfo) => {
console.log("clicked");
console.log(eventInfo);
getAttrs(["bad_luck"], (v) => {
startRoll("@{gm_toggle} &{template:rolls}{{header=@{character_name}}}{{base=^{natural} ^{healing} ^{physical}\n^{body} + ^{body}}}{{dice=[[(@{body}+@{body}+?{Medical Care?|No,0|Yes,2})d6>5]]}}{{desc=Natural Healing (Physical), This test can be performed once per 24 hours of rest to recover Overflow/Physical damage. &star; Duration is halved with the Quick Healer quality.}}{{wilddie=[[@{wild_die}d6]]}}{{glitch=[[0]]}}", (results) => {
console.log(results.results);
var rolled = results.results.dice.dice;
console.log("Wild Die: "+results.results.wilddie.result);
var hits_threshold = 5;
if(results.results.wilddie && results.results.wilddie.result < 2) {
hits_threshold = 6;
}
var hits = rolled.reduce((a, v) => (v >= hits_threshold ? a + 1 : a), 0);
console.log("Hit Threshold: "+hits_threshold);
if(results.results.wilddie && results.results.wilddie.result >= 5) {
console.log("Wild Die Rolled High!");
hits = hits + 3;
}
var glitch_threshold = 1;
if(parseInt(v.bad_luck) > 0) {
glitch_threshold = 2;
}
var glitches = rolled.reduce((a, v) => (v <= glitch_threshold ? a + 1 : a), 0);
console.log("Glitch Threshold: "+glitch_threshold);
var glitch = 0;
if(glitches > rolled.length / 2) {
if(hits) {
glitch = 1;
} else {
glitch = 2;
}
}
console.log("Hits: "+hits+" Glitches: "+glitches+" Glitch: "+glitch);
results.results.dice.result = 100;
finishRoll(
results.rollId, {
dice: hits,
glitch: glitch,
}
);
});
});
});
on("sheet:opened", function() {
getAttrs(['sheet_type', 'sheet_version', 'data_version'], (v) => {
console.log(`%c Shadowrun 6th World v${v['sheet_version']}`, "color: blue; font-weight:bold");
console.log(`%c Sheet Type: ${v['sheet_type']}`, "color: red; font-weight:bold");
console.log(`%c Data Version: v${v['data_version']}`, "color: black; font-weight:bold");
if(v.sheet_version != v.data_version) {
console.log("Sheet and Data version mismatch, updating...");
switch(v.data_version) {
case '0':
// fixed broken soak values
update_common_rolls(["body", "soak_modifier", "soak_temp", `soak_temp_flag`]);
['body', 'agility', 'reaction', 'strength', 'willpower', 'logic', 'intuition', 'charisma', 'magic', 'resonance'].forEach(attr => {
update_attributes(attr);
});
update_essence();
techno_update();
update_initiative();
update_astral_initiative();
update_matrix_initiative();
sprite_update();
case '0.37':
_pre_v37_update();
console.log("Data now fits v.37");
case '0.38':
_v38_update();
console.log("Data now fits v.38");
case '0.39':
_v39_update();
console.log("Data now fits v.39");
default:
setAttrs({
'data_version': v.sheet_version
});
break;
}
console.log("Done.");
}
});
});
var _v39_update = () => {
// this section updates the AR values that were set for attr_close - attr_extreme to be the value for the previously undefined attr_close_base - attr_extreme_base
['range', 'melee'].forEach((type) => {
getSectionIDs(`repeating_${type}`, (sections) => {
sections.forEach((section) => {
[`repeating_${type}_${section}_close`, `repeating_${type}_${section}_near`, `repeating_${type}_${section}_medium`, `repeating_${type}_${section}_far`, `repeating_${type}_${section}_extreme`, `repeating_${type}_${section}_dicepool`, `repeating_${type}_${section}_damage`, 'sheet_type'].forEach((attr) => {
getAttrs([`${attr}`], (v) => {
setAttrs({
[`${attr}_base`]: v[`${attr}`]
});
});
});
});
});
});
};
var _v38_update = () => {
getAttrs(['sheet_type'], (v) => {
if(v.sheet_type === 'grunt') {
// Grunt skills somehow ended up thinking they were all based on agility at least for the display part and for many apparently the actual selected attribute.
// this code just sets them to their default associated attribute which should annoy the fewest users.
getSectionIDs('repeating_skills', (skill) => {
skill.forEach((skillID) => {
getAttrs([`repeating_skills_${skillID}_attribute`, `repeating_skills_${skillID}_display_attribute`, `repeating_skills_${skillID}_name`], (attrs) => {
var attribute;
switch(attrs[`repeating_skills_${skillID}_name`]) {
case 'Athletics':
case 'Close Combat':
case 'Exotic Weapons':
case 'Firearms':
case 'Stealth':
attribute = 'Agility';
break;
case 'Con':
case 'Influence':
attribute = 'Charisma';
break;
case 'Astral':
case 'Outdoors':
case 'Perception':
attribute = 'Intuition';
break;
case 'Biotech':
case 'Cracking':
case 'Electronics':
case 'Engineering':
attribute = 'Logic';
break;
case 'Conjuring':
case 'Enchanting':
case 'Sorcery':
attribute = 'Magic';
break;
case 'Piloting':
attribute = 'Reaction';
break;
case 'Tasking':
attribute = 'Resonance';
break;
default:
attribute = 'Agility';
break;
}
setAttrs({
[`repeating_skills_${skillID}_attribute`]: '@{'+attribute.toLowerCase()+'}',
[`repeating_skills_${skillID}_display_attribute`]: attribute
});
});
});
});
}
});
}
var _pre_v37_update = () => {
// Update trigger sheetworkers for weapons to set attribute and attr_rating values
['melee', 'range'].forEach((type) => {
getSectionIDs(`${type}`, function(ids) {
for(var i = 0; i < ids.length; i++) {
let skill = `repeating_${type}_` + ids[i] + "_skill";
let attr = `repeating_${type}_` + ids[i] + "_attribute";
let rating = `repeating_${type}_` + ids[i] + "_attr_rating";
let prim = `repeating_${type}_` + ids[i] + "_primary";
let updme = `repeating_${type}_` + ids[i] + "_updateme";
getAttrs([skill, prim, 'agility', 'logic', `primary_${type}_weapon_dicepool_modifier`], (v) => {
var attribute = 'Agility';
var attr_rating = v.agility;
switch(v[`${skill}`]) {
case 'engineering':
attribute = 'Logic';
attr_rating = v.logic;
break;
case 'athletics':
case 'close combat':
case 'exotic weapons':
case 'firearms':
default:
attribute = 'Agility';
attr_rating = v.agility;
break;
}
setAttrs({
[attr]: attribute,
[rating]: attr_rating
});
if(v[`${prim}`] === "primary") {
var dpm = v[`primary_${type}_weapon_dicepool_modifier`] || 0;
setAttrs({
[`primary_${type}_weapon_attribute`]: attribute,
[`primary_${type}_weapon_attr_rating`]: attr_rating,
[`primary_${type}_weapon_dicepool_modifier`]: dpm,
[`${updme}`]: ".37"
});
}
});
}
});
});
}
on("change:repeating_quality:modifications remove:repeating_quality change:repeating_augmentations:modifications remove:repeating_augmentations change:repeating_items:modifications remove:repeating_items change:repeating_devices:modifications remove:repeating_devices change:repeating_programs:modifications change:repeating_programs:powered_on remove:repeating_programs change:repeating_echoes:modifications remove:repeating:echoes", (eventInfo) => {
console.log(eventInfo);
var allowed_modifiers = [
'body_modifier', 'agility_modifier', 'reaction_modifier', 'strength_modifier', 'willpower_modifier', 'logic_modifier', 'intuition_modifier', 'charisma_modifier',
'magic_modifier', 'resonance_modifier',
'overflow_modifier', 'physical_modifier', 'stun_modifier',
'initiative_mod', 'initiative_dice_mod', 'astral_initiative_mod', 'astral_dice_mod', 'matrix_initiative_mod', 'matrix_dice_mod', 'cold_sim_initiative_mod', 'cold_sim_initiative_dice_mod', 'hot_sim_initiative_mod', 'hot_sim_initiative_dice_mod',
'composure_modifier', 'judge_intentions_modifier', 'memory_modifier', 'lift_carry_modifier', 'move_speed', 'sprint_speed', 'sprint_modifier',
'attack_modifier', 'sleaze_modifier', 'data_processing_modifier', 'firewall_modifier',
'combat_paralysis'
];
var attrsToGet = ['enable_modifiers', 'enable_unrestricted_modifiers'];
var prog = /(.+)_modifications$/.exec(eventInfo.triggerName);
if(prog && prog[1] && eventInfo.triggerName.includes("powered_on")) {
attrsToGet.push(`${prog[1]}_powered_on`);
} else {
prog = [];
}
var rep_prog = /(.+)_powered_on$/.exec(eventInfo.triggerName);
if(eventInfo.triggerName.endsWith("_powered_on")) {
attrsToGet.push(`${rep_prog[1]}_modifications`);
}
getAttrs(attrsToGet, (v) => {
if(v.enable_modifiers != "1") {
console.log("Modifiers not enabled.");
return;
}
if(prog && prog[1] && v[`${prog[1]}_powered_on`] !== "on") {
console.log("Program not active");
return;
}
if(rep_prog && v[`${rep_prog[1]}_modifications`]) {
if(eventInfo.newValue === "on") {
eventInfo.previousValue = '';
eventInfo.newValue = v[`${rep_prog[1]}_modifications`];
} else {
eventInfo.newValue = '';
eventInfo.previousValue = v[`${rep_prog[1]}_modifications`];
}
}
if(eventInfo.removedInfo) {
eventInfo.previousValue = eventInfo.removedInfo[`${eventInfo.sourceAttribute}_modifications`];
eventInfo.newValue = '';
}
// if previousValue and newValue are the same and it wasn't removed it was added. Not sure why roll20 gives us the newValue as previousValue when creating an entry
if(eventInfo.previousValue === eventInfo.newValue) {
eventInfo.previousValue = '';
}
var oldParts = (eventInfo.previousValue) ? eventInfo.previousValue.split(/\s*,\s*/) : [];
var newParts = (eventInfo.newValue) ? eventInfo.newValue.split(/\s*,\s*/) : [];
var op = {},
np = {},
mods = {},
keys = {};
mods.old = {};
mods.new = {};
oldParts.forEach(e => {
parts = e.split(/\s*:\s*/);
mods.old[parts[0]] = parts[1];
(typeof keys[parts[0]] === 'undefined') ? keys[parts[0]] = 1 : keys[parts[0]]++;
})
newParts.forEach(e => {
parts = e.split(/\s*:\s*/);
mods.new[parts[0]] = parts[1];
(typeof keys[parts[0]] === 'undefined') ? keys[parts[0]] = 1 : keys[parts[0]]++;
})
Object.keys(keys).forEach(k => {
if(! allowed_modifiers.includes(k) && v[`enable_unrestricted_modifiers`] != 1) {
console.log('Unrestricted Modifiers not enabled, tried to update ('+k+') which is not whitelisted');
} else if(k !== "0" && k !== "on") {
update_attribute({
'key': k,
'old': mods.old[k],
'new': mods.new[k]
});
}
})
});
});
var update_attribute = (attr) => {
getAttrs([`${attr.key}`], (v) => {
if(v[`${attr.key}`]) {
currentV = /([+-]*\d+)(.*)/.exec(v[`${attr.key}`]);
} else {
currentV = [0, 0, ''];
}
var newV = 0;
// the mod was removed, undo the old value
if(attr.old && ! attr.new) {
newV = parseInt(currentV[1]) - parseInt(attr.old)
}
// the mod was added, use the new value
if(! attr.old && attr.new) {
newV = parseInt(currentV[1]) + parseInt(attr.new);
}
// it's an update to the mod, figure out the difference and apply it
if(attr.old && attr.new && attr.old != attr.new) {
var diff = modify_value([attr.old, attr.new]);
newV = parseInt(v[`${attr.key}`]) + parseInt(diff)
}
setAttrs({
[`${attr.key}`]: newV + currentV[2]
});
});
};
var modify_value = (params) => {
var diff = 0;
var re = /([+-]*)([\d+])/;
var oldV = re.exec(params[0]);
var newV = re.exec(params[1]);
if(parseInt(oldV[0]) > parseInt(newV[0])) { // oldV is higher, we are subtracting
diff = -1 * (parseInt(oldV[0]) - parseInt(newV[0]));
} else if(parseInt(oldV[0]) < parseInt(newV[0])) { // newV is higher, we are adding
diff = parseInt(newV[0]) - parseInt(oldV[0]);
} else { // they are equal
// no change diff still 0;
}
return diff;
};
on("clicked:shots_remove clicked:shots_add", (eventInfo) => {
getAttrs([`shots_fired`], (v) => {
let shots = parseInt(v[`shots_fired`]) || 0;
const trigger = eventInfo.triggerName;
setAttrs({
shots_fired: (shots > 0 && trigger.includes("remove")) ? shots -= 1 : trigger.includes("add") ? shots += 1 : shots
});
});
});
on("clicked:primary_ammo", (eventInfo) => {
getAttrs([`primary_range_weapon_ammo`, `shots_fired`], (v) => {
let ammo = parseInt(v[`primary_range_weapon_ammo`]) || 0;
const shots = parseInt(v[`shots_fired`]) || 0;
setAttrs({
primary_range_weapon_ammo: ammo -= shots
});
});
});
on("change:primary_range_weapon_mode", (eventInfo) => {
var mode = eventInfo.newValue;
var rounds = 1;
getAttrs(['primary_range_weapon_base_damage', 'primary_range_weapon_base_close', 'primary_range_weapon_base_near', 'primary_range_weapon_base_medium', 'primary_range_weapon_base_far', 'primary_range_weapon_base_extreme'], (v) => {
var toSet = {
primary_range_weapon_damage: v.primary_range_weapon_base_damage,
primary_range_weapon_close: v.primary_range_weapon_base_close,
primary_range_weapon_near: v.primary_range_weapon_base_near,
primary_range_weapon_medium: v.primary_range_weapon_base_medium,
primary_range_weapon_far: v.primary_range_weapon_base_far,
primary_range_weapon_extreme: v.primary_range_weapon_base_extreme,
};
switch(mode) {
case "Full Auto":
// 10 rounds, AR -6, split dice pool... how do I split the dice pool for this without an api
rounds = 10;
toSet = adjAttrs({
attrs: toSet,
arMod: -6,
dvMod: 0
});
break;
case "Burst Fire":
// 4 rounds, AR -4, DV +2
rounds = 4;
toSet = adjAttrs({
attrs: toSet,
arMod: -4,
dvMod: 2
});
break;
case "Semi Auto":
// 2 rounds, AR -2, DV +1
rounds = 2;
toSet = adjAttrs({
attrs: toSet,
arMod: -2,
dvMod: 1
});
break;
case "Single Shot":
default:
// 1 round, No changes
rounds = 1;
toSet = adjAttrs({
attrs: toSet,
arMod: 0,
dvMod: 0
});
}
toSet.shots_fired = rounds;
setAttrs(toSet);
});
});
var adjAttrs = (p) => {
Object.keys(p.attrs).forEach(a => {
mod = p.arMod;
if(a.endsWith("_damage")) {
mod = p.dvMod;
}
pieces = /(\d+)(.*)/.exec(p.attrs[`${a}`]);
var tot = p.attrs[`${a}`];
if(pieces) {
if(pieces[1] && pieces[1] > 0) {
tot = parseInt(pieces[1]) + parseInt(mod);
if(tot < 0) {
tot = 0;
}
}
p.attrs[`${a}`] = tot + pieces[2];
}
});
return p.attrs;
}
on("clicked:reload", (eventInfo) => {
getAttrs([`primary_range_weapon_ammo_max`], (v) => {
const reload = parseInt(v[`primary_range_weapon_ammo_max`]) || 0;
setAttrs({
primary_range_weapon_ammo: reload
});
});
});
["active", "knowledge", "language"].forEach((attr) => {
on(`clicked:repeating_${attr}:skill`, (eventInfo) => {
settingsToggle(eventInfo);
});
});
["quality", "martial", "items", "range", "melee", "armor", "spell", "preps", "ritual", "powers", "forms", "vehicle", "augementations", "lifestyle", "contacts", "programs"].forEach((attr) => {
on(`clicked:repeating_${attr}:${attr}`, (eventInfo) => {
settingsToggle(eventInfo);
});
});
const settingsToggle = (eventInfo) => {
const split = eventInfo.sourceAttribute.split("_");
const source = `${split[0]}_${split[1]}_${split[2]}`;
getAttrs([`${source}_flag`], (v) => {
setAttrs({
[`${source}_flag`]: (v[`${source}_flag`] === "settings") ? "display" : "settings"
});
});
};
[`core`, `arms`, `augs`, `gear`, `magic`, `matrix`, `social`, `vehicle`, `options`, `notes`, `rolls`].forEach(attr => {
on(`clicked:tab_${attr}`, () => {
setAttrs({tab: attr});
});
});
on("change:body change:strength change:lift_carry_modifier", (eventInfo) => {
const source = eventInfo.sourceAttribute;
update_common_rolls(["body", "willpower", "lift_carry_modifier"]);
//ONLY RUN ON BODY CHANGE
if (source.includes("body")) {
update_common_rolls(["body", "body", "overflow_modifier"]);
update_common_rolls(["body", "soak_modifier", "soak_temp", `soak_temp_flag`]);
update_track("physical");
};
});
on("change:overflow_modifier", (eventInfo) => {
update_common_rolls(["body", "body", "overflow_modifier"]);
});
on("change:reaction change:intuition", (eventInfo) => {
const source = eventInfo.sourceAttribute;
update_common_rolls(["reaction", "intuition", "defense_modifier", "defense_temp", `defense_temp_flag`]);
update_initiative();
//ONLY RUN ON INTUITION CHANGE
(source.includes("intuition")) ? update_common_rolls(["willpower", "intuition", "judge_intentions_modifier"]) : false;
});
on("change:willpower", () => {
update_common_rolls(["charisma", "willpower", "composure_modifier"]);
update_common_rolls(["body", "willpower", "lift_carry_modifier"]);
update_track("stun");
});
on("change:logic change:memory_modifier", (eventInfo) => {
const source = eventInfo.sourceAttribute;
update_common_rolls(["logic", "intuition", "memory_modifier"]);
});
on("change:intuition change:memory_modifier", (eventInfo) => {
const source = eventInfo.sourceAttribute;
update_common_rolls(["logic", "intuition", "memory_modifier"]);
});
on("change:charisma change:composure_modifier change:judge_intentions_modifier", (eventInfo) => {
const source = eventInfo.sourceAttribute;
//CHARISMA & COMPOSURE UPDATE COMPOSURE
(source.includes("charisma") || source.includes("composure")) ? update_common_rolls(["charisma", "willpower", "composure_modifier"]) : false;
//CHARISMA & JUDGE INTENTIONS UPDATE JUDGE INTENTIONS
(source.includes("charisma") || source.includes("judge")) ? update_common_rolls(["willpower", "intuition", "judge_intentions_modifier"]) : false;
});
on("change:essence", () => {
// This shouldn't be manually changed by the player it's a calculated value. See the update_essence function.
});
on("change:physical_modifier change:flag_drone", () => {
update_track("physical");
});
on("change:stun_modifier", () => {
update_track("stun");
});
on("change:combat_paralysis", (eventInfo) => {
console.log(eventInfo);
if(eventInfo.newValue == 1) {
setAttrs({
'combat_paralysis_initiative_mod': '/2'
});
} else {
setAttrs({
'combat_paralysis_initiative_mod': ''
});
}
});
on("change:reaction change:intuition change:defense_modifier change:defense_temp change:defense_temp_flag", () => {
update_common_rolls(["reaction", "intuition", "defense_modifier", "defense_temp", `defense_temp_flag`]);
});
on("change:body change:soak_modifier change:soak_temp change:soak_temp_flag", () => {
update_common_rolls(["body", "doesntmatter", "soak_modifier", "soak_temp", `soak_temp_flag`]);
});
on("change:pain_tolerance", () => {
update_wounds();
});
// Update the name of the attribute used when rolling Unskilled Skill Use
on("change:default_attribute", (eventInfo) => {
getAttrs(['default_attribute'], (v) => {
var new_attr;
if(eventInfo.newValue) {
new_attr = eventInfo.newValue;
} else {
new_attr = v.default_attribute;
}
// newValue will be something like "@{attribute_name}" so we cut out the @{ and } and capitalize the first letter
setAttrs({
'default_display': new_attr.charAt(2).toUpperCase() + new_attr.slice(3, -1)
});
});
});
//Calculate ATTRIBUTES
['tasks', 'body', 'agility', 'reaction', 'strength', 'willpower', 'logic', 'intuition', 'charisma', 'magic', 'resonance'].forEach(attr => {
// Attach listener
on(`change:${attr}_base change:${attr}_modifier change:${attr}_temp change:${attr}_temp_flag`, () => {
update_attributes(attr);
});
});
var update_attributes = (attr) => {
// Load attribute values
getAttrs([`${attr}_base`, `${attr}_modifier`, `${attr}_temp`, `${attr}_temp_flag`], (v) => {
// Do some math to calculate the total
const bas = parseInt(v[`${attr}_base`]) || 0;
const mod = parseInt(v[`${attr}_modifier`]) || 0;
const tem = (v[`${attr}_temp_flag`] === "on") ? parseInt(v[`${attr}_temp`]) || 0 : 0;
const bon = mod + tem;
const stat = bas + bon;
// Update the finalized total
setAttrs({
[attr]: stat,
[`display_${attr}`]: bon === 0 ? bas : `${bas} (${stat})`
});
});
};
// Update the essence count (6 - aug_mods - calculated augmentation costs = total)
var update_essence = () => {
let ess = 6;
getSectionIDs("augmentations", (ids) => {
_.each(ids, (id) => {
getAttrs([`repeating_augmentations_${id}_essence_cost`], (aug_ess) => {
ess -= aug_ess[`repeating_augmentations_${id}_essence_cost`];
aug_cost = 6 - parseFloat(ess);
setAttrs({
essence: parseFloat(ess).toFixed(2),
aug_essence_cost: parseFloat(aug_cost).toFixed(2)
});
});
});
getAttrs(['essence_mod', 'magic', 'matrix_device_essence_cost'], (a) => {
var em = 0;
if(! isNaN(a['essence_mod']) && a['essence_mod'] !== '') {
em = a['essence_mod'];
}
ess += parseFloat(em);
ess -= parseFloat(a['matrix_device_essence_cost']) || 0;
// Trying to update magic as essence drops but it's not a simple process will revisit later
// var magic = 0;
// if(! isNaN(a['magic']) && a['magic'] !== '') {
// magic = a['magic'];
// }
setAttrs({
essence: parseFloat(ess).toFixed(2)
});
});
});
};
//This function watches for changes to augmentations and updates recalculates essence
on("change:essence_mod remove:repeating_augmentations change:repeating_augmentations:essence_cost change:matrix_device_essence_cost", (eventInfo) => {
update_essence();
});
// Catch changes to magic, tradition, logic or charisma to update magic AR
on("change:magic change:tradition change:logic change: charisma", (eventInfo) => {
getAttrs(["magic", "tradition", "logic", "intuition", "charisma"], (v) => {
var magic_ar = v.magic;
switch(v.tradition) {
case "Hermeticism (Logic)":
case "Hermeticism":
magic_ar += v.logic;
break;
case "Hermeticism (Intuition)":
magic_ar += v.intuition;
break;
case "Hermeticism (Charisma)":
magic_ar += v.charisma;
break;
case "Shamanism (Charisma)":
case "Shamanism":
magic_ar += v.charisma;
break;
case "Shamanism (Logic)":
magic_ar += v.logic;
break;
case "Shamanism (Intuition)":
magic_ar += v.intuition;
break;
default:
magic_ar = 0;
break;
}
setAttrs({
'magic_ar': magic_ar
});
});
});
/********************************************************/
/* MATRIX TAB SHEET WORKERS */
/********************************************************/
//This function watches for changes to repeating_devices and updates the ASDF and Device Rating as needed
on("change:repeating_devices remove:repeating_devices", (eventInfo) => {
const source = eventInfo.sourceAttribute;
const newV = eventInfo.newValue;
// sum repeating device matrix initiative bonuses and essence costs
getSectionIDs('devices', function(ids) {
var matrix_bonus = 0;
var essence_cost = 0;
ids.forEach(id => {
getAttrs([`repeating_devices_${id}_matrix_initiative_bonus`, `repeating_devices_${id}_essence_cost`], (a) => {
matrix_bonus += parseInt(a[`repeating_devices_${id}_matrix_initiative_bonus`]) || 0;
essence_cost += parseFloat(a[`repeating_devices_${id}_essence_cost`]) || 0;
setAttrs({
matrix_device_initiative_bonus: matrix_bonus,
matrix_device_essence_cost: essence_cost
});
});
});
// If the device list is empty update these to 0 which triggers recalculations.
if(ids.length == 0) {
setAttrs({
matrix_device_initiative_bonus: 0,
matrix_device_essence_cost: 0,
matrix_device_rating: 0
});
}
});
// Get a bunch of attributes (device rating, primary, ASDF, condition monitor, condition monitor max)
getAttrs(['attr_matrix_con', 'attr_condition_monitor_link', 'repeating_device_device', 'repeating_device_device_rating', 'repeating_device_primary_device', 'repeating_device_attack', 'repeating_device_attack_primary', 'repeating_device_sleaze', 'repeating_device_sleaze_primary', 'repeating_device_data_processing', 'repeating_device_data_processing_primary', 'repeating_device_firewall', 'repeating_device_firewall_primary', 'repeating_device_condition_monitor', 'repeating_device_condition_monitor_max', 'repeating_device_matrix_initiative_bonus'], (v) => {
var toUpdate = {};
// Check if the event was related to the primary flag being turned on (we'll need to recalculate
if(source.includes('primary_device') && newV == '1') {
// Update the attr_matrix_device_rating
toUpdate['matrix_device_rating'] = v['repeating_device_device_rating'] || 0;
// Update condition_monitor_link with the full id of this device
toUpdate['condition_monitor_link'] = eventInfo.triggerName;
// Update matrix_hex with the new condition
toUpdate['matrix_hex'] = v['repeating_device_condition_monitor'] || 0;
// Update matrix_hex with the new condition
toUpdate['matrix_hex_max'] = v['repeating_device_condition_monitor_max'] || 0;
// Uncheck 'primary' from other devices
getSectionIDs('devices', function(ids) {
var updates = {};
ids.forEach(id => {
if('repeating_devices_'+id != eventInfo.triggerName) {
updates[`repeating_devices_${id}_primary_device`] = 0;
}
});
setAttrs(updates);
});
}
/* When the device rating changes so should the Condition Monitor Max ONLY IF they haven't entered something there already*/
if(source.includes('device_rating')) {
if(! v['repeating_device_condition_monitor_max']) {
var device_condition_monitor_max = 8 + Math.ceil(v['repeating_device_device_rating'] / 2)
toUpdate[`${eventInfo.triggerName}_condition_monitor_max`] = device_condition_monitor_max;
if(typeof(v['repeating_device_condition_monitor']) == 'undefined') {
toUpdate[`${eventInfo.triggerName}_condition_monitor`] = device_condition_monitor_max;
}
}
}
/* If they changed the device's condition monitor update the hexes ONLY IF THIS IS THE PRIMARY DEVICE */
if(source.includes('condition_monitor') && v['repeating_device_primary_device'] == '1') {
// Update matrix_hex with the new condition
toUpdate['matrix_hex'] = v['repeating_device_condition_monitor'] || 0;
}
/* If they changed an attribute
If the attribute from this device is used by the persona
Update the persona attribute as well
*/
['attack', 'sleaze', 'data_processing', 'firewall'].forEach(attr => {
if(source.includes(`${attr}`)) {
// one of the attrs changed, is it the primary for the persona?
if(v[`repeating_device_${attr}_primary`] == '1') {
toUpdate[`${attr}_base`] = v[`repeating_device_${attr}`] || 0;
}
if(source.includes(`${attr}_primary`) && newV == '1') {
// If they selected the button uncheck the attribute button from other devices
getSectionIDs('devices', function(ids) {
var updates = {};
ids.forEach(id => {
if('repeating_devices_'+id != eventInfo.triggerName) {
updates[`repeating_devices_${id}_${attr}_primary`] = 0;
}
});
setAttrs(updates);
});
}
}
});
// update everything in toUpdate
setAttrs(toUpdate);
});
});
on("sheet:opened change:attack change:sleaze", (eventInfo) => {
getAttrs(['attack', 'sleaze'], (v) => {
const attack = v['attack'] || 0;
const sleaze = v['sleaze'] || 0;
setAttrs({
matrix_attack_rating: parseInt(attack) + parseInt(sleaze)
});
});
});
on("sheet:opened change:data_processing change:firewall", (eventInfo) => {
getAttrs(['data_processing', 'firewall'], (v) => {
const data_processing = v['data_processing'] || 0;
const firewall = v['firewall'] || 0;
setAttrs({
matrix_defense_rating: parseInt(data_processing) + parseInt(firewall)
});
});
});
on("change:willpower change:logic change:intuition change:charisma change:flag_special", (eventInfo) => {
techno_update();
});
var techno_update = () => {
getAttrs(['willpower', 'logic', 'intuition', 'charisma', 'flag_special'], (v) => {
if(v['flag_special'] == 'resonance') {
setAttrs({
attack_base: v['charisma'],
sleaze_base: v['intuition'],
data_processing_base: v['logic'],
firewall_base: v['willpower'],
});
}
});
};
/* condition monitor hex change updates device condition monitor */
on("change:matrix_hex", (eventInfo) => {
getAttrs(['matrix_hex', 'condition_monitor_link'], (v) => {
setAttrs({
[`${v['condition_monitor_link']}_condition_monitor`]: v['matrix_hex']
});
});
});
/* Complex Forms Sheetworkers */
on("change:electronics change:resonance", (eventInfo) => {
getAttrs(['electronics', 'resonance'], (v) => {
var complex_forms_attack_rating = parseInt(v['electronics']) || 0;
complex_forms_attack_rating += parseInt(v['resonance']) || 0;
setAttrs({
'complex_form_attack_rating': complex_forms_attack_rating
});
});
});
//This function checks changes to repeating_armor and updates the Primary Armor if needed
on("change:repeating_armor change:body", (eventInfo) => {
const source = eventInfo.sourceAttribute;
const newV = eventInfo.newValue;
const arm = ["repeating_armor"];
const armors = [`${arm}_name`, `${arm}_rating`, `${arm}_chem_modifier`, `${arm}_elec_modifier`, `${arm}_cold_modifier`,`${arm}_fire_modifier`, `${arm}_dicepool_modifier`];
//Check if the event was related to the primary flag & armor is set to primary
if (source.includes('primary') && newV === 'primary') {
//Get attributes from the repeating_armor
getAttrs(armors, (v) => {
let update = {};
//Update the hidden static Primary Armor attributes with the repeating_armor attributes
_.each(armors, (armor) => {
const name = (armor.includes("name") || armor.includes("rating")) ? armor.split("repeating_")[1] : armor.split(`${arm}_`)[1];
update[`${name}`] = v[`${armor}`];
});
setAttrs(update);
});
//Set the other repeating_armor primary flags to 0 aka unchecked
getSectionIDs(`${arm}`, function(ids) {
let IDs = [];
let update = {};
for(var i=0; i < ids.length; i++) {
IDs.push(`${arm}_` + ids[i] + "_primary");
};
IDs.forEach(id => {
if (id != source) {
update[`${id}`] = 0;
};
});
setAttrs(update);
});
//Check if the event was for a relevant Primary Armor attribute
} else if (source.includes('name') || source.includes('rating') || source.includes('dicepool') || source.includes('chem') || source.includes('cold') || source.includes('elec') || source.includes('fire')) {
//Get the primary flag attribute for this armor. Also get the repeating_armor attribute we'll need for an update, doing it now is more efficient.
getAttrs([`${arm}_primary`, `${source}`], (v) => {
//Check if this armor is the designated Primary Armor.
if (v[`${arm}_primary`] === 'primary') {
let update = {};
//Apply the repeating_armor attribute to its static counterpart
switch (true) {
case /name/.test(source) :
update["armor_name"] = v[`${source}`];
break;
case /rating/.test(source) :
update["armor_rating"] = v[`${source}`];
break;
case /dicepool/.test(source) :
update["soak_modifier"] = v[`${source}`];
break;
case /chem/.test(source) :
update["chem_modifier"] = v[`${source}`];
break;
case /cold/.test(source) :
update["cold_modifier"] = v[`${source}`];
break;
case /elec/.test(source):
update["elec_modifier"] = v[`${source}`];
break;
case /fire/.test(source) :
update["fire_modifier"] = v[`${source}`];
break;
default:
console.log(`Source ${source} was invalid`);
}
setAttrs(update);
};
});
}
// Update DR and resists on Core Combat Info -> Armor section
getSectionIDs("armor", function(ids) {
// Update rating and resist totals
let ratingTot = 0,
chemTot = 0,
coldTot = 0,
elecTot = 0,
fireTot = 0,
socialTot = 0;
getAttrs(['body', 'charisma'], (v) => {
ratingTot = v['body'];
socialTot = v['charisma'];
});
ids.forEach(id => {
var armorFields = [`${arm}_${id}_rating`, `${arm}_${id}_chem`, `${arm}_${id}_cold`, `${arm}_${id}_elec`, `${arm}_${id}_fire`, `${arm}_${id}_social`, `${arm}_${id}_primary`, `${arm}_${id}_cumulative`];
getAttrs(armorFields, (af) => {
if(af[`${arm}_${id}_primary`] != 0 || af[`${arm}_${id}_cumulative`] != 0) {
ratingTot += parseInt(af[`${arm}_${id}_rating`]);
socialTot += parseInt(af[`${arm}_${id}_social`]);
}
chemTot += parseInt(af[`${arm}_${id}_chem`]);
coldTot += parseInt(af[`${arm}_${id}_cold`]);
elecTot += parseInt(af[`${arm}_${id}_elec`]);
fireTot += parseInt(af[`${arm}_${id}_fire`]);
setAttrs({
'armor_rating': ratingTot,
'resist_cold_total': coldTot,
'resist_chem_total': chemTot,
'resist_elec_total': elecTot,
'resist_fire_total': fireTot,
'social_rating': socialTot,
});
});
});
});
});
// COMMON ROLLS: MEMORY, JUDGE INTENTIONS, COMPOSURE, LIFT & CARRY, OVERFLOW, DEFENSE, & SOAK ROLLS
const update_common_rolls = (attrs) => {
getAttrs(attrs, (v) => {
const found = attrs.find((mod) => { return mod.includes("_modifier") });
const name = found.split("_modifier")[0];
let numbers = [];
//DEFENSE & SOAK HAVE TWO EXTRA ATTRIBUTES. TEMP IS NEEDED BUT ONLY IF THE FLAG IS CHECKED IN SETTINGS
const array = (name === "defense" || name === "soak") ? (v[`${name}_temp_flag`] === "on") ? attrs.splice(0, 4) : attrs.splice(0, 3) : attrs;
_.each(array, (attr) => {
numbers.push(parseInt(v[`${attr}`]) || 0);
});
const add = (a, b) => a + b, sum = numbers.reduce(add);
setAttrs({[`${name}`]: sum});
});
};
//Update condition tracks
const update_track = (track) => {
let attrs = [`${track}_modifier`, `${track}_damage`];
(track === "stun") ? attrs.push("willpower") : attrs.push("body", "sheet_type", "flag_drone");
getAttrs(attrs, (v) =>{
const attr1 = attrs[2], stat1 = parseInt(v[`${attr1}`]) || 0; //Willpower or Body
const mod = parseInt(v[`${track}_modifier`]) || 0;
const dam = parseInt(v[`${track}_damage`]) || 0;
let update = {};
if (track === "stun" || v["sheet_type"] === "pc" || v["sheet_type"] === "grunt") {
tot = Math.ceil(stat1/2) + 8 + mod;
} else if (v["sheet_type"] === "vehicle" && v["flag_drone"] === "drone") {
tot = (Math.ceil(stat1/2) + 8 + mod);
} else if (v["sheet_type"] === "vehicle") {
tot = (Math.ceil(stat1/2) + 8 + mod);
} else if (v["sheet_type"] === "spirit") {
// spirits are auto calculated
return;
} else {
tot = 0; //Sprites don't have Stun or Physical track
};
const current = (dam != 0) ? tot - dam : tot;
update[`${track}`] = current;
update[`${track}_max`] = tot;
setAttrs(update, {silent:true});
});
};
//Calculate Device Rating Track
on("change:device_rating change:matrix_modifier", () => {
getAttrs(["device_rating","matrix_modifier","matrix"], (v) =>{
const dev = parseInt(v.device_rating) || 0, mod = parseInt(v.matrix_modifier) || 0;
const dam = parseInt(v.matrix) || 0;
const tot = Math.ceil(dev/2) + 8 + mod;
const current = (dam > 0) ? dam : tot;
setAttrs({matrix: current});
setAttrs({matrix_max: tot});
});
});
//Convert physical into the physical damage track boxes and reverse
['physical', 'stun'].forEach(attr => {
on(`change:${attr} change:${attr}_damage`, (eventInfo) => {
getAttrs([`${attr}`, `${attr}_damage`, `${attr}_max`, 'sheet_type'], (v) => {
const stat = parseInt(v[`${attr}`]) || 0,
dam = parseInt(v[`${attr}_damage`]) || 0,
max = parseInt(v[`${attr}_max`]) || 0,
source = eventInfo.sourceAttribute;
const wou = (source === `${attr}`) ? max - stat : max - dam;
if (source === `${attr}`) {
(dam === wou) ? false : ((stat < max && dam != wou) ? setAttrs({[`${attr}_damage`]: wou}, {silent: true}) : setAttrs({[`${attr}_damage`]: 0}, {silent: true}));
} else {
(stat === wou) ? false : setAttrs({[`${attr}`]: wou}, {silent: true});
};
update_wounds();
});
});
});
const update_wounds = () => {
getAttrs(["stun_damage", "physical_damage", "pain_tolerance"], (v) => {
const stu = parseInt(v.stun_damage) || 0, phy = parseInt(v.physical_damage) || 0, pai = parseInt(v.pain_tolerance) || 0;
pMod = (phy > 0) ? (Math.floor(phy/3)) : 0;
sMod = (stu > 0) ? (Math.floor(stu/3)) : 0;
wou = Math.floor(-(pMod) + -(sMod));
if(pai < 0) {
wou = wou * 2;
} else if(pai > 0 && wou < 0) {
wou = wou + 1;
}
setAttrs({wounds: wou});
});
};
// Trigger initiative updates
['initiative_mod', 'initiative_dice_mod', 'initiative_temp', 'initiative_temp_flag', 'initiative_dice_temp', 'initiative_dice_temp_flag'].forEach(attr => {
on(`change:${attr}`, (eventInfo) => {
if(eventInfo.sourceType == 'player') {
update_initiative();
}
});
});
//Calculate Initiative
var update_initiative = () => {
getAttrs(["sheet_type", "reaction", "intuition", "initiative_mod", "initiative_temp", "initiative_temp_flag", "initiative_dice_mod", "initiative_dice_temp", "initiative_dice_temp_flag"], (v) => {
if(v.sheet_type === 'spirit') {
// spirit initiative is auto-calculated elsewhere
return;
}
const rea = parseInt(v.reaction) || 0;
const int = parseInt(v.intuition) || 0;
const mod = parseInt(v.initiative_mod) || 0;
const tmp = (v.initiative_temp_flag === "on") ? parseInt(v.initiative_temp) || 0 : 0;
var bas = rea + int;
var tot = rea + int + mod + tmp;
const dice_mod = parseInt(v.initiative_dice_mod) || 0;
const dice_tmp = (v.initiative_dice_temp_flag === "on") ? parseInt(v.initiative_dice_temp) || 0 : 0;
const dice_tot = 1 + dice_mod + dice_tmp;
let update = {};
update["initiative_base"] = tot;
update["display_initiative_base"] = (mod != 0 || tmp != 0) ? `${bas} (${tot})` : bas;
update["initiative_dice"] = dice_tot;
setAttrs(update);
});
};
// Trigger astral initiative updates
['astral_initiative_mod', 'astral_initiative_dice_mod', 'astral_initiative_temp', 'astral_initiative_temp_flag', 'astral_initiative_dice_temp', 'astral_initiative_dice_temp_flag', 'intuition', 'logic'].forEach(attr => {
on(`change:${attr}`, (eventInfo) => {
update_astral_initiative();
});
});
//Calculate Astral Initiative
var update_astral_initiative = () => {
getAttrs(["intuition", "logic", "astral_initiative_mod", "astral_initiative_temp", "astral_initiative_temp_flag", "astral_initiative_dice_mod", "astral_initiative_dice_temp", "astral_initiative_dice_temp_flag"], (v) => {
const int = parseInt(v.intuition) || 0;
const log = parseInt(v.logic) || 0;
const mod = parseInt(v.astral_initiative_mod) || 0;
const tmp = (v.astral_initiative_temp_flag === "on") ? parseInt(v.astral_initiative_temp) || 0 : 0;
const bas = int + log;
const tot = int + log + mod + tmp;
const dice_mod = parseInt(v.astral_initiative_dice_mod) || 0;
const dice_tmp = (v.astral_initiative_dice_temp_flag === "on") ? parseInt(v.astral_initiative_dice_temp) || 0 : 0;
const dice_tot = 2 + dice_mod + dice_tmp;
let update = {};
update["astral_initiative_base"] = tot;
update["display_astral_initiative_base"] = (mod != 0 || tmp != 0) ? `${bas} (${tot})` : bas;
update["astral_initiative_dice"] = dice_tot;
setAttrs(update);
});
};
//Calculate Matrix Initiatve.
on("change:host_rating change:data_processing change:pilot change:intuition change:reaction change:level change:matrix_initiative_mod change:matrix_initiative_dice_mod change:matrix_initiative_temp change:matrix_initiative_temp_flag change:matrix_initiative_dice_temp change:matrix_initiative_dice_temp_flag change:cold_sim_initiative_mod change:cold_sim_initiative_dice_mod change:cold_sim_initiative_temp change:cold_sim_initiative_temp_flag change:cold_sim_initiative_dice_temp change:cold_sim_initiative_dice_temp_flag change:hot_sim_initiative_mod change:hot_sim_initiative_dice_mod change:hot_sim_initiative_temp change:hot_sim_initiative_temp_flag change:hot_sim_initiative_dice_temp change:hot_sim_initiative_dice_temp_flag change:matrix_device_initiative_bonus", (eventInfo) => {
update_matrix_initiative();
});
var update_matrix_initiative = () => {
getAttrs(["sheet_type", "data_processing", "pilot", "intuition", "reaction", "host_rating", "level", "matrix_initiative_mod", "matrix_initiative_dice_mod", "matrix_initiative_temp", "matrix_initiative_temp_flag", "matrix_initiative_dice_temp", "matrix_initiative_dice_temp_flag", "cold_sim_initiative_mod", "cold_sim_initiative_dice_mod", "cold_sim_initiative_temp", "cold_sim_initiative_temp_flag", "cold_sim_initiative_dice_temp", "cold_sim_initiative_dice_temp_flag", "hot_sim_initiative_mod", "hot_sim_initiative_dice_mod", "hot_sim_initiative_temp", "hot_sim_initiative_temp_flag", "hot_sim_initiative_dice_temp", "hot_sim_initiative_dice_temp_flag", "matrix_device_initiative_bonus"], (v) => {
const dat = parseInt(v.data_processing) || 0;
const pil = parseInt(v.pilot) || 0;
const int = parseInt(v.intuition) || 0;
const rea = parseInt(v.reaction) || 0;
const hos = parseInt(v.host_rating) || 0;
const lev = parseInt(v.level) || 0;
const dev = parseInt(v.matrix_device_initiative_bonus) || 0;
const init_mod = parseInt(v.matrix_initiative_mod) || 0;
const cold_sim_init_mod = parseInt(v.cold_sim_initiative_mod) || 0;
const hot_sim_init_mod = parseInt(v.hot_sim_initiative_mod) || 0;
const dice_mod = parseInt(v.matrix_initiative_dice_mod) || 0;
const cold_sim_dice_mod = parseInt(v.cold_sim_initiative_dice_mod) || 0;
const hot_sim_dice_mod = parseInt(v.hot_sim_initiative_dice_mod) || 0;
const tmp = (v.matrix_initiative_temp_flag === "on") ? parseInt(v.matrix_initiative_temp) || 0 : 0;
const dice_tmp = (v.matrix_initiative_dice_temp_flag === "on") ? parseInt(v.matrix_initiative_dice_temp) || 0 : 0;
const cold_tmp = (v.cold_sim_initiative_temp_flag === "on") ? parseInt(v.cold_sim_initiative_temp) || 0 : 0;
const cold_dice_tmp = (v.cold_sim_initiative_dice_temp_flag === "on") ? parseInt(v.cold_sim_initiative_dice_temp) || 0 : 0;
const hot_tmp = (v.hot_sim_initiative_temp_flag === "on") ? parseInt(v.hot_sim_initiative_temp) || 0 : 0;
const hot_dice_tmp = (v.hot_sim_initiative_dice_temp_flag === "on") ? parseInt(v.hot_sim_initiative_dice_temp) || 0 : 0;
let update = {};
matrix_dice = 1;
cold_sim_dice = 2;
hot_sim_dice = 3;
switch(v.sheet_type) {
case 'pc':
matrix_tot = rea + int + dev + init_mod + tmp;
matrix_dice = matrix_dice + dice_mod + dice_tmp;
cold_sim_tot = int + dat + dev + cold_sim_init_mod + cold_tmp;
cold_sim_dice = cold_sim_dice + cold_sim_dice_mod + cold_dice_tmp;
hot_sim_tot = int + dat + dev + hot_sim_init_mod + hot_tmp;
hot_sim_dice = hot_sim_dice + hot_sim_dice_mod + hot_dice_tmp;
break;
case 'sprite':
/* Handled when spirit_type and force are changed */
return;
case 'vehicle':
matrix_tot = pil + pil;
cold_sim_tot = pil + pil;
hot_sim_tot = pil + pil;
hot_sim_dice = 4;
break;
case 'host':
hot_sim_tot = dat + dat;
cold_sim_tot = hot_sim_tot;
matrix_tot = hot_sim_tot;
break;
case 'sprite':
/* Handled when sprite_type and level are changed */
return;
default:
matrix_tot = rea + int;
cold_sim_tot = int + dat;
hot_sim_tot = int + dat;
break;
}
update["matrix_initiative_base"] = matrix_tot;
update["matrix_initiative_dice"] = matrix_dice;
update["cold_sim_initiative_base"] = cold_sim_tot;
update["cold_sim_initiative_dice"] = cold_sim_dice;
update["hot_sim_initiative_base"] = hot_sim_tot;
update["hot_sim_initiative_dice"] = hot_sim_dice;
setAttrs(update);
});
};
//Edge toggle to include ! for exploding dice
on("change:edge_toggle", () => {
getAttrs(["edge_toggle"], (v) =>{
edg = (v.edge_toggle != 0) ? "!" : "";
setAttrs({explode_toggle: edg});
});
});
//Calculate Reset Condition Track
on("clicked:cond_reset", () => {
getAttrs(["sheet_type","physical_max","stun_max", "matrix_max"], (v) => {
var phy = parseInt(v.physical_max) || 0;
var stun = parseInt(v.stun_max) || 0;
var mat = parseInt(v.matrix_max) || 0;
let update = {};
if (v.sheet_type === "grunt" || v.sheet_type === "pc") {
update["physical"] = phy;
update["stun"] = stun;
} else if (v.sheet_type === "sprite") {
update["matrix"] = mat;
} else if (v.sheet_type === "vehicle") {
update["physical"] = phy;
update["matrix"] = mat;
} else {
return "Not a grunt or vehicle";
};
setAttrs(update);
});
});
on("clicked:cond_reset_physical clicked:cond_reset_stun", (eventInfo) => {
const attr = eventInfo.triggerName.split("_")[2];
setAttrs({
[`${attr}_damage`] : 0
});
});
//Weapon displays set into an Array
// Builder function to display details properly
// Note that since undefined are falsey if there's no label or sign we can leave the parameters blank
function repeatingStringBuilder(v, keyBase) {
return function(key, label, sign) {
// fetch the attr from v checking if it has a value
const val = v[`${keyBase}${key}`];
if (!val) return '';
// Apply the sign if needed
const disp = sign && val > 0 ? `+${val}` : val;
// Apply label if needed
return label ? `${label} ${disp}` : disp;
}
}
on("change:repeating_weapon", () => {
const source = "repeating_weapon_weapon";
getAttrs([`${source}_range`, `${source}_type`, `${source}_dv`, `${source}_ap`, `${source}_mode`, `${source}_rc`, `${source}_ammo`, `${source}_note`, `${source}_primary`], (v) => {
// Local builder putting the needed variables into scope for repeatingStringBuilder
const b = repeatingStringBuilder(v, `${source}_`);
// Determine fields to display and in their proper order and formatting
// Anonymous function is purely stylistic and adds more overhead than just a simple switch/case. Personally I find the function looks cleaner and hides any internal scope that might conflict with outside
const display = (() => {
// 0 for weapon_range is a ranged weapon. A 1 is a melee weapon.
switch(v.repeating_weapon_weapon_range) {
case '0':
// Not a fan of how ammo has to be handled. Could potentially be placed in the repeatingStringBuilder if used more often for other change:repeating functions as some sort of suffix parameter
const ammo = b('amm');
return [
b('type'),
b('acc', 'ACC'),
b('dv', 'DV'),
b('ap', 'AP', true),
b('mode'),
b('rc', 'RC'),
ammo ? `${ammo} (c)` : '',
b('note')
];
case '1': return [
b('type'),
b('reach', 'Reach', true),
b('acc', 'ACC'),
b('dv', 'DV'),
b('ap', 'AP', true),
b('note')
];
default: return [
b('type'),
b('acc', 'ACC'),
b('dv', 'DV'),
b('ap', 'AP', true),
b('note')
];
}
})()
// Remove all empty strings
.filter(s => s)
// Concat all the strings and add comma between
.join(', ');
let update = {};
update[`${source}`] = `[${display}]`;
// Finally wrap square brackets around the weapon display
setAttrs(update);
});
});
//Spell displays set into an Array
on("change:repeating_NPCspell", () => {
getAttrs(["repeating_NPCspell_combat_type", "repeating_NPCspell_type", "repeating_NPCspell_range", "repeating_NPCspell_damage", "repeating_NPCspell_duration", "repeating_NPCspell_drain", "repeating_NPCspell_note"], (v) =>{
const com = v.repeating_NPCspell_combat_type;
const typ = `Type ${v.repeating_NPCspell_type}, `;
const ran = `${v.repeating_NPCspell_range}, `;
const dam = `Damage ${v.repeating_NPCspell_damage}, `;
const dur = `Duration ${v.repeating_NPCspell_duration}, `;
const not = `, ${v.repeating_NPCspell_note}`;
const dra = v.repeating_NPCspell_drain;
const drain = (dra > 0) ? `F+${dra} ` : (dra < 0) ? `F${dra} ` :"F ";
const info = `[${typ}${ran}${dam}${dur}${drain}${not}]`;
display = (com === "Direct, Force ") ? ` (Direct) ${info}` :
(com === "Indirect, Force ?{Force|}, AP -") ? ` (Indirect) ${info}` : `${info}`;
setAttrs({repeating_NPCspell_spell: display});
});
});
//IC displays are set into an Array
on("change:repeating_IC", () => {
getAttrs(["host_rating", "attack", "data_processing", "repeating_IC_IC_attribute", "repeating_IC_IC_matrix", "repeating_IC_IC_note"], (v) =>{
const host = v.host_rating;
const att = parseInt(v.attack) || 0;
const data = parseInt(v.data_processing) || 0;
const attr = v.repeating_IC_IC_attribute;
const mat = v.repeating_IC_IC_matrix;
const not = v.repeating_IC_IC_note;
var def = 'None';
if(attr == 'None' && mat == 'None') {
def = 'None';
} else {
def = `${attr} \+ ${mat}`;
}
setAttrs({
repeating_IC_IC_defense: def
});
});
});
//IC Attack Dice & Condition Track
on("change:host_rating", () => {
getAttrs(["host_rating"], (v) => {
var hos = parseInt(v.host_rating) || 0;
var tot = 8 + Math.ceil(hos/2);
var atk = Math.min(hos + hos);
setAttrs({matrix: tot});
setAttrs({ic_attack: atk});
});
});
//Sprite Condition Track
on("change:level", () => {
getAttrs(["level"], (v) => {
var lev = parseInt(v.level) || 0;
var tot = 8 + Math.ceil(lev/2);
setAttrs({matrix: tot});
});
});
on("change:repeating_skills:name", (eventInfo) => {
const skill = eventInfo.newValue;
const prefix = eventInfo.triggerName.replace('_name', '');
switch(skill) {
case 'Athletics':
case 'Close Combat':
case 'Exotic Weapons':
case 'Firearms':
case 'Stealth':
setAttrs({[`${prefix}_attribute`]: '@{agility}'});
break;
case 'Con':
case 'Influence':
setAttrs({[`${prefix}_attribute`]: '@{charisma}'});
break;
case 'Astral':
case 'Outdoors':
case 'Perception':
setAttrs({[`${prefix}_attribute`]: '@{intuition}'});
break;
case 'Biotech':
case 'Cracking':
case 'Electronics':
case 'Engineering':
setAttrs({[`${prefix}_attribute`]: '@{logic}'});
break;
case 'Conjuring':
case 'Enchanting':
case 'Sorcery':
setAttrs({[`${prefix}_attribute`]: '@{magic}'});
break;
case 'Piloting':
setAttrs({[`${prefix}_attribute`]: '@{reaction}'});
break;
case 'Tasking':
setAttrs({[`${prefix}_attribute`]: '@{resonance}'});
break;
default:
setAttrs({[`${prefix}_attribute`]: '@{agility}'});
break;
}
});
//REFACTORED Skills
['repeating_skills','repeating_active','repeating_knowledge','repeating_language', 'agility', 'logic'].forEach(field => {
on(`change:${field}`, (eventInfo) => {
const source = eventInfo.sourceAttribute;
const type = eventInfo.sourceType;
// updating agility was causing this to trigger for "repeating_skills_attribute"
if(eventInfo.sourceAttribute == 'repeating_skills_attribute') {
return;
}
if (source.includes("rating")) {
getAttrs([`${field}_rating`, `${field}_rating_modifier`, `${field}_name`, 'sheet_type'], (v) => {
if(v.sheet_type == 'spirit') {
return;
}
const bas = parseInt(v[`${field}_rating`]) || 0;
const mod = parseInt(v[`${field}_rating_modifier`]) || 0;
const tot = parseInt(bas) + parseInt(mod);
const skill = v[`${field}_name`] || '';
// Update repeating melee weapon skill and rating values
getSectionIDs("melee", function(ids) {
for(var i = 0; i < ids.length; i++) {
let skillIdName = "repeating_melee_" + ids[i] + "_skill";
let skillRating = "repeating_melee_" + ids[i] + "_rating";
getAttrs([skillIdName], (v2) => {
if(v2[skillIdName] == v[`${field}_name`]) {
setAttrs({
[skillRating]: bas
});
}
});
}
});
// Update repeating range weapon skill and rating values
getSectionIDs("range", function(ids) {
for(var i = 0; i < ids.length; i++) {
let skillIdName = "repeating_range_" + ids[i] + "_skill";
let skillRating = "repeating_range_" + ids[i] + "_rating";
getAttrs([skillIdName], (v2) => {
if(v2[skillIdName] == v[`${field}_name`]) {
setAttrs({
[skillRating]: bas
});
}
});
}
});
setAttrs({
[`${field}_dicepool`]: tot,
[`${field}_rating`]: bas,
[`${field}_display_rating`]: (mod === 0) ? bas : `${bas} (${tot})`,
[skill]: bas
});
});
} else if (source.includes("logic") || source.includes("agility")) {
var diff = eventInfo.newValue - eventInfo.previousValue;
// Update repeating melee and range weapon dicepool if it uses this attribute
['range', 'melee'].forEach((type) => {
getSectionIDs(type, function(ids) {
for(var i = 0; i < ids.length; i++) {
let attr = `repeating_${type}_` + ids[i] + "_attribute";
let attr_rating = `repeating_${type}_` + ids[i] + "_attr_rating";
let pool = `repeating_${type}_` + ids[i] + "_dicepool";
getAttrs([attr, pool, 'sheet_type'], (v2) => {
if(v2.sheet_type == 'spirit' || v2.sheet_type == 'grunt' || v2.sheet_type == 'vehicle') {
return;
}
if(v2[`${attr}`].toLowerCase() == source.toLowerCase()) {
setAttrs({
[`${pool}`]: parseInt(v2[`${pool}`]) + diff,
[`${attr_rating}`]: eventInfo.newValue
});
}
});
}
});
});
} else if (source.includes("attribute") && type === "player") {
getAttrs([`${source}`], (v) => {
const attribute = v[`${source}`].slice(2, -1);
const translation = getTranslationByKey(`${attribute}`);
setAttrs({
[`${field}_display_attribute`]: translation
});
});
} else if (source.includes("spec") && type === "player") {
getAttrs([`${source}`], (v) => {
const bas = v[`${source}`];
const size = bas.length;
let display = (size >= 0 && size <= 15) ? `${bas}` : "(" + bas.slice(0, 15) + "...)";
setAttrs({
[`${field}_display_spec`]: display
});
});
} else if (source.includes("expert") && type === "player") {
getAttrs([`${source}`], (v) => {
const bas = v[`${source}`];
const size = bas.length;
let display = (size >= 0 && size <= 15) ? `${bas}` : "(" + bas.slice(0, 15) + "...)";
setAttrs({
[`${field}_display_expert`]: display
});
});
} else if (source.includes("skill")) {
getAttrs([`${source}`], (v) => {
const bas = v[`${source}`];
const size = bas.length;
let display = (size > 0 && size <= 20) ? bas : (size > 20 ) ? bas.slice(0, 20) + "..." : " ";
setAttrs({
[`${field}_display`]: display
});
});
} else if (source.includes("dicepool")) {
getAttrs([`${source}`, `${field}_skill`], (v) => {
const skill = v[`${field}_skill`];
let lowercase = skill.toLowerCase();
let removeGroup = (lowercase.includes("group")) ? lowercase.slice(0, -6) : lowercase;
let skillSet = (removeGroup.includes(" ")) ? removeGroup.replace(/ /g,"") : removeGroup;
setAttrs({
[`${skillSet}`]: v[`${source}`]
});
});
} else {
console.log(`Change to ${field} did not set attr`);
};
});
});
//REFACTORED Range & MELEE UPDATES
['repeating_range','repeating_melee'].forEach(weap => {
on(`change:${weap}`, (eventInfo) => {
const source = eventInfo.sourceAttribute;
const newV = eventInfo.newValue;
const type = weap.slice(-5);
getAttrs([`${weap}_dicepool_modifier`, `${weap}_spec`, `${weap}_expert`, `${weap}_skill`, `${weap}_attribute`, `${weap}_attr_rating`, `${weap}_primary`, `${weap}_firing_modes`, `${weap}_damage`, `${weap}_close`, `${weap}_near`, `${weap}_medium`, `${weap}_far`, `${weap}_extreme`, `sheet_type`], (v) => {
if(v.sheet_type != 'pc') {
return;
}
const mod = parseInt(v[`${weap}_dicepool_modifier`]) || 0;
const spec = parseInt(v[`${weap}_spec`]) || 0;
const expert = parseInt(v[`${weap}_expert`]) || 0;
const skill = v[`${weap}_skill`] || '';
var attribute = 'Agility';
switch(skill) {
case 'Engineering':
attribute = 'Logic';
break;
case 'Firearms':
case 'Close Combat':
case 'Athletics':
case 'Exotic Weapons':
attribute = 'Agility';
break;
}
getAttrs([`${skill}`, `${attribute}`], (s) => {
rating = s[`${skill}`] || -1;
attr = s[`${attribute}`] || 1;
const tot = parseInt(attr) + parseInt(mod) + parseInt(spec) + parseInt(expert) + parseInt(rating);
setAttrs({
[`${weap}_rating`]: s[`${skill}`] || -1,
[`${weap}_dicepool`]: tot,
[`${weap}_attribute`]: attribute,
[`${weap}_attr_rating`]: attr
});
});
/* if it's the primary weapon any update needs to be reflected on Core->Arms */
if (v[`${weap}_primary`] === "primary") {
//Shared attributes names.
let array = ["dicepool", "dicepool_modifier", "weapon", "damage", "skill", "rating", "close", "near", "medium", "far", "extreme", "spec", "expert", "attribute", "attr_rating"];
//Add the range or melee specific ones
if(type === "range") {
array.push("ammo", "ammo_max", "mode");
// update the primary range firing modes available
var modes = v[`repeating_range_firing_modes`].split(/\s*\/\s*/i);
var toEnable = {
primary_range_weapon_mode_singleshot: 0,
primary_range_weapon_mode_semiauto: 0,
primary_range_weapon_mode_burst: 0,
primary_range_weapon_mode_fullauto: 0,
primary_range_weapon_mode_other: 0,
};
modes.forEach(mode => {
switch(mode.toUpperCase()) {
case 'SS':
toEnable.primary_range_weapon_mode_singleshot = 1;
break;
case 'SA':
toEnable.primary_range_weapon_mode_semiauto = 1;
break;
case 'BF':
toEnable.primary_range_weapon_mode_burst = 1;
break;
case 'FA':
toEnable.primary_range_weapon_mode_fullauto = 1;
break;
default:
toEnable.primary_range_weapon_mode_other = 1;
break;
};
});
// save the weapon's damage and ARs to the primary base for use in the firing mode calculator
toEnable.primary_range_weapon_base_damage = v[`${weap}_damage`];
toEnable.primary_range_weapon_base_close = v[`${weap}_close`];
toEnable.primary_range_weapon_base_near = v[`${weap}_near`];
toEnable.primary_range_weapon_base_medium = v[`${weap}_medium`];
toEnable.primary_range_weapon_base_far = v[`${weap}_far`];
toEnable.primary_range_weapon_base_extreme = v[`${weap}_extreme`];
setAttrs(toEnable);
}
// Add any range specific attributes
if(type === "melee") {
}
//Add the repeating section to the begining of each attribute
let attrs = [];
for(var i=0; i < array.length; i++) {
attrs.push(`${weap}_` + array[i]);
};
getAttrs(attrs, (v) => {
let update = {};
//Primary weapon name does not follow the naming scheme.
update[`primary_${type}_weapon`] = v[`${weap}_weapon`];
_.each(array, (value) => {
if (value != undefined || value != "weapon") {
update[`primary_${type}_weapon_${value}`] = (value === "ammo_max") ? v[`${weap}_ammo`] : v[`${weap}_${value}`];
};
});
setAttrs(update);
});
};
if (source.includes('primary')) {
//Set the other repeating_weapon primarys to 0 aka unchecked
getSectionIDs(`${weap}`, function(ids) {
let IDs = [];
let update = {};
for(var i=0; i < ids.length; i++) {
IDs.push(`${weap}_` + ids[i] + "_primary");
};
IDs.forEach(id => {
if (id != source) {
update[`${id}`] = 0;
};
});
setAttrs(update);
});
} else if(source.includes('dicepool') || source.includes('weapon') || source.includes('damage') || source.includes('skill') || source.includes('rating') || source.includes('ammo') || source.includes('mode') || source.includes('close') || source.includes('near') || source.includes('medium') || source.includes('far') || source.includes('extreme') || source.includes('spec') || source.includes('expert')) {
getAttrs([`${weap}_primary`, `${source}`], (v) => {
if (v[`${weap}_primary`] === 'primary') {
let update = {};
//This whole process needs refactored in the future. Its working for now.
if (source.includes('ammo')) {
update[`primary_${type}_weapon_ammo`] = v[`${source}`];
update[`primary_${type}_weapon_ammo_max`] = v[`${source}`];
} else {
console.log(eventInfo);
};
setAttrs(update);
};
});
} else {
console.log("Change was not relevant.");
};
});
});
});
// Grunt weapon AR change
['range', 'melee'].forEach((type) => {
on(`change:repeating_${type}:close_base change:repeating_${type}:near_base change:repeating_${type}:medium_base change:repeating_${type}:far_base change:repeating_${type}:extreme_base change:repeating_${type}:dicepool_base`, (eventInfo) => {
if(parseInt(eventInfo.newValue) < 0 || isNaN(eventInfo.newValue)) {
eventInfo.newValue = 0;
}
if(parseInt(eventInfo.previousValue) < 0 || isNaN(eventInfo.previousValue)) {
eventInfo.previousValue = 0;
}
delta = parseInt(eventInfo.newValue) - parseInt(eventInfo.previousValue);
display = eventInfo.sourceAttribute.slice(0,-5);
getAttrs(['sheet_type', display], (v) => {
// this only gets applied to grunts, spirits and vehicles
if(v.sheet_type != 'grunt' && v.sheet_type != 'spirit' && v.sheet_type != 'vehicle') {
return;
}
var newV = parseInt(v[`${display}`]) + delta || 0;
if(newV < 0) {
newV = 0;
}
setAttrs({
[`${display}`]: newV
});
});
});
});
// Grunt Groups Count changes
on("change:grunt_group_count change:grunt_group_member change:repeating_melee:mode change:repeating_range:mode change:repeating_melee:damage_base change:repeating_range:damage_base", (eventInfo) => {
console.log(eventInfo);
['range', 'melee'].forEach((wtype) => {
getSectionIDs(`${wtype}`, (ids) => {
ids.forEach((id) => {
getAttrs([`repeating_${wtype}_${id}_dicepool_base`, `repeating_${wtype}_${id}_dicepool_modifier`, `repeating_${wtype}_${id}_close_base`, `repeating_${wtype}_${id}_near_base`, `repeating_${wtype}_${id}_medium_base`, `repeating_${wtype}_${id}_far_base`, `repeating_${wtype}_${id}_extreme_base`, `repeating_${wtype}_${id}_damage_base`, `repeating_${wtype}_${id}_mode`, 'mode', 'grunt_group_count', 'grunt_group_member', 'sheet_type'], (w) => {
if(w.sheet_type != 'grunt' && w.sheet_type != 'spirit' && w.sheet_type != 'vehicle') {
return;
}
var grunts = 0;
if(w.grunt_group_member == 0) {
grunts = 0;
} else {
grunts = w.grunt_group_count;
}
firing_mode_mods = {
SS: { AR: 0, DV: 0 },
SA: { AR: -2, DV: +1 },
BF: { AR: -4, DV: +2 },
FA: { AR: -6, DV: 0 },
Other: { AR: 0, DV: 0 }
};
var firing_mode = 'SS';
if(wtype == 'range') {
firing_mode = w[`repeating_${wtype}_${id}_mode`] || w.mode || 'SS';
}
var DV = adjAttrs({
dvMod: firing_mode_mods[firing_mode].DV,
arMod: firing_mode_mods[firing_mode].AR,
attrs: {
attr_damage: w[`repeating_${wtype}_${id}_damage_base`]
}
}).attr_damage;
var bonuses = {
AR: 0,
dice: 0
}
if(w.grunt_group_member != '0' && parseInt(w.grunt_group_count) > 1) {
bonuses = grunt_group_bonuses(w.grunt_group_count);
}
var c = parseInt(w[`repeating_${wtype}_${id}_close_base`]) || '';
c = (c > 0) ? c + parseInt(bonuses.AR) + parseInt(firing_mode_mods[firing_mode].AR) : '';
c = (c <= 0) ? '' : c;
var n = parseInt(w[`repeating_${wtype}_${id}_near_base`]) || '';
n = (n > 0) ? n + parseInt(bonuses.AR) + parseInt(firing_mode_mods[firing_mode].AR) : '';
n = (n <= 0) ? '' : n;
var m = parseInt(w[`repeating_${wtype}_${id}_medium_base`]) || '';
m = (m > 0) ? m + parseInt(bonuses.AR) + parseInt(firing_mode_mods[firing_mode].AR) : '';
m = (m <= 0) ? '' : m;
var f = parseInt(w[`repeating_${wtype}_${id}_far_base`]) || '';
f = (f > 0) ? f + parseInt(bonuses.AR) + parseInt(firing_mode_mods[firing_mode].AR) : '';
f = (f <= 0) ? '' : f;
var e = parseInt(w[`repeating_${wtype}_${id}_extreme_base`]) || '';
e = (e > 0) ? e + parseInt(bonuses.AR) + parseInt(firing_mode_mods[firing_mode].AR) : '';
e = (e <= 0) ? '' : e;
var dice = parseInt(w[`repeating_${wtype}_${id}_dicepool_base`]) || '';
var diceMod = parseInt(w[`repeating_${wtype}_${id}_dicepool_modifier`]) || 0;
if(w.grunt_group_member == 0) { // Not a grunt group member
var dp = parseInt(dice) + parseInt(diceMod) + parseInt(bonuses.dice) || 0;
setAttrs({
[`repeating_${wtype}_${id}_damage`]: DV,
[`repeating_${wtype}_${id}_dicepool`]: dp,
[`repeating_${wtype}_${id}_close`]: c,
[`repeating_${wtype}_${id}_near`]: n,
[`repeating_${wtype}_${id}_medium`]: m,
[`repeating_${wtype}_${id}_far`]: f,
[`repeating_${wtype}_${id}_extreme`]: e
});
} else { // they are now a grunt group member we need to adjust dicepool and ARs
var dp = parseInt(dice) + parseInt(diceMod) + parseInt(bonuses.dice) || 0;
setAttrs({
[`repeating_${wtype}_${id}_damage`]: DV,
[`repeating_${wtype}_${id}_dicepool`]: dp,
[`repeating_${wtype}_${id}_close`]: c,
[`repeating_${wtype}_${id}_near`]: n,
[`repeating_${wtype}_${id}_medium`]: m,
[`repeating_${wtype}_${id}_far`]: f,
[`repeating_${wtype}_${id}_extreme`]: e
});
}
});
});
});
});
});
var grunt_group_bonuses = (p) => {
var b = {
AR: p - 1,
dice: Math.floor((p - 1) / 2)
};
return b;
};
//Repeating contacts for PC sheet
on("change:repeating_contacts", () => {
getAttrs(["repeating_contacts_name"], (v) => {
const name = (v.repeating_contacts_name);
((name).length > 0 && (name).length <= 30) ? setAttrs({repeating_contacts_display: (name)}) :
((name).length > 30) ? setAttrs({repeating_contacts_display: (name).slice(0, 30) + "..."}) :
setAttrs({repeating_contacts_display: " "});
});
});
//Cyberdeck Calculations
['attack', 'sleaze', 'data_processing', 'firewall'].forEach(attr => {
on(`change:${attr}_base change:${attr}_modifier change:${attr}_temp`, () => {
update_common_rolls([`${attr}_base`, `${attr}_modifier`, `${attr}_temp`]);
});
});
on("change:repeating_vehicle", (eventInfo) => {
const id = eventInfo.triggerName;
getAttrs([`${id}_handling_onroad`, `${id}_handling_offroad`, `${id}_handling_modifier`, `${id}_acceleration_base`, `${id}_acceleration_modifier`, `${id}_speed_base`, `${id}_speed_modifier`, `${id}_speed_max`, `${id}_armor_base`, `${id}_armor_modifier`, `${id}_body_base`, `${id}_body_modifier`, `${id}_pilot_base`, `${id}_pilot_modifier`, `${id}_sensor_base`, `${id}_sensor_modifier`, `${id}_seats`], (v) => {
Object.keys(v).forEach(k => {
if(isNaN(parseInt(v[`${k}`]))) {
v[`${k}`] = 0;
}
});
var handling = parseInt(v[`${id}_handling_onroad`]) + parseInt(v[`${id}_handling_modifier`]);
if(v[`${id}_handling_offroad`] != 0) {
handling = handling + ' (' + v[`${id}_handling_offroad`] + ')';
}
var speed = parseInt(v[`${id}_speed_base`]) + parseInt(v[`${id}_speed_modifier`]);
speed = speed + ' (' + v[`${id}_speed_max`] + ')';
setAttrs({
"repeating_vehicle_display_handling": handling,
"repeating_vehicle_display_speed": speed,
"repeating_vehicle_display_acceleration": parseInt(v[`${id}_acceleration_base`]) + parseInt(v[`${id}_acceleration_modifier`]),
"repeating_vehicle_display_body": parseInt(v[`${id}_body_base`]) + parseInt(v[`${id}_body_modifier`]),
"repeating_vehicle_display_armor": parseInt(v[`${id}_armor_base`]) + parseInt(v[`${id}_armor_modifier`]),
"repeating_vehicle_display_pilot": parseInt(v[`${id}_pilot_base`]) + parseInt(v[`${id}_pilot_modifier`]),
"repeating_vehicle_display_sensor": parseInt(v[`${id}_sensor_base`]) + parseInt(v[`${id}_sensor_modifier`])
});
});
});
/*
['acceleration', 'armor', 'body', 'data_processing', 'handling_onroad', 'handling_offroad', 'pilot', 'sensor','speed'].forEach(attr => {
// Attach listener
on(`change:repeating_vehicle:${attr}_base change:repeating_vehicle:${attr}_modifier change:repeating_vehicle:${attr}_temp change:repeating_vehicle:${attr}_max`, () => {
// Load attribute values
getAttrs([`repeating_vehicle_${attr}_base`, `repeating_vehicle_${attr}_modifier`, `repeating_vehicle_${attr}_temp`, `repeating_vehicle_${attr}_max`], (v) => {
// Do some math to calculate the total
const bas = parseInt(v[`repeating_vehicle_${attr}_base`]) || 0;
const mod = parseInt(v[`repeating_vehicle_${attr}_modifier`]) || 0;
const tem = parseInt(v[`repeating_vehicle_${attr}_temp`]) || 0;
const max = parseInt(v[`repeating_vehicle_${attr}_max`]) || 0;
const bon = mod + tem;
const stat = bas + bon;
// Update the finalized total
setAttrs({
[attr]: stat,
[`repeating_vehicle_display_${attr}`]: bon === 0 ? bas : `${bas} (${stat})`
}, {silent: true});
});
});
});
*/
/******************/
/* Sprite Scripts */
/******************/
on("change:sprite_type change:level", (eventInfo) => {
sprite_update();
});
var sprite_update = () => {
getAttrs(['level', 'sprite_type', 'sheet_type'], (v) => {
if(v.sheet_type != 'sprite') {
return;
}
var level = parseInt(v.level);
var attack = 1,
sleaze = 1,
dataproc = 1,
firewall = 1,
resonance = 1,
hot_base = 1,
hot_dice = 1;
var skills = ['Electronics', 'Cracking'];
var powers = [];
switch(v.sprite_type) {
case 'Courier':
attack = level;
sleaze = level + 3;
dataproc = level + 1;
firewall = level + 2;
resonance = level;
hot_base = (level * 2) + 1;
hot_dice = 4;
powers = ['Cookie', 'Hash'];
break;
case 'Crack':
attack = level;
sleaze = level + 3;
dataproc = level + 2;
firewall = level + 1;
resonance = level;
hot_base = (level * 2) + 2;
hot_dice = 4;
powers = ['Phantom', 'Suppression'];
break;
case 'Data':
attack = (level - 1) || 1;
sleaze = level;
dataproc = level + 4;
firewall = level + 1;
resonance = level;
hot_base = (level * 2) + 4;
hot_dice = 4;
powers = ['Camouflage', 'Watermark'];
break;
case 'Fault':
attack = level + 3;
sleaze = level;
dataproc = level + 1;
firewall = level + 2;
resonance = level;
hot_base = (level * 2) + 1;
hot_dice = 4;
powers = ['Electron Storm', 'Trap'];
break;
case 'Machine':
attack = level + 1;
sleaze = level;
dataproc = level + 3;
firewall = level + 2;
resonance = level;
hot_base = (level * 2) + 3;
hot_dice = 4;
skills = ['Electronics', 'Engineering'];
powers = ['Diagnostics', 'Override', 'Stability'];
break;
default:
attack = level;
sleaze = level;
dataproc = level;
firewall = level;
resonance = level;
hot_base = (level * 2) + 1;
hot_dice = 4;
break;
}
setAttrs({
'attack': attack,
'sleaze': sleaze,
'data_processing': dataproc,
'firewall': firewall,
'resonance': resonance,
'hot_sim_initiative_base': hot_base,
'hot_sim_initiative_dice': hot_dice
});
// Check if there are already skills
getSectionIDs(['repeating_skills'], function (ids) {
// if there are any skills already set up let's not mess with them
// the GM / player may have them how they want them.
if(ids.length == 0) {
skills.forEach(skill => {
// make a new repeatingRowID
var newId = generateRowID();
setAttrs({
[`repeating_skills_${newId}_skill`]: skill,
[`repeating_skills_${newId}_level`]: level,
[`repeating_skills_${newId}_flag`]: 0
});
});
}
});
// Some notes for the powers, we don't want to infringe copyrights so we'll point to the Core Rule Book page,
// They can type whatever they want in later
var notes = {
'Camouflage': 'CRB pg.194',
'Cookie': 'CRB pg.194',
'Diagnostics': 'CRB pg.194',
'Electron Storm': 'CRB pg.194',
'Hash': 'CRB pg.194',
'Override': 'CRB pg.194',
'Phantom': 'CRB pg.194',
'Stability': 'CRB pg.194',
'Suppression': 'CRB pg.194',
'Trap': 'CRB pg.194',
'Watermark': 'CRB pg.195'
};
// Check if there are already powers
getSectionIDs(['repeating_powers'], function (ids) {
// if there are any powers already set up let's not mess with them
// the GM / player may have them how they want them.
if(ids.length == 0) {
powers.forEach(power => {
// make a new repeatingRowID
var newId = generateRowID();
setAttrs({
[`repeating_powers_${newId}_name`]: power,
[`repeating_powers_${newId}_notes`]: notes[power],
[`repeating_powers_${newId}_flag`]: 0
});
});
}
});
});
};
/******************/
/* Spirit Scripts */
/******************/
on("change:spirit_type change:force", (eventInfo) => {
spirit_update();
});
var spirit_update = () => {
setAttrs({
grunt_group_member: 'grunt_group_member'
}, {}, () => { console.log("grunt group member set"); });
getAttrs(['force', 'spirit_type', 'sheet_type', 'spirit_reset_toggle'], (v) => {
if(v.sheet_type != 'spirit') {
return;
}
var force = parseInt(v.force);
var spirit = {
tasks_modifier: 0,
body: 1,
agility: 1,
reaction: 1,
strength: 1,
willpower: 1,
logic: 1,
intuition: 1,
charisma: 1,
edge: 0,
magic: force,
essence: force,
major_actions: 1,
minor_actions: 2,
physical: 9,
move_speed: 10,
sprint_speed: 15,
sprint_modifier: 1,
initiative_base: 6,
initiative_dice: 2,
astral_initiative_base: 2,
astral_initiative_dice: 3,
defense_rating: 1,
number_optional_powers: Math.floor(force / 3)
};
var skills = ['Astral'];
var powers = ['Astral Form', 'Materialization', 'Sapience'];
var ranged = {};
var close = {};
switch(v.spirit_type) {
case 'Air':
spirit.tasks_modifier = '';
spirit.body = (force > 2) ? force - 2 : 1;
spirit.agility = force + 3;
spirit.reaction = force + 4;
spirit.strength = (force > 3) ? force - 3 : 1;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 5;
spirit.initiative_base = (force * 2) + 4;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = (force * 2);
spirit.astral_initiative_dice = 3;
spirit.defense_rating = (force > 2) ? force - 2 : 1;
skills = ['Astral', 'Athletics', 'Close Combat', 'Exotic Ranged Weapon', 'Perception'];
powers = ['Accident', 'Astral Form', 'Concealment', 'Confusion', 'Engulf (Air)', 'Materialization', 'Movement', 'Sapience', 'Search'];
optional_powers = ['Elemental Attack (Cold)', 'Elemental Attack (Electricity)', 'Energy Aura', 'Fear', 'Guard', 'Noxious Breath', 'Psychokinesis'];
ranged = {
'weapon': 'Elemental Attack',
'pool': force + spirit.agility,
'dam': force + 'P',
'c': force * 2,
'n': ((force * 2) - 2),
'm': ((force * 2) - 8),
'f': ((force * 2) - 10),
'e': 0,
'notes': ''
};
close = {
'weapon': 'Engulf',
'pool': force + spirit.agility,
'dam': parseInt(force + 2) + 'S',
'c': (force * 2) + 1,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': 'Damage adds Fatigue'
};
break;
case 'Beasts':
spirit.tasks_modifier = '';
spirit.body = force + 2;
spirit.agility = force + 1;
spirit.reaction = force;
spirit.strength = force + 2;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 3;
spirit.initiative_base = force * 2;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = force * 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 2;
skills = ['Astral', 'Close Combat', 'Perception'];
powers = ['Animal Control', 'Astral Form', 'Enhanced Senses (Hearing)', 'Enhanced Senses (Low-Light Vision)', 'Enhanced Senses (Smell)', 'Fear', 'Materialization', 'Movement', 'Sapience'];
optional_powers = ['Concealment', 'Confusion', 'Guard', 'Natural Weapon', 'Noxious Breath', 'Search', 'Venom'];
ranged = {};
close = {
'weapon': 'Claws/Bite',
'pool': force + spirit.agility,
'dam': parseInt(Math.ceil(force / 2)) + 'P',
'c': force * 2,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': 'Only if Natural Weapon (claws/bite) Optional Power is selected'
};
break;
case 'Earth':
spirit.tasks_modifier = '';
spirit.body = force + 4;
spirit.agility = (force > 2) ? force - 2 : 1;
spirit.reaction = (force > 1) ? force - 1 : 1;
spirit.strength = force + 4;
spirit.willpower = force;
spirit.logic = (force > 1) ? force - 1 : 1;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 1;
spirit.initiative_base = (force * 2) - 1;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = force * 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 4;
skills = ['Astral', 'Close Combat', 'Exotic Ranged Weapons', 'Perception'];
powers = ['Astral Form', 'Binding', 'Guard', 'Fear', 'Materialization', 'Movement', 'Sapience', 'Search'];
optional_powers = ['Concealment', 'Confusion', 'Elemental Attack (Chemical)', 'Engulf (Earth)', 'Fear'];
ranged = {
'weapon': 'Elemental Attack',
'pool': force + spirit.agility,
'dam': force + 'P',
'c': force * 2,
'n': ((force * 2) - 2),
'm': ((force * 2) - 8),
'f': ((force * 2) - 10),
'e': 0,
'notes': ''
};
close = {};
break;
case 'Fire':
spirit.tasks_modifier = '';
spirit.body = force + 1;
spirit.agility = force + 2;
spirit.reaction = force + 3;
spirit.strength = (force > 2) ? force - 2 : 1;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force + 1;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 5;
spirit.initiative_base = (force * 2) + 4;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = (force * 2);
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 1;
skills = ['Astral', 'Athletics', 'Close Combat', 'Exotic Ranged Weapon', 'Perception'];
powers = ['Accident', 'Astral Form', 'Confusion', 'Elemental Attack (Fire)', 'Energy Aura (Fire)', 'Engulf (Fire)', 'Materialization', 'Sapience'];
optional_powers = ['Fear', 'Guard', 'Noxious Breath', 'Search'];
ranged = {
'weapon': 'Elemental Attack',
'pool': force + spirit.agility,
'dam': force + 'P',
'c': force * 2,
'n': ((force * 2) - 2),
'm': ((force * 2) - 8),
'f': ((force * 2) - 10),
'e': 0,
'notes': ''
};
close = {
'weapon': 'Engulf',
'pool': force + spirit.agility,
'dam': parseInt(force + 2) + 'S',
'c': (force * 2) + 1,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': ''
};
break;
case 'Kin':
spirit.tasks_modifier = '';
spirit.body = force + 1;
spirit.agility = force;
spirit.reaction = force + 2;
spirit.strength = (force > 2) ? force - 2 : 1;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force + 1;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 1;
spirit.initiative_base = (force * 2) + 3;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = (force * 2);
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 1;
skills = ['Astral', 'Close Combat', 'Perception', 'Sorcery'];
powers = ['Accident', 'Astral Form', 'Concealment', 'Confusion', 'Enhanced Senses (Low-Light Vision)', 'Enhanced Senses (Thermographic Vision)', 'Guard', 'Influence', 'Materialization', 'Sapience', 'Search'];
optional_powers = ['Fear', 'Innate Spell', 'Movement', 'Psychokinesis'];
ranged = {};
close = {
'weapon': 'Fists',
'pool': force + spirit.agility,
'dam': parseInt(Math.ceil(force / 2)) + 'S',
'c': force * 2,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': ''
};
break;
case 'Water':
spirit.tasks_modifier = '';
spirit.body = force;
spirit.agility = force + 1;
spirit.reaction = force + 2;
spirit.strength = force;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 5;
spirit.sprint_speed = 10;
spirit.sprint_modifier = 2;
spirit.initiative_base = (force * 2) + 2;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = (force * 2);
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force;
skills = ['Astral', 'Athletics (Swimming)', 'Close Combat', 'Exotic Ranged Weapon', 'Perception'];
powers = ['Astral Form', 'Concealment', 'Confusion', 'Engulf (Water)', 'Materialization', 'Movement', 'Sapience', 'Search'];
optional_powers = ['Accident', 'Binding', 'Elemental Attack (Cold)', 'Energy Aura (Cold)', 'Guard', 'Weather Control'];
ranged = {
'weapon': 'Elemental Attack',
'pool': force + spirit.agility,
'dam': force + 'P',
'c': force * 2,
'n': ((force * 2) - 2),
'm': ((force * 2) - 8),
'f': ((force * 2) - 10),
'e': 0,
'notes': ''
};
close = {
'weapon': 'Engulf',
'pool': force + spirit.agility,
'dam': parseInt(force + 2) + 'S',
'c': (force * 2) + 1,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': 'Damage adds Fatigue I'
};
break;
case 'Plant':
spirit.tasks_modifier = '';
spirit.body = force + 2;
spirit.agility = (force > 1) ? force - 1 : 1;
spirit.reaction = force;
spirit.strength = force + 1;
spirit.willpower = force;
spirit.logic = (force > 1) ? force - 1 : 1;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 10;
spirit.sprint_speed = 15;
spirit.sprint_modifier = 1;
spirit.initiative_base = force * 2;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = force * 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 2;
skills = ['Astral', 'Close Combat', 'Exotic Ranged Weapon', 'Perception', 'Spellcasting'];
powers = ['Astral Form', 'Concealment', 'Engulf', 'Fear', 'Guard', 'Magical Guard', 'Materialization', 'Sapience', 'Silence'];
optional_powers = ['Accident', 'Confusion', 'Movement', 'Noxious Breath', 'Search'];
ranged = {};
close = {
'weapon': 'Engulf',
'pool': force + spirit.agility,
'dam': force + 'S',
'c': force * 3,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': ''
};
break;
case 'Guardian':
spirit.tasks_modifier = '';
spirit.body = force + 1;
spirit.agility = force + 2;
spirit.reaction = force + 3;
spirit.strength = force + 2;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 4;
spirit.physical = Math.ceil((force + 1) / 2) + 8;
spirit.move_speed = 10;
spirit.sprint_speed = 15;
spirit.sprint_modifier = 1;
spirit.initiative_base = (force * 2) + 3;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = (force * 2);
spirit.astral_initiative_dice = 3;
spirit.defense_rating = (force * 2) + 1;
skills = ['Astral', 'Close Combat', 'Exotic Ranged Weapon', 'Perception'];
powers = ['Astral Form', 'Fear', 'Guard', 'Magical Guard', 'Materialization', 'Movement', 'Sapience'];
optional_powers = ['Animal Control', 'Concealment', 'Elemental Attack', 'Natural Weapon', 'Psychokinesis', 'Skill Specialization'];
ranged = {};
close = {
'weapon': 'Natural Weapon',
'pool': force + spirit.agility,
'dam': parseInt((force / 2) + 1) + 'P',
'c': force * 2,
'n': 0,
'm': 0,
'f': 0,
'e': 0,
'notes': 'Optional, requires "Natural Weapon" optional power.'
};
break;
case 'Guidance':
spirit.tasks_modifier = '';
spirit.body = force + 3;
spirit.agility = (force > 1) ? force - 1 : 1;
spirit.reaction = force + 2;
spirit.strength = force + 1;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 10;
spirit.sprint_speed = 15;
spirit.sprint_modifier = 1;
spirit.initiative_base = (force * 2) + 2;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = force * 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force + 3;
skills = ['Astral', 'Close Combat', 'Perception', 'Spellcasting'];
powers = ['Astral Form', 'Confusion', 'Divining', 'Guard', 'Magical Guard', 'Materialization', 'Sapience', 'Search', 'Shadow Cloak'];
optional_powers = ['Engulf', 'Enhanced Senses (Hearing)', 'Enhanced Senses (Low-Light Vision)', 'Enhanced Senses (Thermographic Vision)', 'Enhanced Senses (Smell)', 'Fear', 'Influence'];
ranged = {};
close = {};
break;
case 'Task':
spirit.tasks_modifier = '1';
spirit.body = force;
spirit.agility = force;
spirit.reaction = force + 2;
spirit.strength = force + 2;
spirit.willpower = force;
spirit.logic = force;
spirit.intuition = force;
spirit.charisma = force;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = Math.ceil(force / 2) + 8;
spirit.move_speed = 10;
spirit.sprint_speed = 15;
spirit.sprint_modifier = 1;
spirit.initiative_base = (force * 2) + 2;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = force * 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = force;
skills = ['Astral', 'Close Combat', 'Perception'];
powers = ['Accident', 'Astral Form', 'Binding', 'Materialization', 'Movement', 'Sapience', 'Search', 'Skill', 'Skill Specialization'];
optional_powers = ['Concealment', 'Enhanced Senses (Hearing)', 'Enhanced Senses (Low-Light Vision)', 'Enhanced Senses (Thermographic Vision)', 'Enhanced Senses (Smell)', 'Influence', 'Psychokinesis', 'Skill'];
ranged = {};
close = {};
break;
default:
spirit.tasks_modifier = '';
spirit.body = 1;
spirit.agility = 1;
spirit.reaction = 1;
spirit.strength = 1;
spirit.willpower = 1;
spirit.logic = 1;
spirit.intuition = 1;
spirit.charisma = 1;
spirit.magic = 1;
spirit.major_actions = 1;
spirit.minor_actions = 3;
spirit.physical = 9;
spirit.move_speed = 10;
spirit.sprint_speed = 15;
spirit.sprint_modifier = 1;
spirit.initiative_base = 5;
spirit.initiative_dice = 2;
spirit.astral_initiative_base = 2;
spirit.astral_initiative_dice = 3;
spirit.defense_rating = 1;
powers = [];
skills = [];
break;
}
setAttrs({
'tasks_modifier': spirit.tasks_modifier,
'body_base': spirit.body,
'agility_base': spirit.agility,
'reaction_base': spirit.reaction,
'strength_base': spirit.strength,
'willpower_base': spirit.willpower,
'logic_base': spirit.logic,
'intuition_base': spirit.intuition,
'charisma_base': spirit.charisma,
'edge': spirit.edge,
'magic': spirit.magic,
'essence': spirit.essence,
'major_actions': spirit.major_actions,
'minor_actions': spirit.minor_actions,
'physical': spirit.physical,
'physical_max': spirit.physical,
'move_speed': spirit.move_speed,
'sprint_speed': spirit.sprint_speed,
'sprint_modifier': spirit.sprint_modifier,
'initiative_base': spirit.initiative_base,
'initiative_dice': spirit.initiative_dice,
'astral_initiative_base': spirit.astral_initiative_base,
'astral_initiative_dice': spirit.astral_initiative_dice,
'defense_rating': spirit.defense_rating
});
// Check if there are already skills
getSectionIDs(['repeating_skills'], function (ids) {
// if there are any skills already set up let's not mess with them
// the GM / player may have them how they want them.
toUpdate = {};
if(v.spirit_reset_toggle === 'reset') {
// The reset toggle is turned on, wipe out the skills
ids.forEach(rowId => {
removeRepeatingRow(`repeating_skills_${rowId}`);
});
}
if(ids.length == 0 || v.spirit_reset_toggle === 'reset') {
skills.forEach(skillname => {
// make a new repeatingRowID
var newId = generateRowID();
toUpdate[`repeating_skills_${newId}_skill`] = skillname;
toUpdate[`repeating_skills_${newId}_flag`] = 0;
});
setAttrs(toUpdate);
}
});
// Some notes for the powers, we don't want to infringe copyrights so we'll point to the Core Rule Book page,
// They can type whatever they want in later
var notes = {
'Accident': 'CRB pg.221',
'Animal Control': 'CRB pg.221',
'Astral Form': 'CRB pg.222',
'Binding': 'CRB pg.222',
'Concealment': 'CRB pg.222',
'Confusion': 'CRB pg.222',
'Divining': 'SW pg.67',
'Elemental Attack': 'conjuror chooses element duiring summoning - CRB pg.223',
'Elemental Attack (Cold)': 'CRB pg.223',
'Elemental Attack (Chemical)': 'CRB pg.223',
'Elemental Attack (Electricity)': 'CRB pg.223',
'Elemental Attack (Fire)': 'CRB pg.223',
'Energy Aura (Cold)': 'CRB pg.223',
'Energy Aura (Electricity)': 'CRB pg.223',
'Energy Aura (Fire)': 'CRB pg.223',
'Engulf': 'CRB pg.223',
'Engulf (Air)': 'CRB pg.223',
'Engulf (Earth)': 'CRB pg.223',
'Engulf (Fire)': 'CRB pg.223',
'Engulf (Water)': 'CRB pg.223',
'Enhanced Senses (Hearing)' : 'CRB pg.223',
'Enhanced Senses (Low-Light)' : 'CRB pg.223',
'Enhanced Senses (Smell)' : 'CRB pg.223',
'Enhanced Senses (Thermographic)' : 'CRB pg.223',
'Enhanced Senses (Select One)': 'CRB pg.223',
'Fear': 'CRB pg.224',
'Guard': 'CRB pg.224',
'Influence': 'CRB pg.225',
'Innate Spell': 'any one spell known by the summoner; only one spell effect may be added - CRB pg.225',
'Magical Guard': 'SW pg.69',
'Materialization': 'CRB pg.225',
'Movement': 'CRB pg.226',
'Natural Weapon (claws/bite)': 'CRB pg.226',
'Noxious Breath': 'CRB pg.226',
'Psychokinesis': 'CRB pg.227',
'Sapience': 'CRB pg.227',
'Search': 'CRB pg.227',
'Shadow Cloak': 'SW pg.70',
'Silence': 'SW pg.70',
'Skill': 'Choose one from Biotech, Electronics, Engineering, Outdoors or Piloting and a Specialization in the chosen skill as well as an appropriate Knowledge Skill - SW pg.56',
'Skill Specialization': 'choose any skill specialization appropriate to the spirit - SW pg.55',
'Venom': 'CRB pg.228',
'Weather Control': 'CRB pg.228'
};
// Check if there are already powers
getSectionIDs(['repeating_powers'], function (ids) {
// if there are any powers already set up let's not mess with them
// the GM / player may have them how they want them.
if(v.spirit_reset_toggle === 'reset') {
// The reset toggle is turned on, wipe out the skills
ids.forEach(rowId => {
removeRepeatingRow(`repeating_powers_${rowId}`);
});
}
if(ids.length == 0 || v.spirit_reset_toggle === 'reset') {
powers.forEach(power => {
// make a new repeatingRowID
var newId = generateRowID();
setAttrs({
[`repeating_powers_${newId}_name`]: power,
[`repeating_powers_${newId}_notes`]: notes[power] || '',
[`repeating_powers_${newId}_flag`]: 0
});
});
}
});
// Check if there are already ranged weapons
if((ranged && Object.keys(ranged).length > 0) || v.spirit_reset_toggle === 'reset') {
getSectionIDs(['repeating_range'], function (ids) {
// if there are any ranged already set up let's not mess with them
// the GM / player may have them how they want them.
if(v.spirit_reset_toggle === 'reset') {
// The reset toggle is turned on, wipe out the skills
ids.forEach(rowId => {
removeRepeatingRow(`repeating_range_${rowId}`);
});
}
if((ids.length == 0 || v.spirit_reset_toggle === 'reset') && ranged && Object.keys(ranged).length > 0) {
// make a new repeatingRowID
var newId = generateRowID();
setAttrs({
[`repeating_range_${newId}_weapon`]: ranged.weapon,
[`repeating_range_${newId}_dicepool`]: ranged.pool,
[`repeating_range_${newId}_dicepool_base`]: ranged.pool,
[`repeating_range_${newId}_damage_base`]: ranged.dam,
[`repeating_range_${newId}_close_base`]: (ranged.c > 0) ? ranged.c : 0,
[`repeating_range_${newId}_near_base`]: (ranged.n > 0) ? ranged.n : 0,
[`repeating_range_${newId}_medium_base`]: (ranged.m > 0) ? ranged.m : 0,
[`repeating_range_${newId}_far_base`]: (ranged.f > 0) ? ranged.f : 0,
[`repeating_range_${newId}_extreme_base`]: (ranged.e > 0) ? ranged.e : 0,
[`repeating_range_${newId}_notes`]: ranged.notes,
[`repeating_range_${newId}_flag`]: 0
}, {silent: true});
}
});
}
// Check if there are already melee weapons
if((close && Object.keys(close).length > 0) || v.spirit_reset_toggle === 'reset') {
getSectionIDs(['repeating_melee'], function (ids) {
// if there are any melee already set up let's not mess with them
// the GM / player may have them how they want them.
if(v.spirit_reset_toggle === 'reset') {
// The reset toggle is turned on, wipe out the skills
ids.forEach(rowId => {
removeRepeatingRow(`repeating_melee_${rowId}`);
});
}
if((ids.length == 0 || v.spirit_reset_toggle === 'reset') && close && Object.keys(close).length > 0) {
// make a new repeatingRowID
var newId = generateRowID();
setAttrs({
[`repeating_melee_${newId}_weapon`]: close.weapon,
[`repeating_melee_${newId}_dicepool`]: close.pool,
[`repeating_melee_${newId}_dicepool_base`]: close.pool,
[`repeating_melee_${newId}_damage_base`]: close.dam,
[`repeating_melee_${newId}_close_base`]: (close.c > 0) ? close.c : 0,
[`repeating_melee_${newId}_near_base`]: (close.n > 0) ? close.n : 0,
[`repeating_melee_${newId}_medium_base`]: (close.m > 0) ? close.m : 0,
[`repeating_melee_${newId}_far_base`]: (close.f > 0) ? close.f : 0,
[`repeating_melee_${newId}_extreme_base`]: (close.e > 0) ? close.e : 0,
[`repeating_melee_${newId}_notes`]: close.notes,
[`repeating_melee_${newId}_flag`]: 0
}, {silent: true});
}
});
}
setAttrs({
grunt_group_member: 0
}, {}, () => { console.log("grunt group member updated"); });
});
};
on("change:measurement1 change:measurement2", (eventInfo) => {
if(eventInfo.sourceType !== "player") {
return;
}
getAttrs(['measurement1', 'measurement2', 'conversion'], (v) => {
switch (v.conversion) {
case 'lb-kg':
if(eventInfo.sourceAttribute === 'measurement1') {
var kg = v.measurement1 * .453592;
setAttrs({
'measurement2': kg.toFixed(2)
});
} else {
var lb = v.measurement2 / .453592;
setAttrs({
'measurement1': lb.toFixed(2)
});
}
break;
case 'ft-m':
if(eventInfo.sourceAttribute === 'measurement1') {
var ft = v.measurement1 * .3048;
setAttrs({
'measurement2': ft.toFixed(2)
});
} else {
var m = v.measurement2 / .3048;
setAttrs({
'measurement1': m.toFixed(2)
});
}
break;
case 'mi-km':
if(eventInfo.sourceAttribute === 'measurement1') {
var mi = v.measurement1 * 1.60934;
setAttrs({
'measurement2': mi.toFixed(2)
});
} else {
var km = v.measurement2 / 1.60934;
setAttrs({
'measurement1': km.toFixed(2)
});
}
break;
default:
break;
}
});
});
/****************************/
/* CHARACTERMANCER IMPORTER */
/****************************/
on("clicked:import_launch", (eventInfo) => {
startCharactermancer("importer");
});
on("page:importer", () => {
setAttrs({builder: "Chummer"});
setCharmancerText({
"directions" : chummerDirections
});
});
on("clicked:import", () => {
const mancerData = getCharmancerData();
const mancerValues = mancerData["importer"].values;
let applyEnabled = true;
let setText = {};
// Verify the user entered a JSON in the textarea. If not, provide user feedabck.
if (mancerValues.jsonData) {
const parsedData = JSON.parse(mancerValues.jsonData) || false;
setText[`import-feedback`] = "";
// There is a value in the textarea! Check to see if its a valid JSON. Provide users feeadback
if (parsedData) {
setText[`import-feedback`] += `<p class="feedback">A valid JSON was imported for ${mancerValues.builder}.</p>`
// Send the parsed data to the selected importer or let users know something went wrong
if (mancerValues.builder && mancerValues.builder === "Chummer") {
if (parsedData.characters && parsedData.characters.character) {
importChummer(parsedData.characters.character);
} else {
setText[`import-feedback`] += `<p class="warning">Parsed JSON is missing character data.</p>`;
applyEnabled = false
}
} else if (mancerValues.builder && mancerValues.builder === "Hero Lab") {
importHeroLab();
setText[`import-feedback`] += `<p class="warning">Coming Soon....</p>`;
} else {
setText[`import-feedback`] += `<p class="warning">A character builder was not selected. Try changing your selection then change it back if needed.</p>`;
applyEnabled = false
}
} else {
setText[`import-feedback`] += `<p class="warning"><span>The text imported is not a valid JSON. Verify the JSON is formatted correctly. Check the format at,</span> JSONLint.com.</p>`;
applyEnabled = false
};
} else {
setText[`import-feedback`] = `<p class="warning">No information was entered in the JSON text area.</p>`;
applyEnabled = false
};
let buttonStatus = (applyEnabled) ? "" : "disabled";
setText[`finish-button`] = `<button class="finish" type="finish" value="apply" data-i18n="apply" ${buttonStatus}>Apply</button>`;
setCharmancerText(setText);
});
const chummerDirections = `<ol>
<li>In Chummer mark your character as created</li>
<li>Go to File -> Export -> Export JSON</li>
<li>Copy the JSON in the file</li>
<li>Paste it into the textfield below</li>
<li>Click the Import button</li>
<li>Review the data. Use the checkbox <strong>Show Hidden Inputs</strong> to fix data.</li>
<li>Click Apply to <u>overwrite</u> information on the character sheet</li>
</ol>`;
const herolabDirections = `
<ol>
<li>Download the file "HLtoRoll20Export.hl" from: https://drive.google.com/file/d/0B3E3jkp51s8aRmpTU1NMRjRIVkk/view</li>
<li>Double click the file. Hero Lab will import it automatically now.</li>
<li>Load a character</li>
<li>Go to File/Save Custom Output and select the "Roll20 Export"</li>
<li>Save the file. It should open automatically in your browser</li>
<li>Follow the directions.</li>
</ol>`;
on("change:builder", (eventInfo) => {
let setText = {};
setText[`directions`] = (eventInfo.newValue === "Chummer") ? chummerDirections : herolabDirections;
setCharmancerText(setText);
});
const clean = () => {
['active', 'knowledge', 'language', 'quality', 'martial', 'range', 'melee', 'weapon', 'armor', 'augementations', 'items', 'NPCspell', 'spell', 'rituals', 'preps', 'powers', 'contacts', 'vehicle', 'lifestyle', "programs", "forms"].forEach(group => {
getSectionIDs(`repeating_${group}`, (ids) => {
ids.forEach((id) => {
removeRepeatingRow(`repeating_${group}_${id}`);
});
});
});
};
//USEFUL FUNCTIONS
const capitialize = (string) => {
return string.charAt(0).toUpperCase() + string.slice(1);
};
const addFeedback = (attribute, value) => {
return `<p class="feedback"><strong>${capitialize(attribute)}:</strong> ${value} </p>`
};
const alphabatizeKeys = (unsortedJSON) => {
let alphabeticalKeys = {};
Object.keys(unsortedJSON).sort().forEach((key) => {
alphabeticalKeys[key] = unsortedJSON[key];
});
return alphabeticalKeys
};
const getValInParen = (value) => {
return value.split("(")[1].split(")")[0];
};
const getArray = (array) => {
return Array.isArray(array) ? array : [ array ];
};
const getSplitNum = (value) => {
return value.split("/")[0];
}
mylog = function(msg) {
let d = new Date();
let lines = new Error().stack.split("\n");
log(d.toUTCString() + " " + lines[2].trim() + " " + msg);
}
</script>
</div>