mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
2702 lines
138 KiB
HTML
2702 lines
138 KiB
HTML
<!-- Custom Character Sheet for BenjaminGold282 -->
|
||
<!-- Made by Spirito, www.spirito.fr, Spirito#6973, spirito35220@gmail.com -->
|
||
<link href="moonshine.css" rel="stylesheet"/>
|
||
<!-- ----------------------- ROLL TEMPLATES ----------------------------- -->
|
||
<rolltemplate class="sheet-rolltemplate-moonshine">
|
||
{{^description}}
|
||
<!-- ----------------------------- -->
|
||
<div id="Header-Bloc1">
|
||
<!-- ----------------------------- -->
|
||
<div class="sheet-template-header sheet-bloc-header">
|
||
{{#specialities}}<span class="sheet-headerstyle1">{{name}} ♦ ({{check}})</span>{{/specialities}}
|
||
<!-- ----------------------------- -->
|
||
{{^specialities}}<span class="sheet-headerstyle1">{{name}}</span>{{/specialities}}
|
||
<!-- ----------------------------- -->
|
||
{{^specialities}}<span class="sheet-headerstyle2">{{charactername}} ♦ {{categorie}}</span>{{/specialities}}
|
||
<!-- ----------------------------- -->
|
||
{{#specialities}}<span class="sheet-headerstyle2">{{prereq1}} + {{prereq2}}</span>{{/specialities}}
|
||
<!-- ----------------------------- -->
|
||
</div>
|
||
<!-- ----------------------------- -->
|
||
</div>
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
<div id="Display Roll - Bloc 3">
|
||
|
||
{{#type}}
|
||
<div class="sheet-blocgeneral sheet-template-rolls" id="Display Rolls">
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() type 1}}
|
||
<div class="sheet-roll">{{roll}}</div>
|
||
|
||
{{#mod}}<div class="sheet-roll-detail sheet-roll-detail2">
|
||
<div class="sheet-roll">{{roll1}}</div>
|
||
<div class="sheet-roll">+{{mod}}</div>
|
||
</div>{{/mod}}
|
||
{{/rollTotal() type 1}}
|
||
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() type 2}}
|
||
<div class="sheet-roll">{{roll}}</div>
|
||
|
||
{{#mod}}<div class="sheet-roll-detail">{{/mod}}
|
||
{{^mod}}<div class="sheet-roll-detail sheet-roll-detail3">{{/mod}}
|
||
|
||
{{#rollLess() roll1 roll2}} {{#rollLess() roll1 roll3}}
|
||
<!-- roll1 est le plus petit -->
|
||
{{#rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll2 < roll3 -->
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/rollLess() roll2 roll3}}
|
||
{{#^rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll3 < roll2 -->
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/^rollLess() roll2 roll3}}
|
||
{{/rollLess() roll1 roll3}}
|
||
{{#^rollLess() roll1 roll3}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/^rollLess() roll1 roll3}}
|
||
{{/rollLess() roll1 roll2}}
|
||
{{#^rollLess() roll1 roll2}}
|
||
{{#rollLess() roll2 roll3}}
|
||
{{#rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll1 < roll3 -->
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/rollLess() roll1 roll3}}
|
||
{{#^rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll3 < roll1 -->
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/^rollLess() roll1 roll3}}
|
||
{{/rollLess() roll2 roll3}}
|
||
{{#^rollLess() roll2 roll3}}
|
||
{{#rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/rollLess() roll1 roll2}}
|
||
{{#^rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll2 < roll1 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll sheet-allgrey">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
{{/^rollLess() roll1 roll2}}
|
||
{{/^rollLess() roll2 roll3}}
|
||
{{/^rollLess() roll1 roll2}}
|
||
</div>
|
||
{{/rollTotal() type 2}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() type 3}}
|
||
|
||
<div class="sheet-roll">{{roll}}</div>
|
||
{{#mod}}<div class="sheet-roll-detail sheet-roll-detail3">{{/mod}}
|
||
{{^mod}}<div class="sheet-roll-detail sheet-roll-detail2">{{/mod}}
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
</div>
|
||
{{/rollTotal() type 3}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() type 4}}
|
||
<div class="sheet-roll">{{roll}}</div>
|
||
|
||
{{#mod}}<div class="sheet-roll-detail">{{/mod}}
|
||
{{^mod}}<div class="sheet-roll-detail sheet-roll-detail3">{{/mod}}
|
||
|
||
{{#rollLess() roll1 roll2}} {{#rollLess() roll1 roll3}}
|
||
<!-- roll1 est le plus petit -->
|
||
{{#rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll2 < roll3 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/rollLess() roll2 roll3}} {{#^rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll3 < roll2 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll2 roll3}} {{/rollLess() roll1 roll3}} {{#^rollLess() roll1 roll3}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll3}} {{/rollLess() roll1 roll2}} {{#^rollLess() roll1 roll2}} {{#rollLess() roll2 roll3}} {{#rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll1 < roll3 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/rollLess() roll1 roll3}} {{#^rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll3 < roll1 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll3}} {{/rollLess() roll2 roll3}} {{#^rollLess() roll2 roll3}} {{#rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/rollLess() roll1 roll2}} {{#^rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll2 < roll1 -->
|
||
<div class="sheet-roll sheet-allgrey">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll2}} {{/^rollLess() roll2 roll3}} {{/^rollLess() roll1 roll2}}
|
||
</div>
|
||
|
||
{{/rollTotal() type 4}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() type 5}}
|
||
<div class="sheet-roll">{{roll}}</div>
|
||
<!-- ----------------------------- -->
|
||
{{#mod}}<div class="sheet-roll-detail">{{/mod}}
|
||
{{^mod}}<div class="sheet-roll-detail sheet-roll-detail3">{{/mod}}
|
||
<!-- ----------------------------- -->
|
||
|
||
{{#rollLess() roll1 roll2}} {{#rollLess() roll1 roll3}} {{#rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll2 < roll3 -->
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}
|
||
|
||
{{/rollLess() roll2 roll3}} {{#^rollLess() roll2 roll3}}
|
||
<!-- roll1 < roll3 < roll2 -->
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll2 roll3}} {{/rollLess() roll1 roll3}} {{#^rollLess() roll1 roll3}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll3}} {{/rollLess() roll1 roll2}} {{#^rollLess() roll1 roll2}} {{#rollLess() roll2 roll3}} {{#rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll1 < roll3 -->
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll3}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/rollLess() roll1 roll3}} {{#^rollLess() roll1 roll3}}
|
||
<!-- roll2 < roll3 < roll1 -->
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll3}} {{/rollLess() roll2 roll3}} {{#^rollLess() roll2 roll3}} {{#rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll1 < roll2 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll1}},</div>
|
||
<div class="sheet-roll">{{roll2}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/rollLess() roll1 roll2}} {{#^rollLess() roll1 roll2}}
|
||
<!-- roll3 < roll2 < roll1 -->
|
||
<div class="sheet-roll">{{roll3}},</div>
|
||
<div class="sheet-roll">{{roll2}},</div>
|
||
<div class="sheet-roll">{{roll1}}</div>
|
||
{{#mod}}<div class="sheet-roll">+{{mod}}</div>{{/mod}}{{/^rollLess() roll1 roll2}} {{/^rollLess() roll2 roll3}} {{/^rollLess() roll1 roll2}}
|
||
</div>
|
||
|
||
{{/rollTotal() type 5}}
|
||
<!-- ----------------------------- -->
|
||
|
||
{{#button}}
|
||
<div class="sheet-extra-button">{{button}}</div>
|
||
{{/button}}
|
||
</div>
|
||
{{/type}}
|
||
|
||
{{#desc}}
|
||
<div class="sheet-template-rolls" id="DESCRIPTION 1">
|
||
<div class="sheet-description"><b data-i18n="description-label">Description</b> : {{desc}}</div>
|
||
</div>
|
||
{{/desc}}
|
||
</div>
|
||
<!-- ----------------------------- -->
|
||
{{/description}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#damage}}
|
||
<div class="sheet-template-rolls" id="DAMAGES">
|
||
<span class="sheet-headerstyle1 sheet-headerstyle1special">DMG {{#resilience}}({{resilience}}){{/resilience}}</span>
|
||
<div class="sheet-roll-detail sheet-roll-detail5">{{damage}}</div>
|
||
</div>
|
||
{{/damage}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#description}}
|
||
<div class="sheet-template-rolls" id="DESCRIPTION 2">
|
||
<div class="sheet-description"><b data-i18n="description-label">Description</b> : {{description}}</div>
|
||
</div>
|
||
{{/description}}
|
||
<!-- ----------------------------- -->
|
||
<!-- ----------------------------- -->
|
||
{{#rollTotal() specialisactive 1}}
|
||
<div class="sheet-template-rolls" id="DESCRIPTION 2">
|
||
<div class="sheet-description"><b data-i18n="special-label">Special</b> : {{special}}</div>
|
||
</div>
|
||
{{/rollTotal() specialisactive 1}}
|
||
<!-- ----------------------------- -->
|
||
</div></div></div></div></rolltemplate>
|
||
<div class="sheet-charsheet" style="margin-top: 10px">
|
||
<!-- -->
|
||
<div class="sheet-main-main">
|
||
<div class="sheet-standardbox">
|
||
<div class="sheet-oneline">
|
||
<!-- -->
|
||
<div class="sheet-main-header-logo">
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-main-header-privacy">
|
||
<div class="sheet-button-holder">
|
||
<input checked="" class="input-colored1" id="public" name="attr_global-privacy-status" type="radio" value=" "/>
|
||
<label class="sheet-globalprivacy" data-i18n="public-label" for="public">Public</label>
|
||
</div>
|
||
<div class="sheet-button-holder">
|
||
<input class="input-colored2" id="to-me" name="attr_global-privacy-status" type="radio" value="/me"/>
|
||
<label class="sheet-globalprivacy" data-i18n="private-label" for="to-me">Private</label>
|
||
</div>
|
||
<div class="sheet-button-holder">
|
||
<input class="input-colored2" id="to-gm" name="attr_global-privacy-status" type="radio" value="/w gm"/>
|
||
<label class="sheet-globalprivacy" data-i18n="to-gm-label" for="to-gm">To GM</label>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<!-- -->
|
||
<div class="sheet-main-top-informations">
|
||
<h4 data-i18n="name-label">Name</h4>
|
||
<h4 data-i18n="concept-label">Concept</h4>
|
||
<h4 data-i18n="player-label">Player</h4>
|
||
<!-- -->
|
||
<div class="sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container3 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration3-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar2" name="attr_character_name" type="text" value=""/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container3 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration3-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar2" name="attr_character_concept" type="text" value=""/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container3 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration3-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar2" name="attr_character_player" type="text" value=""/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-main-top-informations2">
|
||
<!-- -->
|
||
<div class="sheet-healthtitle sheet-online">
|
||
<h1 data-i18n="health-label">Health</h1>
|
||
<div class="sheet-triplecolumn">
|
||
<h4 data-i18n="cur-label">Cur.</h4>
|
||
<h4> </h4>
|
||
<h4 data-i18n="max-label">Max</h4>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-unwindtitle sheet-online">
|
||
<h1 data-i18n="unwind-label">Unwind</h1>
|
||
<h4> </h4>
|
||
</div>
|
||
<div class="sheet-energytitle sheet-online">
|
||
<h1 data-i18n="energy-label">Energy</h1>
|
||
<div class="sheet-triplecolumn">
|
||
<h4 data-i18n="cur-label">Cur.</h4>
|
||
<h4> </h4>
|
||
<h4 data-i18n="max-label">Max</h4>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-healthbloc sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container3 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar" name="attr_hp" type="number" value="0"/>
|
||
<h4>/</h4>
|
||
<input class="sheet-inputchar" name="attr_hp_max" type="number" value="0"/>
|
||
</div>
|
||
<input class="sheet-inputmod sheet-hidden" name="attr_hp_mod" type="number" value="0"/>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-unwindbloc sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline sheet-online">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<select class="sheet-inputchar" name="attr_unwind">
|
||
<option selected="">-</option>
|
||
<option data-i18n="mental-label">Mental</option>
|
||
<option data-i18n="physical-label">Physical</option>
|
||
<option data-i18n="social-label">Social</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-energybloc sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container3 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration0-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar" name="attr_energy" type="number" value="0"/>
|
||
<h4>/</h4>
|
||
<input class="sheet-inputchar" name="attr_energy_max" type="number" value="0"/>
|
||
</div>
|
||
<input class="sheet-inputmod sheet-hidden" name="attr_energy_mod" type="number" value="0"/>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-healthsubtitle sheet-online">
|
||
<h4 data-i18n="grit-stealth-label">Grit + Stealth</h4>
|
||
</div>
|
||
<div class="sheet-unwindsubtitle sheet-online"></div>
|
||
<div class="sheet-energysubtitle sheet-online">
|
||
<h4 data-i18n="focus-charm-label">Focus + Charm</h4>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
<!-- -->
|
||
<!-- -->
|
||
<!-- CHARACTERISTICS -->
|
||
<div class="sheet-main-characteristics">
|
||
<!-- -->
|
||
<h1 data-i18n="grit-label">Grit</h1>
|
||
<h1 data-i18n="stealth-label">Stealth</h1>
|
||
<h1 data-i18n="focus-label">Focus</h1>
|
||
<h1 data-i18n="charm-label">Charm</h1>
|
||
<!-- -->
|
||
<div class="sheet-backgroundbox">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-left">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-right">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-oneline">
|
||
<input class="sheet-inputchar sheet-core" data-i18n-placeholder="text-placeholder" name="attr_grit" placeholder="-" type="text"/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-backgroundbox">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-left">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-right">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-oneline">
|
||
<input class="sheet-inputchar sheet-core" data-i18n-placeholder="text-placeholder" name="attr_stealth" placeholder="-" type="text"/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-backgroundbox">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-left">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-right">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-oneline">
|
||
<input class="sheet-inputchar sheet-core" data-i18n-placeholder="text-placeholder" name="attr_focus" placeholder="-" type="text"/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-backgroundbox">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-left">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-right">
|
||
<div class="sheet-decoration3-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-oneline">
|
||
<input class="sheet-inputchar sheet-core" data-i18n-placeholder="text-placeholder" name="attr_charm" placeholder="-" type="text"/>
|
||
</div>
|
||
</div>
|
||
<h4 class="sheet-core-reverse"><span class="sheet-totalpointcore" name="attr_totalpointscore"></span></h4>
|
||
<!-- -->
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-barsverticales-global">
|
||
<div class="sheet-barsverticales-container">
|
||
<div class="sheet-barsverticales-item"></div>
|
||
<div class="sheet-barsverticales-item"></div>
|
||
<div class="sheet-barsverticales-item"></div>
|
||
<div class="sheet-barsverticales-item"></div>
|
||
</div>
|
||
<div class="sheet-asset-container">
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
</div>
|
||
<!-- SKILLS -->
|
||
<div class="sheet-main-skills-section">
|
||
<div class="sheet-doublecolumn">
|
||
<h1 data-i18n="skills-label">Skills</h1>
|
||
<h5>1 / 2 / 3 / 9</h5>
|
||
</div>
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<!-- Première sous-section : Athletics, Force, Intimidate, Resilience -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-athletics" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_athletics" type="roll" value="@{roll-athletics}"></button>
|
||
<h4 data-i18n="athletics-label">Athletics</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_athletics_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_athletics_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_athletics_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_athletics_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_athletics_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_athletics_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_athletics_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-force" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_force" type="roll" value="@{roll-force}"></button>
|
||
<h4 data-i18n="force-label">Force</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_force_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_force_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_force_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_force_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_force_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_force_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_force_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-intimidate" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_intimidate" type="roll" value="@{roll-intimidate}"></button>
|
||
<h4 data-i18n="intimidate-label">Intimidate</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_intimidate_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_intimidate_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_intimidate_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_intimidate_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_intimidate_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_intimidate_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_intimidate_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-resilience" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_resilience" type="roll" value="@{roll-resilience}"></button>
|
||
<h4 data-i18n="resilience-label">Resilience</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_resilience_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_resilience_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_resilience_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_resilience_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_resilience_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_resilience_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_resilience_roll" type="text" value="1d12"/>
|
||
</div>
|
||
</div>
|
||
<!-- Deuxième sous-section : Disguise, Evade, Smuggle, Sneak -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-disguise" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_disguise" type="roll" value="@{roll-disguise}"></button>
|
||
<h4 data-i18n="disguise-label">Disguise</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_disguise_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_disguise_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_disguise_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_disguise_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_disguise_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_disguise_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_disguise_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-evade" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_evade" type="roll" value="@{roll-evade}"></button>
|
||
<h4 data-i18n="evade-label">Evade</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_evade_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_evade_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_evade_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_evade_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_evade_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_evade_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_evade_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-smuggle" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_smuggle" type="roll" value="@{roll-smuggle}"></button>
|
||
<h4 data-i18n="smuggle-label">Smuggle</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_smuggle_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_smuggle_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_smuggle_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_smuggle_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_smuggle_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_smuggle_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_smuggle_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-sneak" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_sneak" type="roll" value="@{roll-sneak}"></button>
|
||
<h4 data-i18n="sneak-label">Sneak</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_sneak_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sneak_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sneak_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sneak_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_sneak_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_sneak_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_sneak_roll" type="text" value="1d12"/>
|
||
</div>
|
||
</div>
|
||
<!-- Troisième sous-section : Drive, Fix, Investigate, Notice -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-drive" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_drive" type="roll" value="@{roll-drive}"></button>
|
||
<h4 data-i18n="drive-label">Drive</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_drive_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_drive_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_drive_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_drive_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_drive_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_drive_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_drive_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-fix" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_fix" type="roll" value="@{roll-fix}"></button>
|
||
<h4 data-i18n="fix-label">Fix</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_fix_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_fix_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_fix_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_fix_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_fix_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_fix_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_fix_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-investigate" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_investigate" type="roll" value="@{roll-investigate}"></button>
|
||
<h4 data-i18n="investigate-label">Investigate</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_investigate_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_investigate_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_investigate_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_investigate_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_investigate_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_investigate_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_investigate_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-notice" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_notice" type="roll" value="@{roll-notice}"></button>
|
||
<h4 data-i18n="notice-label">Notice</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_notice_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_notice_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_notice_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_notice_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_notice_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_notice_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_notice_roll" type="text" value="1d12"/>
|
||
</div>
|
||
</div>
|
||
<!-- Quatrième sous-section : Deflect, Empathy, Guile, Speech -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-deflect" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_deflect" type="roll" value="@{roll-deflect}"></button>
|
||
<h4 data-i18n="deflect-label">Deflect</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_deflect_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_deflect_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_deflect_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_deflect_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_deflect_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_deflect_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_deflect_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-empathy" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_empathy" type="roll" value="@{roll-empathy}"></button>
|
||
<h4 data-i18n="empathy-label">Empathy</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_empathy_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_empathy_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_empathy_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_empathy_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_empathy_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_empathy_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_empathy_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-guile" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_guile" type="roll" value="@{roll-guile}"></button>
|
||
<h4 data-i18n="guile-label">Guile</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_guile_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_guile_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_guile_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_guile_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_guile_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_guile_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_guile_roll" type="text" value="1d12"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-speech" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_speech" type="roll" value="@{roll-speech}"></button>
|
||
<h4 data-i18n="speech-label">Speech</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_speech_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_speech_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_speech_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_speech_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_speech_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_speech_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_speech_roll" type="text" value="1d12"/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-asset-container">
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
</div>
|
||
<!-- WEAPONS -->
|
||
<div class="sheet-main-skills-section sheet-main-skills-section1">
|
||
<div class="sheet-doublecolumn">
|
||
<h1 data-i18n="weapons-label">Weapons</h1>
|
||
<h5>1 / 2 / 3 / 9</h5>
|
||
</div>
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
</div>
|
||
<!-- Première sous-section : Blackjacks, Knuckles, Shotguns -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-blackjacks" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_blackjacks" type="roll" value="@{roll-blackjacks} {{damage=[[@{blackjacks_damage}]]}} {{specialisactive=[[@{blackjacks_specialisactive}]]}} {{special=@{blackjacks_special}}}"></button>
|
||
<h4 data-i18n="blackjacks-label">Blackjacks</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackjacks_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackjacks_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackjacks_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackjacks_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackjacks_special" type="text" value="Daze: If the target of an attack with a blackjack takes any damage, they have a -2 penalty to all rolls until the end of your next turn"/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-knuckles" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_knuckles" type="roll" value="@{roll-knuckles} {{damage=[[@{knuckles_damage}]]}} {{specialisactive=[[@{knuckles_specialisactive}]]}} {{special=@{knuckles_special}}}"></button>
|
||
<h4 data-i18n="knuckles-label">Knuckles</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_knuckles_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knuckles_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knuckles_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knuckles_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knuckles_special" type="text" value="One Two Combo: When you succeed on a Knuckles roll, roll Knuckles again against the same defense roll. If you succeed, add 3 damage to the attack."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-shotguns" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_shotguns" type="roll" value="@{roll-shotguns} {{damage=[[@{shotguns_damage}]]}} {{specialisactive=[[@{shotguns_specialisactive}]]}} {{special=@{shotguns_special}}} {{resilience=-10 RES}}"></button>
|
||
<h4 data-i18n="shotguns-label">Shotguns</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_shotguns_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_shotguns_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_shotguns_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_shotguns_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_shotguns_special" type="text" value="Spread: You may target an additional targets within 5 feet of your primary target. Make one Shotguns roll that all targets defend against."/>
|
||
</div>
|
||
</div>
|
||
<!-- Deuxième sous-section : Archery, Piano Wire, Pistols -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-archery" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_archery" type="roll" value="@{roll-archery} {{damage=[[@{archery_damage}]]}} {{specialisactive=[[@{archery_specialisactive}]]}} {{special=@{archery_special}}}"></button>
|
||
<h4 data-i18n="archery-label">Archery</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_archery_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_archery_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_archery_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_archery_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_archery_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_archery_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_archery_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_archery_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_archery_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_archery_special" type="text" value="Marksman: Increase your damage dealt with Archery by your dots of Notice."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-pianowire" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_pianowire" type="roll" value="@{roll-pianowire} {{damage=[[@{pianowire_damage}]]}} {{specialisactive=[[@{pianowire_specialisactive}]]}} {{special=@{pianowire_special}}}"></button>
|
||
<h4 data-i18n="piano-wire-label">Piano Wire</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_pianowire_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pianowire_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pianowire_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pianowire_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pianowire_special" type="text" value="Quick Kill: If your target was unaware of you before being grappled, the damage of Piano Wire is doubled until the grapple is broken."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-pistols" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_pistols" type="roll" value="@{roll-pistols} {{damage=[[@{pistols_damage}]]}} {{specialisactive=[[@{pistols_specialisactive}]]}} {{special=@{pistols_special}}} {{resilience=-5 RES}}"></button>
|
||
<h4 data-i18n="pistols-label">Pistols</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_pistols_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pistols_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pistols_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pistols_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pistols_special" type="text" value="Quick Draw: Add your dots of Pistols to your Force rolls when determining turn order. If you shoot someone who has not yet acted in combat, they do not get to actively evade, taking their passive value instead."/>
|
||
</div>
|
||
</div>
|
||
<!-- Troisième sous-section : Grenades, Rapiers, Rifles -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-grenades" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_grenades" type="roll" value="@{roll-grenades} {{damage=[[@{grenades_damage}]]}} {{specialisactive=[[@{grenades_specialisactive}]]}} {{special=@{grenades_special}}}"></button>
|
||
<h4 data-i18n="grenades-label">Grenades</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_grenades_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_grenades_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_grenades_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_grenades_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_grenades_special" type="text" value="Controlled Blast: You can choose to reduce the explosion radius of a device to 5 feet. You make this choice before rolling for the throw."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-rapiers" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_rapiers" type="roll" value="@{roll-rapiers} {{damage=[[@{rapiers_damage}]]}} {{specialisactive=[[@{rapiers_specialisactive}]]}} {{special=@{rapiers_special}}}"></button>
|
||
<h4 data-i18n="rapiers-label">Rapiers</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_rapiers_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rapiers_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rapiers_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rapiers_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rapiers_special" type="text" value="Riposte: Increase your Deflect by your dots of Rapiers. If you succeed in Deflecting an attack, your next attack this combat does +2 damage."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-rifles" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_rifles" type="roll" value="@{roll-rifles} {{damage=[[@{rifles_damage}]]}} {{specialisactive=[[@{rifles_specialisactive}]]}} {{special=@{rifles_special}}} {{resilience=-10 RES}}"></button>
|
||
<h4 data-i18n="rifles-label">Rifles</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_rifles_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rifles_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rifles_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_rifles_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_rifles_special" type="text" value="Focused Breathing: If no enemy is within 20 feet of you, you ignore partial cover and have a +5 bonus to Rifle rolls when making a called shot."/>
|
||
</div>
|
||
</div>
|
||
<!-- Quatrième sous-section : Improvised, Knives, Machineguns -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-improvised" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_improvised" type="roll" value="@{roll-improvised} {{damage=[[@{improvised_damage}]]}} {{specialisactive=[[@{improvised_specialisactive}]]}} {{special=@{improvised_special}}}"></button>
|
||
<h4 data-i18n="improvised-label">Improvised</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_improvised_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_improvised_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_improvised_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_improvised_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_specialisactive" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_improvised_special" type="text" value="Yes And: If you pick up an item and attack with it in the same turn, add 2 to your Improvised weapon rolls and deal 2 additional damage if you hit."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-knives" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_knives" type="roll" value="@{roll-knives} {{damage=[[@{knives_damage}]]}} {{specialisactive=[[@{knives_specialisactive}]]}} {{special=@{knives_special}}}"></button>
|
||
<h4 data-i18n="knives-label">Knives</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_knives_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knives_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knives_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_knives_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_knives_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knives_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knives_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_knives_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knives_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_knives_special" type="text" value="Quick Hands: Make two attacks per action when attacking with a knife. These attacks can be split by movement."/>
|
||
</div>
|
||
<div class="sheet-main-skills">
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-machineguns" type="text" value=""/>
|
||
<button class="sheet-button-attack" name="roll_machineguns" type="roll" value="@{roll-machineguns} {{damage=[[@{machineguns_damage}]]}} {{specialisactive=[[@{machineguns_specialisactive}]]}} {{special=@{machineguns_special}}} {{resilience=-10 RES}}"></button>
|
||
<h4 data-i18n="machineguns-label">Machineguns</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_machineguns_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_machineguns_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_machineguns_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_machineguns_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_bonus" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_damage" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_specialisactive" type="text" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_machineguns_special" type="text" value="Rat-a-tat-tat: You can attack all targets within a 15 foot square. Make one weapon roll that targets the area. Deal 3 less damage when attacking in this way."/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-asset-container">
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
<div class="sheet-asset-item"></div>
|
||
</div>
|
||
<!-- SPECIAL SKILLS SECTION -->
|
||
<div class="sheet-main-skills-section sheet-main-skills-section2">
|
||
<div class="sheet-doublecolumn">
|
||
<h1 data-i18n="specialties-label">Specialties</h1>
|
||
<h5>2 / 4 / 6 / 18</h5>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
<div class="sheet-decoration2-item"></div>
|
||
<div class="sheet-decoration1-item"></div>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<!-- Première sous-section : Endurance, Presence, Steelmind, Suckerpunch, Tenacity -->
|
||
<div class="sheet-main-skills-subsection" title="Resilience + Deflect">
|
||
<div class="sheet-main-skills sheet-main-skills-endurance">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-description" name="roll_endurance" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{type=[[1]]}} {{roll=[[1d12]]}} {{prereq1=Resilience}} {{prereq2=Deflect}} {{name=Endurance}} {{desc=@{endurance-desc}}} {{check=@{endurance-checked}}}"></button>
|
||
<h4 data-i18n="endurance-label">Endurance</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_endurance_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_endurance_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_endurance_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_endurance_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_endurance_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_endurance-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_endurance_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_endurance-desc" type="text" value="
|
||
When spending energy on a physical action roll 1d12, if you roll a (6/5/4/2) or higher you regain 1 energy, with the target number decreasing as you gain dots of Endurance."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-presence" title="Intimidate + Empathy">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_presence" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{presence_roll}+@{grit}]]}} {{prereq1=Intimidate}} {{prereq2=Empathy}} {{name=Presence}} {{desc=@{presence-desc}}} {{check=@{presence-checked}}}"></button>
|
||
<h4 data-i18n="presence-label">Presence</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_presence_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_presence_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_presence_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_presence_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_presence_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_presence-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_presence_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_presence-desc" type="text" value="When meeting someone for the first time, roll empathy or intimidate.
|
||
On a 15 or higher, choose one of the following dispositions for the character to have towards you. Extra dots give additional options.</br></br>
|
||
|
||
• Comfortable, Timid, Disinterested</br>
|
||
•• Friendly, Nervous, Jealous</br>
|
||
••• Charmed, Intimidated, Trusting</br>
|
||
•••• Enamored, Terrified, Loyal
|
||
"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-steelmind" title="Force + Deflect">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_steelmind" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{steelmind_roll}+@{grit}]]}} {{prereq1=Force}} {{prereq2=Deflect}} {{name=Steel Mind}} {{desc=@{steelmind-desc}}} {{check=@{steelmind-checked}}}"></button>
|
||
<h4 data-i18n="steelmind-label">Steelmind</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_steelmind_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_steelmind_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_steelmind_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_steelmind_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_steelmind_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_steelmind-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_steelmind_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_steelmind-desc" type="text" value="
|
||
Psychics have a hard time getting into your mind. You actively defend
|
||
against any psychic effect. When trying to prevent a psychic intrusion or
|
||
end a psychic effect, roll with a +2 bonus per dot of Steel Mind."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-suckerpunch" title="Athletics + Guile">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_suckerpunch" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{suckerpunch_roll}+@{grit}]]}} {{prereq1=Athletics}} {{prereq2=Guile}} {{name=Suckerpunch}} {{desc=@{suckerpunch-desc}}} {{check=@{suckerpunch-checked}}}"></button>
|
||
<h4 data-i18n="suckerpunch-label">Suckerpunch</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_suckerpunch_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suckerpunch_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suckerpunch_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suckerpunch_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_suckerpunch_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_suckerpunch-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_suckerpunch_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_suckerpunch-desc" type="text" value="
|
||
If you deal damage with a melee attack to a target who has not yet acted
|
||
in initiative the target takes 2 extra damage per dot of Sucker Punch. The
|
||
target also has a -5 penalty to all rolls until the end of your next turn."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-tenacity" title="Resilience + Evade">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_tenacity" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{tenacity_roll}+@{grit}]]}} {{prereq1=Resilience}} {{prereq2=Evade}} {{name=Tenacity}} {{desc=@{tenacity-desc}}} {{check=@{tenacity-checked}}}"></button>
|
||
<h4 data-i18n="tenacity-label">Tenacity</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_tenacity_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_tenacity_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_tenacity_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_tenacity_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_tenacity_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_tenacity-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_tenacity_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_tenacity-desc" type="text" value="
|
||
Reduce damage taken by 1 per dot of Tenacity."/>
|
||
</div>
|
||
</div>
|
||
<!-- Deuxième sous-section : Assassinate, Forge, Infiltrate, Pickpocket, Snoop -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills sheet-main-skills-assassinate" title="Guile + Sneak">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_assassinate" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{assassinate_roll}+@{stealth}]]}} {{prereq1=Guile}} {{prereq2=Sneak}} {{name=Assassinate}} {{desc=@{assassinate-desc}}} {{check=@{assassinate-checked}}}"></button>
|
||
<h4 data-i18n="assassinate-label">Assassinate</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_assassinate_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_assassinate_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_assassinate_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_assassinate_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_assassinate_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_assassinate-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_assassinate_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_assassinate-desc" type="text" value="
|
||
When attacking a target who doesn’t know where you are when the
|
||
attack is rolled, deal 2 extra damage per dot of assassinate. For Piano
|
||
wire, this bonus lasts until the initial grapple is broken."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-forge" title="Empathy + Fix">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_forge" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{forge_roll}+@{stealth}]]}} {{prereq1=Empathy}} {{prereq2=Fix}} {{name=Forge}} {{desc=@{forge-desc}}} {{check=@{forge-checked}}}"></button>
|
||
<h4 data-i18n="forge-label">Forge</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_forge_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forge_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forge_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forge_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_forge_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_forge-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_forge_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_forge-desc" type="text" value="
|
||
You can make convincing fake versions of art, official documents and
|
||
signatures that you’ve had time to study. When making a fake, roll fix.
|
||
That becomes the target of the challenge roll to determine it is a fake.
|
||
Different things will take more or less time to forge. A parking ticket
|
||
might only take a minute, a painting could take weeks or months."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-infiltrate" title="Sneak + Force">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_infiltrate" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{infiltrate_roll}+@{stealth}]]}} {{prereq1=Sneak}} {{prereq2=Force}} {{name=Infiltrate}} {{desc=@{infiltrate-desc}}} {{check=@{infiltrate-checked}}}"></button>
|
||
<h4 data-i18n="infiltrate-label">Infiltrate</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_infiltrate_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_infiltrate_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_infiltrate_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_infiltrate_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_infiltrate_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_infiltrate-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_infiltrate_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_infiltrate-desc" type="text" value="
|
||
When picking locks, quietly break windows, crack safes, or other such
|
||
activities get a +2 bonus per dot of Infiltrate."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-pickpocket" title="Smuggle + Guile">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_pickpocket" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{pickpocket_roll}+@{stealth}]]}} {{prereq1=Smuggle}} {{prereq2=Guile}} {{name=Pickpocket}} {{desc=@{pickpocket-desc}}} {{check=@{pickpocket-checked}}}"></button>
|
||
<h4 data-i18n="pickpocket-label">Pickpocket</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_pickpocket_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pickpocket_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pickpocket_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pickpocket_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_pickpocket_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pickpocket-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pickpocket_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_pickpocket-desc" type="text" value="
|
||
You can roll smuggle to attempt to steal things from someone’s person
|
||
without them noticing. Make such smuggle rolls with a +2 bonus per dot
|
||
of Pickpocket."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-snoop" title="Notice + Evade">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_snoop" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{snoop_roll}+@{stealth}]]}} {{categorie=Roll}} {{prereq1=Notice}} {{prereq2=Evade}} {{name=Snoop}} {{desc=@{snoop-desc}}} {{check=@{snoop-checked}}}"></button>
|
||
<h4 data-i18n="snoop-label">Snoop</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_snoop_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_snoop_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_snoop_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_snoop_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_snoop_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_snoop-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_snoop_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_snoop-desc" type="text" value="
|
||
You are adept at furtively overhearing conversations or looking for clues
|
||
without being noticed. When investigating you can roll sneak in order
|
||
to have your investigations go unnoticed. Make this sneak roll with a +2
|
||
bonus per dot of snoop"/>
|
||
</div>
|
||
</div>
|
||
<!-- Troisième sous-section : Forensics, Law, Medicine, Sniper, Studious -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills sheet-main-skills-forensics" title="Notice + Investigate">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_forensics" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{forensics_roll}+@{focus}]]}} {{prereq1=Notice}} {{prereq2=Investigate}} {{name=Forensics}} {{desc=@{forensics-desc}}} {{check=@{forensics-checked}}}"></button>
|
||
<h4 data-i18n="forensics-label">Forensics</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_forensics_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forensics_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forensics_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_forensics_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_forensics_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_forensics-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_forensics_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_forensics-desc" type="text" value="
|
||
You are studied in analyzing a scene and finding clues that others might
|
||
miss. Others might see a simple blood splatter where you see a story.
|
||
When Investigating a crime scene or tracking someone roll with a +2
|
||
bonus per dot of Forensics"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-law" title="Speech + Investigate">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_law" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{law_roll}+@{focus}]]}} {{prereq1=Speech}} {{prereq2=Investigate}} {{name=Law}} {{desc=@{law-desc}}} {{check=@{law-checked}}}"></button>
|
||
<h4 data-i18n="law-label">Law</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_law_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_law_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_law_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_law_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_law_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_law-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_law_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_law-desc" type="text" value="
|
||
Know the ins and outs of the rule of law to better hold it up, or to know
|
||
how to get around it. When making any roll to do with understanding,
|
||
explaining, evading or arguing the law roll
|
||
with a +2 bonus per dot of law."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-medicine" title="Fix + Resilience">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_medicine" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{medicine_roll}+@{focus}]]}} {{prereq1=Fix}} {{prereq2=Resilience}} {{name=Medicine}} {{desc=@{medicine-desc}}} {{check=@{medicine-checked}}}"></button>
|
||
<h4 data-i18n="medicine-label">Medicine</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_medicine_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medicine_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medicine_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medicine_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_medicine_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_medicine-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_medicine_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_medicine-desc" type="text" value="
|
||
With the proper equipment and materials, you can make drugs, and
|
||
administer healthcare. A successful Fix roll against difficulty 15 can
|
||
recover 1 health. This takes 30 minutes and can only be attempted once
|
||
per day per person. In addition you get a +2 bonus on this and other
|
||
rolls where medical knowledge would be useful."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-sniper" title="Notice + Evade">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_sniper" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{sniper_roll}+@{focus}]]}} {{prereq1=Notice}} {{prereq2=Evade}} {{name=Sniper}} {{desc=@{sniper-desc}}} {{check=@{sniper-checked}}}"></button>
|
||
<h4 data-i18n="sniper-label">Sniper</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_sniper_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sniper_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sniper_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_sniper_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_sniper_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_sniper-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_sniper_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_sniper-desc" type="text" value="
|
||
Ranged weapons have doubled range, add 2 per dot of sniper to weapon
|
||
rolls for ranged attacks"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-studious" title="Force + Investigate">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_studious" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{type=[[1]]}} {{roll=[[1d12]]}} {{prereq1=Force}} {{prereq2=Investigate}} {{name=Studious}} {{desc=@{studious-desc}}} {{check=@{studious-checked}}}"></button>
|
||
<h4 data-i18n="studious-label">Studious</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_studious_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_studious_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_studious_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_studious_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_studious_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_studious-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_studious_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_studious-desc" type="text" value="
|
||
When spending energy on a mental action roll 1d12, if you roll a (6/5/4/2) regain 1 energy, with the target number decreasing as you gain dots of Studious."/>
|
||
</div>
|
||
</div>
|
||
<!-- Quatrième sous-section : Blackmarket, Coldread, Pontificate, Moxie, Performances -->
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills sheet-main-skills-blackmarket" title="Smuggle + Drive">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_blackmarket" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{blackmarket_roll}+@{charm}]]}} {{prereq1=Smuggle}} {{prereq2=Drive}} {{name=Blackmarket}} {{desc=@{blackmarket-desc}}} {{check=@{blackmarket-checked}}}"></button>
|
||
<h4 data-i18n="blackmarket-label">Blackmarket</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackmarket_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackmarket_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackmarket_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_blackmarket_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_blackmarket_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackmarket-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_blackmarket_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_blackmarket-desc" type="text" value="
|
||
You have connections in the black market that give you cheaper prices
|
||
for drugs and other contraband. More dots provides access to more
|
||
restricted contraband. Below are examples of something you might be
|
||
able to obtain at each dot level.</br></br>
|
||
• A Shipment of Hooch</br>
|
||
•• Restricted weapons</br>
|
||
••• Stolen Art</br>
|
||
•••• Official US mint currency plates"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-coldread" title="Notice + Empathy">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_coldread" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{coldread_roll}+@{charm}]]}} {{prereq1=Notice}} {{prereq2=Empathy}} {{name=Coldread}} {{desc=@{coldread-desc}}} {{check=@{coldread-checked}}}"></button>
|
||
<h4 data-i18n="coldread-label">Coldread</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_coldread_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_coldread_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_coldread_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_coldread_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_coldread_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_coldread-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_coldread_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_coldread-desc" type="text" value="
|
||
You have an acute understanding of how to understand people’s
|
||
motivation. If you observe someone or talk to them, you get a +2 per dot
|
||
of cold read to discern their motivation or feelings."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-pontificate" title="Speech + Resilience">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_pontificate" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{type=[[1]]}} {{roll=[[1d12]]}} {{prereq1=Speech}} {{prereq2=Resilience}} {{name=Pontificate}} {{desc=@{pontificate-desc}}} {{check=@{pontificate-checked}}}"></button>
|
||
<h4 data-i18n="pontificate-label">Pontificate</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_pontificate_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pontificate_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pontificate_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_pontificate_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_pontificate_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pontificate-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_pontificate_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_pontificate-desc" type="text" value="When spending energy on a social action roll 1d12, if you roll a
|
||
(6/5/4/2) regain 1 energy, with the target number decreasing as you
|
||
gain dots of Pontificate."/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-moxie" title="Speech + Force">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_moxie" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{moxie_roll}+@{charm}]]}} {{prereq1=Speech}} {{prereq2=Force}} {{name=Moxie}} {{desc=@{moxie-desc}}} {{check=@{moxie-checked}}}"></button>
|
||
<h4 data-i18n="moxie-label">Moxie</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_moxie_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_moxie_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_moxie_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_moxie_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_moxie_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_moxie-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_moxie_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_moxie-desc" type="text" value="
|
||
You can get away with minor social taboos, and even get praise for
|
||
brazenly bending social norms. Roll speech or intimidate against a
|
||
challenge roll, the difficulty determined by the severity of the taboo.
|
||
Make this roll with a +2 bonus per dot of Moxie.</br></br>
|
||
Example Taboo Challenge #</br>
|
||
Gently insulting someone in a position of power. 5</br>
|
||
Barging into someone’s office. 10</br>
|
||
Punching someone harassing people at a bar. 15</br>
|
||
Crashing a political speech and taking the mic. 20</br>
|
||
Serving hooch to the chief of police. 25</br>
|
||
Shooting someone who is harassing people. 30"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills-performances" title="Empathy + Force">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_performances" type="roll" value="@{global-privacy-status} &{template:moonshine} {{specialities=1}} {{roll=[[@{performances_roll}+@{charm}]]}} {{prereq1=Empathy}} {{prereq2=Force}} {{name=Performances}} {{desc=@{performances-desc}}} {{check=@{performances-checked}}}"></button>
|
||
<h4 data-i18n="performance-label">Performance</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_performances_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_performances_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_performances_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_performances_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_performances_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_performances-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_performances_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_performances-desc" type="text" value="You can make all eyes in a room fall on you through acting, music, dance,
|
||
oration, or other spectacles. Roll Empathy to determine how many
|
||
people you have the full attention of.
|
||
Make this roll with a +2 bonus per dot of Performance.</br></br>
|
||
Number of People Challenge #</br>
|
||
One person. 10</br>
|
||
A small crowd. 15</br>
|
||
An entire room. 20</br>
|
||
Everyone who can see or hear you. 25"/>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
<!-- PSYCHIC / FLAWS / STANDING -->
|
||
<div class="sheet-main-notlast-section">
|
||
<div class="sheet-doublecolumn">
|
||
<h1 data-i18n="psychic-label">Psychic</h1>
|
||
<h5>3 / 6 / 9 / 27</h5>
|
||
</div>
|
||
<h1 data-i18n="flaw-label">Flaw</h1>
|
||
<h1 data-i18n="standing-label">Standing</h1>
|
||
<!-- PSYCHIC SECTION -->
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-main-skills-subsection">
|
||
<!-- Hypnotism -->
|
||
<div class="sheet-main-skills sheet-main-skills-hypnotism" title="Speech + Disguise">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<input class="sheet-button-attack" name="attr_roll-hypnotism" type="text" value="0"/>
|
||
<button class="sheet-button-attack" name="roll_hypnotism" type="roll" value="@{roll-hypnotism}"></button>
|
||
<button class="sheet-hidden" name="roll_show-hypnotism-desc" type="roll" value="@{global-privacy-status} &{template:moonshine} {{description=@{hypnotism-desc}}}"></button>
|
||
<h4 data-i18n="hypnotism-label">Hypnotism</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_hypnotism_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_hypnotism_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_hypnotism_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_hypnotism_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_hypnotism_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_hypnotism-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_hypnotism_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_hypnotism-desc" type="text" value="
|
||
Hypnotism has powerful effects but requires a subject to willingly focus
|
||
on you for 10 minutes. They don’t need to know you are hypnotizing
|
||
them. A lecturer, therapist, or Preacher could hypnotize people during
|
||
their daily work. You may Hypnotize yourself if you so desire. These
|
||
effects can last for up to one day with one dot, one week with two dots,
|
||
and one month with three dots.</br></br>
|
||
|
||
• You can adjust people’s habits slightly. For example, change the route
|
||
someone takes to work, make them dislike their favorite food, or other
|
||
such adjustments.</br></br>
|
||
|
||
•• You can make people behave strongly against their character, but
|
||
they will not willingly harm themselves or put themselves in harm’s way.
|
||
If they are compelled to act against their morals, they can roll Force, to
|
||
break the hypnotism before taking the action. You can also put someone
|
||
or yourself into a healing trance that doubles energy and health recovery.</br></br>
|
||
|
||
••• You can hide complete control of a person in their psyche to
|
||
force them to behave exactly as you want them to. In this state, they can
|
||
behave against their own character and against their own morals or selfpreservation. This state lasts until the condition of your choosing or one
|
||
month.</br></br>
|
||
|
||
•••• You can perform all these types of hypnosis on an entire
|
||
room of people all at once. You must spend the energy for the level of
|
||
hypnotism +4 to do so. This hypnotism doesn’t target specific people, so
|
||
any onlooker or unexpected person to witness it may also fall victim."/>
|
||
</div>
|
||
<!-- Medium -->
|
||
<input class="sheet-hiddena sheet-fullspan" name="attr_roll-medium" type="text" value="0"/>
|
||
<div class="sheet-main-skills sheet-main-skills-medium" title="Empathy + Investigate">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_medium" type="roll" value="@{roll-medium}"></button>
|
||
<button class="sheet-hidden" name="roll_show-medium-desc" type="roll" value="@{global-privacy-status} &{template:moonshine} {{description=@{medium-desc}}}"></button>
|
||
<h4 data-i18n="medium-label">Medium</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_medium_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medium_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medium_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_medium_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_medium_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_medium-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_medium_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_medium-desc" type="text" value="
|
||
You can reach out to the dead, and they will reach back. Spirits of restless
|
||
dead wander the world, unable to interact with the tangible word.
|
||
Your mind is able to cross that divide. A great deal of knowledge can
|
||
be gained from those between worlds, though they aren’t always fully
|
||
coherent.</br></br>
|
||
|
||
Using medium is unopposed, unless the ghost is unwilling.</br></br>
|
||
|
||
• You can see nearby spirits for 1 minute, and hear what they are saying,
|
||
They can not hear you, but might respond to nearby people or objects.</br></br>
|
||
|
||
•• You can see and hear nearby spirits for 1 minute. If you have an
|
||
object closely associated with one of the spirits, that spirit can hear you
|
||
and give one-word answers and simple gestures in response. Spirits
|
||
might not be truthful or cooperative.</br></br>
|
||
|
||
••• You can hold a seance to summon a particular spirit to speak
|
||
to. It takes an uninterrupted half-hour, and an object or willing person
|
||
closely associated with the spirit. After that hour you can ask 3 questions
|
||
to the spirit. It can respond to each question in 6 words. Spirits might not
|
||
be truthful or cooperative.</br></br>
|
||
|
||
•••• You can allow a spirit to possess you, allowing them to speak
|
||
and act on the material world. A spirit might refuse to leave, and they
|
||
aren’t always easy to force out. Until you do remove them, they have full
|
||
control of your body."/>
|
||
</div>
|
||
<!-- Read Minds -->
|
||
<input class="sheet-hiddena sheet-fullspan" name="attr_roll-readminds" type="text" value="0"/>
|
||
<div class="sheet-main-skills sheet-main-skills-readminds" title="Empathy + Sneak">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_readminds" type="roll" value="@{roll-readminds}"></button>
|
||
<button class="sheet-hidden" name="roll_show-readminds-desc" type="roll" value="@{global-privacy-status} &{template:moonshine} {{description=@{readminds-desc}}}"></button>
|
||
<h4 data-i18n="read-minds-label">Read Minds</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_readminds_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_readminds_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_readminds_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_readminds_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_readminds_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_readminds-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_readminds_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_readminds-desc" type="text" value="
|
||
If you can see someone’s eyes you can peer into their mind.</br></br>
|
||
|
||
• See Auras for 10 seconds. You can look at people to get a sense
|
||
of their emotions and nature.</br></br>
|
||
|
||
•• Read Surface Thoughts for 30 seconds. You can hear their
|
||
stream of thoughts.</br></br>
|
||
|
||
••• Reed Deep Thoughts for 1 minute. You can delve into their
|
||
memories and hidden thoughts.</br></br>
|
||
|
||
•••• You enter the mind of your target, and in an instant,
|
||
you can gather all the information they have. If this target has any
|
||
addictions or phobias, you inherit those
|
||
"/>
|
||
</div>
|
||
<input class="sheet-hiddena sheet-fullspan" name="attr_roll-suggestion" type="text" value="0"/>
|
||
<!-- Suggestion -->
|
||
<div class="sheet-main-skills sheet-main-skills-suggestion" title="Guile + Force">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_suggestion" type="roll" value="@{roll-suggestion}"></button>
|
||
<button class="sheet-hidden" name="roll_show-suggestion-desc" type="roll" value="@{global-privacy-status} &{template:moonshine} {{description=@{suggestion-desc}}}"></button>
|
||
<h4 data-i18n="suggestion-label">Suggestion</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_suggestion_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suggestion_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suggestion_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_suggestion_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_suggestion_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_suggestion-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_suggestion_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_suggestion-desc" type="text" value="
|
||
With a single phrase, you can convince people to do things they
|
||
otherwise might not have done, though it has to be something
|
||
they might reasonably do. You might make a bouncer let you into a
|
||
bar, or a security guard with tobacco addiction take a smoke break.
|
||
When the suggestion ends, the subject will not know they were
|
||
compelled, rather they will rationalize their choices, but might work
|
||
to undo their compelled actions.</br></br>
|
||
|
||
• The suggestion lasts for 30 seconds</br></br>
|
||
|
||
•• The suggestion lasts for 30 minutes</br></br>
|
||
|
||
••• The suggestion lasts for 3 hours</br></br>
|
||
•••• The suggestion lasts for 3 hours and they will now take
|
||
actions they would otherwise have not reasonably done. After the
|
||
suggestion is complete, roll 1d12. On 1 the subject dies."/>
|
||
</div>
|
||
<input class="sheet-hiddena sheet-fullspan" name="attr_roll-psychometry" type="text" value=""/>
|
||
<!-- Psychometry -->
|
||
<div class="sheet-main-skills sheet-main-skills-psychometry" title="Empathy + Notice">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<div class="sheet-button-holder">
|
||
<button class="sheet-button-attack" name="roll_psychometry" type="roll" value="@{roll-psychometry}"></button>
|
||
<button class="sheet-hidden" name="roll_show-psychometry-desc" type="roll" value="@{global-privacy-status} &{template:moonshine} {{description=@{psychometry-desc}}}"></button>
|
||
<h4 data-i18n="psychometry-label">Psychometry</h4>
|
||
</div>
|
||
<input class="sheet-minimal-checkbox" name="attr_psychometry_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_psychometry_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_psychometry_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox" name="attr_psychometry_4" type="checkbox" value="1"/>
|
||
<input class="sheet-hiddena" name="attr_psychometry_total" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_psychometry-checked" type="number" value="0"/>
|
||
<input class="sheet-hiddena" name="attr_psychometry_roll" type="text" value="1d12"/>
|
||
<input class="sheet-hiddena" name="attr_psychometry-desc" type="text" value="
|
||
You can learn a great deal from touching an object and sensing its
|
||
history. While the object’s memory will mostly be clear, faces are
|
||
impossible to identify from the visions.</br></br>
|
||
• You can see the last hour of an object’s history.</br></br>
|
||
•• You can see the last day of an object’s history.</br></br>
|
||
••• You can see the last month of an object’s history.</br></br>
|
||
•••• You can see the last century of an object’s history.
|
||
You become deeply attached to this item and losing it causes great strife"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-main-flaws-section">
|
||
<div class="sheet-button-holder">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<input class="sheet-minimal-checkbox" name="attr_flaw1-checked" type="checkbox" value="1"/>
|
||
</div>
|
||
<input class="sheet-left" data-i18n-placeholder="text-placeholder" name="attr_flaw1-name" placeholder="-" type="text"/>
|
||
<div class="sheet-button-holder">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<input class="sheet-minimal-checkbox" name="attr_flaw2-checked" type="checkbox" value="1"/>
|
||
</div>
|
||
<input class="sheet-left" data-i18n-placeholder="text-placeholder" name="attr_flaw2-name" placeholder="-" type="text"/>
|
||
<div class="sheet-button-holder">
|
||
<div class="sheet-noclickhereallowed"></div>
|
||
<input class="sheet-minimal-checkbox" name="attr_flaw3-checked" type="checkbox" value="1"/>
|
||
</div>
|
||
<input class="sheet-left" data-i18n-placeholder="text-placeholder" name="attr_flaw3-name" placeholder="-" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- STANDING SECTION -->
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-main-skills-subsection">
|
||
<div class="sheet-main-skills sheet-main-skills2">
|
||
<h4 data-i18n="contacts-label">Contacts</h4>
|
||
<input class="sheet-minimal-checkbox sheet-contacts sheet-radio1" name="attr_contacts_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-contacts sheet-radio2" name="attr_contacts_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-contacts sheet-radio3" name="attr_contacts_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-contacts sheet-radio4" name="attr_contacts_4" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-contacts sheet-radio5" name="attr_contacts_5" type="checkbox" value="1"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills2">
|
||
<h4 data-i18n="fame-label">Fame</h4>
|
||
<input class="sheet-minimal-checkbox sheet-fame sheet-radio1" name="attr_fame_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-fame sheet-radio2" name="attr_fame_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-fame sheet-radio3" name="attr_fame_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-fame sheet-radio4" name="attr_fame_4" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-fame sheet-radio5" name="attr_fame_5" type="checkbox" value="1"/>
|
||
</div>
|
||
<div class="sheet-main-skills sheet-main-skills2">
|
||
<h4 data-i18n="wealth-label">Wealth</h4>
|
||
<input class="sheet-minimal-checkbox sheet-wealth sheet-radio1" name="attr_wealth_1" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-wealth sheet-radio2" name="attr_wealth_2" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-wealth sheet-radio3" name="attr_wealth_3" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-wealth sheet-radio4" name="attr_wealth_4" type="checkbox" value="1"/>
|
||
<input class="sheet-minimal-checkbox sheet-wealth sheet-radio5" name="attr_wealth_5" type="checkbox" value="1"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<!-- VERY LAST DIV -->
|
||
<div class="sheet-main-arroundlast-section">
|
||
<div class="sheet-main-experience-section">
|
||
<h1 data-i18n="experience-label">Experience</h1>
|
||
<div class="sheet-standardbox sheet-standardbox1">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-inputchar" name="attr_experience_max" readonly="" type="text" value=""/>
|
||
<h4>/</h4>
|
||
<input class="sheet-inputchar" name="attr_experience" type="text" value="25"/>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-triplecolumn">
|
||
<h4 data-i18n="spent-label">Spent</h4>
|
||
<h4> </h4>
|
||
<h4 data-i18n="total-label">Total</h4>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
<div class="sheet-main-equipment" style="grid-column: 2/-1">
|
||
<h1 data-i18n="equipment-label">Equipment</h1>
|
||
<div class="sheet-standardbox sheet-standardbox3">
|
||
<div class="sheet-oneline">
|
||
<div class="sheet-decoration-container sheet-decoration-container2 sheet-fullspan">
|
||
<div class="sheet-decoration-top">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
<div class="sheet-decoration-bottom">
|
||
<div class="sheet-decoration2-item"></div>
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_equipment">
|
||
<div class="sheet-main-equipment-section">
|
||
<input data-i18n-placeholder="equipment-s-name-placeholder" name="attr_equipment-name1" placeholder="Equipment's Name" type="text"/>
|
||
<input data-i18n-placeholder="equipment-s-name-placeholder" name="attr_equipment-name2" placeholder="Equipment's Name" type="text"/>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- -->
|
||
</div>
|
||
</div>
|
||
<h4 class="sheet-separative" style="margin-top: 25px !important; opacity: 0% !important"></h4>
|
||
</div>
|
||
<div class="sheet-cogs-container" style="width: 35px !important;right: -5px;bottom: 4px;position: absolute;">
|
||
<input class="sheet-cogs-input sheet-cogs-hideshow" name="attr_sheet-cogs-hideshow" type="checkbox"/>
|
||
<span class="sheet-cogs-icon">y</span>
|
||
</div>
|
||
</div>
|
||
<input class="sheet-hidden sheet-cogs-hideshow" name="attr_sheet-cogs-hideshow" type="checkbox"/>
|
||
<div class="sheet-import-export sheet-doublecolumn sheet-cogs-hideshow-div1">
|
||
<button data-i18n="export-label" name="act_export_json" style="height: 25px !important;margin-top: 10px !important;" type="action">Export</button>
|
||
<button data-i18n="import-label" name="act_import_json" style="height: 25px !important;margin-top: 10px !important;" type="action">Import</button>
|
||
<textarea class="sheet-fullspan" name="attr_importexport" style="height:100px!important"></textarea>
|
||
<script type="text/worker">
|
||
const RAW_ATTRS = [
|
||
"archery_1","archery_2","archery_3","archery_4","archery_bonus","archery_damage","archery_roll","archery_special","archery_specialisactive","archery_total",
|
||
"assassinate-checked","assassinate-desc","assassinate_1","assassinate_2","assassinate_3","assassinate_4","assassinate_roll","assassinate_total",
|
||
"athletics_1","athletics_2","athletics_3","athletics_4","athletics_bonus","athletics_roll","athletics_total",
|
||
"blackjacks_1","blackjacks_2","blackjacks_3","blackjacks_4","blackjacks_bonus","blackjacks_damage","blackjacks_roll","blackjacks_special","blackjacks_specialisactive","blackjacks_total",
|
||
"blackmarket-checked","blackmarket_1","blackmarket_2","blackmarket_3","blackmarket_4","blackmarket_roll","blackmarket_total",
|
||
"character_concept","character_name","character_player",
|
||
"charm",
|
||
"coldread-checked","coldread_1","coldread_2","coldread_3","coldread_4","coldread_roll","coldread_total",
|
||
"contacts_1","contacts_2","contacts_3","contacts_4","contacts_5",
|
||
"deflect_1","deflect_2","deflect_3","deflect_4","deflect_bonus","deflect_roll","deflect_total",
|
||
"disguise_1","disguise_2","disguise_3","disguise_4","disguise_bonus","disguise_roll","disguise_total",
|
||
"drive_1","drive_2","drive_3","drive_4","drive_bonus","drive_roll","drive_total",
|
||
"empathy_1","empathy_2","empathy_3","empathy_4","empathy_bonus","empathy_roll","empathy_total",
|
||
"energy","energy_max","energy_mod",
|
||
"evade_1","evade_2","evade_3","evade_4","evade_bonus","evade_roll","evade_total",
|
||
"experience","experience_max",
|
||
"fame_1","fame_2","fame_3","fame_4","fame_5",
|
||
"fix_1","fix_2","fix_3","fix_4","fix_bonus","fix_roll","fix_total",
|
||
"flaw1-checked","flaw1-name","flaw2-checked","flaw2-name","flaw3-checked","flaw3-name",
|
||
"focus","force_1","force_2","force_3","force_4","force_bonus","force_roll","force_total",
|
||
"forensics-checked","forensics_1","forensics_2","forensics_3","forensics_4","forensics_roll","forensics_total",
|
||
"forge-checked","forge_1","forge_2","forge_3","forge_4","forge_roll","forge_total",
|
||
"global-privacy-status",
|
||
"grenades_1","grenades_2","grenades_3","grenades_4","grenades_bonus","grenades_damage","grenades_roll","grenades_special","grenades_specialisactive","grenades_total",
|
||
"grit","guile_1","guile_2","guile_3","guile_4","guile_bonus","guile_roll","guile_total",
|
||
"hp","hp_max","hp_mod",
|
||
"hypnotism-checked","hypnotism_1","hypnotism_2","hypnotism_3","hypnotism_4","hypnotism_roll","hypnotism_total",
|
||
"improvised_1","improvised_2","improvised_3","improvised_4","improvised_bonus","improvised_damage","improvised_roll","improvised_special","improvised_specialisactive","improvised_total",
|
||
"infiltrate-checked","infiltrate_1","infiltrate_2","infiltrate_3","infiltrate_4","infiltrate_roll","infiltrate_total",
|
||
"intimidate_1","intimidate_2","intimidate_3","intimidate_4","intimidate_bonus","intimidate_roll","intimidate_total",
|
||
"investigate_1","investigate_2","investigate_3","investigate_4","investigate_bonus","investigate_roll","investigate_total",
|
||
"knives_1","knives_2","knives_3","knives_4","knives_bonus","knives_damage","knives_roll","knives_special","knives_specialisactive","knives_total",
|
||
"knuckles_1","knuckles_2","knuckles_3","knuckles_4","knuckles_bonus","knuckles_damage","knuckles_roll","knuckles_special","knuckles_specialisactive","knuckles_total",
|
||
"law-checked","law_1","law_2","law_3","law_4","law_roll","law_total",
|
||
"machineguns_1","machineguns_2","machineguns_3","machineguns_4","machineguns_bonus","machineguns_damage","machineguns_roll","machineguns_special","machineguns_specialisactive","machineguns_total",
|
||
"medium-checked","medium_1","medium_2","medium_3","medium_4","medium_roll","medium_total",
|
||
"medicine-checked","medicine_1","medicine_2","medicine_3","medicine_4","medicine_roll","medicine_total",
|
||
"moxie-checked","moxie_1","moxie_2","moxie_3","moxie_4","moxie_roll","moxie_total",
|
||
"notice_1","notice_2","notice_3","notice_4","notice_bonus","notice_roll","notice_total",
|
||
"performances-checked","performances_1","performances_2","performances_3","performances_4","performances_roll","performances_total",
|
||
"pianowire_1","pianowire_2","pianowire_3","pianowire_4","pianowire_bonus","pianowire_damage","pianowire_roll","pianowire_special","pianowire_specialisactive","pianowire_total",
|
||
"pickpocket-checked","pickpocket_1","pickpocket_2","pickpocket_3","pickpocket_4","pickpocket_roll","pickpocket_total",
|
||
"pistols_1","pistols_2","pistols_3","pistols_4","pistols_bonus","pistols_damage","pistols_roll","pistols_special","pistols_specialisactive","pistols_total",
|
||
"pontificate-checked","pontificate_1","pontificate_2","pontificate_3","pontificate_4","pontificate_roll","pontificate_total",
|
||
"presence-checked","presence_1","presence_2","presence_3","presence_4","presence_roll","presence_total",
|
||
"psychometry-checked","psychometry_1","psychometry_2","psychometry_3","psychometry_4","psychometry_roll","psychometry_total",
|
||
"rapiers_1","rapiers_2","rapiers_3","rapiers_4","rapiers_bonus","rapiers_damage","rapiers_roll","rapiers_special","rapiers_specialisactive","rapiers_total",
|
||
"readminds-checked","readminds_1","readminds_2","readminds_3","readminds_4","readminds_roll","readminds_total",
|
||
"resilience_1","resilience_2","resilience_3","resilience_4","resilience_bonus","resilience_roll","resilience_total",
|
||
"rifles_1","rifles_2","rifles_3","rifles_4","rifles_bonus","rifles_damage","rifles_roll","rifles_special","rifles_specialisactive","rifles_total",
|
||
"shotguns_1","shotguns_2","shotguns_3","shotguns_4","shotguns_bonus","shotguns_damage","shotguns_roll","shotguns_special","shotguns_specialisactive","shotguns_total",
|
||
"smuggle_1","smuggle_2","smuggle_3","smuggle_4","smuggle_bonus","smuggle_roll","smuggle_total",
|
||
"sneak_1","sneak_2","sneak_3","sneak_4","sneak_bonus","sneak_roll","sneak_total",
|
||
"sniper-checked","sniper_1","sniper_2","sniper_3","sniper_4","sniper_roll","sniper_total",
|
||
"snoop-checked","snoop_1","snoop_2","snoop_3","snoop_4","snoop_roll","snoop_total",
|
||
"speech_1","speech_2","speech_3","speech_4","speech_bonus","speech_roll","speech_total",
|
||
"stealth",
|
||
"steelmind-checked","steelmind_1","steelmind_2","steelmind_3","steelmind_4","steelmind_roll","steelmind_total",
|
||
"studious-checked","studious_1","studious_2","studious_3","studious_4","studious_roll","studious_total",
|
||
"suckerpunch-checked","suckerpunch_1","suckerpunch_2","suckerpunch_3","suckerpunch_4","suckerpunch_roll","suckerpunch_total",
|
||
"suggestion-checked","suggestion_1","suggestion_2","suggestion_3","suggestion_4","suggestion_roll","suggestion_total",
|
||
"tenacity_1","tenacity_2","tenacity_3","tenacity_4","tenacity_roll","tenacity_total",
|
||
"totalpointscore","unwind",
|
||
"wealth_1","wealth_2","wealth_3","wealth_4","wealth_5"
|
||
];
|
||
|
||
const REPEATING = { equipment: ["equipment-name1","equipment-name2"] };
|
||
|
||
const safeParse = (txt) => { try { return JSON.parse(txt); } catch (e) { return null; } };
|
||
|
||
const chunk = (arr, size) => {
|
||
const out = [];
|
||
for (let i = 0; i < arr.length; i += size) out.push(arr.slice(i, i + size));
|
||
return out;
|
||
};
|
||
|
||
const shouldExclude = (k) =>
|
||
k === "global-privacy-status" ||
|
||
/^roll-/.test(k) ||
|
||
/-desc\b/.test(k) ||
|
||
/_special/.test(k);
|
||
|
||
const getAllowedAttrs = () => {
|
||
const uniq = Array.from(new Set(RAW_ATTRS.map(s => String(s).trim()).filter(Boolean)));
|
||
return uniq.filter(k => !shouldExclude(k));
|
||
};
|
||
|
||
on("clicked:export_json", () => {
|
||
const keys = getAllowedAttrs();
|
||
const batches = chunk(keys, 80);
|
||
const out = { v: 1, attrs: {}, repeating: {} };
|
||
|
||
const readAttrsBatch = (i) => {
|
||
if (i >= batches.length) return exportRepeating();
|
||
const batch = batches[i];
|
||
getAttrs(batch, values => {
|
||
batch.forEach(k => { out.attrs[k] = values[k] ?? ""; });
|
||
readAttrsBatch(i + 1);
|
||
});
|
||
};
|
||
|
||
const exportRepeating = () => {
|
||
const sections = Object.keys(REPEATING);
|
||
let si = 0;
|
||
|
||
const nextSection = () => {
|
||
if (si >= sections.length) {
|
||
setAttrs({ importexport: JSON.stringify(out) });
|
||
return;
|
||
}
|
||
|
||
const section = sections[si++];
|
||
const fields = REPEATING[section];
|
||
const secName = `repeating_${section}`;
|
||
|
||
getSectionIDs(secName, ids => {
|
||
out.repeating[section] = [];
|
||
if (!ids || !ids.length) return nextSection();
|
||
|
||
const attrList = [];
|
||
ids.forEach(id => fields.forEach(f => attrList.push(`${secName}_${id}_${f}`)));
|
||
|
||
getAttrs(attrList, vals => {
|
||
ids.forEach(id => {
|
||
const row = { id };
|
||
fields.forEach(f => { row[f] = vals[`${secName}_${id}_${f}`] ?? ""; });
|
||
out.repeating[section].push(row);
|
||
});
|
||
nextSection();
|
||
});
|
||
});
|
||
};
|
||
|
||
nextSection();
|
||
};
|
||
|
||
readAttrsBatch(0);
|
||
});
|
||
|
||
on("clicked:import_json", () => {
|
||
getAttrs(["importexport"], v => {
|
||
const data = safeParse(v.importexport || "");
|
||
if (!data || typeof data !== "object") return;
|
||
|
||
const attrsIn = (data.attrs && typeof data.attrs === "object") ? data.attrs : {};
|
||
const repIn = (data.repeating && typeof data.repeating === "object") ? data.repeating : {};
|
||
|
||
const allowed = new Set(getAllowedAttrs());
|
||
const updates = {};
|
||
Object.keys(attrsIn).forEach(k => {
|
||
if (allowed.has(k)) updates[k] = attrsIn[k];
|
||
});
|
||
|
||
const keys = Object.keys(updates);
|
||
const batches = chunk(keys, 80);
|
||
|
||
const applyAttrsBatch = (i) => {
|
||
if (i >= batches.length) return importRepeating();
|
||
const b = batches[i];
|
||
const u = {};
|
||
b.forEach(k => u[k] = updates[k]);
|
||
setAttrs(u, () => applyAttrsBatch(i + 1));
|
||
};
|
||
|
||
const importRepeating = () => {
|
||
Object.keys(REPEATING).forEach(section => {
|
||
const rows = repIn[section];
|
||
if (!Array.isArray(rows)) return;
|
||
|
||
const fields = REPEATING[section];
|
||
const secName = `repeating_${section}`;
|
||
|
||
rows.forEach(r => {
|
||
const newId = generateRowID();
|
||
const rowUpdates = {};
|
||
fields.forEach(f => {
|
||
rowUpdates[`${secName}_${newId}_${f}`] = (r && r[f] != null) ? r[f] : "";
|
||
});
|
||
setAttrs(rowUpdates);
|
||
});
|
||
});
|
||
};
|
||
|
||
applyAttrsBatch(0);
|
||
});
|
||
});
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<script id="✓ CALC : Auto HP_MAX and ENERGY_MAX" type="text/worker">
|
||
on("sheet:opened change:grit change:stealth change:focus change:charm", function () {
|
||
getAttrs(["grit", "stealth", "focus", "charm"], function(values) {
|
||
const grit = parseInt(values.grit) || 0;
|
||
const stealth = parseInt(values.stealth) || 0;
|
||
const focus = parseInt(values.focus) || 0;
|
||
const charm = parseInt(values.charm) || 0;
|
||
|
||
const hp_max = grit + stealth;
|
||
const energy_max = focus + charm;
|
||
|
||
setAttrs({
|
||
"hp_max": hp_max,
|
||
"energy_max": energy_max
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
<script id="✓ CALC : Skills & Weapons Levels Total + Roll Type" type="text/worker">
|
||
const skills = [
|
||
"athletics", "force", "intimidate", "resilience",
|
||
"disguise", "evade", "smuggle", "sneak",
|
||
"drive", "fix", "investigate", "notice",
|
||
"deflect", "empathy", "guile", "speech",
|
||
"blackjacks", "knuckles", "shotguns",
|
||
"archery", "pianowire", "pistols",
|
||
"grenades", "rapiers", "rifles",
|
||
"improvised", "knives", "machineguns"
|
||
];
|
||
|
||
skills.forEach(skill => {
|
||
on(`sheet:opened change:${skill}_1 change:${skill}_2 change:${skill}_3 change:${skill}_4`, function() {
|
||
getAttrs([
|
||
`${skill}_1`,
|
||
`${skill}_2`,
|
||
`${skill}_3`,
|
||
`${skill}_4`
|
||
], function(values) {
|
||
const checks = [
|
||
parseInt(values[`${skill}_1`]) || 0,
|
||
parseInt(values[`${skill}_2`]) || 0,
|
||
parseInt(values[`${skill}_3`]) || 0,
|
||
parseInt(values[`${skill}_4`]) || 0
|
||
];
|
||
const totalChecks = checks.reduce((acc, val) => acc + (val ? 1 : 0), 0);
|
||
|
||
let skill_total = 0;
|
||
let skill_roll = "1d12";
|
||
|
||
if (totalChecks === 1) {
|
||
skill_total = 1;
|
||
skill_roll = "3d12kl2";
|
||
} else if (totalChecks === 2) {
|
||
skill_total = 3;
|
||
skill_roll = "3d12m1";
|
||
} else if (totalChecks === 3) {
|
||
skill_total = 6;
|
||
skill_roll = "3d12kh2";
|
||
} else if (totalChecks === 4) {
|
||
skill_total = 15;
|
||
skill_roll = "3d12";
|
||
}
|
||
|
||
setAttrs({
|
||
[`${skill}_total`]: skill_total,
|
||
[`${skill}_roll`]: skill_roll
|
||
});
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
<script id="✓ CALC : Specialities Levels Total + Roll Type" type="text/worker">
|
||
const specialities = [
|
||
"endurance", "presence", "steelmind", "suckerpunch", "tenacity",
|
||
"assassinate", "forge", "infiltrate", "pickpocket", "snoop",
|
||
"forensics", "law", "medicine", "sniper", "studious",
|
||
"blackmarket", "coldread", "pontificate", "moxie", "performances"
|
||
];
|
||
|
||
const forcedRollSpecialities = ["endurance", "studious", "pontificate"];
|
||
|
||
specialities.forEach(speciality => {
|
||
on(`sheet:opened change:${speciality}_1 change:${speciality}_2 change:${speciality}_3 change:${speciality}_4`, function() {
|
||
getAttrs([
|
||
`${speciality}_1`,
|
||
`${speciality}_2`,
|
||
`${speciality}_3`,
|
||
`${speciality}_4`
|
||
], function(values) {
|
||
const checks = [
|
||
parseInt(values[`${speciality}_1`]) || 0,
|
||
parseInt(values[`${speciality}_2`]) || 0,
|
||
parseInt(values[`${speciality}_3`]) || 0,
|
||
parseInt(values[`${speciality}_4`]) || 0
|
||
];
|
||
const totalChecks = checks.reduce((acc, val) => acc + (val ? 1 : 0), 0);
|
||
|
||
let speciality_total = 0;
|
||
let speciality_roll = "1d12";
|
||
|
||
if (totalChecks === 1) {
|
||
speciality_total = 2;
|
||
speciality_roll = "3d12kl2";
|
||
} else if (totalChecks === 2) {
|
||
speciality_total = 6;
|
||
speciality_roll = "3d12m1";
|
||
} else if (totalChecks === 3) {
|
||
speciality_total = 12;
|
||
speciality_roll = "3d12kh2";
|
||
} else if (totalChecks === 4) {
|
||
speciality_total = 30;
|
||
speciality_roll = "3d12";
|
||
}
|
||
|
||
if (forcedRollSpecialities.includes(speciality)) {
|
||
speciality_roll = "1d12"; // On écrase seulement le roll
|
||
}
|
||
|
||
setAttrs({
|
||
[`${speciality}_total`]: speciality_total,
|
||
[`${speciality}_roll`]: speciality_roll,
|
||
[`${speciality}-checked`]: totalChecks
|
||
});
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
<script id="✓ CALC : Psychic Skills Levels Total + Roll Type" type="text/worker">
|
||
const psychicSkills = [
|
||
"hypnotism", "medium", "psychometry", "readminds", "suggestion"
|
||
];
|
||
|
||
psychicSkills.forEach(psychic => {
|
||
on(`sheet:opened change:${psychic}_1 change:${psychic}_2 change:${psychic}_3 change:${psychic}_4`, function() {
|
||
getAttrs([
|
||
`${psychic}_1`,
|
||
`${psychic}_2`,
|
||
`${psychic}_3`,
|
||
`${psychic}_4`
|
||
], function(values) {
|
||
const checks = [
|
||
parseInt(values[`${psychic}_1`]) || 0,
|
||
parseInt(values[`${psychic}_2`]) || 0,
|
||
parseInt(values[`${psychic}_3`]) || 0,
|
||
parseInt(values[`${psychic}_4`]) || 0
|
||
];
|
||
|
||
const totalChecks = checks.reduce((acc, val) => acc + (val ? 1 : 0), 0);
|
||
|
||
let psychic_total = 0;
|
||
let psychic_roll = "1d12";
|
||
|
||
if (totalChecks === 1) {
|
||
psychic_total = 3;
|
||
psychic_roll = "3d12kl2";
|
||
} else if (totalChecks === 2) {
|
||
psychic_total = 9;
|
||
psychic_roll = "3d12m1";
|
||
} else if (totalChecks === 3) {
|
||
psychic_total = 18;
|
||
psychic_roll = "3d12kh2";
|
||
} else if (totalChecks === 4) {
|
||
psychic_total = 45;
|
||
psychic_roll = "3d12";
|
||
}
|
||
|
||
setAttrs({
|
||
[`${psychic}_total`]: psychic_total,
|
||
[`${psychic}-checked`]: totalChecks,
|
||
[`${psychic}_roll`]: psychic_roll
|
||
});
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Experience Max and Visual Error" type="text/worker">
|
||
const allTotals = [
|
||
"athletics", "force", "intimidate", "resilience",
|
||
"disguise", "evade", "smuggle", "sneak",
|
||
"drive", "fix", "investigate", "notice",
|
||
"deflect", "empathy", "guile", "speech",
|
||
"blackjacks", "knuckles", "shotguns",
|
||
"archery", "pianowire", "pistols",
|
||
"grenades", "rapiers", "rifles",
|
||
"improvised", "knives", "machineguns",
|
||
"hypnotism", "medium", "psychometry", "readminds", "suggestion",
|
||
"endurance", "presence", "steelmind", "suckerpunch", "tenacity",
|
||
"assassinate", "forge", "infiltrate", "pickpocket", "snoop",
|
||
"forensics", "law", "medicine", "sniper", "studious",
|
||
"blackmarket", "coldread", "pontificate", "moxie", "performances"
|
||
];
|
||
|
||
function updateExperience() {
|
||
getAttrs([
|
||
...allTotals.map(skill => `${skill}_total`),
|
||
"experience",
|
||
"flaw1-checked",
|
||
"flaw2-checked",
|
||
"flaw3-checked"
|
||
], function(values) {
|
||
let sum = 0;
|
||
|
||
sum += allTotals.reduce((acc, skill) => {
|
||
return acc + (parseInt(values[`${skill}_total`]) || 0);
|
||
}, 0);
|
||
|
||
const flaws = ["flaw1-checked", "flaw2-checked", "flaw3-checked"];
|
||
flaws.forEach(flaw => {
|
||
if (values[flaw] && values[flaw] !== "0") {
|
||
sum -= 2;
|
||
}
|
||
});
|
||
|
||
const experience = parseInt(values.experience) || 0;
|
||
|
||
setAttrs({ experience_max: sum }, { silent: true });
|
||
|
||
if (experience < sum) {
|
||
$20(".sheet-main-experience-section").addClass("sheet-main-experience-error");
|
||
} else {
|
||
$20(".sheet-main-experience-section").removeClass("sheet-main-experience-error");
|
||
}
|
||
});
|
||
}
|
||
|
||
on([...allTotals.map(skill => `change:${skill}_total`), "change:experience", "change:flaw1-checked", "change:flaw2-checked", "change:flaw3-checked"].join(" "), updateExperience);
|
||
on("sheet:opened", updateExperience);
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Skills Prerequisites Full System Final" type="text/worker">
|
||
const skillPrerequisites = {
|
||
"forensics": ["notice_total", "investigate_total"],
|
||
"law": ["speech_total", "investigate_total"],
|
||
"medicine": ["fix_total", "resilience_total"],
|
||
"sniper": ["notice_total", "evade_total"],
|
||
"studious": ["investigate_total", "force_total"],
|
||
"blackmarket": ["smuggle_total", "drive_total"],
|
||
"coldread": ["notice_total", "empathy_total"],
|
||
"moxie": ["speech_total", "force_total"],
|
||
"performances": ["empathy_total", "force_total"],
|
||
"pontificate": ["speech_total", "resilience_total"],
|
||
"assassinate": ["guile_total", "sneak_total"],
|
||
"forge": ["empathy_total", "fix_total"],
|
||
"infiltrate": ["sneak_total", "force_total"],
|
||
"pickpocket": ["smuggle_total", "guile_total"],
|
||
"snoop": ["notice_total", "evade_total"],
|
||
"endurance": ["resilience_total", "deflect_total"],
|
||
"presence": ["intimidate_total", "empathy_total"],
|
||
"steelmind": ["force_total", "deflect_total"],
|
||
"suckerpunch": ["athletics_total", "guile_total"],
|
||
"tenacity": ["resilience_total", "evade_total"],
|
||
"hypnotism": ["speech_total", "disguise_total"],
|
||
"medium": ["empathy_total", "investigate_total"],
|
||
"psychometry": ["empathy_total", "notice_total"],
|
||
"readminds": ["empathy_total", "sneak_total"],
|
||
"suggestion": ["guile_total", "force_total"]
|
||
};
|
||
|
||
function checkSkillPrerequisites() {
|
||
const attributesToGet = [];
|
||
for (const prereqs of Object.values(skillPrerequisites)) {
|
||
attributesToGet.push(...prereqs);
|
||
}
|
||
|
||
getAttrs(attributesToGet, function(values) {
|
||
for (const [skill, prereqs] of Object.entries(skillPrerequisites)) {
|
||
const [prereq1, prereq2] = prereqs;
|
||
const prereq1Value = parseInt(values[prereq1]) || 0;
|
||
const prereq2Value = parseInt(values[prereq2]) || 0;
|
||
|
||
const shouldStrike = (prereq1Value <= 0 || prereq2Value <= 0);
|
||
|
||
const skillSelector = `.sheet-main-skills-${skill}`;
|
||
|
||
if (shouldStrike) {
|
||
$20(skillSelector).addClass("sheet-striked");
|
||
const updates = {};
|
||
updates[`${skill}_1`] = "0";
|
||
updates[`${skill}_2`] = "0";
|
||
updates[`${skill}_3`] = "0";
|
||
updates[`${skill}_4`] = "0";
|
||
setAttrs(updates);
|
||
} else {
|
||
$20(skillSelector).removeClass("sheet-striked");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
on(
|
||
`sheet:opened ${Object.values(skillPrerequisites).flat().map(attr => `change:${attr}`).join(" ")}`,
|
||
checkSkillPrerequisites
|
||
);
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Auto Flaw Checkbox" type="text/worker">
|
||
const updateFlawCheckboxes = () => {
|
||
getAttrs(["flaw1-name", "flaw2-name", "flaw3-name"], function(values) {
|
||
const updates = {};
|
||
|
||
updates["flaw1-checked"] = values["flaw1-name"] && values["flaw1-name"].trim() !== "" ? "1" : "0";
|
||
updates["flaw2-checked"] = values["flaw2-name"] && values["flaw2-name"].trim() !== "" ? "1" : "0";
|
||
updates["flaw3-checked"] = values["flaw3-name"] && values["flaw3-name"].trim() !== "" ? "1" : "0";
|
||
|
||
setAttrs(updates);
|
||
});
|
||
};
|
||
|
||
on("sheet:opened change:flaw1-name change:flaw2-name change:flaw3-name", updateFlawCheckboxes);
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Core Stats Validation" type="text/worker">
|
||
const updateCoreValidation = () => {
|
||
getAttrs(["grit", "stealth", "focus", "charm"], values => {
|
||
const grit = parseInt(values.grit, 10) || 0;
|
||
const stealth = parseInt(values.stealth, 10) || 0;
|
||
const focus = parseInt(values.focus, 10) || 0;
|
||
const charm = parseInt(values.charm, 10) || 0;
|
||
|
||
const total = grit + stealth + focus + charm;
|
||
|
||
const hasInvalid =
|
||
grit < 2 || grit > 6 ||
|
||
stealth < 2 || stealth > 6 ||
|
||
focus < 2 || focus > 6 ||
|
||
charm < 2 || charm > 6 ||
|
||
total !== 12;
|
||
|
||
setAttrs({ totalpointscore: total });
|
||
|
||
if (hasInvalid) {
|
||
$20(".sheet-inputchar.sheet-core").addClass("sheet-invalid");
|
||
$20(".sheet-core-reverse").removeClass("sheet-hidden");
|
||
} else {
|
||
$20(".sheet-inputchar.sheet-core").removeClass("sheet-invalid");
|
||
$20(".sheet-core-reverse").addClass("sheet-hidden");
|
||
}
|
||
});
|
||
};
|
||
|
||
on(
|
||
"sheet:opened change:grit change:stealth change:focus change:charm",
|
||
updateCoreValidation
|
||
);
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Proper Cascade Checkboxes" type="text/worker">
|
||
const cascadingSkills = [
|
||
"athletics", "force", "intimidate", "resilience",
|
||
"disguise", "evade", "smuggle", "sneak",
|
||
"drive", "fix", "investigate", "notice",
|
||
"deflect", "empathy", "guile", "speech",
|
||
"blackjacks", "knuckles", "shotguns",
|
||
"archery", "pianowire", "pistols",
|
||
"grenades", "rapiers", "rifles",
|
||
"improvised", "knives", "machineguns",
|
||
"hypnotism", "medium", "psychometry", "readminds", "suggestion",
|
||
"endurance", "presence", "steelmind", "suckerpunch", "tenacity",
|
||
"assassinate", "forge", "infiltrate", "pickpocket", "snoop",
|
||
"forensics", "law", "medicine", "sniper", "studious",
|
||
"blackmarket", "coldread", "pontificate", "moxie", "performances"
|
||
];
|
||
|
||
const fiveLevelSkills = ["contacts", "fame", "wealth"];
|
||
|
||
const allSkills = [...cascadingSkills, ...fiveLevelSkills];
|
||
|
||
allSkills.forEach(skill => {
|
||
const maxLevel = fiveLevelSkills.includes(skill) ? 5 : 4;
|
||
|
||
for (let level = 1; level <= maxLevel; level++) {
|
||
on(`change:${skill}_${level}`, function(event) {
|
||
const updates = {};
|
||
const checked = event.newValue === "1";
|
||
const levelInt = parseInt(level);
|
||
|
||
if (checked) {
|
||
// Fill in all lower dots (dot N itself is already set by the user click)
|
||
for (let i = 1; i < levelInt; i++) {
|
||
updates[`${skill}_${i}`] = "1";
|
||
}
|
||
} else {
|
||
// Clear all higher dots (dot N itself is already unset by the user click)
|
||
for (let i = levelInt + 1; i <= maxLevel; i++) {
|
||
updates[`${skill}_${i}`] = "0";
|
||
}
|
||
}
|
||
|
||
if (Object.keys(updates).length > 0) setAttrs(updates);
|
||
});
|
||
}
|
||
});
|
||
</script>
|
||
<script id="✓ INIT : Auto-Update Skill Bonuses (+untrained malus)" type="text/worker">
|
||
const skillMapping = {
|
||
grit: [
|
||
"athletics", "force", "intimidate", "resilience",
|
||
"blackjacks", "knuckles", "shotguns"
|
||
],
|
||
stealth: [
|
||
"disguise", "evade", "smuggle", "sneak",
|
||
"archery", "pianowire", "pistols"
|
||
],
|
||
focus: [
|
||
"drive", "fix", "investigate", "notice",
|
||
"grenades", "rapiers", "rifles"
|
||
],
|
||
charm: [
|
||
"deflect", "empathy", "guile", "speech",
|
||
"improvised", "knives", "machineguns"
|
||
]
|
||
};
|
||
|
||
// Malus si 0 dot (uniquement pour les armes)
|
||
const untrainedPenalty = {
|
||
blackjacks: -2,
|
||
knuckles: -2,
|
||
shotguns: -5,
|
||
archery: -10,
|
||
pianowire: -5,
|
||
pistols: -5,
|
||
grenades: -5,
|
||
rapiers: -10,
|
||
rifles: -10,
|
||
improvised: -5,
|
||
knives: -2,
|
||
machineguns: -10
|
||
};
|
||
|
||
// ----- utilitaires -----
|
||
const uniq = (arr) => [...new Set(arr)];
|
||
const allSkills = uniq([].concat(...Object.values(skillMapping)));
|
||
const statAttrs = ["grit","stealth","focus","charm"];
|
||
const dotNamesFor = (skill) => [1,2,3,4].map(i => `${skill}_${i}`);
|
||
const anyChecked = (values, skill) => dotNamesFor(skill).some(n => values[n] === "1" || values[n] === "on");
|
||
|
||
function updateSkillBonuses() {
|
||
const toGet = [...statAttrs, ...allSkills.flatMap(dotNamesFor)];
|
||
getAttrs(toGet, (v) => {
|
||
const updates = {};
|
||
|
||
Object.entries(skillMapping).forEach(([stat, skills]) => {
|
||
const base = parseInt(v[stat], 10) || 0;
|
||
|
||
skills.forEach((skill) => {
|
||
const trained = anyChecked(v, skill);
|
||
const malus = trained ? 0 : (untrainedPenalty[skill] || 0);
|
||
updates[`${skill}_bonus`] = base + malus;
|
||
});
|
||
});
|
||
|
||
setAttrs(updates/*, {silent:true}*/);
|
||
});
|
||
}
|
||
|
||
// Événements : ouverture, changement des 4 stats, et des dots 1..4 de chaque skill
|
||
const events = [
|
||
"sheet:opened",
|
||
...statAttrs.map(a => `change:${a}`),
|
||
...allSkills.flatMap(s => dotNamesFor(s).map(n => `change:${n}`))
|
||
].join(" ");
|
||
|
||
on(events, updateSkillBonuses);
|
||
</script>
|
||
<script id="✓ INIT : Generate Skill Action Buttons" type="text/worker">
|
||
const skills = [
|
||
"athletics", "force", "intimidate", "resilience",
|
||
"disguise", "evade", "smuggle", "sneak",
|
||
"drive", "fix", "investigate", "notice",
|
||
"deflect", "empathy", "guile", "speech",
|
||
"blackjacks", "knuckles", "shotguns",
|
||
"archery", "pianowire", "pistols",
|
||
"grenades", "rapiers", "rifles",
|
||
"improvised", "knives", "machineguns"
|
||
];
|
||
|
||
function updateSkillRolls() {
|
||
const attributesToGet = skills.map(skill => `${skill}_roll`);
|
||
getAttrs(attributesToGet, function(values) {
|
||
const updates = {};
|
||
|
||
skills.forEach(skill => {
|
||
const rollType = (values[`${skill}_roll`] || "").trim();
|
||
let rollText = "";
|
||
|
||
if (rollType === "1d12") {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[1]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[[[1d12]]+@{" + skill + "_bonus}]]}} " +
|
||
"{{roll1=$[[1]]}}";
|
||
}
|
||
else if (rollType === "3d12kl2") {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[2]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[{[[1d12]],[[1d12]],[[1d12]]}kl2+@{" + skill + "_bonus}]]}} " +
|
||
"{{roll1=$[[1]]}} {{roll2=$[[2]]}} {{roll3=$[[3]]}}";
|
||
}
|
||
else if (rollType === "3d12m1") {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[3]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[[[3d12kl1]]+[[3d12kh1]]+@{" + skill + "_bonus}]]}}" +
|
||
"{{roll1=$[[1]]}} {{roll2=$[[2]]}} {{roll3=$[[3]]}}";
|
||
}
|
||
else if (rollType === "3d12kh2") {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[4]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[{[[1d12]],[[1d12]],[[1d12]]}kh2+@{" + skill + "_bonus}]]}} " +
|
||
"{{roll1=$[[1]]}} {{roll2=$[[2]]}} {{roll3=$[[3]]}}";
|
||
}
|
||
else if (rollType === "3d12") {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[5]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[ [[1d12]]+[[1d12]]+[[1d12]]+@{" + skill + "_bonus}]]}} " +
|
||
"{{roll1=$[[1]]}} {{roll2=$[[2]]}} {{roll3=$[[3]]}}";
|
||
}
|
||
else {
|
||
rollText = "@{global-privacy-status} &{template:moonshine} " +
|
||
"{{categorie=Roll}} {{charactername=@{character_name}}} " +
|
||
"{{name=" + skill.charAt(0).toUpperCase() + skill.slice(1) + "}} " +
|
||
"{{type=[[0]]}} {{mod=@{" + skill + "_bonus}}} " +
|
||
"{{roll=[[1d12+@{" + skill + "_bonus}]]}} {{roll1=$[[1]]}}";
|
||
}
|
||
|
||
updates[`roll-${skill}`] = rollText;
|
||
});
|
||
|
||
setAttrs(updates, {silent: true});
|
||
});
|
||
}
|
||
|
||
// Déclencheurs
|
||
on("sheet:opened " + skills.map(skill => `change:${skill}_roll`).join(" "), function() {
|
||
updateSkillRolls();
|
||
});
|
||
</script>
|
||
<script id="✓ INIT : Generate Psychic Action Buttons" type="text/worker">
|
||
const psychicSkills = {
|
||
hypnotism: { prereq1: "Speech", prereq2: "Disguise" },
|
||
medium: { prereq1: "Empathy", prereq2: "Investigate" },
|
||
readminds: { prereq1: "Empathy", prereq2: "Sneak" },
|
||
suggestion: { prereq1: "Guile", prereq2: "Force" },
|
||
psychometry: { prereq1: "Empathy", prereq2: "Notice" }
|
||
};
|
||
|
||
function getRollData(rollType, skill) {
|
||
switch (rollType) {
|
||
case "1d12":
|
||
return {
|
||
roll: "[[[[1d12]]]]",
|
||
type: 1,
|
||
extras: "{{roll1=$[[0]]}}"
|
||
};
|
||
case "3d12kl2":
|
||
return {
|
||
roll: "[[{[[1d12]],[[1d12]],[[1d12]]}kl2]]",
|
||
type: 2,
|
||
extras: "{{roll1=$[[0]]}} {{roll2=$[[1]]}} {{roll3=$[[2]]}}"
|
||
};
|
||
case "3d12m1":
|
||
return {
|
||
roll: "[[[[3d12kl1]]+[[3d12kh1]]]]",
|
||
type: 3,
|
||
extras: "{{roll1=$[[0]]}} {{roll2=$[[1]]}} {{roll3=$[[2]]}}"
|
||
};
|
||
case "3d12kh2":
|
||
return {
|
||
roll: "[[{[[1d12]],[[1d12]],[[1d12]]}kh2]]",
|
||
type: 4,
|
||
extras: "{{roll1=$[[0]]}} {{roll2=$[[1]]}} {{roll3=$[[2]]}}"
|
||
};
|
||
case "3d12":
|
||
return {
|
||
roll: "[[[[1d12]]+[[1d12]]+[[1d12]]]]",
|
||
type: 5,
|
||
extras: "{{roll1=$[[0]]}} {{roll2=$[[1]]}} {{roll3=$[[2]]}}"
|
||
};
|
||
default:
|
||
return {
|
||
roll: "[[[[1d12]]]]",
|
||
type: 0,
|
||
extras: "{{roll1=$[[0]]}}"
|
||
};
|
||
}
|
||
}
|
||
|
||
function updatePsychicRolls() {
|
||
const skillList = Object.keys(psychicSkills);
|
||
const rollFields = skillList.map(skill => `${skill}_roll`);
|
||
|
||
getAttrs(rollFields, (values) => {
|
||
const updates = {};
|
||
|
||
skillList.forEach(skill => {
|
||
const rollType = (values[`${skill}_roll`] || "").trim();
|
||
const { roll, type, extras } = getRollData(rollType, skill);
|
||
const data = psychicSkills[skill];
|
||
|
||
const skillName = skill.charAt(0).toUpperCase() + skill.slice(1);
|
||
|
||
const template = "@{global-privacy-status} &{template:moonshine} "
|
||
+ "{{specialities=1}} "
|
||
+ `{{roll=${roll}}} `
|
||
+ `{{type=[[${type}]]}} `
|
||
+ `{{prereq1=${data.prereq1}}} `
|
||
+ `{{prereq2=${data.prereq2}}} `
|
||
+ `{{name=${skillName}}} `
|
||
+ `{{check=@{${skill}-checked}}} `
|
||
+ `{{button=[Description](~show-${skill}-desc)}} `
|
||
+ extras;
|
||
|
||
updates[`roll-${skill}`] = template;
|
||
});
|
||
|
||
setAttrs(updates, { silent: true });
|
||
});
|
||
}
|
||
|
||
const skillRollTriggers = Object.keys(psychicSkills).map(skill => `change:${skill}_roll`).join(" ");
|
||
on(`sheet:opened ${skillRollTriggers}`, () => {
|
||
updatePsychicRolls();
|
||
});
|
||
</script>
|
||
<script id="✓-SCRIPTCALC : Weapon damages as expressions (base + dots + bonuses)" type="text/worker">
|
||
// Armes (noms = préfixes des champs *_1..*_4, *_damage, *_specialisactive)
|
||
const CFG = {
|
||
blackjacks: { base: 2, attr: "force" }, // 2 + Force
|
||
knuckles: { base: 1, attr: "force" }, // 1 + Force
|
||
shotguns: { base: 6 }, // 6
|
||
archery: { base: 4 }, // 4
|
||
pianowire: { base: 5, attr: "force" }, // 5 + Force
|
||
pistols: { base: 4 }, // 4
|
||
grenades: { base: 12 }, // 12
|
||
rapiers: { base: 3, attr: "guile" }, // 3 + Guile
|
||
rifles: { base: 5 }, // 5
|
||
improvised: { base: 2, attr: "athletics" }, // 2 + Athletics
|
||
knives: { base: 2, attr: "guile" }, // 2 + Guile
|
||
machineguns: { base: 7 } // 7
|
||
};
|
||
|
||
// Caracs à points (4 cases chacune)
|
||
const ATTRS = ["force","guile","athletics"];
|
||
const DOTS_PER_ATTR = 4;
|
||
|
||
// Bonus des cases #2 et #4
|
||
const BONUS_FOR_2 = 2;
|
||
const BONUS_FOR_4 = 2;
|
||
|
||
// Helpers
|
||
const isOn = v => v === "1" || v === "on";
|
||
const countDots = (values, base) => {
|
||
let c = 0;
|
||
for (let i = 1; i <= DOTS_PER_ATTR; i++) if (isOn(values[`${base}_${i}`])) c++;
|
||
return c;
|
||
};
|
||
|
||
function recalc() {
|
||
// Charger tout ce qui peut bouger
|
||
const toGet = [];
|
||
Object.keys(CFG).forEach(w => { for (let i=1;i<=4;i++) toGet.push(`${w}_${i}`); });
|
||
ATTRS.forEach(a => { for (let i=1;i<=4;i++) toGet.push(`${a}_${i}`); });
|
||
|
||
getAttrs(toGet, (v) => {
|
||
const dots = {
|
||
force: countDots(v, "force"),
|
||
guile: countDots(v, "guile"),
|
||
athletics: countDots(v, "athletics")
|
||
};
|
||
|
||
const updates = {};
|
||
|
||
Object.entries(CFG).forEach(([w, conf]) => {
|
||
const parts = [];
|
||
|
||
// 1) Base (toujours présente, en premier)
|
||
parts.push(String(conf.base));
|
||
|
||
// 2) Dots de l’attribut lié (si > 0 et si l’arme a un attr)
|
||
if (conf.attr) {
|
||
const d = dots[conf.attr] || 0;
|
||
if (d > 0) parts.push(String(d));
|
||
}
|
||
|
||
// 3) Bonus +/- via cases 2 et 4 (chacune = +2 ici)
|
||
if (isOn(v[`${w}_2`])) parts.push(String(BONUS_FOR_2));
|
||
if (isOn(v[`${w}_4`])) parts.push(String(BONUS_FOR_4));
|
||
|
||
// Spéciale active si case #3 cochée
|
||
updates[`${w}_specialisactive`] = isOn(v[`${w}_3`]) ? "1" : "0";
|
||
|
||
// Expression finale (sans espaces) ex: "2+1+2+2"
|
||
updates[`${w}_damage`] = parts.join("+");
|
||
});
|
||
|
||
setAttrs(updates);
|
||
});
|
||
}
|
||
|
||
// Recalcule à l’ouverture + sur toute case utile
|
||
const events = ["sheet:opened"]
|
||
.concat(Object.keys(CFG).flatMap(w => [1,2,3,4].map(i => `change:${w}_${i}`)))
|
||
.concat(ATTRS.flatMap(a => [1,2,3,4].map(i => `change:${a}_${i}`)))
|
||
.join(" ");
|
||
|
||
on(events, recalc);
|
||
</script>
|