mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
4642 lines
254 KiB
HTML
4642 lines
254 KiB
HTML
<div class="sheet-main-container">
|
||
<input type="hidden" name="attr_initSheet" value="1"/>
|
||
<input type="hidden" name="attr_initHp" value="1"/>
|
||
<input type="hidden" name="attr_initFate" value="1"/>
|
||
|
||
<!--spacer so scrollbar does not disappear-->
|
||
<div style="width:1px; height:600px; min-height:600px;position:absolute;left:1px;"> </div>
|
||
|
||
<header>
|
||
<div class="sheet-table-row">
|
||
<label class="sheet-table-cell" style="width:22%;"><img src="https://s3.amazonaws.com/files.staging.d20.io/images/221093/hstj0O3XmZYDhA6tPiiJrA/med.png" alt="Hawkmoon Logo" style="max-height: 100px;" /></label>
|
||
<label class="sheet-cell-label-lg" style="width: 15%;"><span data-i18n="character-name">Character Name</span><input name="attr_character_name" type="text" data-i18n-placeholder="character-name-place" placeholder="Character Name" /></label>
|
||
<label class="sheet-cell-label-lg" style="width: 15%;"><span data-i18n="player-name">Player Name</span><input name="attr_player-name" type="text" data-i18n-placeholder="player-name-place" placeholder="Player Name" /></label>
|
||
</div>
|
||
</header>
|
||
|
||
<nav role="navigation" aria-label="Main navigation hide and show sections." data-i18n-aria-label="nav-main-desc">
|
||
<input type="checkbox" class="sheet-tab1 sheet-pagetab1" name="attr_tab" value="1" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab2 sheet-pagetab2" name="attr_tab" value="2" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab3 sheet-pagetab3" name="attr_tab" value="3" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab4 sheet-pagetab4" name="attr_tab" value="4" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab5 sheet-pagetab5" name="attr_tab" value="5" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab6 sheet-pagetab6" name="attr_tab" value="6" style="display:none;" />
|
||
<input type="checkbox" class="sheet-tab7 sheet-pagetab7" name="attr_tab" value="7" style="display:none;" />
|
||
<div class="sheet-mainnav sheet-tabs">
|
||
<label class="sheet-tab sheet-tab1" style="width:12%;"><span data-i18n="page-character">Character</span><input type="radio" class="sheet-tab" name="attr_tab" value="1" checked="checked" /></label>
|
||
<label class="sheet-tab sheet-tab2" style="width:15%;"><span data-i18n="page-skills">Skills</span><input type="radio" class="sheet-tab" name="attr_tab" value="2" /></label>
|
||
<label class="sheet-tab sheet-tab3" style="width:20%;"><span data-i18n="page-weapons-equipments">Weapons & Equipments</span><input type="radio" class="sheet-tab" name="attr_tab" value="3" /></label>
|
||
<label class="sheet-tab sheet-tab4" style="width:20%;"><span data-i18n="page-spells-traits">Spells & Traits</span><input type="radio" class="sheet-tab" name="attr_tab" value="4" /></label>
|
||
<label class="sheet-tab sheet-tab5" style="width:10%;"><span data-i18n="page-mount">Mount</span><input type="radio" class="sheet-tab" name="attr_tab" value="5" /></label>
|
||
<label class="sheet-tab sheet-tab6" style="width:10%;"><span data-i18n="page-notes">Notes</span><input type="radio" class="sheet-tab" name="attr_tab" value="6" /></label>
|
||
<label class="sheet-tab sheet-tab7" style="width:5%;"><span data-i18n-title="page-config" title="Configuration" class="sheet-pictos">y</span><input type="radio" class="sheet-tab" name="attr_tab" value="7" /></label>
|
||
</div>
|
||
</nav>
|
||
|
||
<main role="main">
|
||
<div class="sheet-main">
|
||
|
||
<section role="region" aria-label="Character" data-i18n-aria-label="page-character-aria">
|
||
<div class="sheet-section sheet-section-character">
|
||
<br/>
|
||
|
||
<!-- CHARACTER DESCRIPTION -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="character-desc">Character Description</span>
|
||
|
||
<label class="sheet-small-label2" style="width: 20%;">
|
||
<input name="attr_character_name" type="text" data-i18n-placeholder="character-name-place" placeholder="Character Name" />
|
||
<span data-i18n="character-name">Character Name</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 27%;">
|
||
<input name="attr_cultural_background" type="text" data-i18n-placeholder="cultural-background-place" placeholder="Character Cultural Background" />
|
||
<span data-i18n="cultural-background">Cultural Background</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 27%;">
|
||
<input name="attr_regional_background" type="text" data-i18n-placeholder="regional-background-place" placeholder="Character Regional Background" />
|
||
<span data-i18n="regional-background">Regional Background</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 15%;">
|
||
<input name="attr_profession" type="text" data-i18n-placeholder="profession-place" placeholder="Character Profession" />
|
||
<span data-i18n="profession">Profession</span>
|
||
</label>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- CHARACTER CHARACTERISTICS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="character-characteristics-desc">Characteristics</span>
|
||
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_str" type="number" title="@{str}" /><span data-i18n="STR">FOR</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_con" type="number" title="@{con}" /><span data-i18n="CON">CON</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_dex" type="number" title="@{dex}" /><span data-i18n="DEX">DEX</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_siz" type="number" title="@{siz}" /><span data-i18n="SIZ">SIZ</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_int" type="number" title="@{int}" /><span data-i18n="INT">INT</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_pow" type="number" title="@{pow}" /><span data-i18n="POW">POW</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_cha" type="number" title="@{cha}" /><span data-i18n="CHA">CHA</span></label>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- CHARACTER ATTRIBUTES -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="character-attributes-desc">Character Attributes</span>
|
||
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_ca" type="number" readonly="readonly" data-i18n-title="combat-action-title" title="Combat Actions - @{ca}" />
|
||
<span data-i18n="ca">CA</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_dmg-mod" type="text" style="text-align: center;" readonly="readonly" data-i18n-title="damage-modifier-title" title="Damage Modifier - @{dmg-mod}" />
|
||
<span data-i18n="dm">Dmg Mod.</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_sr" type="number" data-i18n-title="strike-rank-title" title="Strike Rank - @{sr}" />
|
||
<button data-i18n-title="sr-initiative-title" title="Launch Initiative (select your token before)" class="sheet-text-button" type="roll" name="roll_sr-check" value="@{PC-whisper} [[1d10+@{sr}+(@{dex}/100)&{tracker}]]"><span style="vertical-align: text-bottom; color: white;" data-i18n="strike-rank">SR</span></button>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_mov" type="number" data-i18n-title="movement-title" title="Movement - @{mov}" />
|
||
<span data-i18n="mov">MOV</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_rep" type="number" data-i18n-title="reputation-title" title="Reputation - @{rep}" />
|
||
<span data-i18n="rep">REP</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 30%;"></label>
|
||
|
||
|
||
<label class="sheet-small-label2" style="width: 12%;"><span data-i18n="fate-point">Fate Points:</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_fate-points" type="number" data-i18n-title="fate-point-title" title="Current Fate Points - @{fate-points}" />
|
||
<span data-i18n="current">Current</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_fate-points-total" type="number" data-i18n-title="fate-point-used-title" title="Total Fate Points - @{fate-points-total}" />
|
||
<span data-i18n="total">Total</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 45%;"></label>
|
||
|
||
<label class="sheet-small-label2" style="width: 12%;"><span data-i18n="focus-points">Focus Points:</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_focus-points" type="number" data-i18n-title="focus-point-title" title="Focus Points - @{focus-points}" />
|
||
<span data-i18n="current">Current</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_focus-points_max" type="number" readonly="readonly" data-i18n-title="focus-point-max-title" title="Max Focus Points - @{focus-points_max}" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 45%;"></label>
|
||
|
||
<label class="sheet-small-label2" style="width: 12%;"><span data-i18n="improvement-rolls">Improvement Rolls:</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_improvement-rolls" type="number" data-i18n-title="improvement-rolls-title" title="Current Character Improvement Rolls" />
|
||
<span data-i18n="current">Current</span>
|
||
</label>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- LEGENDARY ABILITIES -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="legendary-abilities">Legendary Abilities</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_legendary-abilities">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 29%;">
|
||
<input type="text" name="attr_ability-name" data-i18n-placeholder="ability-name-place" placeholder="Ability Name" />
|
||
<span data-i18n="ability">Ability</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 65%;">
|
||
<input type="text" name="attr_ability-effect" data-i18n-placeholder="ability-effect-place" placeholder="Ability Effect" />
|
||
<span data-i18n="effect">Effect</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Skills" data-i18n-aria-label="page-skills-aria">
|
||
<div class="sheet-section sheet-section-skills">
|
||
|
||
<div class="sheet-header sheet-text-center"><span data-i18n="basic-skills">Basic Skills</span></div>
|
||
<br/>
|
||
|
||
<div class="sheet-rTable" data-i18n-list="basic-skills-list">
|
||
<div>
|
||
<div class="sheet-rTableRow">
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="basic-skills">Basic Skills</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="characteristic-s">Characteristic(s)</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="base-score">Base Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="mod-score">Mod Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="current-score">Current Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="acrobatics-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="acrobatics">Acrobatics</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_acrobatics-base" readonly="readonly" type="number" title="@{acrobatics-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_acrobatics-mod" type="number" title="@{acrobatics-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_acrobatics" readonly="readonly" type="number" data-i18n-title="acrobatics-title" title="Armor Penalty included - @{acrobatics}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{acrobatics}}} {{skill_value=[[@{acrobatics}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_acrobatics-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="athletics-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="athletics">Athletics</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="STR">STR</span>+<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_athletics-base" readonly="readonly" type="number" title="@{athletics-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_athletics-mod" type="number" title="@{athletics-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_athletics" readonly="readonly" type="number" data-i18n-title="athletics-title" title="Armor Penalty included - @{athletics}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{athletics}}} {{skill_value=[[@{athletics}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_athletics-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="boating-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="boating">Boating</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="STR">STR</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_boating-base" readonly="readonly" type="number" title="@{boating-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_boating-mod" type="number" title="@{boating-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_boating" readonly="readonly" type="number" title="@{boating}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{boating}}} {{skill_value=[[@{boating}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_boating-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="dodge-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="dodge">Dodge</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
10+<span data-i18n="DEX">DEX</span>+<span data-i18n="SIZ">SIZ</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_dodge-base" readonly="readonly" type="number" title="@{dodge-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_dodge-mod" type="number" title="@{dodge-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_dodge" readonly="readonly" type="number" data-i18n-title="dodge-title" title="Armor Penalty included - @{dodge}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{dodge}}} {{skill_value=[[@{dodge}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_dodge-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="driving-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="driving">Driving</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
10+<span data-i18n="POW">POW</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_driving-base" readonly="readonly" type="number" title="@{driving-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_driving-mod" type="number" title="@{driving-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_driving" readonly="readonly" type="number" title="@{driving}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{driving}}} {{skill_value=[[@{driving}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_driving-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="evaluate-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="evaluate">Evaluate</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_evaluate-base" readonly="readonly" type="number" title="@{evaluate-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_evaluate-mod" type="number" title="@{evaluate-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_evaluate" readonly="readonly" type="number" title="@{evaluate}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{evaluate}}} {{skill_value=[[@{evaluate}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_evaluate-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="first-aid-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="first-aid">First Aid</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_first-aid-base" readonly="readonly" type="number" title="@{first-aid-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_first-aid-mod" type="number" title="@{first-aid-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_first-aid" readonly="readonly" type="number" title="@{first-aid}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{first-aid}}} {{skill_value=[[@{first-aid}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_first-aid-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="influence-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="influence">Influence</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
10+<span data-i18n="CHA">CHA</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_influence-base" readonly="readonly" type="number" title="@{influence-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_influence-mod" type="number" title="@{influence-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_influence" readonly="readonly" type="number" title="@{influence}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{influence}}} {{skill_value=[[@{influence}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_influence-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="lore-animal-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="lore-animal">Lore (Animal)</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-animal-base" readonly="readonly" type="number" title="@{lore-animal-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-animal-mod" type="number" title="@{lore-animal-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-animal" readonly="readonly" type="number" title="@{lore-animal}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{lore-animal}}} {{skill_value=[[@{lore-animal}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_lore-animal-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="lore-plant-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="lore-plant">Lore (Plant)</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-plant-base" readonly="readonly" type="number" title="@{lore-plant-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-plant-mod" type="number" title="@{lore-plant-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-plant" readonly="readonly" type="number" title="@{lore-plant}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{lore-plant}}} {{skill_value=[[@{lore-plant}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_lore-plant-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="lore-world-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="lore-world">Lore (World)</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-world-base" readonly="readonly" type="number" title="@{lore-world-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-world-mod" type="number" title="@{lore-world-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_lore-world" readonly="readonly" type="number" title="@{lore-world}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{lore-world}}} {{skill_value=[[@{lore-world}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_lore-world-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="perception-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="perception">Perception</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="INT">INT</span>+<span data-i18n="POW">POW</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_perception-base" readonly="readonly" type="number" title="@{perception-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_perception-mod" type="number" title="@{perception-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_perception" readonly="readonly" type="number" title="@{perception}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{perception}}} {{skill_value=[[@{perception}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_perception-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="persistence-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="persistence">Persistence</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
40+<span data-i18n="CHA">CHA</span>+<span data-i18n="POW">POW</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_persistence-base" readonly="readonly" type="number" title="@{persistence-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_persistence-mod" type="number" title="@{persistence-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_persistence" readonly="readonly" type="number" title="@{persistence}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{persistence}}} {{skill_value=[[@{persistence}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_persistence-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="resilience-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="resilience">Resilience</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
40+<span data-i18n="CON">CON</span>+<span data-i18n="POW">POW</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_resilience-base" readonly="readonly" type="number" title="@{resilience-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_resilience-mod" type="number" title="@{resilience-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_resilience" readonly="readonly" type="number" title="@{resilience}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{resilience}}} {{skill_value=[[@{resilience}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_resilience-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="riding-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="riding">Riding</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="DEX">DEX</span>+<span data-i18n="POW">POW</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_riding-base" readonly="readonly" type="number" title="@{riding-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_riding-mod" type="number" title="@{riding-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_riding" readonly="readonly" type="number" data-i18n-title="riding-title" title="Armor Penalty included - @{riding}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{riding}}} {{skill_value=[[@{riding}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_riding-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="sing-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="sing">Sing</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="CHA">CHA</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sing-base" readonly="readonly" type="number" title="@{sing-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sing-mod" type="number" title="@{sing-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sing" readonly="readonly" type="number" title="@{sing}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{sing}}} {{skill_value=[[@{sing}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_sing-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="sleight-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="sleight">Sleight</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sleight-base" readonly="readonly" type="number" title="@{sleight-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sleight-mod" type="number" title="@{sleight-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_sleight" readonly="readonly" type="number" data-i18n-title="sleight-title" title="Armor Penalty included - @{sleight}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{sleight}}} {{skill_value=[[@{sleight}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_sleight-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="stealth-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="stealth">Stealth</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
10+<span data-i18n="DEX">DEX</span>-<span data-i18n="SIZ">SIZ</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_stealth-base" readonly="readonly" type="number" title="@{stealth-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_stealth-mod" type="number" title="@{stealth-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_stealth" readonly="readonly" type="number" data-i18n-title="stealth-title" title="Armor Penalty included - @{stealth}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{stealth}}} {{skill_value=[[@{stealth}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_stealth-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="throwing-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="throwing">Throwing</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_throwing-base" readonly="readonly" type="number" title="@{throwing-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_throwing-mod" type="number" title="@{throwing-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_throwing" readonly="readonly" type="number" data-i18n-title="throwing-title" title="Armor Penalty included - @{throwing}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{throwing}}} {{skill_value=[[@{throwing}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_throwing-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="unarmed-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="unarmed">Unarmed</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="STR">STR</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_unarmed-base" readonly="readonly" type="number" title="@{unarmed-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_unarmed-mod" type="number" title="@{unarmed-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_unarmed" readonly="readonly" type="number" title="@{unarmed}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{unarmed}}} {{skill_value=[[@{unarmed}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_unarmed-check" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<div class="sheet-header sheet-text-center"><span data-i18n="weapon-skills">Weapon Skills</span></div>
|
||
<br/>
|
||
|
||
<div class="sheet-rTable" data-i18n-list="weapon-skills-list">
|
||
<div>
|
||
<div class="sheet-rTableRow">
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="weapon-skills">Weapon Skills</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="characteristic-s">Characteristic(s)</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="base-score">Base Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="mod-score">Mod Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
<span data-i18n="current-score">Current Score</span>
|
||
</div>
|
||
<div class="sheet-rTableHead">
|
||
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="basic-close-combat-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="basic-close-combat">Basic Close Combat</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="STR">STR</span>+<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-close-combat-base" readonly="readonly" type="number" title="@{basic-close-combat-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-close-combat-mod" type="number" title="@{basic-close-combat-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-close-combat" readonly="readonly" type="number" data-i18n-title="basic-close-combat-title" title="Armor Penalty included - @{basic-close-combat}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{basic-close-combat}}} {{skill_value=[[@{basic-close-combat}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_basic-close-combat-check" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-rTableRow" data-i18n-list-item="basic-ranged-cat">
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="basic-ranged">Basic Ranged</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<span data-i18n="DEX">DEX</span>
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-ranged-base" readonly="readonly" type="number" title="@{basic-ranged-base}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-ranged-mod" type="number" title="@{basic-ranged-mod}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<input name="attr_basic-ranged" readonly="readonly" type="number" data-i18n-title="basic-ranged-title" title="Armor Penalty included - @{basic-ranged}" />
|
||
</div>
|
||
<div class="sheet-rTableCell">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=^{basic-ranged}}} {{skill_value=[[@{basic-ranged}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_basic-ranged-check" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect" style="width: 73%; margin: auto;">
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_weaponSkills">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<input name="attr_weaponSkillName" type="text" data-i18n-placeholder="weapon-skill-name-place" placeholder="Weapon Skill Name" />
|
||
<span data-i18n="weapon-skill-name">Skill Name</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_weaponSkillChar1" data-i18n-title="weapon-skill-characteristics-1-title" title="First Characteristics for Weapon Skill">
|
||
<option value="0" selected></option>
|
||
<option value="str" data-i18n="STR">STR</option>
|
||
<option value="con" data-i18n="CON">CON</option>
|
||
<option value="dex" data-i18n="DEX">DEX</option>
|
||
<option value="siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="int" data-i18n="INT">INT</option>
|
||
<option value="pow" data-i18n="POW">POW</option>
|
||
<option value="cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-1">Ch. 1</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_weaponSkillChar2" data-i18n-title="weapon-skill-characteristics-2-title" title="Second Characteristics for Weapon Skill">
|
||
<option value="0" selected></option>
|
||
<option value="str" data-i18n="STR">STR</option>
|
||
<option value="con" data-i18n="CON">CON</option>
|
||
<option value="dex" data-i18n="DEX">DEX</option>
|
||
<option value="siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="int" data-i18n="INT">INT</option>
|
||
<option value="pow" data-i18n="POW">POW</option>
|
||
<option value="cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-2">Ch. 2</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_weaponSkillBase" readonly="readonly" type="number" title="@{weaponSkillBase}" />
|
||
<span data-i18n="weapon-skill-score-base">Base</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_weaponSkillMod" type="number" title="@{weaponSkillMod}" value="0" />
|
||
<span data-i18n="weapon-skill-mod">Mod.</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_weaponSkill" readonly="readonly" type="number" data-i18n-title="weapon-skill-score-title" title="Armor Penalty included if DEX is involved - @{weaponSkill}" />
|
||
<span data-i18n="weapon-skill-score">Score</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=@{weaponSkillName}}} {{skill_value=[[@{weaponSkill}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_weapon-skill-check" />
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<div class="sheet-header sheet-text-center"><span data-i18n="advanced-skills">Advanced Skills</span></div>
|
||
<br/>
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect" style="width: 73%; margin: auto;">
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_advancedSkills">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<input name="attr_advancedSkillName" type="text" data-i18n-placeholder="advanced-skill-name-place" placeholder="Advanced Skill Name" />
|
||
<span data-i18n="advanced-skill-name">Skill Name</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_advancedSkillChar1" data-i18n-title="advanced-skill-characteristics-1-title" title="First Characteristics for Advanced Skill">
|
||
<option value="0" selected></option>
|
||
<option value="str" data-i18n="STR">STR</option>
|
||
<option value="con" data-i18n="CON">CON</option>
|
||
<option value="dex" data-i18n="DEX">DEX</option>
|
||
<option value="siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="int" data-i18n="INT">INT</option>
|
||
<option value="pow" data-i18n="POW">POW</option>
|
||
<option value="cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-1">Ch. 1</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_advancedSkillChar2" data-i18n-title="advanced-skill-characteristics-2-title" title="First Characteristics for Advanced Skill">
|
||
<option value="0" selected></option>
|
||
<option value="str" data-i18n="STR">STR</option>
|
||
<option value="con" data-i18n="CON">CON</option>
|
||
<option value="dex" data-i18n="DEX">DEX</option>
|
||
<option value="siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="int" data-i18n="INT">INT</option>
|
||
<option value="pow" data-i18n="POW">POW</option>
|
||
<option value="cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-2">Ch. 2</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_advancedSkillBase" readonly="readonly" type="number" title="@{advancedSkillBase}" />
|
||
<span data-i18n="advanced-skill-score-base">Base</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_advancedSkillMod" type="number" title="@{advancedSkillMod}" value="0" />
|
||
<span data-i18n="advanced-skill-mod">Mod.</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_advancedSkill" readonly="readonly" type="number" data-i18n-title="advanced-skill-score-title" title="Armor Penalty included if DEX is involved - @{advancedSkill}" />
|
||
<span data-i18n="advanced-skill-score">Score</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=@{advancedSkillName}}} {{skill_value=[[@{advancedSkill}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_advanced-skill-check" />
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Weapons & Equipments" data-i18n-aria-label="page-weapons-equipments-aria">
|
||
<div class="sheet-section sheet-section-weapons-equipments">
|
||
|
||
<input type="hidden" name="attr_total_armor_penalty" value="0" />
|
||
|
||
<input type="hidden" name="attr_total_enc_close_weapons" value="0" />
|
||
<input type="hidden" name="attr_total_enc_ranged_weapons" value="0" />
|
||
<input type="hidden" name="attr_total_enc_armors" value="0" />
|
||
<input type="hidden" name="attr_total_enc_items" value="0" />
|
||
|
||
<!-- CURRENCY -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="currencies-desc">Currencies</span>
|
||
<label class="sheet-small-label2" style="width: 30%;"></label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_gold" type="number" data-i18n-title="gold-title" title="Gold (Pundstarleen)" />
|
||
<span data-i18n="gold">Gold</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_silver" type="number" data-i18n-title="silver-title" title="Silver (Euo)" />
|
||
<span data-i18n="silver">Silver</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_copper" type="number" data-i18n-title="copper-title" title="Copper (Penny)" />
|
||
<span data-i18n="copper">Copper</span>
|
||
</label>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- HIT LOCATION -->
|
||
<div class="sheet-nontable sheet-sect sheet-hit-location" style="border:1px solid black;">
|
||
|
||
<span class="sheet-nontable-name" data-i18n="hit-locations">Hit Locations</span>
|
||
|
||
<table class="sheet-table-hit-location">
|
||
<thead>
|
||
<tr>
|
||
<th class="sheet-border-right sheet-border-bottom">
|
||
D20
|
||
</th>
|
||
<th class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="hit-location">Hit Location</span>
|
||
</th>
|
||
<th class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="armor-ap">AP</span>
|
||
</th>
|
||
<th class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="armor-ap_max">AP Max</span>
|
||
</th>
|
||
<th class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="armor-hp">HP</span>
|
||
</th>
|
||
<th class="sheet-border-bottom">
|
||
<span data-i18n="armor-hp-max">HP Max</span>
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
1-3
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="right-leg">Right Leg</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-leg-ap" type="number" data-i18n-title="right-leg-armor-point-title" title="Right Leg Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-leg-ap_max" type="number" data-i18n-title="right-leg-armor-point-max-title" title="Right Leg Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-leg-hp" type="number" data-i18n-title="right-leg-hit-point-title" title="Right Leg Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_right-leg-hp_max" type="number" readonly="readonly" data-i18n-title="right-leg-hit-point-max-title" title="Right Leg Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
4-6
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="left-leg">Left Leg</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-leg-ap" type="number" data-i18n-title="left-leg-armor-point-title" title="Left Leg Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-leg-ap_max" type="number" data-i18n-title="left-leg-armor-point-max-title" title="Left Leg Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-leg-hp" type="number" data-i18n-title="left-leg-hit-point-title" title="Left Leg Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_left-leg-hp_max" type="number" readonly="readonly" data-i18n-title="left-leg-hit-point-max-title" title="Left Leg Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
7-9
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="abdomen">Abdomen</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_abdomen-ap" type="number" data-i18n-title="abdomen-armor-point-title" title="Abdomen Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_abdomen-ap_max" type="number" data-i18n-title="abdomen-armor-point-max-title" title="Abdomen Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_abdomen-hp" type="number" data-i18n-title="abdomen-hit-point-title" title="Abdomen Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_abdomen-hp_max" type="number" readonly="readonly" data-i18n-title="abdomen-hit-point-max-title" title="Abdomen Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
10-12
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="chest">Chest</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_chest-ap" type="number" data-i18n-title="chest-armor-point-title" title="chest Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_chest-ap_max" type="number" data-i18n-title="chest-armor-point-max-title" title="chest Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_chest-hp" type="number" data-i18n-title="chest-hit-point-title" title="chest Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_chest-hp_max" type="number" readonly="readonly" data-i18n-title="chest-hit-point-max-title" title="chest Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
13-15
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="right-arm">Right Arm</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-arm-ap" type="number" data-i18n-title="right-arm-armor-point-title" title="Right Arm Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-arm-ap_max" type="number" data-i18n-title="right-arm-armor-point-max-title" title="Right Arm Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_right-arm-hp" type="number" data-i18n-title="right-arm-hit-point-title" title="Right Arm Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_right-arm-hp_max" type="number" readonly="readonly" data-i18n-title="right-arm-hit-point-max-title" title="Right Arm Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
16-18
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="left-arm">Left Arm</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-arm-ap" type="number" data-i18n-title="left-arm-armor-point-title" title="Left Arm Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-arm-ap_max" type="number" data-i18n-title="left-arm-armor-point-max-title" title="Left Arm Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_left-arm-hp" type="number" data-i18n-title="left-arm-hit-point-title" title="Left Arm Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_left-arm-hp_max" type="number" readonly="readonly" data-i18n-title="left-arm-hit-point-max-title" title="Left Arm Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
19-20
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<span data-i18n="head">Head</span>
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_head-ap" type="number" data-i18n-title="head-armor-point-title" title="Head Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_head-ap_max" type="number" data-i18n-title="head-armor-point-max-title" title="Head Max Armor Points" />
|
||
</td>
|
||
<td class="sheet-border-right sheet-border-bottom">
|
||
<input name="attr_head-hp" type="number" data-i18n-title="head-hit-point-title" title="Head Hit Points" />
|
||
</td>
|
||
<td class="sheet-border-bottom">
|
||
<input name="attr_head-hp_max" type="number" readonly="readonly" data-i18n-title="head-hit-point-max-title" title="Head Max Hit Points" />
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<br/>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- ARMORS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="armors">Armors</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_armors">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 25%;">
|
||
<input type="text" name="attr_armor-name" data-i18n-placeholder="armor-name-place" placeholder="Armor Name" />
|
||
<span data-i18n="name">Nom</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_armor-armor-points" type="number" data-i18n-title="armor-armor-points-title" title="Armor Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_armor-enc" data-i18n-title="armor-enc-title" title="Armor Encumbrance" type="number" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 25%;">
|
||
<input type="text" name="attr_armor-location" data-i18n-placeholder="armor-location-place" placeholder="Armor Location(s)" />
|
||
<span data-i18n="locations">Locations</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_armor-penalty" type="number" data-i18n-title="armor-penalty-title" title="Armor Skill Penalty" />
|
||
<span data-i18n="penalty">Penalty</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_armor-notes" data-i18n-placeholder="armor-notes-place" placeholder="Armor Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- FAVOURED CLOSE COMBAT WEAPONS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="favoured-close-combat-weapons">Favoured Close Combat Weapons</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_close-combat-weapons">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-repeating-rollbutton sheet-small-label2"><button type="roll" value="@{PC-whisper} &{template:hm_weapons} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{weapon_name=@{close-combat-weapon-name}}} {{weapon_value=[[@{close-combat-weapon-skill-score}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}} {{diceroll_damage=[[@{close-combat-weapon-damage} + @{dmg-mod}]]}} {{weapon_max_damage=[[@{max_damages}]]}} {{hit_location=[[1d20]]}} {{weapon_impale=[[@{close-combat-weapon-impale}]]}}" name="roll_close-combat-weapon-check"><span data-i18n="attack"></span></button>
|
||
</span>
|
||
|
||
<input type="hidden" name="attr_max_damages" value="0" />
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_close-combat-weapon-name" data-i18n-placeholder="close-combat-weapon-name-place" placeholder="Weapon Name" />
|
||
<span data-i18n="name">Name</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_close-combat-weapon-skill" data-i18n-title="close-combat-weapon-skill-place" title="Weapon Skill Name (Put the exact name of the skill)" />
|
||
<span data-i18n="skill">Skill</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_close-combat-weapon-skill-score" type="number" readonly="readonly" data-i18n-title="close-combat-weapon-skill-score-title" title="Weapon Skill Score" />
|
||
<span data-i18n="score">Score</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_close-combat-weapon-damage" data-i18n-placeholder="close-combat-weapon-damage-place" placeholder="ex: 1d6+2" type="text" />
|
||
<span data-i18n="damage">Damage</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_close-combat-weapon-enc" data-i18n-title="close-combat-weapon-enc-title" title="Weapon Encumbrance" type="number" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<select name="attr_close-combat-weapon-impale" data-i18n-title="close-combat-weapon-impale-title" title="Impale the opponent on critical ?">
|
||
<option value="0" data-i18n="no" selected>No</option>
|
||
<option value="1" data-i18n="yes" >Yes</option>
|
||
</select>
|
||
<span data-i18n="impale">Impale</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_close-combat-weapon-ap" type="number" data-i18n-title="close-combat-weapon-ap-title" title="Weapon Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_close-combat-weapon-ap_max" type="number" data-i18n-title="close-combat-weapon-ap-max-title" title="Weapon Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_close-combat-weapon-hp" type="number" data-i18n-title="close-combat-weapon-hp-title" title="Weapon Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_close-combat-weapon-hp_max" type="number" data-i18n-title="close-combat-weapon-hp-max-title" title="Weapon Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_close-combat-weapon-notes" data-i18n-placeholder="close-combat-weapon-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- FAVOURED RANGED WEAPONS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="favoured-ranged-weapons">Favoured Ranged Weapons</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_ranged-weapons">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-repeating-rollbutton sheet-small-label2"><button type="roll" value="@{PC-whisper} &{template:hm_weapons} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{weapon_name=@{ranged-weapon-name}}} {{weapon_value=[[@{ranged-weapon-skill-score}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}} {{diceroll_damage=[[@{ranged-weapon-damage}+@{damage_mod}]]}} {{weapon_max_damage=[[@{max_damages}]]}} {{hit_location=[[1d20]]}} {{weapon_impale=[[@{ranged-weapon-impale}]]}}" name="roll_ranged-weapon-check"><span data-i18n="attack"></span></button>
|
||
</span>
|
||
|
||
<input type="hidden" name="attr_max_damages" value="0" />
|
||
<input type="hidden" name="attr_damage_mod" value="0" />
|
||
|
||
<span class="sheet-small-label2" style="width: 20%;">
|
||
<input type="text" name="attr_ranged-weapon-name" data-i18n-placeholder="ranged-weapon-name-place" placeholder="Weapon Name" />
|
||
<span data-i18n="name">Nom</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_ranged-weapon-skill" data-i18n-title="ranged-weapon-skill-place" title="Weapon Skill Name (Put the exact name of the skill)" />
|
||
<span data-i18n="skill">Skill</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-skill-score" readonly="readonly" type="number" data-i18n-title="ranged-weapon-skill-score-title" title="Weapon Skill Score" />
|
||
<span data-i18n="score">Score</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-damage" data-i18n-placeholder="ranged-weapon-damage-place" placeholder="ex: 1d6+2" type="text" />
|
||
<span data-i18n="damage">Damage</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<select name="attr_ranged-weapon-damage-mod">
|
||
<option value="0" selected>0</option>
|
||
<option value="half" data-i18n="half_damage_mod" >+ 1/2 DM</option>
|
||
<option value="full" data-i18n="full_damage_mod" >+ DM</option>
|
||
</select>
|
||
<span data-i18n="dm">Dmg Mod.</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-enc" data-i18n-title="ranged-weapon-enc-title" title="Weapon Encumbrance" type="number" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-range" type="number" data-i18n-title="ranged-weapon-range-title" title="Weapon Range" />
|
||
<span data-i18n="range">Range</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-load" type="number" data-i18n-title="ranged-weapon-load-title" title="Weapon Load" />
|
||
<span data-i18n="load">Load</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<select name="attr_ranged-weapon-impale" data-i18n-title="ranged-weapon-impale-title" title="Impale the opponent on critical ?">
|
||
<option value="0" data-i18n="no" selected>No</option>
|
||
<option value="1" data-i18n="yes" >Yes</option>
|
||
</select>
|
||
<span data-i18n="impale">Impale</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_ranged-combat-weapon-ap" type="number" data-i18n-title="ranged-combat-weapon-ap-title" title="Weapon Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_ranged-combat-weapon-ap_max" type="number" data-i18n-title="ranged-combat-weapon-ap-max-title" title="Weapon Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_ranged-combat-weapon-hp" type="number" data-i18n-title="ranged-combat-weapon-hp-title" title="Weapon Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_ranged-combat-weapon-hp_max" type="number" data-i18n-title="ranged-combat-weapon-hp-max-title" title="Weapon Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 67%;">
|
||
<input type="text" name="attr_ranged-combat-weapon-notes" data-i18n-placeholder="ranged-combat-weapon-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- EQUIPMENTS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="equipments">Equipments</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_equipments">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 40%;">
|
||
<input type="text" name="attr_item-name" data-i18n-placeholder="item-name-place" placeholder="Item Name" />
|
||
<span data-i18n="item">Item</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-number" type="number" data-i18n-title="item-number-title" title="Number of items" value="0" />
|
||
<span data-i18n="number">Nb.</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-enc" data-i18n-title="item-enc-title" title="Item Encumbrance" type="number" value="0" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_item-ap" type="number" data-i18n-title="item-ap-title" title="Item Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_item-ap_max" type="number" data-i18n-title="item-ap-max-title" title="Item Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_item-hp" type="number" data-i18n-title="item-hp-title" title="Item Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_item-hp_max" type="number" data-i18n-title="item-hp-max-title" title="Item Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-cost" type="number" data-i18n-title="item-cost-title" title="Item Cost (in Silver Coin)" />
|
||
<span data-i18n="cost">Cost</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_item-notes" data-i18n-placeholder="item-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<br/>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<label class="sheet-small-label2" style="width: 12%;">
|
||
<span data-i18n="total-enc">Total Enc:</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_total-enc" type="number" readonly="readonly" data-i18n-title="total-enc-title" title="Character Total Encumbrance" />
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_total-enc-overload" type="number" readonly="readonly" data-i18n-title="total-enc-overload-title" title="Encumbrance Overload (STR+SIZ) without malus" />
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_total-enc_max" type="number" readonly="readonly" data-i18n-title="total-enc-max-title" title="Character Total Max Encumbrance (STR+SIZ * 2)" />
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 50%;">
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 15%;">
|
||
<span data-i18n="current-fatigue" >Current Fatigue:</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 30%;">
|
||
<input name="attr_current-fatigue" type="text" data-i18n-placeholder="current-fatigue-place" placeholder="Character Current Fatigue" />
|
||
</label>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Spells & Traits" data-i18n-aria-label="page-spells-traits-aria">
|
||
<div class="sheet-section sheet-section-spells-traits">
|
||
|
||
<!-- TRAITS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="traits">Traits</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_traits">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 29%;">
|
||
<input type="text" name="attr_trait-name" data-i18n-placeholder="trait-name-place" placeholder="Trait Name" />
|
||
<span data-i18n="trait">Trait</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 65%;">
|
||
<input type="text" name="attr_trait-effect" data-i18n-placeholder="trait-effect-place" placeholder="Trait Effect" />
|
||
<span data-i18n="effect">Effect</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- SPELLS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="spells">Spells</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_spells">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 20%;">
|
||
<input type="text" name="attr_spell-name" data-i18n-placeholder="spell-name-place" placeholder="Spell Name" />
|
||
<span data-i18n="spell">Spell</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 25%;">
|
||
<input type="text" name="attr_spell-requirements" data-i18n-placeholder="spell-requirements-place" placeholder="Spell Requirements" />
|
||
<span data-i18n="requirements">Requirements</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 20%;">
|
||
<input type="text" name="attr_spell-casting-time" data-i18n-placeholder="spell-casting-time-place" placeholder="Spell Casting Time" />
|
||
<span data-i18n="casting-time">Casting Time</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 25%;">
|
||
<input type="text" name="attr_spell-traits" data-i18n-placeholder="spell-traits-place" placeholder="Spell Traits" />
|
||
<span data-i18n="traits">Traits</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_spell-effect" data-i18n-placeholder="spell-effect-place" placeholder="Spell Effect" />
|
||
<span data-i18n="effect">Effect</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Mount" data-i18n-aria-label="page-mount-aria">
|
||
<div class="sheet-section sheet-section-mount">
|
||
|
||
<input type="hidden" name="attr_mount_total_enc_close_weapons" value="0" />
|
||
<input type="hidden" name="attr_mount_total_enc_ranged_weapons" value="0" />
|
||
<input type="hidden" name="attr_mount_total_enc_armors" value="0" />
|
||
<input type="hidden" name="attr_mount_total_enc_items" value="0" />
|
||
|
||
<!-- MOUNT DESCRIPTION -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="mount-desc">Mount Description</span>
|
||
|
||
<label class="sheet-small-label2" style="width: 20%;">
|
||
<input name="attr_mount_name" type="text" data-i18n-placeholder="mount-name-place" placeholder="Mount Name" />
|
||
<span data-i18n="mount-name">Mount Name</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 20%;">
|
||
<input name="attr_mount-type" type="text" data-i18n-placeholder="mount-type-place" placeholder="Mount Type" />
|
||
<span data-i18n="mount-type">Mount Type</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_mount-ca" type="number" readonly="readonly" data-i18n-title="mount-combat-action-title" title="Mount Combat Actions - @{mount-ca}" />
|
||
<span data-i18n="ca">CA</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_mount-sr" type="number" data-i18n-title="mount-strike-rank-title" title="Mount Strike Rank - @{mount-sr}" />
|
||
<button data-i18n-title="mount-sr-initiative-title" title="Launch Initiative (select your token before)" class="sheet-text-button" type="roll" name="roll_mount-sr-check" value="@{PC-whisper} [[1d10+@{mount-sr}+(@{mount-dex}/100)&{tracker}]]"><span style="vertical-align: text-bottom; color: white;" data-i18n="strike-rank">SR</span></button>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_mount-mov" type="number" data-i18n-title="mount-movement-title" title="Mount Movement - @{mount-mov}" />
|
||
<span data-i18n="mov">MOV</span>
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 99%;">
|
||
<input name="attr_mount-notes" type="text" data-i18n-placeholder="mount-notes-place" placeholder="Mount Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</label>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
<!-- MOUNT CHARACTERISTICS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect" style="border:1px solid black;">
|
||
<span class="sheet-nontable-name" data-i18n="character-characteristics-desc">Characteristics</span>
|
||
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-str" type="number" title="@{str}" /><span data-i18n="STR">FOR</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-con" type="number" title="@{con}" /><span data-i18n="CON">CON</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-dex" type="number" title="@{dex}" /><span data-i18n="DEX">DEX</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-siz" type="number" title="@{siz}" /><span data-i18n="SIZ">SIZ</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-int" type="number" title="@{int}" /><span data-i18n="INT">INT</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-pow" type="number" title="@{pow}" /><span data-i18n="POW">POW</span></label>
|
||
<label class="sheet-small-label2" style="width: 10%;"><input name="attr_mount-cha" type="number" title="@{cha}" /><span data-i18n="CHA">CHA</span></label>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- MOUNT SKILLS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-header sheet-text-center"><span data-i18n="skills">Skills</span></div>
|
||
<br/>
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect" style="width: 73%; margin: auto;">
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_mountSkills">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<input name="attr_mountSkillName" type="text" data-i18n-placeholder="mount-skill-name-place" placeholder="Mount Skill Name" />
|
||
<span data-i18n="mount-skill-name">Skill Name</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_mountSkillChar1" data-i18n-title="mount-skill-characteristics-1-title" title="First Characteristics for Mount Skill">
|
||
<option value="0" selected></option>
|
||
<option value="mount-str" data-i18n="STR">STR</option>
|
||
<option value="mount-con" data-i18n="CON">CON</option>
|
||
<option value="mount-dex" data-i18n="DEX">DEX</option>
|
||
<option value="mount-siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="mount-int" data-i18n="INT">INT</option>
|
||
<option value="mount-pow" data-i18n="POW">POW</option>
|
||
<option value="mount-cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-1">Ch. 1</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect">
|
||
<select name="attr_mountSkillChar2" data-i18n-title="mount-skill-characteristics-2-title" title="First Characteristics for Mount Skill">
|
||
<option value="0" selected></option>
|
||
<option value="mount-str" data-i18n="STR">STR</option>
|
||
<option value="mount-con" data-i18n="CON">CON</option>
|
||
<option value="mount-dex" data-i18n="DEX">DEX</option>
|
||
<option value="mount-siz" data-i18n="SIZ">SIZ</option>
|
||
<option value="mount-int" data-i18n="INT">INT</option>
|
||
<option value="mount-pow" data-i18n="POW">POW</option>
|
||
<option value="mount-cha" data-i18n="CHA">CHA</option>
|
||
</select>
|
||
<span data-i18n="characteristics-2">Ch. 2</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_mountSkillBase" readonly="readonly" type="number" title="@{mountSkillBase}" />
|
||
<span data-i18n="mount-skill-score-base">Base</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_mountSkillMod" type="number" title="@{mountSkillMod}" value="0" />
|
||
<span data-i18n="mount-skill-mod">Mod.</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<input name="attr_mountSkill" readonly="readonly" type="number" title="@{mountSkill}" />
|
||
<span data-i18n="mount-skill-score">Score</span>
|
||
</span>
|
||
<span class="sheet-small-label2 sheet-sect sheet-entry-vshort">
|
||
<button type="roll" value="@{PC-whisper} &{template:hm_skill} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{skill_name=@{mountSkillName}}} {{skill_value=[[@{mountSkill}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}}" name="roll_mount-skill-check" />
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- MOUNT HIT LOCATIONS -->
|
||
<div class="sheet-nontable sheet-sect sheet-hit-location" style="border:1px solid black;">
|
||
|
||
<span class="sheet-nontable-name" data-i18n="hit-locations">Hit Locations</span>
|
||
|
||
<div class="sheet-divbox sheet-repeating-sect" style="width: 63%; margin: auto;">
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_hit-locations">
|
||
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input name="attr_hit-location-dice-value" type="text" data-i18n-title="hit-location-dice-value-title" title="Dice Value (ex: 3-5)" />
|
||
<span data-i18n="dice">Dice</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 25%;">
|
||
<input name="attr_hit-location-name" type="text" data-i18n-placeholder="hit-location-name-place" placeholder="Name (ex: chest)" />
|
||
<span data-i18n="location">Location</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 20%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_hit-location-ap" type="number" data-i18n-title="hit-location-ap-title" title="Location Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_hit-location-ap_max" type="number" data-i18n-title="hit-location-ap-max-title" title="Location Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 20%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_hit-location-hp" type="number" data-i18n-title="hit-location-hp-title" title="Location Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_hit-location-hp_max" type="number" data-i18n-title="hit-location-hp-max-title" title="Location Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- MOUNT CLOSE COMBAT WEAPONS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="mount-close-combat-weapons">Mount Close Combat Weapons</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_mount-close-combat-weapons">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-repeating-rollbutton sheet-small-label2"><button type="roll" value="@{PC-whisper} &{template:hm_weapons} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{weapon_name=@{close-combat-weapon-name}}} {{weapon_value=[[@{close-combat-weapon-skill-score}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}} {{diceroll_damage=[[@{close-combat-weapon-damage} + @{dmg-mod}]]}} {{hit_location=[[1d20]]}}" name="roll_close-combat-weapon-check"><span data-i18n="attack"></span></button>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_close-combat-weapon-name" data-i18n-placeholder="close-combat-weapon-name-place" placeholder="Weapon Name" />
|
||
<span data-i18n="name">Nom</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_close-combat-weapon-skill" data-i18n-title="close-combat-weapon-skill-place" title="Weapon Skill Name (Put the exact name of the skill)" />
|
||
<span data-i18n="skill">Skill</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_close-combat-weapon-skill-score" type="number" readonly="readonly" data-i18n-title="close-combat-weapon-skill-score-title" title="Weapon Skill Score" />
|
||
<span data-i18n="score">Score</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 10%;">
|
||
<input name="attr_close-combat-weapon-damage" data-i18n-placeholder="close-combat-weapon-damage-place" placeholder="ex: 1d6+2" type="text" />
|
||
<span data-i18n="damage">Damage</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_close-combat-weapon-enc" data-i18n-title="close-combat-weapon-enc-title" title="Weapon Encumbrance" type="number" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_close-combat-weapon-ap" type="number" data-i18n-title="close-combat-weapon-ap-title" title="Weapon Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_close-combat-weapon-ap_max" type="number" data-i18n-title="close-combat-weapon-ap-max-title" title="Weapon Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_close-combat-weapon-hp" type="number" data-i18n-title="close-combat-weapon-hp-title" title="Weapon Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_close-combat-weapon-hp_max" type="number" data-i18n-title="close-combat-weapon-hp-max-title" title="Weapon Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_close-combat-weapon-notes" data-i18n-placeholder="close-combat-weapon-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- MOUNT RANGED WEAPONS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="mount-ranged-weapons">Mount Ranged Weapons</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_mount-ranged-weapons">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-repeating-rollbutton sheet-small-label2"><button type="roll" value="@{PC-whisper} &{template:hm_weapons} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{weapon_name=@{ranged-weapon-name}}} {{weapon_value=[[@{ranged-weapon-skill-score}+?{Malus/Bonus|0}]]}} {{diceroll=[[1d100cs<10cf>100]]}} {{diceroll_damage=[[@{ranged-weapon-damage} + ?{Damage Mod|0,0|1/2,((@{dmg-mod})/2)|Full,@{dmg-mod}}]]}} {{hit_location=[[1d20]]}}" name="roll_ranged-weapon-check"><span data-i18n="attack"></span></button>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_ranged-weapon-name" data-i18n-placeholder="ranged-weapon-name-place" placeholder="Weapon Name" />
|
||
<span data-i18n="name">Nom</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 15%;">
|
||
<input type="text" name="attr_ranged-weapon-skill" data-i18n-title="ranged-weapon-skill-place" title="Weapon Skill Name (Put the exact name of the skill)" />
|
||
<span data-i18n="skill">Skill</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-skill-score" type="number" readonly="readonly" data-i18n-title="ranged-weapon-skill-score-title" title="Weapon Skill Score" />
|
||
<span data-i18n="score">Score</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-damage" data-i18n-placeholder="ranged-weapon-damage-place" placeholder="ex: 1d6+2" type="text" />
|
||
<span data-i18n="damage">Damage</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-enc" data-i18n-title="ranged-weapon-enc-title" title="Weapon Encumbrance" type="number" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-range" type="number" data-i18n-title="ranged-weapon-range-title" title="Weapon Range" />
|
||
<span data-i18n="range">Range</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 5%;">
|
||
<input name="attr_ranged-weapon-load" type="number" data-i18n-title="ranged-weapon-load-title" title="Weapon Load" />
|
||
<span data-i18n="load">Load</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_ranged-combat-weapon-ap" type="number" data-i18n-title="ranged-combat-weapon-ap-title" title="Weapon Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_ranged-combat-weapon-ap_max" type="number" data-i18n-title="ranged-combat-weapon-ap-max-title" title="Weapon Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_ranged-combat-weapon-hp" type="number" data-i18n-title="ranged-combat-weapon-hp-title" title="Weapon Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_ranged-combat-weapon-hp_max" type="number" data-i18n-title="ranged-combat-weapon-hp-max-title" title="Weapon Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_ranged-combat-weapon-notes" data-i18n-placeholder="ranged-combat-weapon-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<!-- MOUNT EQUIPMENTS -->
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="equipments">Equipments</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_mount-equipments">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<span class="sheet-small-label2" style="width: 40%;">
|
||
<input type="text" name="attr_item-name" data-i18n-placeholder="item-name-place" placeholder="Item Name" />
|
||
<span data-i18n="item">Item</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-number" type="number" data-i18n-title="item-number-title" title="Number of items" value="0" />
|
||
<span data-i18n="number">Nb.</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-enc" data-i18n-title="item-enc-title" title="Item Encumbrance" type="number" value="0" />
|
||
<span data-i18n="encumbrance">ENC</span>
|
||
</span>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_item-ap" type="number" data-i18n-title="item-ap-title" title="Item Armor Points" />
|
||
<span data-i18n="ap">AP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_item-ap_max" type="number" data-i18n-title="item-ap-max-title" title="Item Max Armor Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="sheet-linked-fields" style="width: 15%;">
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%; padding-right: 4px;">
|
||
<input name="attr_item-hp" type="number" data-i18n-title="item-hp-title" title="Item Hit Points" />
|
||
<span data-i18n="hp">HP</span>
|
||
</label>
|
||
<span class="sheet-divider-db-lg" style="width:1em; padding-bottom:10px;">/</span>
|
||
<label class="sheet-small-label2 sheet-narrow-numbers" style="width: 30%;">
|
||
<input name="attr_item-hp_max" type="number" data-i18n-title="item-hp-max-title" title="Item Max Hit Points" />
|
||
<span data-i18n="max">Max</span>
|
||
</label>
|
||
</div>
|
||
|
||
<span class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_item-cost" type="number" data-i18n-title="item-cost-title" title="Item Cost (in Silver Coin)" />
|
||
<span data-i18n="cost">Cost</span>
|
||
</span>
|
||
|
||
<span class="sheet-small-label2" style="width: 99%;">
|
||
<input type="text" name="attr_item-notes" data-i18n-placeholder="item-notes-place" placeholder="Special Notes" />
|
||
<span data-i18n="notes">Notes</span>
|
||
</span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<br/>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<br/>
|
||
|
||
<div class="sheet-section">
|
||
<div class="sheet-h2-section">
|
||
|
||
<label class="sheet-small-label2" style="width: 12%;">
|
||
<span data-i18n="total-enc">Total Enc:</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_mount_total-enc" type="number" readonly="readonly" data-i18n-title="mount-total-enc-title" title="Mount Total Encumbrance" />
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_mount_total-enc-overload" type="number" readonly="readonly" data-i18n-title="mount-total-enc-overload-title" title="Encumbrance Overload (STR+SIZ) without malus" />
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 7%;">
|
||
<input name="attr_mount_total-enc_max" type="number" readonly="readonly" data-i18n-title="mount-total-enc-max-title" title="Mount Total Max Encumbrance (STR+SIZ * 2)" />
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 50%;">
|
||
</label>
|
||
|
||
<label class="sheet-small-label2" style="width: 15%;">
|
||
<span data-i18n="current-fatigue" >Current Fatigue:</span>
|
||
</label>
|
||
<label class="sheet-small-label2" style="width: 30%;">
|
||
<input name="attr_mount_current-fatigue" type="text" data-i18n-placeholder="mount-current-fatigue-place" placeholder="Character Current Fatigue" />
|
||
</label>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Notes" data-i18n-aria-label="page-notes-aria">
|
||
<div class="sheet-section sheet-section-notes">
|
||
|
||
|
||
<div class="sheet-nontable sheet-sect">
|
||
<div class="sheet-divbox sheet-repeating-sect">
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="notes">Notes</span></div>
|
||
<br/>
|
||
<div class="sheet-repeating-fields">
|
||
<fieldset class="repeating_notes">
|
||
<div style="border-spacing:2px; border-collapse:separate; margin:2px;">
|
||
|
||
<input type="checkbox" class="sheet-counted sheet-sect-show" data-i18n-title="minimize-cmd" title="Minimize Row" name="attr_row-show" value="1" checked="checked" /><span></span>
|
||
<span class="sheet-small-label2" style="width: 95%;"><input type="text" name="attr_noteTitle" data-i18n-placeholder="note-title-place" placeholder="Note Title" /><span data-i18n="title">Title</span></span>
|
||
<span class="sheet-small-label2 sheet-sect" style="width: 99%;min-height: 120px;"><textarea name="attr_note" style="width:95%;height: 100px;"></textarea></span>
|
||
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section role="region" aria-label="Configuration" data-i18n-aria-label="page-config-aria">
|
||
<div class="sheet-section sheet-section-config">
|
||
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="rules">Rules</span></div>
|
||
<br/>
|
||
|
||
<input type="checkbox" class="sheet-noshow" name="attr_useArmorPenalty" value="1"><span data-i18n="use-armor-penalty">Use Armor Penalty?</span>
|
||
|
||
<br/>
|
||
<br/>
|
||
<div class="sheet-header sheet-text-center" style="width:100%;"><span data-i18n="misc">Miscellaneous</span></div>
|
||
<br/>
|
||
|
||
<span data-i18n="rolls-results">Rolls Results</span> :
|
||
<select name="attr_PC-whisper" style="width:150px">
|
||
<option value=" " data-i18n="public" selected>Public</option>
|
||
<option value="/w gm" data-i18n="whisper-to-gm">Whisper to GM</option>
|
||
</select>
|
||
|
||
<br/>
|
||
<br/>
|
||
</div>
|
||
</section>
|
||
|
||
</div>
|
||
</main>
|
||
|
||
<footer role="contentinfo" aria-label="Help links">
|
||
<div class="sheet-footer">
|
||
<div class="sheet-table">
|
||
<div class="sheet-table-row">
|
||
<span class="sheet-table-cell"><span data-i18n="footer-created-by">Created By</span> PadRPG <span data-i18n="footer-inspired">(highly inspired by the Pathfinder Sheet)</span> | <span data-i18n="footer-last-update">Last Update</span>:<i>02.11.2017 </i>v1.3</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<aside role="complementary">
|
||
|
||
<rolltemplate class="sheet-rolltemplate-hm_characteristic">
|
||
<div class="sheet-roll-table sheet-rounded">
|
||
<div class="sheet-roll-header">
|
||
{{#character_name}} {{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}} {{^character_id}}{{character_name}}{{/character_id}} {{#mount_name}}({{mount_name}}){{/mount_name}} {{/character_name}}
|
||
</div>
|
||
<div class="sheet-roll-header sheet-roll-text-white sheet-roll-text-right sheet-roll-text-12px">
|
||
<span data-i18n="characteristic">Characteristic</span> : {{characteristic_name}}
|
||
</div>
|
||
<div class="sheet-roll-group2">
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="value">Value</span></div>
|
||
<div class="sheet-roll-cell">{{ability_value}}</div>
|
||
</div>
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="result">Result</span></div>
|
||
<div class="sheet-roll-cell">{{diceroll}}</div>
|
||
</div>
|
||
|
||
{{#rollGreater() diceroll ability_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasFumble() diceroll}}<span style="color:red;font-weight:bold;" data-i18n="fumble">Fumble !</span>{{/rollWasFumble() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="fail">Fail</span>{{#rollBetween() diceroll 96 100}} (<span data-i18n="automatic">Automatic</span>){{/rollBetween() diceroll 96 100}}</div>
|
||
</div>
|
||
{{/rollGreater() diceroll ability_value}}
|
||
|
||
{{#rollLess() diceroll ability_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasCrit() diceroll}}<span style="color:green;font-weight:bold;" data-i18n="critical">Critical !</span>{{/rollWasCrit() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="success">Success</span>{{#rollBetween() diceroll 1 5}} (<span data-i18n="automatic">Automatic</span>){{/rollBetween() diceroll 1 5}}</div>
|
||
</div>
|
||
{{/rollLess() diceroll ability_value}}
|
||
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-hm_skill">
|
||
<div class="sheet-roll-table sheet-rounded">
|
||
<div class="sheet-roll-header">
|
||
{{#character_name}} {{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}} {{^character_id}}{{character_name}}{{/character_id}} {{#mount_name}}({{mount_name}}){{/mount_name}} {{/character_name}}
|
||
</div>
|
||
<div class="sheet-roll-header sheet-roll-text-white sheet-roll-text-right sheet-roll-text-12px">
|
||
<span data-i18n="skill">Skill</span> : {{skill_name}}
|
||
</div>
|
||
<div class="sheet-roll-group2">
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="value">Value</span></div>
|
||
<div class="sheet-roll-cell">{{skill_value}}</div>
|
||
</div>
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="result">Result</span></div>
|
||
<div class="sheet-roll-cell">{{diceroll}}</div>
|
||
</div>
|
||
|
||
{{#rollGreater() diceroll skill_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasFumble() diceroll}}<span style="color:red;font-weight:bold;" data-i18n="fumble">Fumble !</span>{{/rollWasFumble() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="fail">Fail</span>{{#rollBetween() diceroll 96 100}} (<span data-i18n="automatic">Automatic</span>){{/rollBetween() diceroll 96 100}}</div>
|
||
</div>
|
||
{{/rollGreater() diceroll skill_value}}
|
||
|
||
{{#rollLess() diceroll skill_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasCrit() diceroll}}<span style="color:green;font-weight:bold;" data-i18n="critical">Critical !</span>{{/rollWasCrit() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="success">Success</span>{{#rollBetween() diceroll 1 5}} (<span data-i18n="automatic">Automatic</span>){{/rollBetween() diceroll 1 5}}</div>
|
||
</div>
|
||
{{/rollLess() diceroll skill_value}}
|
||
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-hm_weapons">
|
||
<div class="sheet-roll-table sheet-rounded">
|
||
<div class="sheet-roll-header">
|
||
{{#character_name}} {{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}} {{^character_id}}{{character_name}}{{/character_id}} {{#mount_name}}({{mount_name}}){{/mount_name}} {{/character_name}}
|
||
</div>
|
||
<div class="sheet-roll-header sheet-roll-text-white sheet-roll-text-right sheet-roll-text-12px">
|
||
<span data-i18n="weapon">Weapon</span> : {{weapon_name}}
|
||
</div>
|
||
<div class="sheet-roll-group2">
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="value">Value</span></div>
|
||
<div class="sheet-roll-cell">{{weapon_value}}</div>
|
||
</div>
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="result">Result</span></div>
|
||
<div class="sheet-roll-cell">{{diceroll}}</div>
|
||
</div>
|
||
|
||
{{#rollGreater() diceroll weapon_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasFumble() diceroll}}<span style="color:red;font-weight:bold;" data-i18n="fumble">Fumble !</span>{{/rollWasFumble() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="fail">Fail</span></div>
|
||
</div>
|
||
{{/rollGreater() diceroll weapon_value}}
|
||
|
||
{{#rollLess() diceroll weapon_value}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell">{{#rollWasCrit() diceroll}}<span style="color:green;font-weight:bold;" data-i18n="critical">Critical !</span>{{/rollWasCrit() diceroll}}</div>
|
||
<div class="sheet-roll-cell"><span style="font-weight:bold;" data-i18n="success">Success</span></div>
|
||
</div>
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="damages">Damages</span></div>
|
||
<div class="sheet-roll-cell">
|
||
{{#rollWasCrit() diceroll}} <span style="color:green;font-weight:bold;" data-i18n="max_damages">Max Damages</span> ({{weapon_max_damage}}) {{/rollWasCrit() diceroll}}
|
||
{{#^rollWasCrit() diceroll}} {{diceroll_damage}} {{/^rollWasCrit() diceroll}}
|
||
</div>
|
||
</div>
|
||
|
||
{{#rollWasCrit() diceroll}}
|
||
|
||
{{#rollTotal() weapon_impale 1}}
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"> </div>
|
||
<div class="sheet-roll-cell"><span style="color:green;font-weight:bold;" data-i18n="impaled">Impaled !</span></div>
|
||
</div>
|
||
{{/rollTotal() weapon_impale 1}}
|
||
|
||
{{/rollWasCrit() diceroll}}
|
||
|
||
|
||
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="location">Location</span></div>
|
||
{{#rollBetween() hit_location 1 3}}
|
||
<div class="sheet-roll-cell"><span data-i18n="right-leg">Right Leg</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 1 3}}
|
||
{{#rollBetween() hit_location 4 6}}
|
||
<div class="sheet-roll-cell"><span data-i18n="left-leg">Left Leg</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 4 6}}
|
||
{{#rollBetween() hit_location 7 9}}
|
||
<div class="sheet-roll-cell"><span data-i18n="abdomen">Abdomen</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 7 9}}
|
||
{{#rollBetween() hit_location 10 12}}
|
||
<div class="sheet-roll-cell"><span data-i18n="chest">Chest</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 10 12}}
|
||
{{#rollBetween() hit_location 13 15}}
|
||
<div class="sheet-roll-cell"><span data-i18n="right-arm">Right Arm</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 13 15}}
|
||
{{#rollBetween() hit_location 16 18}}
|
||
<div class="sheet-roll-cell"><span data-i18n="left-arm">Left Arm</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 16 18}}
|
||
{{#rollBetween() hit_location 19 20}}
|
||
<div class="sheet-roll-cell"><span data-i18n="head">Head</span> ({{hit_location}})</div>
|
||
{{/rollBetween() hit_location 19 20}}
|
||
</div>
|
||
|
||
{{/rollLess() diceroll weapon_value}}
|
||
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
<rolltemplate class="sheet-rolltemplate-hm_macro">
|
||
<div class="sheet-roll-table sheet-rounded">
|
||
<div class="sheet-roll-header">
|
||
{{#character_name}} {{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}} {{^character_id}}{{character_name}}{{/character_id}} {{#mount_name}}({{mount_name}}){{/mount_name}} {{/character_name}}
|
||
</div>
|
||
<div class="sheet-roll-header sheet-roll-text-white sheet-roll-text-right sheet-roll-text-12px">
|
||
<span data-i18n="macro">Macro</span> : {{macro_name}}
|
||
</div>
|
||
<div class="sheet-roll-group2">
|
||
<div class="sheet-roll-row">
|
||
<div class="sheet-roll-cell"><span data-i18n="result">Result</span></div>
|
||
<div class="sheet-roll-cell">{{diceroll}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
</aside>
|
||
|
||
<script type="text/worker">
|
||
|
||
/* ---- BEGIN: TheAaronSheet.js ---- */
|
||
// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js
|
||
// By: The Aaron, Arcane Scriptomancer
|
||
// Contact: https://app.roll20.net/users/104025/the-aaron
|
||
|
||
var TAS = TAS || (function(){
|
||
'use strict';
|
||
|
||
var version = '0.2.5',
|
||
lastUpdate = 1504710542,
|
||
|
||
loggingSettings = {
|
||
debug: {
|
||
key: 'debug',
|
||
title: 'DEBUG',
|
||
color: {
|
||
bgLabel: '#7732A2',
|
||
label: '#F2EF40',
|
||
bgText: '#FFFEB7',
|
||
text: '#7732A2'
|
||
}
|
||
},
|
||
error: {
|
||
key: 'error',
|
||
title: 'Error',
|
||
color: {
|
||
bgLabel: '#C11713',
|
||
label: 'white',
|
||
bgText: '#C11713',
|
||
text: 'white'
|
||
}
|
||
},
|
||
warn: {
|
||
key: 'warn',
|
||
title: 'Warning',
|
||
color: {
|
||
bgLabel: '#F29140',
|
||
label: 'white',
|
||
bgText: '#FFD8B7',
|
||
text: 'black'
|
||
}
|
||
},
|
||
info: {
|
||
key: 'info',
|
||
title: 'Info',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#B3B2EB',
|
||
text: 'black'
|
||
}
|
||
},
|
||
notice: {
|
||
key: 'notice',
|
||
title: 'Notice',
|
||
color: {
|
||
bgLabel: '#33C133',
|
||
label: 'white',
|
||
bgText: '#ADF1AD',
|
||
text: 'black'
|
||
}
|
||
},
|
||
log: {
|
||
key: 'log',
|
||
title: 'Log',
|
||
color: {
|
||
bgLabel: '#f2f240',
|
||
label: 'black',
|
||
bgText: '#ffff90',
|
||
text: 'black'
|
||
}
|
||
},
|
||
callstack: {
|
||
key: 'TAS',
|
||
title: 'function',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#B3B2EB',
|
||
text: 'black'
|
||
}
|
||
},
|
||
callstack_async: {
|
||
key: 'TAS',
|
||
title: 'ASYNC CALL',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#413FA9',
|
||
text: 'white'
|
||
}
|
||
},
|
||
TAS: {
|
||
key: 'TAS',
|
||
title: 'TAS',
|
||
color: {
|
||
bgLabel: 'grey',
|
||
label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)',
|
||
bgText: 'grey',
|
||
text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)'
|
||
}
|
||
}
|
||
},
|
||
|
||
|
||
config = {
|
||
debugMode: false,
|
||
logging: {
|
||
log: true,
|
||
notice: true,
|
||
info: true,
|
||
warn: true,
|
||
error: true,
|
||
debug: false
|
||
}
|
||
},
|
||
|
||
callstackRegistry = [],
|
||
queuedUpdates = {}, //< Used for delaying saves till the last moment.
|
||
|
||
complexType = function(o){
|
||
switch(typeof o){
|
||
case 'string':
|
||
return 'string';
|
||
case 'boolean':
|
||
return 'boolean';
|
||
case 'number':
|
||
return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer'));
|
||
case 'function':
|
||
return 'function: '+(o.name ? o.name+'()' : '(anonymous)');
|
||
case 'object':
|
||
return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object')));
|
||
default:
|
||
return typeof o;
|
||
}
|
||
},
|
||
|
||
dataLogger = function(primaryLogger,secondaryLogger,data){
|
||
_.each(data,function(m){
|
||
var type = complexType(m);
|
||
switch(type){
|
||
case 'string':
|
||
primaryLogger(m);
|
||
break;
|
||
case 'undefined':
|
||
case 'null':
|
||
case 'NaN':
|
||
primaryLogger('['+type+']');
|
||
break;
|
||
case 'number':
|
||
case 'not a number':
|
||
case 'integer':
|
||
case 'decimal':
|
||
case 'boolean':
|
||
primaryLogger('['+type+']: '+m);
|
||
break;
|
||
default:
|
||
primaryLogger('['+type+']:=========================================');
|
||
secondaryLogger(m);
|
||
primaryLogger('=========================================================');
|
||
break;
|
||
}
|
||
});
|
||
},
|
||
|
||
|
||
colorLog = function(options){
|
||
var coloredLoggerFunction,
|
||
key = options.key,
|
||
label = options.title || 'TAS',
|
||
lBGColor = (options.color && options.color.bgLabel) || 'blue',
|
||
lTxtColor = (options.color && options.color.label) || 'white',
|
||
mBGColor = (options.color && options.color.bgText) || 'blue',
|
||
mTxtColor = (options.color && options.color.text) || 'white';
|
||
|
||
coloredLoggerFunction = function(message){
|
||
/* eslint-disable no-console */
|
||
console.log(
|
||
'%c '+label+': %c '+message + ' ',
|
||
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
|
||
'background-color: '+mBGColor+';color: '+mTxtColor+';'
|
||
);
|
||
/* eslint-enable no-console */
|
||
};
|
||
return function(){
|
||
if('TAS'===key || config.logging[key]){
|
||
/* eslint-disable no-console */
|
||
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
|
||
/* eslint-enable no-console */
|
||
}
|
||
};
|
||
},
|
||
|
||
logDebug = colorLog(loggingSettings.debug),
|
||
logError = colorLog(loggingSettings.error),
|
||
logWarn = colorLog(loggingSettings.warn),
|
||
logInfo = colorLog(loggingSettings.info),
|
||
logNotice = colorLog(loggingSettings.notice),
|
||
logLog = colorLog(loggingSettings.log),
|
||
log = colorLog(loggingSettings.TAS),
|
||
logCS = colorLog(loggingSettings.callstack),
|
||
logCSA = colorLog(loggingSettings.callstack_async),
|
||
|
||
registerCallstack = function(callstack,label){
|
||
var idx=_.findIndex(callstackRegistry,function(o){
|
||
return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) &&
|
||
_.difference(o.stack,callstack).length === 0 &&
|
||
o.label === label;
|
||
});
|
||
if(-1 === idx){
|
||
idx=callstackRegistry.length;
|
||
callstackRegistry.push({
|
||
stack: callstack,
|
||
label: label
|
||
});
|
||
}
|
||
return idx;
|
||
},
|
||
|
||
setConfigOption = function(options){
|
||
var newconf =_.defaults(options,config);
|
||
newconf.logging=_.defaults(
|
||
(options && options.logging)||{},
|
||
config.logging
|
||
);
|
||
config=newconf;
|
||
},
|
||
|
||
isDebugMode = function(){
|
||
return config.debugMode;
|
||
},
|
||
|
||
debugMode = function(){
|
||
config.logging.debug=true;
|
||
config.debugMode = true;
|
||
},
|
||
|
||
getCallstack = function(){
|
||
var e = new Error('dummy'),
|
||
stack = _.map(_.rest(e.stack.replace(/^[^(]+?[\n$]/gm, '')
|
||
.replace(/^\s+at\s+/gm, '')
|
||
.replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@')
|
||
.split('\n')),function(l){
|
||
return l.replace(/\s+.*$/,'');
|
||
});
|
||
return stack;
|
||
},
|
||
logCallstackSub = function(cs){
|
||
var matches, csa;
|
||
_.find(cs,function(line){
|
||
matches = line.match(/TAS_CALLSTACK_(\d+)/);
|
||
if(matches){
|
||
csa=callstackRegistry[matches[1]];
|
||
logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'====================');
|
||
logCallstackSub(csa.stack);
|
||
return true;
|
||
}
|
||
logCS(line);
|
||
return false;
|
||
});
|
||
},
|
||
logCallstack = function(){
|
||
var cs;
|
||
if(config.debugMode){
|
||
cs = getCallstack();
|
||
cs.shift();
|
||
log('==============================> CALLSTACK <==============================');
|
||
logCallstackSub(cs);
|
||
log('=========================================================================');
|
||
}
|
||
},
|
||
|
||
|
||
wrapCallback = function (label, callback, context){
|
||
var callstack;
|
||
if('function' === typeof label){
|
||
context=callback;
|
||
callback=label;
|
||
label=undefined;
|
||
}
|
||
if(!config.debugMode){
|
||
return (function(cb,ctx){
|
||
return function(){
|
||
cb.apply(ctx||{},arguments);
|
||
};
|
||
}(callback,context));
|
||
}
|
||
|
||
callstack = getCallstack();
|
||
callstack.shift();
|
||
|
||
return (function(cb,ctx,cs,lbl){
|
||
var ctxref=registerCallstack(cs,lbl);
|
||
|
||
/*jshint -W054 */
|
||
return new Function('cb','ctx','TASlog',
|
||
"return function TAS_CALLSTACK_"+ctxref+"(){"+
|
||
"var start,end;"+
|
||
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
|
||
"start=_.now();"+
|
||
"cb.apply(ctx||{},arguments);"+
|
||
"end=_.now();"+
|
||
"TASlog('Exiting: '+(cb.name||'(anonymous function)')+' :: '+(end-start)+'ms elapsed');"+
|
||
"};")(cb,ctx,log);
|
||
/*jshint +W054 */
|
||
}(callback,context,callstack,label));
|
||
},
|
||
|
||
|
||
prepareUpdate = function( attribute, value ){
|
||
queuedUpdates[attribute]=value;
|
||
},
|
||
|
||
applyQueuedUpdates = function() {
|
||
setAttrs(queuedUpdates);
|
||
queuedUpdates = {};
|
||
},
|
||
|
||
namesFromArgs = function(args,base){
|
||
return _.chain(args)
|
||
.reduce(function(memo,attr){
|
||
if('string' === typeof attr) {
|
||
memo.push(attr);
|
||
} else if(_.isArray(args) || _.isArguments(args)){
|
||
memo = namesFromArgs(attr,memo);
|
||
}
|
||
return memo;
|
||
},(_.isArray(base) && base) || [])
|
||
.uniq()
|
||
.value();
|
||
},
|
||
|
||
addId = function(obj,value){
|
||
Object.defineProperty(obj,'id',{
|
||
value: value,
|
||
writable: false,
|
||
enumerable: false
|
||
});
|
||
},
|
||
|
||
addProp = function(obj,prop,value,fullname){
|
||
(function(){
|
||
var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop),
|
||
full_pname = fullname || prop,
|
||
pvalue=value;
|
||
|
||
_.each(['S','I','F'],function(p){
|
||
if( !_.has(obj,p)){
|
||
Object.defineProperty(obj, p, {
|
||
value: {},
|
||
enumerable: false,
|
||
readonly: true
|
||
});
|
||
}
|
||
});
|
||
if( !_.has(obj,'D')){
|
||
Object.defineProperty(obj, 'D', {
|
||
value: _.reduce(_.range(10),function(m,d){
|
||
Object.defineProperty(m, d, {
|
||
value: {},
|
||
enumerable: true,
|
||
readonly: true
|
||
});
|
||
return m;
|
||
},{}),
|
||
enumerable: false,
|
||
readonly: true
|
||
});
|
||
}
|
||
|
||
|
||
// Raw value
|
||
Object.defineProperty(obj, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
if(v!==pvalue) {
|
||
pvalue=v;
|
||
prepareUpdate(full_pname,v);
|
||
}
|
||
},
|
||
get: function(){
|
||
return pvalue;
|
||
}
|
||
});
|
||
|
||
// string value
|
||
Object.defineProperty(obj.S, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=v.toString();
|
||
if(val !== pvalue) {
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return pvalue.toString();
|
||
}
|
||
});
|
||
|
||
// int value
|
||
Object.defineProperty(obj.I, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=parseInt(v,10) || 0;
|
||
if(val !== pvalue){
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return parseInt(pvalue,10) || 0;
|
||
}
|
||
});
|
||
|
||
// float value
|
||
Object.defineProperty(obj.F, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=parseFloat(v) || 0;
|
||
if(val !== pvalue) {
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return parseFloat(pvalue) || 0;
|
||
}
|
||
});
|
||
_.each(_.range(10),function(d){
|
||
Object.defineProperty(obj.D[d], pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=(parseFloat(v) || 0).toFixed(d);
|
||
if(val !== pvalue){
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return (parseFloat(pvalue) || 0).toFixed(d);
|
||
}
|
||
});
|
||
});
|
||
|
||
}());
|
||
},
|
||
|
||
repeating = function( section ) {
|
||
return (function(s){
|
||
var sectionName = s,
|
||
attrNames = [],
|
||
fieldNames = [],
|
||
operations = [],
|
||
after = [],
|
||
|
||
repAttrs = function TAS_Repeating_Attrs(){
|
||
attrNames = namesFromArgs(arguments,attrNames);
|
||
return this;
|
||
},
|
||
repFields = function TAS_Repeating_Fields(){
|
||
fieldNames = namesFromArgs(arguments,fieldNames);
|
||
return this;
|
||
},
|
||
repReduce = function TAS_Repeating_Reduce(func, initial, final, context) {
|
||
operations.push({
|
||
type: 'reduce',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
memo: (_.isUndefined(initial) && 0) || initial,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repMap = function TAS_Repeating_Map(func, final, context) {
|
||
operations.push({
|
||
type: 'map',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repEach = function TAS_Repeating_Each(func, final, context) {
|
||
operations.push({
|
||
type: 'each',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repTap = function TAS_Repeating_Tap(final, context) {
|
||
operations.push({
|
||
type: 'tap',
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repAfter = function TAS_Repeating_After(callback,context) {
|
||
after.push({
|
||
callback: (callback && _.isFunction(callback) && callback) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repExecute = function TAS_Repeating_Execute(callback,context){
|
||
var rowSet = {},
|
||
attrSet = {},
|
||
fieldIds = [],
|
||
fullFieldNames = [];
|
||
|
||
repAfter(callback,context);
|
||
|
||
// call each operation per row.
|
||
// call each operation's final
|
||
getSectionIDs("repeating_"+sectionName,function(ids){
|
||
fieldIds = ids;
|
||
fullFieldNames = _.reduce(fieldIds,function(memo,id){
|
||
return memo.concat(_.map(fieldNames,function(name){
|
||
return 'repeating_'+sectionName+'_'+id+'_'+name;
|
||
}));
|
||
},[]);
|
||
getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){
|
||
_.each(attrNames,function(aname){
|
||
if(values.hasOwnProperty(aname)){
|
||
addProp(attrSet,aname,values[aname]);
|
||
}
|
||
});
|
||
|
||
rowSet = _.reduce(fieldIds,function(memo,id){
|
||
var r={};
|
||
addId(r,id);
|
||
_.each(fieldNames,function(name){
|
||
var fn = 'repeating_'+sectionName+'_'+id+'_'+name;
|
||
addProp(r,name,values[fn],fn);
|
||
});
|
||
|
||
memo[id]=r;
|
||
|
||
return memo;
|
||
},{});
|
||
|
||
_.each(operations,function(op){
|
||
var res;
|
||
switch(op.type){
|
||
case 'tap':
|
||
_.bind(op.final,op.context,rowSet,attrSet)();
|
||
break;
|
||
|
||
case 'each':
|
||
_.each(rowSet,function(r){
|
||
_.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,rowSet,attrSet)();
|
||
break;
|
||
|
||
case 'map':
|
||
res = _.map(rowSet,function(r){
|
||
return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,res,rowSet,attrSet)();
|
||
break;
|
||
|
||
case 'reduce':
|
||
res = op.memo;
|
||
_.each(rowSet,function(r){
|
||
res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,res,rowSet,attrSet)();
|
||
break;
|
||
}
|
||
});
|
||
|
||
// finalize attrs
|
||
applyQueuedUpdates();
|
||
_.each(after,function(op){
|
||
_.bind(op.callback,op.context)();
|
||
});
|
||
});
|
||
});
|
||
};
|
||
|
||
return {
|
||
attrs: repAttrs,
|
||
attr: repAttrs,
|
||
|
||
column: repFields,
|
||
columns: repFields,
|
||
field: repFields,
|
||
fields: repFields,
|
||
|
||
reduce: repReduce,
|
||
inject: repReduce,
|
||
foldl: repReduce,
|
||
|
||
map: repMap,
|
||
collect: repMap,
|
||
|
||
each: repEach,
|
||
forEach: repEach,
|
||
|
||
tap: repTap,
|
||
'do': repTap,
|
||
|
||
after: repAfter,
|
||
last: repAfter,
|
||
done: repAfter,
|
||
|
||
execute: repExecute,
|
||
go: repExecute,
|
||
run: repExecute
|
||
};
|
||
}(section));
|
||
},
|
||
|
||
|
||
repeatingSimpleSum = function(section, field, destination){
|
||
repeating(section)
|
||
.attr(destination)
|
||
.field(field)
|
||
.reduce(function(m,r){
|
||
return m + (r.F[field]);
|
||
},0,function(t,r,a){
|
||
a.S[destination]=t;
|
||
})
|
||
.execute();
|
||
};
|
||
|
||
/* eslint-disable no-console */
|
||
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ The Aaron Sheet v'+version+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
|
||
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ Last update: '+(new Date(lastUpdate*1000))+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
|
||
/* eslint-enable no-console */
|
||
|
||
|
||
return {
|
||
/* Repeating Sections */
|
||
repeatingSimpleSum: repeatingSimpleSum,
|
||
repeating: repeating,
|
||
|
||
/* Configuration */
|
||
config: setConfigOption,
|
||
|
||
/* Debugging */
|
||
callback: wrapCallback,
|
||
callstack: logCallstack,
|
||
debugMode: debugMode,
|
||
isDebugMode: isDebugMode,
|
||
_fn: wrapCallback,
|
||
|
||
/* Logging */
|
||
debug: logDebug,
|
||
error: logError,
|
||
warn: logWarn,
|
||
info: logInfo,
|
||
notice: logNotice,
|
||
log: logLog
|
||
};
|
||
}());
|
||
|
||
/* ---- END: TheAaronSheet.js ---- */
|
||
|
||
|
||
|
||
TAS.config({
|
||
logging: {
|
||
error: true,
|
||
warning: true,
|
||
info: true,
|
||
debug: true
|
||
}
|
||
});
|
||
|
||
TAS.debugMode();
|
||
|
||
var hkmn = hkmn || (function () {
|
||
|
||
initCSheet = function () {
|
||
|
||
TAS.debug('Function Init Sheet');
|
||
|
||
getAttrs(["initSheet"], function(values){
|
||
|
||
var valinitSheet=parseInt(values.initSheet);
|
||
|
||
if(valinitSheet==1){
|
||
setAttrs({
|
||
'acrobatics-mod': 0,
|
||
'athletics-mod': 0,
|
||
'boating-mod': 0,
|
||
'dodge-mod': 0,
|
||
'driving-mod': 0,
|
||
'evaluate-mod': 0,
|
||
'first-aid-mod': 0,
|
||
'influence-mod': 0,
|
||
'lore-animal-mod': 0,
|
||
'lore-plant-mod': 0,
|
||
'lore-world-mod': 0,
|
||
'perception-mod': 0,
|
||
'persistence-mod': 0,
|
||
'resilience-mod': 0,
|
||
'riding-mod': 0,
|
||
'sing-mod': 0,
|
||
'sleight-mod': 0,
|
||
'stealth-mod': 0,
|
||
'throwing-mod': 0,
|
||
'unarmed-mod': 0,
|
||
'basic-close-combat-mod':0,
|
||
'basic-ranged-mod':0,
|
||
'rep':0,
|
||
'initSheet':0
|
||
});
|
||
}
|
||
});
|
||
};
|
||
return {
|
||
initCSheet: initCSheet
|
||
};
|
||
}
|
||
());
|
||
|
||
|
||
on('sheet:opened',function(){
|
||
|
||
TAS.debug('Sheet Opened');
|
||
hkmn.initCSheet();
|
||
});
|
||
|
||
/*****************************/
|
||
/* Combat Action Calculation */
|
||
/*****************************/
|
||
|
||
on("change:dex", function () {
|
||
getAttrs(["dex"], function (values) {
|
||
|
||
var resValue = parseInt(values.dex);
|
||
|
||
if (resValue < 7) {
|
||
setAttrs({
|
||
'ca': 1
|
||
});
|
||
} else if (resValue < 13) {
|
||
setAttrs({
|
||
'ca': 2
|
||
});
|
||
} else if (resValue < 19) {
|
||
setAttrs({
|
||
'ca': 3
|
||
});
|
||
} else{
|
||
setAttrs({
|
||
'ca': 4
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/***************************/
|
||
/* Strike Rank Calculation */
|
||
/***************************/
|
||
|
||
on("change:int change:dex", function () {
|
||
getAttrs(["dex", "int"], function (values) {
|
||
|
||
var resValue = parseInt(values.dex)+parseInt(values.int);
|
||
var result = Math.ceil(resValue/2);
|
||
|
||
setAttrs({
|
||
'sr': result
|
||
});
|
||
});
|
||
});
|
||
|
||
/***************************/
|
||
/* Fate Points Calculation */
|
||
/***************************/
|
||
|
||
on("change:pow", function () {
|
||
getAttrs(["pow","initFate"], function (values) {
|
||
|
||
var resValue = parseInt(values.pow);
|
||
var result = Math.floor(resValue/2);
|
||
|
||
var valInitFate=parseInt(values.initFate);
|
||
|
||
if(valInitFate==1){
|
||
setAttrs({
|
||
'fate-points': result,
|
||
'fate-points-total': result,
|
||
'initFate': 0
|
||
});
|
||
}
|
||
|
||
setAttrs({
|
||
'focus-points_max': resValue
|
||
});
|
||
});
|
||
});
|
||
|
||
/**********************************/
|
||
/* Hit Point Location Calculation */
|
||
/**********************************/
|
||
|
||
on("change:siz change:con", function () {
|
||
getAttrs(["siz", "con", "initHp"], function (values) {
|
||
|
||
var valInitHp=parseInt(values.initHp);
|
||
var resValue = parseInt(values.siz) + parseInt(values.con);
|
||
|
||
if (resValue < 6) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 1,
|
||
'left-leg-hp': 1,
|
||
'abdomen-hp': 2,
|
||
'chest-hp': 3,
|
||
'right-arm-hp': 1,
|
||
'left-arm-hp': 1,
|
||
'head-hp': 1,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-arm-hp_max': 1,
|
||
'right-leg-hp_max': 1,
|
||
'left-leg-hp_max': 1,
|
||
'abdomen-hp_max': 2,
|
||
'chest-hp_max': 3,
|
||
'left-arm-hp_max': 1,
|
||
'head-hp_max': 1
|
||
});
|
||
} else if (resValue < 11) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 2,
|
||
'left-leg-hp': 2,
|
||
'abdomen-hp': 3,
|
||
'chest-hp': 4,
|
||
'right-arm-hp': 1,
|
||
'left-arm-hp': 1,
|
||
'head-hp': 2,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 2,
|
||
'left-leg-hp_max': 2,
|
||
'abdomen-hp_max': 3,
|
||
'chest-hp_max': 4,
|
||
'right-arm-hp_max': 1,
|
||
'left-arm-hp_max': 1,
|
||
'head-hp_max': 2
|
||
});
|
||
} else if (resValue < 16) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 3,
|
||
'left-leg-hp': 3,
|
||
'abdomen-hp': 4,
|
||
'chest-hp': 5,
|
||
'right-arm-hp': 2,
|
||
'left-arm-hp': 2,
|
||
'head-hp': 3,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 3,
|
||
'left-leg-hp_max': 3,
|
||
'abdomen-hp_max': 4,
|
||
'right-arm-hp_max': 2,
|
||
'left-arm-hp_max': 2,
|
||
'head-hp_max': 3
|
||
});
|
||
} else if (resValue < 21) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 4,
|
||
'left-leg-hp': 4,
|
||
'abdomen-hp': 5,
|
||
'chest-hp': 6,
|
||
'right-arm-hp': 3,
|
||
'left-arm-hp': 3,
|
||
'head-hp': 4,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 4,
|
||
'left-leg-hp_max': 4,
|
||
'abdomen-hp_max': 5,
|
||
'chest-hp_max': 6,
|
||
'right-arm-hp_max': 3,
|
||
'left-arm-hp_max': 3,
|
||
'head-hp_max': 4
|
||
});
|
||
} else if (resValue < 26) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 5,
|
||
'left-leg-hp': 5,
|
||
'abdomen-hp': 6,
|
||
'chest-hp': 7,
|
||
'right-arm-hp': 4,
|
||
'left-arm-hp': 4,
|
||
'head-hp': 5,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 5,
|
||
'left-leg-hp_max': 5,
|
||
'abdomen-hp_max': 6,
|
||
'chest-hp_max': 7,
|
||
'right-arm-hp_max': 4,
|
||
'left-arm-hp_max': 4,
|
||
'head-hp_max': 5
|
||
});
|
||
} else if (resValue < 31) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 6,
|
||
'left-leg-hp': 6,
|
||
'abdomen-hp': 7,
|
||
'chest-hp': 8,
|
||
'right-arm-hp': 5,
|
||
'left-arm-hp': 5,
|
||
'head-hp': 6,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 6,
|
||
'left-leg-hp_max': 6,
|
||
'abdomen-hp_max': 7,
|
||
'chest-hp_max': 8,
|
||
'right-arm-hp_max': 5,
|
||
'left-arm-hp_max': 5,
|
||
'head-hp_max': 6
|
||
});
|
||
} else if (resValue < 36) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 7,
|
||
'left-leg-hp': 7,
|
||
'abdomen-hp': 8,
|
||
'chest-hp': 9,
|
||
'right-arm-hp': 6,
|
||
'left-arm-hp': 6,
|
||
'head-hp': 7,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 7,
|
||
'left-leg-hp_max': 7,
|
||
'abdomen-hp_max': 8,
|
||
'chest-hp_max': 9,
|
||
'right-arm-hp_max': 6,
|
||
'left-arm-hp_max': 6,
|
||
'head-hp_max': 7
|
||
});
|
||
} else if (resValue < 41) {
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 8,
|
||
'left-leg-hp': 8,
|
||
'abdomen-hp': 9,
|
||
'chest-hp': 10,
|
||
'right-arm-hp': 7,
|
||
'left-arm-hp': 7,
|
||
'head-hp': 8,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
setAttrs({
|
||
'right-leg-hp_max': 8,
|
||
'left-leg-hp_max': 8,
|
||
'abdomen-hp_max': 9,
|
||
'chest-hp_max': 10,
|
||
'right-arm-hp_max': 7,
|
||
'left-arm-hp_max': 7,
|
||
'head-hp_max': 8
|
||
});
|
||
} else{
|
||
calValue=Math.round((resValue/5)-7)
|
||
|
||
if(valInitHp==1){
|
||
setAttrs({
|
||
'right-leg-hp': 8+calValue,
|
||
'left-leg-hp': 8+calValue,
|
||
'abdomen-hp': 9+calValue,
|
||
'chest-hp': 10+calValue,
|
||
'right-arm-hp': 7+calValue,
|
||
'left-arm-hp': 7+calValue,
|
||
'head-hp': 8+calValue,
|
||
'initHp': 0
|
||
});
|
||
}
|
||
|
||
setAttrs({
|
||
'right-leg-hp_max': 8+calValue,
|
||
'left-leg-hp_max': 8+calValue,
|
||
'abdomen-hp_max': 9+calValue,
|
||
'chest-hp_max': 10+calValue,
|
||
'right-arm-hp_max': 7+calValue,
|
||
'left-arm-hp_max': 7+calValue,
|
||
'head-hp_max': 8+calValue
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*************************************************/
|
||
/* Damage Modifier & Max Encumbrance Calculation */
|
||
/*************************************************/
|
||
|
||
on("change:str change:siz", function () {
|
||
getAttrs(["str", "siz"], function (values) {
|
||
|
||
var resValue = parseInt(values.str) + parseInt(values.siz);
|
||
|
||
setAttrs({
|
||
'total-enc-overload': resValue,
|
||
'total-enc_max': resValue*2
|
||
});
|
||
|
||
if (resValue < 6) {
|
||
setAttrs({
|
||
'dmg-mod': "-1d8"
|
||
});
|
||
} else if (resValue < 11) {
|
||
setAttrs({
|
||
'dmg-mod': "-1d6"
|
||
});
|
||
} else if (resValue < 16) {
|
||
setAttrs({
|
||
'dmg-mod': "-1d4"
|
||
});
|
||
} else if (resValue < 21) {
|
||
setAttrs({
|
||
'dmg-mod': "-1d2"
|
||
});
|
||
} else if (resValue < 26) {
|
||
setAttrs({
|
||
'dmg-mod': "0"
|
||
});
|
||
} else if (resValue < 31) {
|
||
setAttrs({
|
||
'dmg-mod': "1d2"
|
||
});
|
||
} else if (resValue < 36) {
|
||
setAttrs({
|
||
'dmg-mod': "1d4"
|
||
});
|
||
} else if (resValue < 41) {
|
||
setAttrs({
|
||
'dmg-mod': "1d6"
|
||
});
|
||
} else if (resValue < 46) {
|
||
setAttrs({
|
||
'dmg-mod': "1d8"
|
||
});
|
||
} else if (resValue < 51) {
|
||
setAttrs({
|
||
'dmg-mod': "1d10"
|
||
});
|
||
} else if (resValue < 61) {
|
||
setAttrs({
|
||
'dmg-mod': "1d12"
|
||
});
|
||
} else if (resValue < 71) {
|
||
setAttrs({
|
||
'dmg-mod': "2d6"
|
||
});
|
||
} else if (resValue < 81) {
|
||
setAttrs({
|
||
'dmg-mod': "2d8"
|
||
});
|
||
} else if (resValue < 91) {
|
||
setAttrs({
|
||
'dmg-mod': "2d10"
|
||
});
|
||
} else if (resValue < 101) {
|
||
setAttrs({
|
||
'dmg-mod': "2d12"
|
||
});
|
||
} else if (resValue < 121) {
|
||
setAttrs({
|
||
'dmg-mod': "3d10"
|
||
});
|
||
} else if (resValue < 141) {
|
||
setAttrs({
|
||
'dmg-mod': "3d12"
|
||
});
|
||
} else if (resValue < 161) {
|
||
setAttrs({
|
||
'dmg-mod': "4d10"
|
||
});
|
||
} else if (resValue < 181) {
|
||
setAttrs({
|
||
'dmg-mod': "4d12"
|
||
});
|
||
} else {
|
||
setAttrs({
|
||
'dmg-mod': "5d10"
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/****************************/
|
||
/* Basic Skills Calculation */
|
||
/****************************/
|
||
|
||
on("change:str change:con change:dex change:siz change:int change:pow change:cha", function () {
|
||
getAttrs(["str", "con", "dex", "siz", "int", "pow", "cha"], function (values) {
|
||
|
||
var strValue = parseInt(values.str);
|
||
var conValue = parseInt(values.con);
|
||
var dexValue = parseInt(values.dex);
|
||
var sizValue = parseInt(values.siz);
|
||
var intValue = parseInt(values.int);
|
||
var powValue = parseInt(values.pow);
|
||
var chaValue = parseInt(values.cha);
|
||
|
||
setAttrs({
|
||
'acrobatics-base': dexValue,
|
||
'athletics-base': strValue+dexValue,
|
||
'boating-base': strValue,
|
||
'dodge-base': 10+dexValue-sizValue,
|
||
'driving-base': 10+powValue,
|
||
'evaluate-base': intValue,
|
||
'first-aid-base': intValue,
|
||
'influence-base': 10+chaValue,
|
||
'lore-animal-base': intValue,
|
||
'lore-plant-base': intValue,
|
||
'lore-world-base': intValue,
|
||
'perception-base': intValue+powValue,
|
||
'persistence-base': 40+chaValue+powValue,
|
||
'resilience-base': 40+conValue+powValue,
|
||
'riding-base': dexValue+powValue,
|
||
'sing-base': chaValue,
|
||
'sleight-base': dexValue,
|
||
'stealth-base': 10+dexValue-sizValue,
|
||
'throwing-base': dexValue,
|
||
'unarmed-base': strValue,
|
||
'basic-close-combat-base':strValue+dexValue,
|
||
'basic-ranged-base':dexValue
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/********************************/
|
||
/* Acrobatics Skill Calculation */
|
||
/********************************/
|
||
|
||
on("change:acrobatics-base change:acrobatics-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["acrobatics-base","acrobatics-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var acrobaticsBase = parseInt(values["acrobatics-base"]);
|
||
var acrobaticsMod = parseInt(values["acrobatics-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((acrobaticsMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'acrobatics': acrobaticsBase+acrobaticsMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'acrobatics': acrobaticsBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'acrobatics': acrobaticsBase+acrobaticsMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*******************************/
|
||
/* Athletics Skill Calculation */
|
||
/*******************************/
|
||
|
||
on("change:athletics-base change:athletics-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["athletics-base","athletics-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var athleticsBase = parseInt(values["athletics-base"]);
|
||
var athleticsMod = parseInt(values["athletics-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((athleticsMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'athletics': athleticsBase+athleticsMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'athletics': athleticsBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'athletics': athleticsBase+athleticsMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Boating Skill Calculation */
|
||
/*****************************/
|
||
|
||
on("change:boating-base change:boating-mod", function (eventinfo) {
|
||
getAttrs(["boating-base","boating-mod"], function (values) {
|
||
|
||
var boatingBase = parseInt(values["boating-base"]);
|
||
var boatingMod = parseInt(values["boating-mod"]);
|
||
|
||
setAttrs({
|
||
'boating': boatingBase+boatingMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/***************************/
|
||
/* Dodge Skill Calculation */
|
||
/***************************/
|
||
|
||
on("change:dodge-base change:dodge-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["dodge-base","dodge-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var dodgeBase = parseInt(values["dodge-base"]);
|
||
var dodgeMod = parseInt(values["dodge-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((dodgeMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'dodge': dodgeBase+dodgeMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'dodge': dodgeBase
|
||
});
|
||
}
|
||
}
|
||
else {
|
||
setAttrs({
|
||
'dodge': dodgeBase+dodgeMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Driving Skill Calculation */
|
||
/*****************************/
|
||
|
||
on("change:driving-base change:driving-mod", function (eventinfo) {
|
||
getAttrs(["driving-base","driving-mod"], function (values) {
|
||
|
||
var drivingBase = parseInt(values["driving-base"]);
|
||
var drivingMod = parseInt(values["driving-mod"]);
|
||
|
||
setAttrs({
|
||
'driving': drivingBase+drivingMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/******************************/
|
||
/* Evaluate Skill Calculation */
|
||
/******************************/
|
||
|
||
on("change:evaluate-base change:evaluate-mod", function (eventinfo) {
|
||
getAttrs(["evaluate-base","evaluate-mod"], function (values) {
|
||
|
||
var evaluateBase = parseInt(values["evaluate-base"]);
|
||
var evaluateMod = parseInt(values["evaluate-mod"]);
|
||
|
||
setAttrs({
|
||
'evaluate': evaluateBase+evaluateMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/*******************************/
|
||
/* Influence Skill Calculation */
|
||
/*******************************/
|
||
|
||
on("change:influence-base change:influence-mod", function (eventinfo) {
|
||
getAttrs(["influence-base","influence-mod"], function (values) {
|
||
|
||
var influenceBase = parseInt(values["influence-base"]);
|
||
var influenceMod = parseInt(values["influence-mod"]);
|
||
|
||
setAttrs({
|
||
'influence': influenceBase+influenceMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/*******************************/
|
||
/* First Aid Skill Calculation */
|
||
/*******************************/
|
||
|
||
on("change:first-aid-base change:first-aid-mod", function (eventinfo) {
|
||
getAttrs(["first-aid-base","first-aid-mod"], function (values) {
|
||
|
||
var firstAidBase = parseInt(values["first-aid-base"]);
|
||
var firstAidMod = parseInt(values["first-aid-mod"]);
|
||
|
||
setAttrs({
|
||
'first-aid': firstAidBase+firstAidMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/*********************************/
|
||
/* Lore Animal Skill Calculation */
|
||
/*********************************/
|
||
|
||
on("change:lore-animal-base change:lore-animal-mod", function (eventinfo) {
|
||
getAttrs(["lore-animal-base","lore-animal-mod"], function (values) {
|
||
|
||
var loreAnimalBase = parseInt(values["lore-animal-base"]);
|
||
var loreAnimalMod = parseInt(values["lore-animal-mod"]);
|
||
|
||
setAttrs({
|
||
'lore-animal': loreAnimalBase+loreAnimalMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/********************************/
|
||
/* Lore Plant Skill Calculation */
|
||
/********************************/
|
||
|
||
on("change:lore-plant-base change:lore-plant-mod", function (eventinfo) {
|
||
getAttrs(["lore-plant-base","lore-plant-mod"], function (values) {
|
||
|
||
var lorePlantBase = parseInt(values["lore-plant-base"]);
|
||
var lorePlantMod = parseInt(values["lore-plant-mod"]);
|
||
|
||
setAttrs({
|
||
'lore-plant': lorePlantBase+lorePlantMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/********************************/
|
||
/* Lore World Skill Calculation */
|
||
/********************************/
|
||
|
||
on("change:lore-world-base change:lore-world-mod", function (eventinfo) {
|
||
getAttrs(["lore-world-base","lore-world-mod"], function (values) {
|
||
|
||
var loreWorldBase = parseInt(values["lore-world-base"]);
|
||
var loreWorldMod = parseInt(values["lore-world-mod"]);
|
||
|
||
setAttrs({
|
||
'lore-world': loreWorldBase+loreWorldMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/********************************/
|
||
/* Perception Skill Calculation */
|
||
/********************************/
|
||
|
||
on("change:perception-base change:perception-mod", function (eventinfo) {
|
||
getAttrs(["perception-base","perception-mod"], function (values) {
|
||
|
||
var perceptionBase = parseInt(values["perception-base"]);
|
||
var perceptionMod = parseInt(values["perception-mod"]);
|
||
|
||
setAttrs({
|
||
'perception': perceptionBase+perceptionMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/*********************************/
|
||
/* Persistence Skill Calculation */
|
||
/*********************************/
|
||
|
||
on("change:persistence-base change:persistence-mod", function (eventinfo) {
|
||
getAttrs(["persistence-base","persistence-mod"], function (values) {
|
||
|
||
var persistenceBase = parseInt(values["persistence-base"]);
|
||
var persistenceMod = parseInt(values["persistence-mod"]);
|
||
|
||
setAttrs({
|
||
'persistence': persistenceBase+persistenceMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/********************************/
|
||
/* Resilience Skill Calculation */
|
||
/********************************/
|
||
|
||
on("change:resilience-base change:resilience-mod", function (eventinfo) {
|
||
getAttrs(["resilience-base","resilience-mod"], function (values) {
|
||
|
||
var resilienceBase = parseInt(values["resilience-base"]);
|
||
var resilienceMod = parseInt(values["resilience-mod"]);
|
||
|
||
setAttrs({
|
||
'resilience': resilienceBase+resilienceMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/****************************/
|
||
/* Riding Skill Calculation */
|
||
/****************************/
|
||
|
||
on("change:riding-base change:riding-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["riding-base","riding-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var ridingBase = parseInt(values["riding-base"]);
|
||
var ridingMod = parseInt(values["riding-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((ridingMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'riding': ridingBase+ridingMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'riding': ridingBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'riding': ridingBase+ridingMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/**************************/
|
||
/* Sing Skill Calculation */
|
||
/**************************/
|
||
|
||
on("change:sing-base change:sing-mod", function (eventinfo) {
|
||
getAttrs(["sing-base","sing-mod"], function (values) {
|
||
|
||
var singBase = parseInt(values["sing-base"]);
|
||
var singMod = parseInt(values["sing-mod"]);
|
||
|
||
setAttrs({
|
||
'sing': singBase+singMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Sleight Skill Calculation */
|
||
/*****************************/
|
||
on("change:sleight-base change:sleight-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["sleight-base","sleight-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var sleightBase = parseInt(values["sleight-base"]);
|
||
var sleightMod = parseInt(values["sleight-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((sleightMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'sleight': sleightBase+sleightMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'sleight': sleightBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'sleight': sleightBase+sleightMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Stealth Skill Calculation */
|
||
/*****************************/
|
||
|
||
on("change:stealth-base change:stealth-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["stealth-base","stealth-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var stealthBase = parseInt(values["stealth-base"]);
|
||
var stealthMod = parseInt(values["stealth-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((stealthMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'stealth': stealthBase+stealthMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'stealth': stealthBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'stealth': stealthBase+stealthMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/******************************/
|
||
/* Throwing Skill Calculation */
|
||
/******************************/
|
||
|
||
on("change:throwing-base change:throwing-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["throwing-base","throwing-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var throwingBase = parseInt(values["throwing-base"]);
|
||
var throwingMod = parseInt(values["throwing-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((throwingMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'throwing': throwingBase+throwingMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'throwing': throwingBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'throwing': throwingBase+throwingMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Unarmed Skill Calculation */
|
||
/*****************************/
|
||
|
||
on("change:unarmed-base change:unarmed-mod", function (eventinfo) {
|
||
getAttrs(["unarmed-base","unarmed-mod"], function (values) {
|
||
|
||
var unarmedBase = parseInt(values["unarmed-base"]);
|
||
var unarmedMod = parseInt(values["unarmed-mod"]);
|
||
|
||
setAttrs({
|
||
'unarmed': unarmedBase+unarmedMod
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/****************************************/
|
||
/* Basic Close Combat Skill Calculation */
|
||
/****************************************/
|
||
|
||
on("change:basic-close-combat-base change:basic-close-combat-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["basic-close-combat-base","basic-close-combat-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var basicCloseCombatBase = parseInt(values["basic-close-combat-base"]);
|
||
var basicCloseCombatMod = parseInt(values["basic-close-combat-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((basicCloseCombatMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'basic-close-combat': basicCloseCombatBase+basicCloseCombatMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'basic-close-combat': basicCloseCombatBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'basic-close-combat': basicCloseCombatBase+basicCloseCombatMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/**********************************/
|
||
/* Basic Ranged Skill Calculation */
|
||
/**********************************/
|
||
|
||
on("change:basic-ranged-base change:basic-ranged-mod change:total_armor_penalty change:usearmorpenalty", function (eventinfo) {
|
||
getAttrs(["basic-ranged-base","basic-ranged-mod","total_armor_penalty","useArmorPenalty"], function (values) {
|
||
|
||
var basicRangedBase = parseInt(values["basic-ranged-base"]);
|
||
var basicRangedMod = parseInt(values["basic-ranged-mod"]);
|
||
var penaltyVal = parseInt(values["total_armor_penalty"]);
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
if(usePenalty==1){
|
||
if((basicRangedMod+penaltyVal)>=0){
|
||
setAttrs({
|
||
'basic-ranged': basicRangedBase+basicRangedMod+penaltyVal
|
||
});
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'basic-ranged': basicRangedBase
|
||
});
|
||
}
|
||
}
|
||
else{
|
||
setAttrs({
|
||
'basic-ranged': basicRangedBase+basicRangedMod
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Armor Penalty Calculation */
|
||
/*****************************/
|
||
|
||
on("change:repeating_armors:armor-penalty", function(eventinfo) {
|
||
TAS.repeatingSimpleSum('armors','armor-penalty','total_armor_penalty');
|
||
});
|
||
|
||
on("remove:repeating_armors:armor-penalty", function(eventinfo) {
|
||
TAS.repeatingSimpleSum('armors','armor-penalty','total_armor_penalty');
|
||
});
|
||
|
||
/*************************************/
|
||
/* Equipments Encumbrance Calculation */
|
||
/*************************************/
|
||
|
||
on("change:total_enc_armors change:total_enc_close_weapons change:total_enc_ranged_weapons change:total_enc_items", function(eventinfo) {
|
||
|
||
TAS.log("Calculate the Total Encumbrance");
|
||
|
||
getAttrs(["total_enc_armors","total_enc_close_weapons","total_enc_ranged_weapons","total_enc_items"], function (values) {
|
||
|
||
var armorsVal=parseInt(values.total_enc_armors);
|
||
var closeWeaponsVal=parseInt(values.total_enc_close_weapons);
|
||
var rangedWeaponsVal=parseInt(values.total_enc_ranged_weapons);
|
||
var itemsVal=parseInt(values.total_enc_items);
|
||
|
||
TAS.log(armorsVal);
|
||
TAS.log(closeWeaponsVal);
|
||
TAS.log(rangedWeaponsVal);
|
||
TAS.log(itemsVal);
|
||
|
||
setAttrs({
|
||
'total-enc': armorsVal+closeWeaponsVal+rangedWeaponsVal+itemsVal
|
||
});
|
||
|
||
});
|
||
|
||
});
|
||
|
||
on("change:repeating_equipments:item-enc change:repeating_equipments:item-number change:repeating_armors:armor-enc change:repeating_close-combat-weapons:close-combat-weapon-enc change:repeating_ranged-weapons:ranged-weapon-enc", function(eventinfo) {
|
||
|
||
|
||
TAS.repeatingSimpleSum('armors','armor-enc','total_enc_armors');
|
||
TAS.repeatingSimpleSum('close-combat-weapons','close-combat-weapon-enc','total_enc_close_weapons');
|
||
TAS.repeatingSimpleSum('ranged-weapons','ranged-weapon-enc','total_enc_ranged_weapons');
|
||
|
||
TAS.repeating('equipments')
|
||
.attrs('total_enc_items')
|
||
.fields('item-enc','item-number')
|
||
.reduce(function(memo,row,attrSet,id,rowSet){
|
||
memo.push(row.I["item-enc"]*row.I["item-number"]);
|
||
return memo;
|
||
},[], function(memo,rowSet,attrSet){
|
||
var count = 0;
|
||
for(var i=0, n=memo.length; i < n; i++)
|
||
{
|
||
count += memo[i];
|
||
}
|
||
attrSet["total_enc_items"]=count;
|
||
})
|
||
.execute();
|
||
});
|
||
|
||
on("remove:repeating_equipments remove.repeating_armors remove:repeating_close-combat-weapons remove:repeating_ranged-weapons", function(eventinfo) {
|
||
|
||
TAS.repeatingSimpleSum('armors','armor-enc','total_enc_armors');
|
||
TAS.repeatingSimpleSum('close-combat-weapons','close-combat-weapon-enc','total_enc_close_weapons');
|
||
TAS.repeatingSimpleSum('ranged-weapons','ranged-weapon-enc','total_enc_ranged_weapons');
|
||
|
||
TAS.repeating('equipments')
|
||
.attrs('total_enc_items')
|
||
.fields('item-enc','item-number')
|
||
.reduce(function(memo,row,attrSet,id,rowSet){
|
||
memo.push(row.I["item-enc"]*row.I["item-number"]);
|
||
return memo;
|
||
},[], function(memo,rowSet,attrSet){
|
||
var count = 0;
|
||
for(var i=0, n=memo.length; i < n; i++)
|
||
{
|
||
count += memo[i];
|
||
}
|
||
attrSet["total_enc_items"]=count;
|
||
})
|
||
.execute();
|
||
|
||
});
|
||
|
||
|
||
/********************************/
|
||
/* Get Weapons Max Damage Score */
|
||
/********************************/
|
||
|
||
on("change:repeating_close-combat-weapons:close-combat-weapon-damage", function(){
|
||
getAttrs(["repeating_close-combat-weapons_close-combat-weapon-damage","dmg-mod"], function (values) {
|
||
|
||
var weaponDamage=values["repeating_close-combat-weapons_close-combat-weapon-damage"].split("+");
|
||
var dmgMod=values["dmg-mod"];
|
||
|
||
var result=0;
|
||
|
||
for(var i=0;i < weaponDamage.length;i++){
|
||
var value=weaponDamage[i].trim();
|
||
|
||
if(value.indexOf("d") !== -1){
|
||
result+=parseInt(value.split("d")[1]);
|
||
}
|
||
else{
|
||
result+=parseInt(value);
|
||
}
|
||
}
|
||
|
||
if(dmgMod.indexOf("d") !== -1){
|
||
var maxMod=parseInt(dmgMod.split("d")[1]);
|
||
if(dmgMod.startsWith("-")){
|
||
result-=maxMod;
|
||
}
|
||
else{
|
||
result+=maxMod;
|
||
}
|
||
}
|
||
else{
|
||
if(dmgMod.startsWith("-")){
|
||
result-=parseInt(dmgMod);
|
||
}
|
||
else{
|
||
result+=parseInt(dmgMod);
|
||
}
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_close-combat-weapons_max_damages':result
|
||
});
|
||
});
|
||
});
|
||
|
||
on("change:repeating_ranged-weapons:ranged-weapon-damage change:repeating_ranged-weapons:ranged-weapon-damage-mod", function(){
|
||
getAttrs(["repeating_ranged-weapons_ranged-weapon-damage","repeating_ranged-weapons_ranged-weapon-damage-mod","dmg-mod"], function (values) {
|
||
|
||
var weaponDamage=values["repeating_ranged-weapons_ranged-weapon-damage"].split("+");
|
||
var damageMod=values["repeating_ranged-weapons_ranged-weapon-damage-mod"];
|
||
var dmgMod=values["dmg-mod"];
|
||
|
||
TAS.log('dmgMod: '+dmgMod);
|
||
|
||
var result=0;
|
||
|
||
for(var i=0;i < weaponDamage.length;i++){
|
||
var value=weaponDamage[i].trim();
|
||
|
||
if(value.indexOf("d") !== -1){
|
||
result+=parseInt(value.split("d")[1]);
|
||
}
|
||
else{
|
||
result+=parseInt(value);
|
||
}
|
||
}
|
||
|
||
var modFinal='[['+dmgMod+']]';
|
||
|
||
if(damageMod=="half"){
|
||
var modVal=0
|
||
if(dmgMod.indexOf("d") !== -1){
|
||
modVal = parseInt(dmgMod.split("d")[1]);
|
||
}
|
||
else{
|
||
var modVal = parseInt(dmgMod);
|
||
}
|
||
|
||
if(dmgMod.startsWith("-")){
|
||
result-=Math.ceil(modVal/2);
|
||
|
||
modFinal='-ceil([['+dmgMod.substr(1)+']]/2)';
|
||
}
|
||
else{
|
||
result+=Math.ceil(modVal/2);
|
||
|
||
modFinal='ceil([['+dmgMod+'}]]/2)';
|
||
}
|
||
|
||
}
|
||
else if(damageMod=="full"){
|
||
|
||
if(dmgMod.indexOf("d") !== -1){
|
||
|
||
if(dmgMod.startsWith("-")){
|
||
result-=parseInt(dmgMod.split("d")[1]);
|
||
}
|
||
else{
|
||
result+=parseInt(dmgMod.split("d")[1]);
|
||
}
|
||
}
|
||
else{
|
||
|
||
if(dmgMod.startsWith("-")){
|
||
result-=parseInt(dmgMod);
|
||
}
|
||
else{
|
||
result+=parseInt(dmgMod);
|
||
}
|
||
}
|
||
}
|
||
else{
|
||
modFinal='0';
|
||
}
|
||
|
||
TAS.log('modFinal: '+modFinal);
|
||
|
||
setAttrs({
|
||
'repeating_ranged-weapons_max_damages':result,
|
||
'repeating_ranged-weapons_damage_mod':modFinal
|
||
});
|
||
});
|
||
});
|
||
|
||
/***************************/
|
||
/* Get Weapons Skill Score */
|
||
/***************************/
|
||
|
||
on("change:repeating_close-combat-weapons:close-combat-weapon-skill", function(){
|
||
getAttrs(["repeating_close-combat-weapons_close-combat-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_close-combat-weapons_close-combat-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('weaponskills')
|
||
.fields('weaponSkillName','weaponSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['weaponSkillName']) {
|
||
result=f.I['weaponSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_close-combat-weapons_close-combat-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
on("change:repeating_ranged-weapons:ranged-weapon-skill", function(){
|
||
getAttrs(["repeating_ranged-weapons_ranged-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_ranged-weapons_ranged-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('weaponskills')
|
||
.fields('weaponSkillName','weaponSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['weaponSkillName']) {
|
||
result=f.I['weaponSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_ranged-weapons_ranged-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
on("change:repeating_close-combat-weapons:close-combat-weapon-skill", function(){
|
||
getAttrs(["repeating_close-combat-weapons_close-combat-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_close-combat-weapons_close-combat-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('weaponskills')
|
||
.fields('weaponSkillName','weaponSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['weaponSkillName']) {
|
||
result=f.I['weaponSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_close-combat-weapons_close-combat-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
/*****************************/
|
||
/* Weapon Skills Calculation */
|
||
/*****************************/
|
||
|
||
on("change:repeating_weaponskills:weaponSkillChar1 change:repeating_weaponskills:weaponSkillChar2 change:repeating_weaponskills:weaponSkillMod change:total_armor_penalty change:usearmorpenalty", function(){
|
||
getAttrs([
|
||
"repeating_weaponskills_weaponSkillName",
|
||
"repeating_weaponskills_weaponSkillChar1",
|
||
"repeating_weaponskills_weaponSkillChar2",
|
||
"repeating_weaponskills_weaponSkillMod",
|
||
"total_armor_penalty",
|
||
"useArmorPenalty",
|
||
"str",
|
||
"con",
|
||
"dex",
|
||
"siz",
|
||
"int",
|
||
"pow",
|
||
"cha"
|
||
], function (values) {
|
||
|
||
var modVal=parseInt(values.repeating_weaponskills_weaponSkillMod);
|
||
var penaltyVal=parseInt(values.total_armor_penalty);
|
||
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
var charVal1=parseInt(values[values.repeating_weaponskills_weaponSkillChar1])||0;
|
||
var charVal2=parseInt(values[values.repeating_weaponskills_weaponSkillChar2])||0;
|
||
|
||
var baseVal= charVal1 + charVal2;
|
||
|
||
var scoreVal= 0;
|
||
|
||
if(usePenalty==1){
|
||
if((modVal + penaltyVal)>=0){
|
||
scoreVal= baseVal + modVal + penaltyVal;
|
||
}
|
||
else{
|
||
scoreVal= baseVal;
|
||
}
|
||
}
|
||
else{
|
||
scoreVal= baseVal + modVal;
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_weaponskills_weaponSkillBase': baseVal,
|
||
'repeating_weaponskills_weaponSkill':scoreVal
|
||
});
|
||
|
||
TAS.repeating('close-combat-weapons')
|
||
.fields('close-combat-weapon-skill','close-combat-weapon-skill-score')
|
||
.each(function(f){
|
||
var result=0;
|
||
|
||
TAS.log('Weapon Skill Name: '+values['repeating_weaponskills_weaponSkillName']);
|
||
TAS.log('Close Combat Weapon Skill Name: '+f['close-combat-weapon-skill']);
|
||
|
||
if(values['repeating_weaponskills_weaponSkillName']==f['close-combat-weapon-skill']) {
|
||
|
||
TAS.log('Result: '+scoreVal);
|
||
|
||
f['close-combat-weapon-skill-score']=scoreVal
|
||
}
|
||
|
||
})
|
||
.execute();
|
||
|
||
TAS.repeating('ranged-weapons')
|
||
.fields('ranged-weapon-skill','ranged-weapon-skill-score')
|
||
.each(function(f){
|
||
var result=0;
|
||
|
||
TAS.log('Weapon Skill Name: '+values['repeating_weaponskills_weaponSkillName']);
|
||
TAS.log('Ranged Combat Weapon Skill Name: '+f['ranged-weapon-skill']);
|
||
|
||
if(values['repeating_weaponskills_weaponSkillName']==f['ranged-weapon-skill']) {
|
||
|
||
TAS.log('Result: '+scoreVal);
|
||
|
||
f['ranged-weapon-skill-score']=scoreVal
|
||
}
|
||
|
||
})
|
||
.execute();
|
||
|
||
});
|
||
});
|
||
|
||
/*******************************/
|
||
/* Advanced Skills Calculation */
|
||
/*******************************/
|
||
|
||
on("change:repeating_advancedskills:advancedSkillChar1 change:repeating_advancedskills:advancedSkillChar2 change:repeating_advancedskills:advancedSkillMod change:total_armor_penalty change:usearmorpenalty", function(){
|
||
getAttrs([
|
||
"repeating_advancedskills_advancedSkillChar1",
|
||
"repeating_advancedskills_advancedSkillChar2",
|
||
"repeating_advancedskills_advancedSkillMod",
|
||
"total_armor_penalty",
|
||
"useArmorPenalty",
|
||
"str",
|
||
"con",
|
||
"dex",
|
||
"siz",
|
||
"int",
|
||
"pow",
|
||
"cha"
|
||
], function (values) {
|
||
|
||
var modVal=parseInt(values.repeating_advancedskills_advancedSkillMod);
|
||
var penaltyVal=parseInt(values.total_armor_penalty);
|
||
|
||
var usePenalty = parseInt(values["useArmorPenalty"]);
|
||
|
||
var charVal1=parseInt(values[values.repeating_advancedskills_advancedSkillChar1])||0;
|
||
var charVal2=parseInt(values[values.repeating_advancedskills_advancedSkillChar2])||0;
|
||
|
||
var baseVal= charVal1 + charVal2;
|
||
|
||
var scoreVal= 0;
|
||
|
||
if(usePenalty==1){
|
||
if((modVal + penaltyVal)>=0){
|
||
scoreVal= baseVal + modVal + penaltyVal;
|
||
}
|
||
else{
|
||
scoreVal= baseVal;
|
||
}
|
||
}
|
||
else{
|
||
scoreVal= baseVal + modVal;
|
||
}
|
||
|
||
|
||
setAttrs({
|
||
'repeating_advancedskills_advancedSkillBase': baseVal,
|
||
'repeating_advancedskills_advancedSkill':scoreVal
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
/***********************************************************************/
|
||
/* Weapon & Advanced Skills ReCalculation after Characteristics change */
|
||
/***********************************************************************/
|
||
|
||
on("change:str change:con change:dex change:siz change:int change:pow change:cha change:total_armor_penalty change:usearmorpenalty", function(){
|
||
|
||
TAS.repeating('advancedSkills')
|
||
.attrs('str','con','dex','siz','int','pow','cha','total_armor_penalty','useArmorPenalty')
|
||
.fields('advancedSkillChar1','advancedSkillChar2','advancedSkillMod','advancedSkillBase','advancedSkill')
|
||
.each(function(r,f){
|
||
var charVal1=f.I[r.advancedSkillChar1]||0;
|
||
var charVal2=f.I[r.advancedSkillChar2]||0;
|
||
|
||
var modVal=r.I.advancedSkillMod;
|
||
|
||
var penaltyVal=0;
|
||
|
||
var usePenalty=f.I['useArmorPenalty'];
|
||
|
||
if(r.advancedSkillChar1=='dex' || r.advancedSkillChar2=='dex')
|
||
penaltyVal=f.I['total_armor_penalty'];
|
||
|
||
var baseVal= charVal1 + charVal2;
|
||
|
||
var scoreVal= 0;
|
||
|
||
if(usePenalty==1){
|
||
if((modVal + penaltyVal)>=0){
|
||
scoreVal= baseVal + modVal + penaltyVal;
|
||
}
|
||
else{
|
||
scoreVal= baseVal;
|
||
}
|
||
}
|
||
else{
|
||
scoreVal= baseVal + modVal;
|
||
}
|
||
|
||
r.advancedSkillBase=baseVal;
|
||
r.advancedSkill=scoreVal;
|
||
})
|
||
.execute();
|
||
|
||
TAS.repeating('weaponskills')
|
||
.attrs('str','con','dex','siz','int','pow','cha','total_armor_penalty','useArmorPenalty')
|
||
.fields('weaponskillChar1','weaponskillChar2','weaponskillMod','weaponskillBase','weaponskill')
|
||
.each(function(r,f){
|
||
var charVal1=f.I[r.weaponskillChar1]||0;
|
||
var charVal2=f.I[r.weaponskillChar2]||0;
|
||
|
||
var modVal=r.I.weaponskillMod;
|
||
|
||
var penaltyVal=0;
|
||
|
||
var usePenalty=f.I['useArmorPenalty'];
|
||
|
||
if(r.weaponskillChar1=='dex' || r.weaponskillChar2=='dex')
|
||
penaltyVal=f.I['total_armor_penalty'];
|
||
|
||
var baseVal= charVal1 + charVal2;
|
||
|
||
var scoreVal= 0;
|
||
|
||
if(usePenalty==1){
|
||
if((modVal + penaltyVal)>=0){
|
||
scoreVal= baseVal + modVal + penaltyVal;
|
||
}
|
||
else{
|
||
scoreVal= baseVal;
|
||
}
|
||
}
|
||
else{
|
||
scoreVal= baseVal + modVal;
|
||
}
|
||
|
||
r.weaponskillBase=baseVal;
|
||
r.weaponskill=scoreVal;
|
||
})
|
||
.execute();
|
||
});
|
||
|
||
/***********************************/
|
||
/* Mount Combat Action Calculation */
|
||
/***********************************/
|
||
|
||
on("change:mount-dex", function () {
|
||
|
||
getAttrs(["mount-dex"], function (values) {
|
||
|
||
var resValue = parseInt(values["mount-dex"]);
|
||
|
||
if (resValue < 7) {
|
||
setAttrs({
|
||
'mount-ca': 1
|
||
});
|
||
} else if (resValue < 13) {
|
||
setAttrs({
|
||
'mount-ca': 2
|
||
});
|
||
} else if (resValue < 19) {
|
||
setAttrs({
|
||
'mount-ca': 3
|
||
});
|
||
} else{
|
||
setAttrs({
|
||
'mount-ca': 4
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
/*********************************/
|
||
/* Mount Strike Rank Calculation */
|
||
/*********************************/
|
||
|
||
on("change:mount-int change:mount-dex", function () {
|
||
|
||
getAttrs(["mount-dex", "mount-int"], function (values) {
|
||
|
||
var resValue = parseInt(values["mount-dex"])+parseInt(values["mount-int"]);
|
||
var result = Math.ceil(resValue/2);
|
||
|
||
setAttrs({
|
||
'mount-sr': result
|
||
});
|
||
});
|
||
});
|
||
|
||
/********************************************/
|
||
/* Mount Equipments Encumbrance Calculation */
|
||
/********************************************/
|
||
|
||
on("change:mount-str change:mount-siz", function () {
|
||
|
||
getAttrs(["mount-str", "mount-siz"], function (values) {
|
||
|
||
var resValue = parseInt(values["mount-str"]) + parseInt(values["mount-siz"]);
|
||
|
||
TAS.log('Enc overload: '+resValue);
|
||
|
||
setAttrs({
|
||
'mount_total-enc-overload': resValue,
|
||
'mount_total-enc_max': resValue*2
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
on("change:mount_total_enc_close_weapons change:mount_total_enc_ranged_weapons change:mount_total_enc_items", function(eventinfo) {
|
||
|
||
getAttrs(["mount_total_enc_close_weapons","mount_total_enc_ranged_weapons","mount_total_enc_items"], function (values) {
|
||
|
||
var closeWeaponsVal=parseInt(values.mount_total_enc_close_weapons);
|
||
var rangedWeaponsVal=parseInt(values.mount_total_enc_ranged_weapons);
|
||
var itemsVal=parseInt(values.mount_total_enc_items);
|
||
|
||
setAttrs({
|
||
'mount_total-enc': +closeWeaponsVal+rangedWeaponsVal+itemsVal
|
||
});
|
||
|
||
});
|
||
|
||
});
|
||
|
||
on("change:repeating_mount-equipments:item-enc change:repeating_mount-equipments:item-number change:repeating_mount-close-combat-weapons:close-combat-weapon-enc change:repeating_mount-ranged-weapons:ranged-weapon-enc", function(eventinfo) {
|
||
|
||
TAS.repeatingSimpleSum('mount-close-combat-weapons','close-combat-weapon-enc','mount_total_enc_close_weapons');
|
||
TAS.repeatingSimpleSum('mount-ranged-weapons','ranged-weapon-enc','mount_total_enc_ranged_weapons');
|
||
|
||
TAS.repeating('mount-equipments')
|
||
.attrs('mount_total_enc_items')
|
||
.fields('item-enc','item-number')
|
||
.reduce(function(memo,row,attrSet,id,rowSet){
|
||
memo.push(row.I["item-enc"]*row.I["item-number"]);
|
||
return memo;
|
||
},[], function(memo,rowSet,attrSet){
|
||
var count = 0;
|
||
for(var i=0, n=memo.length; i < n; i++)
|
||
{
|
||
count += memo[i];
|
||
}
|
||
attrSet["mount_total_enc_items"]=count;
|
||
})
|
||
.execute();
|
||
});
|
||
|
||
on("remove:repeating_mount-equipments remove:repeating_mount-close-combat-weapons remove:repeating_mount-ranged-weapons", function(eventinfo) {
|
||
|
||
TAS.repeatingSimpleSum('close-combat-weapons','close-combat-weapon-enc','total_enc_close_weapons');
|
||
TAS.repeatingSimpleSum('ranged-weapons','ranged-weapon-enc','total_enc_ranged_weapons');
|
||
|
||
TAS.repeating('mount-equipments')
|
||
.attrs('mount_total_enc_items')
|
||
.fields('item-enc','item-number')
|
||
.reduce(function(memo,row,attrSet,id,rowSet){
|
||
memo.push(row.I["item-enc"]*row.I["item-number"]);
|
||
return memo;
|
||
},[], function(memo,rowSet,attrSet){
|
||
var count = 0;
|
||
for(var i=0, n=memo.length; i < n; i++)
|
||
{
|
||
count += memo[i];
|
||
}
|
||
attrSet["mount_total_enc_items"]=count;
|
||
})
|
||
.execute();
|
||
|
||
});
|
||
|
||
/*********************************/
|
||
/* Get Mount Weapons Skill Score */
|
||
/*********************************/
|
||
|
||
on("change:repeating_mount-close-combat-weapons:close-combat-weapon-skill", function(){
|
||
|
||
getAttrs(["repeating_mount-close-combat-weapons_close-combat-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_mount-close-combat-weapons_close-combat-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('mountskills')
|
||
.fields('mountSkillName','mountSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['mountSkillName']) {
|
||
result=f.I['mountSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_mount-close-combat-weapons_close-combat-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
on("change:repeating_mount-ranged-weapons:ranged-weapon-skill", function(){
|
||
|
||
getAttrs(["repeating_mount-ranged-weapons_ranged-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_mount-ranged-weapons_ranged-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('mountskills')
|
||
.fields('mountSkillName','mountSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['mountSkillName']) {
|
||
result=f.I['mountSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_mount-ranged-weapons_ranged-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
on("change:repeating_mount-close-combat-weapons:close-combat-weapon-skill", function(){
|
||
|
||
getAttrs(["repeating_mount-close-combat-weapons_close-combat-weapon-skill"], function (values) {
|
||
|
||
var skillName=values["repeating_mount-close-combat-weapons_close-combat-weapon-skill"];
|
||
var result=0;
|
||
|
||
TAS.repeating('mountskills')
|
||
.fields('mountSkillName','mountSkill')
|
||
.each(function(f){
|
||
|
||
if(skillName==f['mountSkillName']) {
|
||
result=f.I['mountSkill'];
|
||
}
|
||
|
||
setAttrs({
|
||
'repeating_mount-close-combat-weapons_close-combat-weapon-skill-score':result
|
||
});
|
||
})
|
||
.execute();
|
||
});
|
||
});
|
||
|
||
/****************************/
|
||
/* Mount Skills Calculation */
|
||
/****************************/
|
||
|
||
on("change:repeating_mountskills:mountskillchar1 change:repeating_mountskills:mountskillchar2 change:repeating_mountskills:mountskillmod", function(){
|
||
|
||
getAttrs([
|
||
"repeating_mountskills_mountskillname",
|
||
"repeating_mountskills_mountskillchar1",
|
||
"repeating_mountskills_mountskillchar2",
|
||
"repeating_mountskills_mountskillmod",
|
||
"mount-str",
|
||
"mount-con",
|
||
"mount-dex",
|
||
"mount-siz",
|
||
"mount-int",
|
||
"mount-pow",
|
||
"mount-cha"
|
||
], function (values) {
|
||
|
||
var modVal=parseInt(values.repeating_mountskills_mountskillmod);
|
||
|
||
var charVal1=parseInt(values[values.repeating_mountskills_mountskillchar1])||0;
|
||
var charVal2=parseInt(values[values.repeating_mountskills_mountskillchar2])||0;
|
||
|
||
var baseVal= charVal1 + charVal2;
|
||
var scoreVal= baseVal + modVal;
|
||
|
||
setAttrs({
|
||
'repeating_mountskills_mountskillbase': baseVal,
|
||
'repeating_mountskills_mountskill':scoreVal
|
||
});
|
||
|
||
TAS.repeating('mount-close-combat-weapons')
|
||
.fields('close-combat-weapon-skill','close-combat-weapon-skill-score')
|
||
.each(function(f){
|
||
var result=0;
|
||
|
||
TAS.log('Weapon Skill Name: '+values['repeating_mountskills_mountskillname']);
|
||
TAS.log('Mount Close Combat Weapon Skill Name: '+f['close-combat-weapon-skill']);
|
||
|
||
if(values['repeating_mountskills_mountskillname']==f['close-combat-weapon-skill']) {
|
||
|
||
TAS.log('Result: '+scoreVal);
|
||
|
||
f['close-combat-weapon-skill-score']=scoreVal
|
||
}
|
||
|
||
})
|
||
.execute();
|
||
|
||
TAS.repeating('mount-ranged-weapons')
|
||
.fields('ranged-weapon-skill','ranged-weapon-skill-score')
|
||
.each(function(f){
|
||
var result=0;
|
||
|
||
TAS.log('Weapon Skill Name: '+values['repeating_mountskills_mountskillname']);
|
||
TAS.log('Mount Ranged Weapon Skill Name: '+f['ranged-weapon-skill']);
|
||
|
||
if(values['repeating_mountskills_mountskillname']==f['ranged-weapon-skill']) {
|
||
|
||
TAS.log('Result: '+scoreVal);
|
||
|
||
f['ranged-weapon-skill-score']=scoreVal
|
||
}
|
||
|
||
})
|
||
.execute();
|
||
|
||
|
||
});
|
||
});
|
||
|
||
/******************************************************************/
|
||
/* Mount Weapon Skills ReCalculation after Characteristics change */
|
||
/******************************************************************/
|
||
|
||
on("change:mount-str change:mount-con change:mount-dex change:mount-siz change:mount-int change:mount-pow change:mount-cha", function(){
|
||
|
||
TAS.repeating('mountskills')
|
||
.attrs('mount-str','mount-con','mount-dex','mount-siz','mount-int','mount-pow','mount-cha')
|
||
.fields('mountskillChar1','mountskillChar2','mountskillMod','mountskillBase','mountskill')
|
||
.each(function(r,f){
|
||
var charVal1=f.I[r.mountskillChar1]||0;
|
||
var charVal2=f.I[r.mountskillChar2]||0;
|
||
|
||
r.mountskillBase=charVal1 + charVal2;
|
||
r.mountskill=charVal1 + charVal2 + r.I.mountskillMod;
|
||
})
|
||
.execute();
|
||
});
|
||
|
||
</script>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|