mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-31 04:02:29 +00:00
8289 lines
457 KiB
HTML
8289 lines
457 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> </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> </span>
|
|
</div>
|
|
<div class="header-navtabs">
|
|
<input name="attr_tab" type="hidden" value="core"/>
|
|
<h1> </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" 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" 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" 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>
|
|
<!-- ~~:+: Lift & Carry :+:~~ -->
|
|
<input type="hidden" name="attr_lift_carry" value="" />
|
|
<button type="roll" name="lift & carry" 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> </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> </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> </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> </div>
|
|
</div>
|
|
<div class="magic-defense">
|
|
<div> </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> </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> </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> </span>
|
|
</div>
|
|
<div class="row-long cc-row primary-range">
|
|
<h2 data-i18n="primaryrangedweapon">Primary Ranged Weapon</h2>
|
|
<h2> </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> </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> </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> </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> </span>
|
|
</div>
|
|
<div class="row-long cc-row primary-melee">
|
|
<h2 data-i18n="primarymeleeweapon">Primary Melee Weapon</h2>
|
|
<h2> </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> </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☆ 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. ☆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> </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} &{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> </span>
|
|
<span> </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="t" value="T">t</option>
|
|
<option data-i18n="t (a)" value="T (A)">t (a)</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">Direct Combat, Area</option>
|
|
<option data-i18n="indirectcombat" value="Indirect Combat">Indirect Combat</option>
|
|
<option data-i18n="indirectcombatarea" value="Indirect Combat">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> </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> </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> </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> </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> </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> </span>
|
|
</div>
|
|
<div class="row-long technomancer-attributes techno-see">
|
|
<span> </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> </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> </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> </h2>
|
|
<h2> </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> </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> </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> </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> </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> </span>
|
|
</div>
|
|
<div class="row3">
|
|
<span> </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> </span>
|
|
</div>
|
|
<div class="row4">
|
|
<span> </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> </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> </span>
|
|
</div>
|
|
<div class="row-condition-monitor">
|
|
<span> </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> </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> </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> </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> </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> </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> </div>
|
|
|
|
<div class="rows">
|
|
<h1 data-i18n="sprites">Sprites</h1>
|
|
</div>
|
|
<div class="rows repeating-container sprites">
|
|
<div class="pc-row headers">
|
|
<span> </span>
|
|
<h2 data-i18n="lvl">Lvl</h2>
|
|
<h2 data-i18n="type">Type</h2>
|
|
<h2 data-i18n="tasks">Tasks</h2>
|
|
<span> </span>
|
|
<span> </span>
|
|
<span> </span>
|
|
</div>
|
|
<fieldset class="repeating_sprites">
|
|
<span> </span>
|
|
<span name="attr_level"></span>
|
|
<span name="attr_type"></span>
|
|
<span name="attr_tasks"></span>
|
|
<span> </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> </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">
|
|
|
|
</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> </span>
|
|
<span> </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> </span>
|
|
<span> </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> </span>
|
|
<span> </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> </span>
|
|
<span> </span>
|
|
<span> </span>
|
|
<span> </span>
|
|
<span> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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"> </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"> </span>
|
|
<span></span>
|
|
|
|
<h2 data-i18n="name"></h2>
|
|
<input name="attr_character_name" type="text" />
|
|
|
|
</div>
|
|
<div class="header-toggles pc-box">
|
|
<span> </span>
|
|
<button name="d6" title="Roll D6s" type="roll" value="@{gm_toggle} &{template:rolls}{{header=^{d6}}}{{base=^{d6}}}{{dice=[[(?{d6s|0}d6>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> </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> </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> </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> </span>
|
|
</div>
|
|
<div class="textrow autosofts">
|
|
<span> </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> </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> </span>
|
|
</div>
|
|
<div class="textrow autosofts">
|
|
<span> </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> </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> </span>
|
|
</div>
|
|
<div class="textrow autosofts">
|
|
<span> </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> </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> </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> </span>
|
|
<span> </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="t" value="T">t</option>
|
|
<option data-i18n="t (a)" value="T (A)">t (a)</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> </span>
|
|
<span> </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_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">Direct Combat, Area</option>
|
|
<option data-i18n="indirectcombat" value="Indirect Combat">Indirect Combat</option>
|
|
<option data-i18n="indirectcombatarea" value="Indirect Combat">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> </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> </span>
|
|
<span> </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> </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> </span>
|
|
<span> </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} &{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.39">
|
|
<input type="hidden" name="attr_data_version" value="0">
|
|
|
|
<script type="text/worker">
|
|
//Sheet workers
|
|
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. ☆ 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;
|
|
|
|
getAttrs(['body'], (v) => {
|
|
ratingTot = v['body'];
|
|
});
|
|
|
|
ids.forEach(id => {
|
|
var armorFields = [`${arm}_${id}_rating`, `${arm}_${id}_chem`, `${arm}_${id}_cold`, `${arm}_${id}_elec`, `${arm}_${id}_fire`, `${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`]);
|
|
}
|
|
|
|
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,
|
|
});
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
// 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>
|