mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
1524 lines
70 KiB
HTML
1524 lines
70 KiB
HTML
|
|
<!--
|
|
CREATED by Gorthian
|
|
Version v2.0
|
|
Letzte Änderung 2022-11-25
|
|
GitHub https://github.com/Gorthian/Roll20_NHKS_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/issues
|
|
|
|
-->
|
|
<!-- Globale Variablen-->
|
|
<!--
|
|
********************************
|
|
* START NHKS.pug
|
|
********************************
|
|
|
|
-->
|
|
<input class="sheet-tabstoggle" type="hidden" name="attr_sheetTab" value="actor"/>
|
|
<div class="sheet-wrapper sheet-NHKS">
|
|
<input class="sheet-tabstoggle" type="hidden" name="attr_sheetTab" value="character"/>
|
|
<div class="sheet-tab-buttons">
|
|
<div>
|
|
<button type="action" name="act_main"><span class="sheet-label" data-i18n="main"></span></button>
|
|
</div>
|
|
<div>
|
|
<button type="action" name="act_weapons"><span class="sheet-label" data-i18n="weapons"></span></button>
|
|
</div>
|
|
</div>
|
|
<!--
|
|
CREATED by Gorthian
|
|
Version v2.0
|
|
Letzte Änderung 2022-11-25
|
|
GitHub https://github.com/Gorthian/Roll20_NHKS_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/issues
|
|
|
|
-->
|
|
<!-- Variablen-->
|
|
<!--
|
|
********************************
|
|
* START SRC/HTML/MAIN-TAB.pug
|
|
********************************
|
|
-->
|
|
<div class="sheet-main-tab">
|
|
<div class="sheet-general">
|
|
<div>
|
|
<h1><span data-i18n="actor"></span></h1><span class="sheet-input-line"><span class="sheet-label" data-i18n="name"></span>
|
|
<input type="text" name="attr_character_name"/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="gender"></span>
|
|
<input type="text" name="attr_actor-gender"/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="age"></span>
|
|
<input type="text" name="attr_actor-age"/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="weight"></span>
|
|
<input type="text" name="attr_actor-weight"/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="size"></span>
|
|
<input type="text" name="attr_actor-size"/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="nationality"></span>
|
|
<input type="text" name="attr_actor-nationality"/></span>
|
|
<p><span class="sheet-label" data-i18n="stature"></span>
|
|
<textarea name="attr_actor-stature" value=""></textarea>
|
|
</p>
|
|
<p><span class="sheet-label" data-i18n="description"></span>
|
|
<textarea name="attr_actor-description" value=""></textarea>
|
|
</p>
|
|
</div>
|
|
<div>
|
|
<h1><span data-i18n="role"></span></h1><span class="sheet-input-line"><span class="sheet-label" data-i18n="role-name"></span>
|
|
<input type="text" name="attr_role-name" value=""/></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="role-type"></span>
|
|
<select name="attr_role-type">
|
|
<option value="main" data-i18n="main-role" selected="selected"></option>
|
|
<option value="supporting" data-i18n="supporting-role"></option>
|
|
</select></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="movieplot"></span>
|
|
<textarea name="attr_movieplot" value=""></textarea></span><span class="sheet-input-line"><span class="sheet-label" data-i18n="role-description"></span>
|
|
<textarea name="attr_role-description" value=""></textarea></span><span class="sheet-input-line sheet-height-45"><span class="sheet-label" data-i18n="role-inventory"></span>
|
|
<textarea class="sheet-textarea-big" name="attr_role-inventory" value=""></textarea></span>
|
|
</div>
|
|
</div>
|
|
<h1><span data-i18n="attributes"></span></h1>
|
|
<div class="sheet-attributes">
|
|
<div class="sheet-attributes-base">
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-knowledge"><span class="sheet-attr-short" data-i18n="knowledge-short"></span><br/><span class="sheet-attr-full" data-i18n="knowledge"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_knowledge"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-strength"><span class="sheet-attr-short" data-i18n="strength-short"></span><br/><span class="sheet-attr-full" data-i18n="strength"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_strength"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-coolness"><span class="sheet-attr-short" data-i18n="coolness-short"></span><br/><span class="sheet-attr-full" data-i18n="coolness"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_coolness"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-stamina"><span class="sheet-attr-short" data-i18n="stamina-short"></span><br/><span class="sheet-attr-full" data-i18n="stamina"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_stamina"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-chi"><span class="sheet-attr-short" data-i18n="chi-short"></span><br/><span class="sheet-attr-full" data-i18n="chi"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_chi"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label">
|
|
<button type="action" name="act_attribute-dexterity"><span class="sheet-attr-short" data-i18n="dexterity-short"></span><br/><span class="sheet-attr-full" data-i18n="dexterity"></span></button></span>
|
|
<input class="sheet-attribute-value" type="number" name="attr_dexterity"/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-attributes-calc">
|
|
<div class="sheet-input-line"><span class="sheet-attr-name" data-i18n="hitpoints"></span><br/><span class="sheet-attr-desc" data-i18n="hitpoints-desc"></span><br/>
|
|
<input type="number" name="attr_hitpoints_current"/> /
|
|
<input class="sheet-no-arrows" type="number" name="attr_hitpoints_max" readonly=""/><br/><span class="sheet-attr-name" data-i18n="role"></span><br/>
|
|
<input type="number" name="attr_role_hitpoints_current"/> /
|
|
<input class="sheet-no-arrows" type="number" name="attr_role_hitpoints_max" readonly=""/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-attr-name" data-i18n="chipoints"></span><br/><span class="sheet-attr-desc" data-i18n="chipoints-desc"></span><br/>
|
|
<input type="number" name="attr_chipoints_current"/> /
|
|
<input class="sheet-no-arrows" type="number" name="attr_chipoints_max" readonly=""/><br/><span class="sheet-attr-name" data-i18n="role"></span><br/>
|
|
<input type="number" name="attr_role_chipoints_current"/> /
|
|
<input class="sheet-no-arrows" type="number" name="attr_role_chipoints_max" readonly=""/>
|
|
</div>
|
|
<div class="sheet-input-line">
|
|
<button type="action" name="act_initiative"><span class="sheet-attr-name" data-i18n="initiative"></span></button><span class="sheet-attr-desc" data-i18n="initiative-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_initiative" readonly=""/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-attr-name" data-i18n="famepoints"></span><br/>
|
|
<input type="number" name="attr_famepoints"/><br/><span class="sheet-attr-name" data-i18n="awardpoints"></span><br/>
|
|
<input type="number" name="attr_awardpoints"/><br/><span class="sheet-attr-name" data-i18n="take2points"></span><br/>
|
|
<input type="number" name="attr_take2points"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-attr-name" data-i18n="melee-attack"></span><br/><span class="sheet-attr-desc" data-i18n="melee-attack-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_melee-attack" readonly=""/><br/><span class="sheet-attr-name" data-i18n="melee-defense"></span><br/><span class="sheet-attr-desc" data-i18n="melee-defense-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_melee-defense" readonly=""/><br/><span class="sheet-attr-name" data-i18n="melee-damage"></span><br/><span class="sheet-attr-desc" data-i18n="melee-damage-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_melee-damage" readonly=""/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-attr-name" data-i18n="ranged-attack"></span><br/><span class="sheet-attr-desc" data-i18n="ranged-attack-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_ranged-attack" readonly=""/><br/><span class="sheet-attr-name" data-i18n="ranged-damage"></span><br/><span class="sheet-attr-desc" data-i18n="ranged-damage-desc"></span><br/>
|
|
<input class="sheet-no-arrows" type="number" name="attr_ranged-damage" readonly=""/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skills">
|
|
<div class="sheet-skills-left">
|
|
<!--
|
|
CREATED by Gorthian
|
|
Version v2.0
|
|
Letzte Änderung 2022-11-25
|
|
GitHub https://github.com/Gorthian/Roll20_NHKS_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/issues
|
|
|
|
-->
|
|
<!-- Variablen-->
|
|
<!--
|
|
********************************
|
|
* START SRC/HTML/SKILL-LIST.pug
|
|
********************************
|
|
|
|
-->
|
|
<div class="sheet-skill-list">
|
|
<h1><span data-i18n="skills"></span></h1>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name sheet-label"><span data-i18n="skill"></span></div>
|
|
<div class="sheet-skill-attribute sheet-label"><span data-i18n="attribute"></span></div>
|
|
<div class="sheet-skill-value sheet-label"><span data-i18n="skill-value-actor"></span></div>
|
|
<div class="sheet-skill-value sheet-label"><span data-i18n="is-role-skill"></span></div>
|
|
<div class="sheet-skill-value sheet-label"><span data-i18n="skill-value-role"></span></div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-acrobatic"><span data-i18n="acrobatic"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-acrobatic-attribute" readonly="">
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-acrobatic"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-acrobatic-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-acrobatic-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-athletic"><span data-i18n="athletic"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-athletic-attribute" readonly="">
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="stamina" data-i18n="stamina-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-athletic"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-athletic-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-athletic-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-dodge"><span data-i18n="dodge"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-dodge-attribute" readonly="">
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-dodge"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-dodge-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-dodge-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-boats"><span data-i18n="boats"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-boats-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-boats"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-boats-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-boats-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-persuade"><span data-i18n="persuade"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-persuade-attribute" readonly="">
|
|
<option value="coolness" data-i18n="coolness-short"></option>
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-persuade"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-persuade-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-persuade-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-computers"><span data-i18n="computers"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-computers-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-computers"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-computers-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-computers-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-firstaid"><span data-i18n="firstaid"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-firstaid-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-firstaid"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-firstaid-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-firstaid-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-extremesport"><span data-i18n="extremesport"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-extremesport-attribute" readonly="">
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="stamina" data-i18n="stamina-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-extremesport"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-extremesport-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-extremesport-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-slideofhand"><span data-i18n="slideofhand"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-slideofhand-attribute" readonly="">
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-slideofhand"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-slideofhand-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-slideofhand-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-aircrafts"><span data-i18n="aircrafts"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-aircrafts-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-aircrafts"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-aircrafts-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-aircrafts-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-vehicles"><span data-i18n="vehicles"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-vehicles-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-vehicles"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-vehicles-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-vehicles-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-improvisation"><span data-i18n="improvisation"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-improvisation-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="coolness" data-i18n="coolness-short"></option>
|
|
<option value="stamina" data-i18n="stamina-short"></option>
|
|
<option value="chi" data-i18n="chi-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-improvisation"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-improvisation-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-improvisation-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-climbing"><span data-i18n="climbing"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-climbing-attribute" readonly="">
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="stamina" data-i18n="stamina-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-climbing"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-climbing-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-climbing-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-contacts"><span data-i18n="contacts"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-contacts-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="coolness" data-i18n="coolness-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-contacts"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-contacts-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-contacts-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-mechanic"><span data-i18n="mechanic"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-mechanic-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-mechanic"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-mechanic-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-mechanic-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-stealth"><span data-i18n="stealth"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-stealth-attribute" readonly="">
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-stealth"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-stealth-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-stealth-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-perception"><span data-i18n="perception"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-perception-attribute" readonly="">
|
|
<option value="chi" data-i18n="chi-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-perception"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-perception-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-perception-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-languages"><span data-i18n="languages"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-languages-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="coolness" data-i18n="coolness-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-languages"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-languages-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-languages-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-searching"><span data-i18n="searching"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-searching-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="chi" data-i18n="chi-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-searching"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-searching-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-searching-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<button type="action" name="act_skill-hiding"><span data-i18n="hiding"></span></button>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_skill-hiding-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-hiding"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="checkbox" name="attr_skill-hiding-is-role-skill" value="0"/>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_skill-hiding-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<h1><span data-i18n="role-skills"></span></h1>
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name sheet-label"><span data-i18n="skill"></span></div>
|
|
<div class="sheet-skill-attribute sheet-label"><span data-i18n="attribute"></span></div>
|
|
<div class="sheet-skill-value sheet-label"><span data-i18n="skill-value-role"> </span></div>
|
|
<div class="sheet-label"> </div>
|
|
</div>
|
|
<fieldset class="repeating_roleskills">
|
|
<div class="sheet-skill-entry">
|
|
<div class="sheet-skill-name">
|
|
<input type="text" name="attr_roleskills-name"/>
|
|
</div>
|
|
<div class="sheet-skill-attribute">
|
|
<select name="attr_roleskills-attribute" readonly="">
|
|
<option value="knowledge" data-i18n="knowledge-short"></option>
|
|
<option value="strength" data-i18n="strength-short"></option>
|
|
<option value="coolness" data-i18n="coolness-short"></option>
|
|
<option value="stamina" data-i18n="stamina-short"></option>
|
|
<option value="chi" data-i18n="chi-short"></option>
|
|
<option value="dexterity" data-i18n="dexterity-short"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-skill-value">
|
|
<input type="number" name="attr_roleskills-role" value="4" readonly="readonly"/>
|
|
</div>
|
|
<div>
|
|
<button type="action" name="act_roleskill" style="width:90%;">Roll</button>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<h1><span data-i18n="combat"></span></h1>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-label"><span data-i18n="attack"></span></div>
|
|
<div class="sheet-label"><span data-i18n="parry"></span></div>
|
|
<div class="sheet-label"><span data-i18n="skill-value-actor"></span></div>
|
|
<div class="sheet-label"><span data-i18n="is-role-skill"></span></div>
|
|
<div class="sheet-label"><span data-i18n="skill-value-role"></span></div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-melee-small"><span data-i18n="melee-small"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry">
|
|
<button type="action" name="act_combat-melee-small-parry"><span data-i18n="parry"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-small"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-melee-small-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-small-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-melee-medium"><span data-i18n="melee-medium"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry">
|
|
<button type="action" name="act_combat-melee-medium-parry"><span data-i18n="parry"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-medium"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-melee-medium-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-medium-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-melee-big"><span data-i18n="melee-big"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry">
|
|
<button type="action" name="act_combat-melee-big-parry"><span data-i18n="parry"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-big"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-melee-big-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-big-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-pistols"><span data-i18n="pistols"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry"></div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-pistols"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-pistols-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-pistols-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-rifles"><span data-i18n="rifles"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry"></div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-rifles"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-rifles-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-rifles-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-heavy-weapons"><span data-i18n="heavy-weapons"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry"></div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-heavy-weapons"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-heavy-weapons-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-heavy-weapons-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-melee-misc"><span data-i18n="melee-misc"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry">
|
|
<button type="action" name="act_combat-melee-misc-parry"><span data-i18n="parry"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-misc"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-melee-misc-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-melee-misc-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-ranged-misc"><span data-i18n="ranged-misc"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry"></div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-ranged-misc"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-ranged-misc-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-ranged-misc-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-combat-entry">
|
|
<div class="sheet-combat-attack">
|
|
<button type="action" name="act_combat-unarmed"><span data-i18n="unarmed"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-parry">
|
|
<button type="action" name="act_combat-unarmed-parry"><span data-i18n="parry"></span></button>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-unarmed"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="checkbox" name="attr_skill-unarmed-is-role-skill" value="1"/>
|
|
</div>
|
|
<div class="sheet-combat-value">
|
|
<input type="number" name="attr_skill-unarmed-role" readonly=""/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--
|
|
********************************
|
|
* ENDE SRC/HTML/SKILL-LIST.pug
|
|
********************************
|
|
-->
|
|
<div>
|
|
<h1><span data-i18n="misc"></span></h1>
|
|
<textarea name="attr_actor-misc" value=""></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skills-right">
|
|
<div>
|
|
<h1><span data-i18n="advantages-and-disadvantages"></span></h1>
|
|
<fieldset class="repeating_actor-advantages-disadvantages">
|
|
<div class="sheet-actor-advantage">
|
|
<input type="text" name="attr_actor-advantage-name" value=""/>
|
|
<textarea name="attr_actor-advantage-description" value=""></textarea><span class="sheet-label" data-i18n="is-role-advantage"></span>
|
|
<input type="checkbox" name="attr_actor-advantage-is-role-advantage" value="1"/>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-martialarts">
|
|
<h1><span data-i18n="martialarts"></span></h1>
|
|
<fieldset class="repeating_actor-martialarts">
|
|
<div class="sheet-martialarts">
|
|
<input type="text" name="attr_actor-martialarts-name" value=""/>
|
|
<div class="sheet-radio-set">
|
|
<input class="sheet-radiobox sheet-reset" checked="checked" type="radio" name="attr_actor-martialarts-level" value="0"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_actor-martialarts-level" value="1"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_actor-martialarts-level" value="2"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_actor-martialarts-level" value="3"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_actor-martialarts-level" value="4"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_actor-martialarts-level" value="5"/>
|
|
</div>
|
|
<textarea name="attr_actor-martialarts-description" value=""></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-movies">
|
|
<h1><span data-i18n="movies"></span></h1>
|
|
<fieldset class="repeating_actor-movies">
|
|
<div class="sheet-movies">
|
|
<input type="text" name="attr_actor-movie-name" value=""/>
|
|
<div class="sheet-radio-set">
|
|
<input class="sheet-radiobox sheet-reset" checked="checked" type="radio" name="attr_movie-award" value="0"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_movie-award" value="1"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_movie-award" value="2"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_movie-award" value="3"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_movie-award" value="4"/>
|
|
<input class="sheet-radiobox" type="radio" name="attr_movie-award" value="5"/>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div>
|
|
<h1><span data-i18n="awards"></span></h1>
|
|
<textarea name="attr_actor-awards" value=""></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--
|
|
********************************
|
|
* ENDE SRC/HTML/MAIN-TAB.pug
|
|
********************************
|
|
-->
|
|
<!--
|
|
CREATED by Gorthian
|
|
Version v2.0
|
|
Letzte Änderung 2022-11-25
|
|
GitHub https://github.com/Gorthian/Roll20_NHKS_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/issues
|
|
|
|
-->
|
|
<!-- Variablen-->
|
|
<!--
|
|
********************************
|
|
* START SRC/HTML/WEAPON-TAB.pug
|
|
********************************
|
|
-->
|
|
<div class="sheet-weapon-tab">
|
|
<h1><span data-i18n="role-weapons"></span></h1>
|
|
<div class="sheet-role-weapon-table">
|
|
<fieldset class="repeating_role-weapons">
|
|
<div class="sheet-weapon-entry">
|
|
<div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-name"></span>
|
|
<input type="text" name="attr_weapon-name"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-damage"></span>
|
|
<input type="number" name="attr_weapon-damage"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-strength"></span>
|
|
<input type="number" name="attr_weapon-strength"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="skill"></span>
|
|
<select name="attr_weapon-skill">
|
|
<option value="melee-small" data-i18n="melee-small" selected="selected"></option>
|
|
<option value="melee-medium" data-i18n="melee-medium" selected="selected"></option>
|
|
<option value="melee-big" data-i18n="melee-big" selected="selected"></option>
|
|
<option value="pistols" data-i18n="pistols" selected="selected"></option>
|
|
<option value="rifles" data-i18n="rifles" selected="selected"></option>
|
|
<option value="heavy-weapons" data-i18n="heavy-weapons" selected="selected"></option>
|
|
<option value="melee-misc" data-i18n="melee-misc" selected="selected"></option>
|
|
<option value="ranged-misc" data-i18n="ranged-misc" selected="selected"></option>
|
|
<option value="unarmed" data-i18n="unarmed" selected="selected"></option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="description"></span>
|
|
<textarea name="attr_weapon-description"></textarea>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-attention"></span>
|
|
<input type="checkbox" name="attr_weapon-attention"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-burst"></span>
|
|
<input type="checkbox" name="attr_weapon-burst"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-flexible"></span>
|
|
<input type="checkbox" name="attr_weapon-flexible"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-grib"></span>
|
|
<input type="checkbox" name="attr_weapon-grib"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-delicate"></span>
|
|
<input type="checkbox" name="attr_weapon-delicate"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-reload"></span>
|
|
<input type="checkbox" name="attr_weapon-reload"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-martial"></span>
|
|
<input type="checkbox" name="attr_weapon-martial"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-recoil"></span>
|
|
<input type="checkbox" name="attr_weapon-recoil"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-painful"></span>
|
|
<input type="checkbox" name="attr_weapon-painful"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-painful+"></span>
|
|
<input type="checkbox" name="attr_weapon-painful+"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-whip"></span>
|
|
<input type="checkbox" name="attr_weapon-whip"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-defense"></span>
|
|
<input type="checkbox" name="attr_weapon-defense"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-throw"></span>
|
|
<input type="checkbox" name="attr_weapon-throw"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-2handbonus"></span>
|
|
<input type="checkbox" name="attr_weapon-2handbonus"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-2hand"></span>
|
|
<input type="checkbox" name="attr_weapon-2hand"/>
|
|
</div>
|
|
<div class="sheet-input-line"><span class="sheet-label" data-i18n="role-weapon-twin"></span>
|
|
<input type="checkbox" name="attr_weapon-twin"/>
|
|
</div>
|
|
</div>
|
|
</div><br/>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<!--
|
|
********************************
|
|
* ENDE SRC/HTML/WEAPON-TAB.pug
|
|
********************************
|
|
-->
|
|
<div class="sheet-footer">Created by Gorthian | Supported by Hitdice | Copyright by Black Mask Verlag<br/>More Infos: https://github.com/Gorthian/Roll20_NHKS_CharacterSheet</div>
|
|
</div>
|
|
<!-- ROLL TEMPLATES-->
|
|
<!--
|
|
CREATED by Gorthian
|
|
Version v2.0
|
|
Letzte Änderung 2022-11-25
|
|
GitHub https://github.com/Gorthian/Roll20_NHKS_CharacterSheet
|
|
Wiki https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/wiki
|
|
Bugs & Issues https://github.com/Gorthian/Roll20_NHKS_CharacterSheet/issues
|
|
|
|
-->
|
|
<!-- Variablen-->
|
|
<!--
|
|
********************************
|
|
* START SRC/HTML/ROLLTEMPLATES.pug
|
|
********************************
|
|
|
|
-->
|
|
<rolltemplate class="sheet-rolltemplate-skill">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-header"><span data-i18n="{{type}}"></span>{{role-name}}</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{skill}}</div>
|
|
<div class="sheet-template-value">{{skillValue}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{attribute}}</div>
|
|
<div class="sheet-template-value">{{attributeValue}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{modifier}}</div>
|
|
<div class="sheet-template-value">{{modifierValue}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key"><span data-i18n="target-value"></span></div>
|
|
<div class="sheet-template-value">{{computed::target}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key"><span data-i18n="roll"></span></div>
|
|
<div class="sheet-template-value">{{roll1}}</div>
|
|
</div>
|
|
<div class="sheet-template-result">{{computed::roll1}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-attribute">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{attribute}}</div>
|
|
<div class="sheet-template-value">{{attributeValue}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{modifier}}</div>
|
|
<div class="sheet-template-value">{{modifierValue}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key"><span data-i18n="target-value"></span></div>
|
|
<div class="sheet-template-value">{{computed::target}}</div>
|
|
</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key"><span data-i18n="roll"></span></div>
|
|
<div class="sheet-template-value">{{roll1}}</div>
|
|
</div>
|
|
<div class="sheet-template-result">{{computed::roll1}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
<rolltemplate class="sheet-rolltemplate-initiative">
|
|
<div class="sheet-template-container">
|
|
<div class="sheet-template-header">{{name}}</div>
|
|
<div class="sheet-template-row">
|
|
<div class="sheet-template-key">{{initiative}}</div>
|
|
<div class="sheet-template-value">{{roll1}}</div>
|
|
</div>
|
|
<div class="sheet-template-result"><span data-i18n="rolltemplate-intiative-desc"></span></div>
|
|
</div>
|
|
</rolltemplate>
|
|
<!--
|
|
********************************
|
|
* ENDE SRC/HTML/ROLLTEMPLATES.pug
|
|
********************************
|
|
-->
|
|
<!-- SHEET WORKERS-->
|
|
<script type="text/worker">/* Globale Konstanten -- Start */
|
|
const iMinAttributeValue = 5;
|
|
const iMaxAttributeValue = 10;
|
|
const iMinSkillValue = 0;
|
|
const iMaxSkillValue = 10;
|
|
const aActorAttributes = ["strength","stamina","dexterity","knowledge","coolness","chi"];
|
|
const aActorSkills = ["acrobatic","athletic","dodge","boats","persuade","computers","firstaid","extremesport","slideofhand","aircrafts","vehicles","improvisation","climbing","contacts","mechanic","stealth","perception","languages","searching","hiding"];
|
|
const aActorWeaponSkills = ["melee-small","melee-medium","melee-big","pistols","rifles","heavy-weapons","melee-misc","ranged-misc","unarmed"];
|
|
const iBaseCriticalSuccess = 2;
|
|
const iBaseCriticalFailure = 19;
|
|
const sBaseRoll = "[[1d20cs<?{"+getTranslationByKey("critical-success-to")+"|"+iBaseCriticalSuccess+"}cf>?{"+getTranslationByKey("critical-failure-from")+"|"+iBaseCriticalFailure+"}]]";
|
|
/* Globale Konstanten -- Ende */
|
|
|
|
/* Event-Listener -- Start */
|
|
on("sheet:opened", function () {
|
|
recalcValues();
|
|
});
|
|
|
|
on("change:role-type", function () {
|
|
recalcChipoints();
|
|
recalcHitpoints();
|
|
});
|
|
|
|
function getModifiedTarget(results,iSum) {
|
|
let iModifier = parseInt(results.results.modifierValue.result);
|
|
let modifiedTarget = iSum + iModifier;
|
|
|
|
return modifiedTarget;
|
|
}
|
|
|
|
function getRollResult(results,iSum) {
|
|
let sExpression = results.results.roll1.expression;
|
|
let iRoll = parseInt(results.results.roll1.result);
|
|
let iModifier = parseInt(results.results.modifierValue.result);
|
|
let sResult = "";
|
|
|
|
let iCriticalSuccess = parseInt(sExpression.split("<")[1].split("cf")[0]);
|
|
let iCriticalFailure = parseInt(sExpression.split(">")[1]);
|
|
|
|
if (iRoll <= iCriticalSuccess) {
|
|
sResult = getTranslationByKey("critical-success");
|
|
} else if (iRoll <= iSum + iModifier) {
|
|
sResult = getTranslationByKey("success");
|
|
} else if (iRoll < iCriticalFailure) {
|
|
sResult = getTranslationByKey("failure");
|
|
} else {
|
|
sResult = getTranslationByKey("critical-failure");
|
|
}
|
|
|
|
return sResult;
|
|
}
|
|
|
|
/* Fertigkeitsproben (Schauspieler) */
|
|
aActorSkills.forEach(sSkill => {
|
|
on(`clicked:skill-${sSkill}`, function() {
|
|
getAttrs(["character_name","role-name","skill-"+sSkill+"-attribute","skill-"+sSkill,"skill-"+sSkill+"-is-role-skill","skill-"+sSkill+"-role"], function (values){
|
|
let sName = values["character_name"];
|
|
let sRoleName = values["role-name"];
|
|
let sAttribute = values["skill-"+sSkill+"-attribute"];
|
|
let iSkillValue = parseInt(values["skill-"+sSkill]);
|
|
let iSkillRole = parseInt(values["skill-"+sSkill+"-role"]);
|
|
let iIsRoleSkill = parseInt(values["skill-" + sSkill + "-is-role-skill"]||0);
|
|
|
|
getAttrs([sAttribute], function(values2) {
|
|
let iAttributeValue = parseInt(values2[sAttribute]);
|
|
let iSum = 0;
|
|
let sRollQuery = "&{template:skill} {{name="+sName+"}}";
|
|
|
|
if (iIsRoleSkill == 1) {
|
|
iSum = iSkillRole + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=role}} {{role-name=: "+sRoleName+"}} {{skillValue="+iSkillRole+"}}";
|
|
} else {
|
|
iSum = iSkillValue + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=actor}} {{skillValue="+iSkillValue+"}}";
|
|
}
|
|
sRollQuery = sRollQuery + " {{skill="+getTranslationByKey(sSkill)+"}} {{attribute="+getTranslationByKey(sAttribute)+"}} {{attributeValue="+iAttributeValue+"}} {{target=[["+iSum+"]]}} {{modifier="+getTranslationByKey("modifier")+"}} {{modifierValue=[[?{"+getTranslationByKey("modifier")+"|0}]]}} {{roll1="+sBaseRoll+"}}";
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId,{
|
|
target: getModifiedTarget(results, iSum),
|
|
roll1: getRollResult(results, iSum),
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Proben auf Rollenfertigkeiten */
|
|
on("clicked:repeating_roleskills:roleskill", function() {
|
|
getAttrs(["character_name","role-name","repeating_roleskills_roleskills-name","repeating_roleskills_roleskills-attribute"], function (values){
|
|
let sName = values["character_name"];
|
|
let sRoleName = values["role-name"];
|
|
let sSkill = values["repeating_roleskills_roleskills-name"];
|
|
let sAttribute = values["repeating_roleskills_roleskills-attribute"];
|
|
let iSkillValue = 0;
|
|
let iSkillRole = 4;
|
|
let iIsRoleSkill = 1;
|
|
|
|
getAttrs([sAttribute], function(values2) {
|
|
let iAttributeValue = parseInt(values2[sAttribute]);
|
|
let iSum = 0;
|
|
let sRollQuery = "&{template:skill} {{name="+sName+"}}";
|
|
|
|
if (iIsRoleSkill == 1) {
|
|
iSum = iSkillRole + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=role}} {{role-name=: "+sRoleName+"}} {{skillValue="+iSkillRole+"}}";
|
|
} else {
|
|
iSum = iSkillValue + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=actor}} {{skillValue="+iSkillValue+"}}";
|
|
}
|
|
sRollQuery = sRollQuery + " {{skill="+sSkill+"}} {{attribute="+getTranslationByKey(sAttribute)+"}} {{attributeValue="+iAttributeValue+"}} {{target=[["+iSum+"]]}} {{modifier="+getTranslationByKey("modifier")+"}} {{modifierValue=[[?{"+getTranslationByKey("modifier")+"|0}]]}} {{roll1="+sBaseRoll+"}}";
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId,{
|
|
target: getModifiedTarget(results, iSum),
|
|
roll1: getRollResult(results, iSum),
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Attributssproben */
|
|
aActorAttributes.forEach(sAttribute => {
|
|
on(`clicked:attribute-${sAttribute}`, function() {
|
|
getAttrs(["character_name",sAttribute], function (values){
|
|
let sName = values["character_name"];
|
|
let iAttributeValue = parseInt(values[sAttribute]);
|
|
let iSum = iAttributeValue + 4;
|
|
|
|
let sRollQuery = "&{template:attribute} {{name="+sName+"}} {{attribute="+getTranslationByKey(sAttribute)+"}} {{attributeValue="+iAttributeValue+"}} {{target=[["+iSum+"]]}} {{modifier="+getTranslationByKey("modifier")+"}} {{modifierValue=[[?{"+getTranslationByKey("modifier")+"|0}]]}} {{roll1="+sBaseRoll+"}}";
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId,{
|
|
target: getModifiedTarget(results, iSum),
|
|
roll1: getRollResult(results, iSum),
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Waffenfertigkeitsproben */
|
|
aActorWeaponSkills.forEach(sSkill => {
|
|
on(`clicked:combat-${sSkill}`, function() {
|
|
let sCombatAttribute = "";
|
|
|
|
switch (sSkill) {
|
|
case "melee-small":
|
|
case "melee-medium":
|
|
case "melee-big":
|
|
case "melee-misc":
|
|
case "unarmed":
|
|
sCombatAttribute = "melee-attack";
|
|
break;
|
|
default:
|
|
sCombatAttribute = "ranged-attack";
|
|
}
|
|
|
|
getAttrs(["character_name","role-name","skill-"+sSkill, sCombatAttribute, "skill-"+sSkill+"-is-role-skill", "skill-"+sSkill+"-role"], function (values){
|
|
let sName = values["character_name"];
|
|
let sRoleName = values["role-name"];
|
|
let iAttributeValue = parseInt(values[sCombatAttribute]||0);
|
|
let iSkillValue = parseInt(values["skill-"+sSkill]);
|
|
let iSum = 0;
|
|
let iSkillRole = parseInt(values["skill-"+sSkill+"-role"]);
|
|
let iIsRoleSkill = parseInt(values["skill-" + sSkill + "-is-role-skill"]||0);
|
|
let sRollQuery = "&{template:skill} {{name="+sName+"}}";
|
|
|
|
if (iIsRoleSkill == 1) {
|
|
iSum = iSkillRole + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=role}} {{role-name=: "+sRoleName+"}} {{skillValue="+iSkillRole+"}}";
|
|
} else {
|
|
iSum = iSkillValue + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=actor}} {{skillValue="+iSkillValue+"}}";
|
|
}
|
|
sRollQuery = sRollQuery + " {{skill="+getTranslationByKey(sSkill)+"}} {{attribute="+getTranslationByKey(sCombatAttribute)+"}} {{attributeValue="+iAttributeValue+"}} {{target=[["+iSum+"]]}} {{modifier="+getTranslationByKey("modifier")+"}} {{modifierValue=[[?{"+getTranslationByKey("modifier")+"|0}]]}} {{roll1="+sBaseRoll+"}}";
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId,{
|
|
target: getModifiedTarget(results, iSum),
|
|
roll1: getRollResult(results, iSum),
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
on(`clicked:combat-${sSkill}-parry`, function() {
|
|
getAttrs(["character_name","role-name","skill-"+sSkill, "melee-defense", "skill-"+sSkill+"-is-role-skill", "skill-"+sSkill+"-role"], function (values){
|
|
let sName = values["character_name"];
|
|
let sRoleName = values["role-name"];
|
|
let iAttributeValue = parseInt(values["melee-defense"]||0);
|
|
let iSkillValue = parseInt(values["skill-"+sSkill]);
|
|
let iSum = 0;
|
|
let iSkillRole = parseInt(values["skill-"+sSkill+"-role"]);
|
|
let iIsRoleSkill = parseInt(values["skill-" + sSkill + "-is-role-skill"]||0);
|
|
let sRollQuery = "&{template:skill} {{name="+sName+"}}";
|
|
|
|
if (iIsRoleSkill == 1) {
|
|
iSum = iSkillRole + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=role}} {{role-name=: "+sRoleName+"}} {{skillValue="+iSkillRole+"}}";
|
|
} else {
|
|
iSum = iSkillValue + iAttributeValue;
|
|
sRollQuery = sRollQuery + " {{type=actor}} {{skillValue="+iSkillValue+"}}";
|
|
}
|
|
sRollQuery = sRollQuery + " {{skill="+getTranslationByKey(sSkill)+"}} {{attribute="+getTranslationByKey("melee-defense")+"}} {{attributeValue="+iAttributeValue+"}} {{target=[["+iSum+"]]}} {{modifier="+getTranslationByKey("modifier")+"}} {{modifierValue=[[?{"+getTranslationByKey("modifier")+"|0}]]}} {{roll1="+sBaseRoll+"}}";
|
|
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId,{
|
|
target: getModifiedTarget(results, iSum),
|
|
roll1: getRollResult(results, iSum),
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Initiative-Wurf */
|
|
on("clicked:initiative", function() {
|
|
getAttrs(["character_name","initiative"], function (values){
|
|
let sName = values["character_name"];
|
|
let iInitiative = parseInt(values["initiative"]);
|
|
|
|
let sRollQuery = "&{template:initiative} {{name="+sName+"}} {{initiative="+getTranslationByKey("initiative")+"}} {{roll1=[[1d10+"+iInitiative+"+?{"+getTranslationByKey("modifier")+"|0} &{tracker}]]}}";
|
|
|
|
startRoll(sRollQuery, (results) => {
|
|
finishRoll(results.rollId);
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Änderungen an Attributen */
|
|
aActorAttributes.forEach(sAttribute => {
|
|
on(`change:${sAttribute}`, function() {
|
|
console.log("[CHANGE] " + sAttribute);
|
|
changedAttribute(sAttribute);
|
|
});
|
|
});
|
|
|
|
/* Änderungen an Skills */
|
|
aActorSkills.forEach(sSkill => {
|
|
on(`change:skill-${sSkill}`, function() {
|
|
console.log("[CHANGE] " + sSkill);
|
|
changedSkill(sSkill);
|
|
});
|
|
|
|
on(`change:skill-${sSkill}-is-role-skill`, function() {
|
|
console.log("[CHANGE] " + sSkill + "is-role-skill");
|
|
changedSkill(sSkill);
|
|
});
|
|
});
|
|
|
|
/* Änderungen an Kampf-Skills */
|
|
aActorWeaponSkills.forEach(sSkill => {
|
|
on(`change:skill-${sSkill}`, function() {
|
|
console.log("[CHANGE] " + sSkill);
|
|
changedSkill(sSkill);
|
|
});
|
|
|
|
on(`change:skill-${sSkill}-is-role-skill`, function() {
|
|
console.log("[CHANGE] " + sSkill + "is-role-skill");
|
|
changedSkill(sSkill);
|
|
});
|
|
});
|
|
|
|
/* Event-Listener -- Ende */
|
|
|
|
/* Funktionen -- Start */
|
|
function recalcValues() {
|
|
console.log("[recalcValues]");
|
|
aActorAttributes.forEach(sAttribute => {
|
|
changedAttribute(sAttribute);
|
|
});
|
|
aActorSkills.forEach(sSkill => {
|
|
changedSkill(sSkill);
|
|
});
|
|
aActorWeaponSkills.forEach(sSkill => {
|
|
changedSkill(sSkill);
|
|
});
|
|
}
|
|
|
|
function changedAttribute(sAttribute) {
|
|
console.log("[changedAttribute] " + sAttribute);
|
|
|
|
getAttrs([sAttribute], function (values){
|
|
let iAttribute = parseInt(values[sAttribute]||iMinAttributeValue);
|
|
let aAttributes = {};
|
|
|
|
// Auf Min/Max prüfen
|
|
if (iAttribute < iMinAttributeValue ) {
|
|
iAttribute = iMinAttributeValue;
|
|
} else if (iAttribute > iMaxAttributeValue ) {
|
|
iAttribute = iMaxAttributeValue;
|
|
}
|
|
aAttributes[sAttribute] = iAttribute;
|
|
setAttrs(aAttributes);
|
|
|
|
switch (sAttribute) {
|
|
case "strength":
|
|
recalcMeleeAttack();
|
|
recalcMeleeDamage();
|
|
recalcMeleeDefense();
|
|
break;
|
|
case "stamina":
|
|
recalcHitpoints();
|
|
break;
|
|
case "dexterity":
|
|
recalcMeleeDefense();
|
|
recalcRangedAttack();
|
|
recalcRangedDamage();
|
|
break;
|
|
case "knowledge":
|
|
//nothing
|
|
break;
|
|
case "coolness":
|
|
recalcInitiative();
|
|
break;
|
|
case "chi":
|
|
recalcMeleeAttack();
|
|
recalcChipoints();
|
|
recalcMeleeDefense();
|
|
recalcRangedAttack();
|
|
break;
|
|
default:
|
|
}
|
|
});
|
|
}
|
|
|
|
function changedSkill(sSkill) {
|
|
console.log("[changedSkill] " + sSkill);
|
|
|
|
getAttrs(["skill-" + sSkill,"skill-" + sSkill + "-is-role-skill"], function (values){
|
|
let iSkill = parseInt(values["skill-" + sSkill]||iMinSkillValue);
|
|
let iSkillRole = 0;
|
|
let iIsRoleSkill = parseInt(values["skill-" + sSkill + "-is-role-skill"]||0);
|
|
let aAttributes = {};
|
|
console.log("[changedSkill] isRoleSkill" + iIsRoleSkill);
|
|
|
|
// Auf Min/Max prüfen
|
|
if (iSkill < iMinSkillValue ) {
|
|
iSkill = iMinSkillValue;
|
|
} else if (iSkill > iMaxSkillValue ) {
|
|
iSkill = iMaxSkillValue;
|
|
}
|
|
|
|
//Rollenskill berechnen
|
|
if (iIsRoleSkill == 1) {
|
|
switch (iSkill) {
|
|
case 0: case 1: case 2:
|
|
iSkillRole = 4;
|
|
break;
|
|
case 3: case 4:
|
|
iSkillRole = 5;
|
|
break;
|
|
case 5: case 6: case 7: case 8: case 9:
|
|
iSkillRole = iSkill+1;
|
|
break;
|
|
case 10:
|
|
iSkillRole = 10;
|
|
break;
|
|
default:
|
|
iSkillRole = 0;
|
|
}
|
|
} else {
|
|
iSkillRole = 0;
|
|
}
|
|
|
|
aAttributes["skill-" + sSkill] = iSkill;
|
|
aAttributes["skill-" + sSkill + "-role"] = iSkillRole;
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcInitiative() {
|
|
console.log("[recalcInitiative]");
|
|
getAttrs(["coolness"], function (values){
|
|
let iCoolness = parseInt(values["coolness"]||0);
|
|
let iInitiative = iCoolness;
|
|
let aAttributes = {};
|
|
|
|
aAttributes["initiative"] = iInitiative;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcRolepoints(iPoints,sType) {
|
|
let iRolePoints = 0;
|
|
|
|
if (sType == "main") {
|
|
iRolePoints = iPoints + 20;
|
|
} else {
|
|
iRolePoints = iPoints + 10;
|
|
}
|
|
|
|
return iRolePoints;
|
|
}
|
|
|
|
function recalcHitpoints() {
|
|
console.log("[recalcHitpoints]");
|
|
getAttrs(["stamina","role-type"], function (values){
|
|
let iStamina = parseInt(values["stamina"]||0);
|
|
let sRoleType = values["role-type"]||"main";
|
|
let iHitpoints = (iStamina + 4) * 10;
|
|
let iRoleHitpoints = recalcRolepoints(iHitpoints,sRoleType);
|
|
let aAttributes = {};
|
|
|
|
aAttributes["hitpoints_max"] = iHitpoints;
|
|
aAttributes["role_hitpoints_max"] = iRoleHitpoints;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcChipoints() {
|
|
console.log("[recalcChipoints]");
|
|
getAttrs(["chi","role-type"], function (values){
|
|
let iChi = parseInt(values["chi"]||0);
|
|
let sRoleType = values["role-type"]||"main";
|
|
let iChipoints = iChi * 10;
|
|
let iRoleChipoints = recalcRolepoints(iChipoints,sRoleType);
|
|
let aAttributes = {};
|
|
|
|
aAttributes["chipoints_max"] = iChipoints;
|
|
aAttributes["role_chipoints_max"] = iRoleChipoints;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcMeleeAttack() {
|
|
console.log("[recalcMeleeAttack]");
|
|
getAttrs(["chi","strength"], function (values){
|
|
let iChi = parseInt(values["chi"]||0);
|
|
let iStrength = parseInt(values["strength"]||0);
|
|
let iMeleeAttack = Math.round((iStrength * 2 + iChi) / 3);
|
|
let aAttributes = {};
|
|
|
|
aAttributes["melee-attack"] = iMeleeAttack;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcMeleeDamage() {
|
|
console.log("[recalcMeleeDamage]");
|
|
getAttrs(["strength"], function (values){
|
|
let iStrength = parseInt(values["strength"]||5);
|
|
let iMeleeDamage = 0;
|
|
let aAttributes = {};
|
|
|
|
if (iStrength > 5) {
|
|
iMeleeDamage = iStrength - 4;
|
|
}
|
|
|
|
aAttributes["melee-damage"] = iMeleeDamage;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcRangedDamage() {
|
|
console.log("[recalcRangedDamage]");
|
|
getAttrs(["dexterity"], function (values){
|
|
let iDexterity = parseInt(values["dexterity"]||5);
|
|
let iRangedDamage = 0;
|
|
let aAttributes = {};
|
|
|
|
if (iDexterity > 5) {
|
|
iRangedDamage = iDexterity - 4;
|
|
}
|
|
|
|
aAttributes["ranged-damage"] = iRangedDamage;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcMeleeDefense() {
|
|
console.log("[recalcMeleeDefense]");
|
|
getAttrs(["chi","strength","dexterity"], function (values){
|
|
let iChi = parseInt(values["chi"]||0);
|
|
let iStrength = parseInt(values["strength"]||0);
|
|
let iDexterity = parseInt(values["dexterity"]||0);
|
|
let iMeleeDefense = Math.round((iStrength + iDexterity + iChi) / 3);
|
|
let aAttributes = {};
|
|
|
|
aAttributes["melee-defense"] = iMeleeDefense;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
|
|
function recalcRangedAttack() {
|
|
console.log("[recalcRangedAttack]");
|
|
getAttrs(["chi","dexterity"], function (values){
|
|
let iChi = parseInt(values["chi"]||0);
|
|
let iDexterity = parseInt(values["dexterity"]||0);
|
|
let iRangedAttack = Math.round((iDexterity * 2 + iChi) / 3);
|
|
let aAttributes = {};
|
|
|
|
aAttributes["ranged-attack"] = iRangedAttack;
|
|
|
|
setAttrs(aAttributes);
|
|
});
|
|
}
|
|
/* Funktionen -- Ende */
|
|
|
|
/* Tabs -- Start */
|
|
const buttonlist = ["main","weapons"];
|
|
buttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
});
|
|
/* Tabs -- Ende */
|
|
</script>
|
|
<!--
|
|
********************************
|
|
* ENDE NHKS.pug
|
|
********************************
|
|
--> |