mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
New Character Sheet for Unhallowed Metropolis with (kind) permission of Strix Publishing
880 lines
48 KiB
HTML
880 lines
48 KiB
HTML
<!--<div class="sheet-container">-->
|
|
<input type="hidden" name="attr_version">
|
|
<input name="attr_SetupDone" style="display: none;" type="text" value="0">
|
|
<input type="radio" class="sheet-page1" name="attr_page" value="1" checked="checked" id="sheet-page1">
|
|
<label for="sheet-page1" data-i18n="pageone-c">Page One</label>
|
|
<input type="radio" class="sheet-page2" name="attr_page" value="2" id="sheet-page2">
|
|
<label for="sheet-page2" data-i18n="pagetwo-c">Page Two</label>
|
|
<br />
|
|
<br />
|
|
|
|
<div class="sheet-page1">
|
|
<div class="sheet-container1">
|
|
<!-- Logo -->
|
|
<div class="sheet-logo">
|
|
<img src="https://github.com/Roll20/roll20-character-sheets/blob/master/Unhallowed%20Metropolis/unhallowed-metropolis-colour-logo-364px.jpg?raw=true"
|
|
style="width: 260px; height: 110px; max-height: 180px" title="Unhallowed Metropolis Logo">
|
|
</div>
|
|
<!-- Biography -->
|
|
<div class="sheet-basic1">
|
|
<div class="sheet-row">
|
|
<div class="sheet-label"><span data-i18n="name-c">Name</span></div><input type="text" spellcheck="false" class="sheet-capital" name="attr_character_name">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-basic2">
|
|
<div class="sheet-row">
|
|
<div class="sheet-label"><span data-i18n="player-c">Player</span></div><input type="text" spellcheck="false" class="sheet-capital" name="attr_player">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-basic3">
|
|
<div class="sheet-row">
|
|
<div class="sheet-label"><span data-i18n="calling-c">Calling</span></div><input type="text" class="sheet-upper" name="attr_calling">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-basic4">
|
|
<div class="sheet-row">
|
|
<div class="sheet-label"><span data-i18n="age-c">Age</span></div><input type="text" class="sheet-capital" name="attr_age">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-basic5">
|
|
<div class="sheet-row">
|
|
<div class="sheet-label"><span data-i18n="wealth-c">Wealth</span></div><input type="text" name="attr_wealth" title="Wealth Rating">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sheet-attributes">
|
|
<div style="display:block"> </div>
|
|
<!-- Attributes -->
|
|
<div class="sheet-attributes-header"><span data-i18n="attributes-u">Attributes</span></div>
|
|
<div style="margin: 0px 0px -10px 0px">
|
|
<label class="base" data-i18n="base-u" style="margin-left: 60%" >Base</label>
|
|
<label class="base" data-i18n="current-u">Current</label>
|
|
</div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_vitalityCheck" value="&{template:check} {{name=@{character_name} *for* Vitality}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{vitality_current}]]}}" title="Vitality Roll"><label data-i18n="vitality-c">Vitality</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_vitality_base" min="0" max="25" value="1" data-i18n-title="vitality-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_vitality_current" min="0" max="25" value="1"></div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_coordinationCheck" value="&{template:check} {{name=@{character_name} *for* Coordination}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{coordination_current}-@{woundLevel}]]}}" title="Coordination Roll"><label data-i18n="coordination-c">Coordination</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_coordination_base" min="0" max="25" value="1" data-i18n-title="coordination-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_coordination_current" min="0" max="25" value="1"></div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_witCheck" value="&{template:check} {{name=@{character_name} *for* Wit}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{wit_current}]]}}" title="Wit Roll"><label data-i18n="wit-c">Wit</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_wit_base" min="0" max="25" value="1" data-i18n-title="wit-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_wit_current" min="0" max="25" value="1"></div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_intellectCheck" value="&{template:check} {{name=@{character_name} *for* Intellect}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{intellect_current}]]}}" title="Intellect Roll"><label data-i18n="intellect-c">Intellect</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_intellect_base" min="0" max="25" value="1" data-i18n-title="intellect-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_intellect_current" min="0" max="25" value="1"></div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_charmCheck" value="&{template:check} {{name=@{character_name} *for* Charm}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{charm_current}]]}}" title="Charm Roll"><label data-i18n="charm-c">Charm</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_charm_base" min="0" max="25" value="1" data-i18n-title="charm-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_charm_current" min="0" max="25" value="1"></div>
|
|
|
|
<button class="sheet-textButton" type="roll" name="roll_willCheck" value="&{template:check} {{name=@{character_name} *for* Will}} {{Check=[[1]]}} {{DR=[[?{DR to Hit|11}]]}} {{Roll=[[2d10+@{will_current}]]}}" title="Will Roll"><label data-i18n="will-c">Will</label></button>
|
|
<div class="sheet-trib"><input type="number" name="attr_will_base" min="0" max="25" value="1" data-i18n-title="will-defn"></div>
|
|
<div class="sheet-trib"><input type="number" name="attr_will_current" min="0" max="25" value="1"></div>
|
|
|
|
<div style="display:block"> </div> <!-- alternative to <br> -->
|
|
|
|
<!-- Capabilities derived from Attributes -->
|
|
<label class="other" data-i18n="prowess-c">Prowess</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_prowess" min="0" max="25"></div>
|
|
|
|
<label class="other" data-i18n="actions-c">Actions</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_actions" min="0" max="10"></div>
|
|
|
|
<div style="display:block"> </div>
|
|
|
|
<!-- Corruption Paths -->
|
|
<div class="sheet-attributes-header"><span data-i18n="corruption-u">Corruption</span></div>
|
|
<label class="corrupt" data-i18n="physical-c">Physical</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_physical" min="0" max="25"></div>
|
|
<label class="afflict" data-i18n="affliction-c">Affliction</label><input type="text" class="afflict" name="attr_physical-affliction">
|
|
|
|
<label class="corrupt" data-i18n="desire-c">Desire</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_desire" min="0" max="25"></div>
|
|
<label class="afflict" data-i18n="affliction-c">Affliction</label><input type="text" class="afflict" name="attr_desire-affliction">
|
|
|
|
<label class="corrupt" data-i18n="drive-c">Drive</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_physical" min="0" max="25"></div>
|
|
<label class="afflict" data-i18n="affliction-c">Affliction</label><input type="text" class="afflict" name="attr_drive-affliction">
|
|
|
|
<div style="display:block"> </div>
|
|
|
|
<div class="sheet-attributes-header"><span data-i18n="experience-u">Experience</span></div>
|
|
|
|
<label class="other" style="text-align: right;" data-i18n="total-c">Total</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_total" min="0" max="500000"></div>
|
|
|
|
<label class="other" style="text-align: right;" data-i18n="unspent-c">Unspent</label>
|
|
<div class="sheet-trib" style="width: 3em"><input type="number" name="attr_unspent" min="0" max="500000"></div>
|
|
|
|
<div style="display:block"> </div>
|
|
</div>
|
|
|
|
<div class="sheet-skills1">
|
|
<div style="display:block"> </div>
|
|
<div class="sheet-attributes-header" style="text-align: left; border: 0px solid red" ><span style="border: 0px solid green"data-i18n="skills-u">Skills</span>
|
|
<label style="display: inline-block; text-align: right; width: 60%; text-transform: uppercase; font-size: 0.8em; border: 0px solid blue" data-i18n="rating-u">Rating</label></div>
|
|
|
|
<fieldset class="repeating_skills-left">
|
|
<input class="sheet-skill" type="text" name="attr_skill">
|
|
<div class="sheet-trib" style="width: 3em;"><input type="number" name="attr_skillLevel" min="0" max="25"></div>
|
|
<button class="sheet-skilld10-button" type="roll" name="roll_skillroll" value="&{template:check} {{name=@{character_name} *uses* @{skill}}} {{Check=[[1]]}} {{Roll=[[2d10+@{skillLevel}+?{Stunt Modifers?|0}-@{woundLevel}]]}}"></button>
|
|
<input class="sheet-stunt" type="text" name="attr_stunt1" data-i18n-title="stunt-c">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt2">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt3">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt4">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt5">
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-skills2">
|
|
<div style="display:block"> </div>
|
|
<div class="sheet-attributes-header"><span> </span></div>
|
|
<fieldset class="repeating_skills-right">
|
|
<input class="sheet-skill" type="text" name="attr_skill">
|
|
<div class="sheet-trib" style="width: 3em;"><input type="number" name="attr_skillLevel" min="0" max="15"></div>
|
|
<button class="sheet-skilld10-button" type="roll" name="roll_skillroll" value="&{template:check} {{name=@{character_name} *uses* @{skill}}} {{Check=[[1]]}} {{Roll=[[2d10+@{skillLevel}+?{Stunt Modifers?|0}-@{woundLevel}]]}}"></button>
|
|
<input class="sheet-stunt" type="text" name="attr_stunt1">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt2">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt3">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt4">
|
|
<input class="sheet-stunt" type="text" name="attr_stunt5">
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-qualities">
|
|
<div class="sheet-subattributes-header" style="text-align: center;" ><span data-i18n="qualities-u">Qualities</span></div>
|
|
<input class="sheet-qif" type="text" name="attr_quality1">
|
|
<input class="sheet-qif" type="text" name="attr_quality2">
|
|
<input class="sheet-qif" type="text" name="attr_quality3">
|
|
<input class="sheet-qif" type="text" name="attr_quality4">
|
|
<input class="sheet-qif" type="text" name="attr_quality5">
|
|
<input class="sheet-qif" type="text" name="attr_quality6">
|
|
<input class="sheet-qif" type="text" name="attr_quality7">
|
|
<input class="sheet-qif" type="text" name="attr_quality8">
|
|
<input class="sheet-qif" type="text" name="attr_quality9">
|
|
<input class="sheet-qif" type="text" name="attr_quality10">
|
|
<input class="sheet-qif" type="text" name="attr_quality11">
|
|
<input class="sheet-qif" type="text" name="attr_quality12">
|
|
<input class="sheet-qif" type="text" name="attr_quality13">
|
|
<input class="sheet-qif" type="text" name="attr_quality14">
|
|
<input class="sheet-qif" type="text" name="attr_quality15">
|
|
<input class="sheet-qif" type="text" name="attr_quality16">
|
|
</div>
|
|
<div class="sheet-impediments">
|
|
<div class="sheet-subattributes-header" style="text-align: center;" ><span data-i18n="impediments-u">Impediments</span></div>
|
|
<input class="sheet-qif" type="text" name="attr_impediment1">
|
|
<input class="sheet-qif" type="text" name="attr_impediment2">
|
|
<input class="sheet-qif" type="text" name="attr_impediment3">
|
|
<input class="sheet-qif" type="text" name="attr_impediment4">
|
|
<input class="sheet-qif" type="text" name="attr_impediment5">
|
|
<input class="sheet-qif" type="text" name="attr_impediment6">
|
|
<input class="sheet-qif" type="text" name="attr_impediment7">
|
|
<input class="sheet-qif" type="text" name="attr_impediment8">
|
|
<input class="sheet-qif" type="text" name="attr_impediment9">
|
|
<input class="sheet-qif" type="text" name="attr_impediment10">
|
|
<input class="sheet-qif" type="text" name="attr_impediment11">
|
|
<input class="sheet-qif" type="text" name="attr_impediment12">
|
|
<input class="sheet-qif" type="text" name="attr_impediment13">
|
|
<input class="sheet-qif" type="text" name="attr_impediment14">
|
|
<input class="sheet-qif" type="text" name="attr_impediment15">
|
|
<input class="sheet-qif" type="text" name="attr_impediment16">
|
|
</div>
|
|
<div class="sheet-features">
|
|
<div class="sheet-subattributes-header" style="text-align: center;" ><span data-i18n="features-u">Features</span></div>
|
|
<input class="sheet-qif" type="text" name="attr_feature1">
|
|
<input class="sheet-qif" type="text" name="attr_feature2">
|
|
<input class="sheet-qif" type="text" name="attr_feature3">
|
|
<input class="sheet-qif" type="text" name="attr_feature4">
|
|
<input class="sheet-qif" type="text" name="attr_feature5">
|
|
<input class="sheet-qif" type="text" name="attr_feature6">
|
|
<input class="sheet-qif" type="text" name="attr_feature7">
|
|
<input class="sheet-qif" type="text" name="attr_feature8">
|
|
<input class="sheet-qif" type="text" name="attr_feature9">
|
|
<input class="sheet-qif" type="text" name="attr_feature10">
|
|
<input class="sheet-qif" type="text" name="attr_feature11">
|
|
<input class="sheet-qif" type="text" name="attr_feature12">
|
|
<input class="sheet-qif" type="text" name="attr_feature13">
|
|
<input class="sheet-qif" type="text" name="attr_feature14">
|
|
<input class="sheet-qif" type="text" name="attr_feature15">
|
|
<input class="sheet-qif" type="text" name="attr_feature16">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sheet-page2">
|
|
<div class="sheet-container2">
|
|
<div class="sheet-chart">
|
|
<img src="https://github.com/Roll20/roll20-character-sheets/blob/master/Unhallowed%20Metropolis/unhallowed-metropolis-damage-image-388px.png?raw=true">
|
|
|
|
<!-- Torso Area -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -712px 0px 0px 0px;" name="attr_torso-armour" data-i18n-title="torso armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -674px 0px 0px -36px;" name="attr_torsoWnd" data-i18n-title="torso wounds-c">
|
|
<!-- Right Arm -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -520px 0px 0px -36px;" name="attr_right-arm-armour" data-i18n-title="right arm armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -480px 0px 0px -36px;" name="attr_rightArmWnd" data-i18n-title="right arm wounds-c">
|
|
<!-- Right Leg -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -320px 0px 0px -20px;" name="attr_right-leg-armour" data-i18n-title="right leg armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -280px 0px 0px -36px;" name="attr_rightLegWnd" data-i18n-title="right leg wounds-c">
|
|
<!-- Head Area -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -714px 0px 0px 176px;" name="attr_head-armour" data-i18n-title="head armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -676px 0px 0px -36px;" name="attr_headWnd" data-i18n-title="head wounds-c">
|
|
<!-- Left Arm -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -520px 0px 0px -6px;" name="attr_left-arm-armour" data-i18n-title="left arm armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -480px 0px 0px -36px;" name="attr_leftArmWnd" data-i18n-title="left arm wounds-c">
|
|
<!-- Left Leg -->
|
|
<input type="text" class="sheet-woundIconGray" style="margin: -320px 0px 0px -48px;" name="attr_left-leg-armour" data-i18n-title="left leg armour-c">
|
|
<input type="text" class="sheet-woundIconRed" style="margin: -280px 0px 0px -36px;" name="attr_leftLegWnd" data-i18n-title="left leg wounds-c">
|
|
</div>
|
|
<div class="sheet-combat">
|
|
<div class="sheet-diffRatingTitle">
|
|
<label style="font-size: 1.5em; font-weght: bold; text-align: center; text-transform: uppercase;" data-i18n="Tasks Difficulty-u">Difficulty & Tasks Rating</label>
|
|
</div>
|
|
<div class="sheet-rangeAttackTitle">
|
|
<label style="font-size: 1.5em; font-weght: bold; text-align: center;text-transform: uppercase;" data-i18n="Attack Range Modifiers-u">Attack Range Modifiers</label>
|
|
</div>
|
|
<div class="sheet-diffRatingType">
|
|
<label style="font-size: 1.3em; font-weght: bold; text-transform: capitalize;" data-i18n="Task-c">Task</label>
|
|
<label data-i18n="simple-c">Simple</label>
|
|
<label data-i18n="moderate-c">Moderate</label>
|
|
<label data-i18n="hard-c">Hard</label>
|
|
<label data-i18n="complex-c">Complex</label>
|
|
<label data-i18n="virtually impossible-c">Virtually Impossible</label>
|
|
<label data-i18n="impossible-c">Impossible</label>
|
|
|
|
</div>
|
|
<div class="sheet-diffRatingValue">
|
|
<label style="font-size: 1.3em; font-weght: bold" data-i18n="Difficulty-c">Difficulty</label>
|
|
<label data-i18n="no roll-c">No Roll</label>
|
|
<label >11</label>
|
|
<label >14</label>
|
|
<label >16</label>
|
|
<label >20</label>
|
|
<label data-i18n="no roll-c">No Roll</label>
|
|
</div>
|
|
|
|
<div class="sheet-rangeAttackType">
|
|
<input id="affliction_aiming" type="checkbox" name="attr_affliction_aiming"><label style="font-size: 1.0em;" data-i18n-title="aiming-description" for="affliction_aiming" data-i18n="attacker aiming-c">Attacker Aiming</label>
|
|
<input id="affliction_offHand" type="checkbox" name="attr_affliction_offHand"><label style="font-size: 1.0em;" data-i18n-title="offHand-description" for="affliction_offHand" data-i18n="off hand penalty-c">Off Hand Penalty</label>
|
|
<input id="affliction_moving" type="checkbox" name="attr_affliction_moving"><label style="font-size: 1.0em;" data-i18n-title="moving-description" for="affliction_moving" data-i18n="attacker moving-c">Attacker Moving</label>
|
|
<input id="affliction_visibility" type="checkbox" name="attr_affliction_visibility"><label style="font-size: 1.0em; margin-top: 5px; margin-bottom: 5px;" data-i18n-title="visibility-description" for="affliction_visibility" data-i18n-title="poor visibility: -1 to -3" data-i18n="poor visibility-c">Poor Visibility</label>
|
|
<input id="affliction_longRange" type="checkbox" name="attr_affliction_longRange"><label style="font-size: 1.0em;" data-i18n-title="longRange-description" for="affliction_longRange" data-i18n="long range-c">Long Range</label>
|
|
<input id="affliction_extremeRange" type="checkbox" name="attr_affliction_extremeRange"><label style="font-size: 1.0em;" data-i18n-title="extremeRange-description" for="affliction_extremeRange" data-i18n="extreme range-c">Extreme Range</label>
|
|
<input id="affliction_obscured" type="checkbox" name="attr_affliction_obscured"><label style="font-size: 1.0em;" data-i18n-title="obscured-description" for="affliction_obscured" data-i18n="obscured cover-c">Obscured by Cover</label>
|
|
<input id="affliction_partial" type="checkbox" name="attr_affliction_partial"><label style="font-size: 1.0em;" data-i18n-title="partial-description" for="affliction_partial" data-i18n="partial cover-c">Target Partially Obscured</label>
|
|
</div>
|
|
|
|
<div class="sheet-rangeAttackValue">
|
|
<label>+5</label>
|
|
<label>-3</label>
|
|
<label>-2</label>
|
|
<input type="number" name="attr_visibility" min="-3" max="-1" style="font-size: 1.0em;" value="-1" >
|
|
<label>-2</label>
|
|
<label>-4</label>
|
|
<label>-4</label>
|
|
<label>-2</label>
|
|
|
|
</div>
|
|
<div class="sheet-attackModTitle">
|
|
<label style="font-size: 1.5em; font-weght: bold; text-align: center; text-transform: uppercase;" data-i18n="Attack Modifiers-u">ATTACK MODIFIERS</label>
|
|
</div>
|
|
<div class="sheet-attackModType" >
|
|
<label style="font-size: 1.3em; font-weight: bold;" class="attackModType" data-i18n="Location-c">Location</label>
|
|
<label data-i18n="Arm-c">Arm</label>
|
|
<label data-i18n="Hand/Foot-c">Hand/Foot</label>
|
|
<label data-i18n="Head/Vital Location-c">Head/Vital Location</label>
|
|
<label data-i18n="Leg-c">Leg</label>
|
|
<label data-i18n="Torso-c">Torso</label>
|
|
</div>
|
|
<div class="sheet-attackModValue">
|
|
<label style="font-size: 1.3em; font-weight: bold;" class="attackModValue" data-i18n="Atk/Dmg-c">Atk/Dmg</label>
|
|
<label style="font-size: 1.0em; text-align: center;" class="attackModValue">-3/0</label>
|
|
<label>-3/-3</label>
|
|
<label>-3/+5</label>
|
|
<label>0/0</label>
|
|
<label >0/0</label>
|
|
</div>
|
|
<div class="sheet-combatButtonArea">
|
|
<!-- NOTE: the line below DOES NOT work (the input field is REMOVED) unless the data-i18n field is scrubbed ! -->
|
|
<!--<label style="font-size: 1.2em; text-align: left;" data-i18n="Total Range Modifiers-c">Total Range Modifiers<input type="text" style='width: 32px; margin-left: 6px; text-align: center; height:18px; color: DarkRed; font-size: 1em; font-weight: bold; border: 1px solid red' data-i18n-title="Total Attack Range Modifiers" name="attr_attackRangeModifiers" readonly value="0"></label> -->
|
|
<label style="font-size: 1.2em; text-align: left;" data-i18n-title="Total Attack Range Modifiers-c">Total Range Modifiers<input type="text" style='width: 32px; margin-left: 6px; text-align: center; height:18px; color: DarkRed; font-size: 1em; font-weight: bold; border: 1px solid red' data-i18n-title="Total Attack Range Modifiers-c" name="attr_attackRangeModifiers" readonly value="0"></label>
|
|
<button type="action" class="sheet-textButton sheet-orange" style="margin: 0px 3px 0px 3px; padding: 2px 3px 2px 3px;" name="act_initiative" value="&{template:initiative} {{name=@{character_name}}} {{target=[[[[2d10+@{prowess}]] {name=[[@{character_name} &{tracker}]]}} }" title="Initiative: 2d10 + Prowess"><label style="text-align: center;" data-i18n="initiative-c">Initiative</label></button>
|
|
<button type="roll" class="sheet-textButton sheet-orange" name="roll_random-location" value="&{template:check} {{name=@{character_name}}} {{Roll=[[2d10]]}} {{Location=[[1]]}}" title="Random Hit Location"><label style="text-align: center;" data-i18n="location-c">Location</label></button>
|
|
<button type="roll" class="sheet-textButton sheet-orange" name="roll_complication" value="&{template:complication} {{name=@{character_name}}} {{Roll=[[2d10]]}}" title="Long-term Complication from Incapacitating Wound"><label style="text-align: center;" data-i18n="complications-c">Complications</label></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-container3">
|
|
<div class="sheet-wounds">
|
|
<input type="hidden" name="attr_woundLevel" value="0">
|
|
<input type="hidden" name="attr_woundTotal" value="0">
|
|
<div class="sheet-subattributes-header" style="text-align: left; width: auto; margin-left: 5%;" ><span data-i18n="wounds-u">Wounds</span></div>
|
|
<input type="text" name="attr_wounds1">
|
|
<input type="text" name="attr_wounds2">
|
|
<input type="text" name="attr_wounds3">
|
|
<input type="text" name="attr_wounds4">
|
|
<input type="text" name="attr_wounds5">
|
|
</div>
|
|
|
|
<div class="sheet-armour">
|
|
<div class="sheet-subattributes-header" style="text-align: left; width: auto; margin-left: 5%;" ><span data-i18n="armour-u">Armour</span> </div>
|
|
<input type="text" name="attr_armour1">
|
|
<input type="text" name="attr_armour2">
|
|
<input type="text" name="attr_armour3">
|
|
<input type="text" name="attr_armour4">
|
|
<input type="text" name="attr_armour5">
|
|
</div>
|
|
|
|
<div class="sheet-weapons">
|
|
<div style="display:block"> </div>
|
|
<div style="display:block"> </div>
|
|
<input type="hidden" name="attr_rangeModifier" value="-3">
|
|
<div class="sheet-attributes-header"><span data-i18n="weapons-u">Weapons</span></div>
|
|
<div class="sheet-row1">
|
|
<div class="sheet-label"><span> </span></div> <!-- button column -->
|
|
<div class="sheet-label"><span data-i18n="weapon-u">Weapon</span></div>
|
|
<div class="sheet-label"><span data-i18n="skill rating-u">Skill Rating</span></div>
|
|
<div class="sheet-label"><span data-i18n="damage-u">Damage</span></div>
|
|
<div class="sheet-label"><span data-i18n="range-u">Range</span></div>
|
|
<div class="sheet-label"><span data-i18n="ammo-u">Ammo</span></div>
|
|
<div class="sheet-label"><span data-i18n="cost-u">Cost</span></div>
|
|
<div class="sheet-label"><span data-i18n="ammo cost-u">Ammo Cost</span></div>
|
|
<div class="sheet-label" style="text-align: center;"><span data-i18n="features-u">Features</span></div>
|
|
</div>
|
|
|
|
<fieldset class="repeating_weapons">
|
|
<div class="sheet-row1">
|
|
<!-- How to prevent negative damage: Multiple Sub-Roll Drop? -->
|
|
<!-- e.g. /r {2d10+0+1-2-11,{0}}d1 -->
|
|
<!-- will consider adding this complexity -->
|
|
|
|
<input type="hidden" name="attr_isRangeWeapon" value="0">
|
|
<input type="hidden" name="attr_isNotRangeWeapon" value="1"> <!-- there is no ! (not) function for rolling -->
|
|
|
|
<button class="sheet-attackd10-button" type="roll" name="roll_attackroll" value="&{template:check} {{name=@{character_name} *attacks with* @{weapon_name}}} {{Roll=[[2d10+@{weapon_skill}+?{Weapon Stunts?|0}+@{attackRangeModifiers}*@{isRangeWeapon}+?{Location Attack Modifier?|0}-@{woundLevel}]]}} {{Damage=[[2d10+@{weapon_damage}+@{vitality_current}*@{isNotRangeWeapon}+?{Location Damage Modifier?|0}-?{Opponent Armour?|0}]]}} {{Check=[[1]]}}"></button>
|
|
<input type="text" style="text-align: left" name="attr_weapon_name" value="" title="@{weapon_name}"/>
|
|
<input type="text" name="attr_weapon_skill" value="0" title="@{weapon_skill}"/>
|
|
<input type="text" name="attr_weapon_damage" value="0" title="@{weapon_damage}"/>
|
|
<input type="text" name="attr_weapon_range" value="-" title="@{weapon_range}"/>
|
|
<input type="text" name="attr_weapon_ammo" value="-" title="@{weapon_ammo}"/>
|
|
<input type="text" name="attr_weapon_cost" value="-" title="@{weapon_cost}"/>
|
|
<input type="text" name="attr_weapon_ammo-cost" value="-" title="@{weapon_ammo-cost}"/>
|
|
<input type="text" name="attr_weapon_features" value="" title="@{weapon_features}"/>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<div style="display:block"> </div>
|
|
|
|
<div class="sheet-possessions">
|
|
<div class="sheet-subattributes-header" style="text-align: center; width: auto;" ><span data-i18n="possessions-u">Possessions</span></div>
|
|
<input class="sheet-qif" type="text" name="attr_possession1">
|
|
<input class="sheet-qif" type="text" name="attr_possession2">
|
|
<input class="sheet-qif" type="text" name="attr_possession3">
|
|
<input class="sheet-qif" type="text" name="attr_possession4">
|
|
<input class="sheet-qif" type="text" name="attr_possession5">
|
|
<input class="sheet-qif" type="text" name="attr_possession6">
|
|
<input class="sheet-qif" type="text" name="attr_possession7">
|
|
<input class="sheet-qif" type="text" name="attr_possession8">
|
|
<input class="sheet-qif" type="text" name="attr_possession9">
|
|
<input class="sheet-qif" type="text" name="attr_possession10">
|
|
<input class="sheet-qif" type="text" name="attr_possession11">
|
|
<input class="sheet-qif" type="text" name="attr_possession12">
|
|
<input class="sheet-qif" type="text" name="attr_possession13">
|
|
<input class="sheet-qif" type="text" name="attr_possession14">
|
|
<input class="sheet-qif" type="text" name="attr_possession15">
|
|
<input class="sheet-qif" type="text" name="attr_possession16">
|
|
<input class="sheet-qif" type="text" name="attr_possession17">
|
|
<input class="sheet-qif" type="text" name="attr_possession18">
|
|
<input class="sheet-qif" type="text" name="attr_possession19">
|
|
<input class="sheet-qif" type="text" name="attr_possession20">
|
|
</div>
|
|
<div class="sheet-notes">
|
|
<div class="sheet-subattributes-header" style="text-align: center;" ><span data-i18n="notes-u">Notes</span></div>
|
|
<input class="sheet-qif" type="text" name="attr_notes1">
|
|
<input class="sheet-qif" type="text" name="attr_notes2">
|
|
<input class="sheet-qif" type="text" name="attr_notes3">
|
|
<input class="sheet-qif" type="text" name="attr_notes4">
|
|
<input class="sheet-qif" type="text" name="attr_notes5">
|
|
<input class="sheet-qif" type="text" name="attr_notes6">
|
|
<input class="sheet-qif" type="text" name="attr_notes7">
|
|
<input class="sheet-qif" type="text" name="attr_notes8">
|
|
<input class="sheet-qif" type="text" name="attr_notes9">
|
|
<input class="sheet-qif" type="text" name="attr_notes10">
|
|
<input class="sheet-qif" type="text" name="attr_notes11">
|
|
<input class="sheet-qif" type="text" name="attr_notes12">
|
|
<input class="sheet-qif" type="text" name="attr_notes13">
|
|
<input class="sheet-qif" type="text" name="attr_notes14">
|
|
<input class="sheet-qif" type="text" name="attr_notes15">
|
|
<input class="sheet-qif" type="text" name="attr_notes16">
|
|
<input class="sheet-qif" type="text" name="attr_notes17">
|
|
<input class="sheet-qif" type="text" name="attr_notes18">
|
|
<input class="sheet-qif" type="text" name="attr_notes19">
|
|
<input class="sheet-qif" type="text" name="attr_notes20">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Roll Templates -->
|
|
<rolltemplate class="sheet-rolltemplate-initiative">
|
|
<div class="container">
|
|
<div><h1>Initiative *for* {{name}}</h1></div>
|
|
<div class="arrow-container"><div class="arrow-right"></div></div>
|
|
<div class="rowcolor"><span class="tcat">Rolled: </span>{{computed::roll1}}</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<rolltemplate class="sheet-rolltemplate-check">
|
|
<div class="container">
|
|
<div><h1>{{name}}{{#SkillName}} *for* {{SkillName}}{{/SkillName}}</h1></div>
|
|
<div class="arrow-container"><div class="arrow-right"></div></div>
|
|
{{#Check}}
|
|
<div class="rowcolor"><span class="tcat">Check: </span>{{Roll}}</div>
|
|
{{/Check}}
|
|
{{#DR}}
|
|
<div class="rowcolor"><span class="tcat">DR: </span>{{DR}}</div>
|
|
{{#rollLess() Roll DR }}
|
|
<div class="rowcolor"><span class="tcat">Result: </span>Failure</div>
|
|
{{/rollLess() Roll DR }}
|
|
{{#^rollLess() Roll DR }}
|
|
<div class="rowcolor"><span class="tcat">Result: </span>Success!</div>
|
|
{{/^rollLess() Roll DR }}
|
|
{{/DR}}
|
|
{{#Location}}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>{{Roll}}</div>
|
|
{{#rollTotal() Roll 2 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Head or Vital Location</div>
|
|
{{/rollTotal() Roll 2 }}
|
|
{{#rollBetween() Roll 3 4 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Left arm</div>
|
|
{{/rollBetween() Roll 3 4 }}
|
|
{{#rollBetween() Roll 5 7 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Left leg</div>
|
|
{{/rollBetween() Roll 5 7 }}
|
|
{{#rollBetween() Roll 8 14 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Torso</div>
|
|
{{/rollBetween() Roll 8 14 }}
|
|
{{#rollBetween() Roll 15 17 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Right leg</div>
|
|
{{/rollBetween() Roll 15 17 }}
|
|
{{#rollBetween() Roll 18 19 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Right arm</div>
|
|
{{/rollBetween() Roll 18 19 }}
|
|
{{#rollTotal() Roll 20 }}
|
|
<div class="rowcolor"><span class="tcat">Location: </span>Head or Vital Location</div>
|
|
{{/rollTotal() Roll 20 }}
|
|
{{/Location}}
|
|
{{#Damage}}
|
|
<div class="rowcolor"><span class="tcat" data-i18n-title="possible damage">Damage: </span>{{Damage}}</div>
|
|
{{/Damage}}
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<!-- Maybe later? -->
|
|
<rolltemplate class="sheet-rolltemplate-melee">
|
|
<div class="container">
|
|
{{#Actor}}
|
|
<div><span class="subheader">{{Actor}}'s </span></div>
|
|
{{/Actor}}
|
|
<div><h1>{{Name}}</h1></div>
|
|
<div class="arrow-container"><div class="arrow-right"></div></div>
|
|
<div class="rowcolor"><span class="tcat">{{Type}}: </span>{{Roll}}</div>
|
|
|
|
{{#DR}}
|
|
<div class="rowcolor"><span class="tcat" title="Victory Sum - succeed by rolling over this amount">DR: </span>{{DR}}</div>
|
|
{{#rollLess() Roll DR }}
|
|
<div class="rowcolor"><span class="tcat">Result: </span>Failure</div>
|
|
{{/rollLess() Roll DR }}
|
|
{{#^rollLess() Roll DR }}
|
|
<div class="rowcolor"><span class="tcat">Result: </span>Success!</div>
|
|
<div class="rowcolor"><span class="tcat">Damage: </span>{{Damage}}</div>
|
|
{{/^rollLess() Roll DR }}
|
|
{{/DR}}
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-complication">
|
|
<div class="container">
|
|
<div><h1>{{name}} *rolls* Complications</h1></div>
|
|
<div class="arrow-container"><div class="arrow-right"></div></div>
|
|
<div class="rowcolor"><span class="tcat">Roll: </span>{{Roll}}</div>
|
|
{{#rollTotal() Roll 2 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Severed Artery</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Severed Artery</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Severed Artery</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Damaged Heart</div>
|
|
{{/rollTotal() Roll 2 }}
|
|
{{#rollTotal() Roll 3 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Amputated Hand</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Destroyed Jaw</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Severed Artery</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Damaged Heart</div>
|
|
{{/rollTotal() Roll 3 }}
|
|
{{#rollTotal() Roll 4 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Amputated Hand</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Destroyed Jaw</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Amputated Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Spinal Damage</div>
|
|
{{/rollTotal() Roll 4 }}
|
|
{{#rollTotal() Roll 5 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Severed or Destroyed Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Dislocated Jaw</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Amputated Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Spinal Damage</div>
|
|
{{/rollTotal() Roll 5 }}
|
|
{{#rollTotal() Roll 6 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Severed or Destroyed Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Dislocated Jaw</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Fractured Hip</div>
|
|
{{/rollTotal() Roll 6 }}
|
|
{{#rollTotal() Roll 7 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Dislocated Jaw</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Fractured Hip</div>
|
|
{{/rollTotal() Roll 7 }}
|
|
{{#rollTotal() Roll 8 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Concussed</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 8 }}
|
|
{{#rollTotal() Roll 9 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Concussed</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Foot</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 9 }}
|
|
{{#rollTotal() Roll 10 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Severed or Destroyed Fingers</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Concussed</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 10 }}
|
|
{{#rollTotal() Roll 11 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Concussed</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 11 }}
|
|
{{#rollTotal() Roll 12 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Concussed</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 12 }}
|
|
{{#rollTotal() Roll 13 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Disfiguring Scar</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Torn Muscle</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Broken Ribs</div>
|
|
{{/rollTotal() Roll 13 }}
|
|
{{#rollTotal() Roll 14 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Arm</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Disfiguring Scar</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Leg</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Major Organ Damage</div>
|
|
{{/rollTotal() Roll 14 }}
|
|
{{#rollTotal() Roll 15 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Arm</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Disfiguring Scar</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Leg</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Major Organ Damage</div>
|
|
{{/rollTotal() Roll 15 }}
|
|
{{#rollTotal() Roll 16 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Broken Arm</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Disoculated</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Broken Leg</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Major Organ Damage</div>
|
|
{{/rollTotal() Roll 16 }}
|
|
{{#rollTotal() Roll 17 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Compound Fracture</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Disoculated</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Compound Fracture</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Collapsed Lung</div>
|
|
{{/rollTotal() Roll 17 }}
|
|
{{#rollTotal() Roll 18 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Compound Fracture</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Lost Eye</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Compound Fracture</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Collapsed Lung</div>
|
|
{{/rollTotal() Roll 18 }}
|
|
{{#rollTotal() Roll 19 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Amputated Arm</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Lost Eye</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Amputated Leg</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Disembowelled</div>
|
|
{{/rollTotal() Roll 19 }}
|
|
{{#rollTotal() Roll 20 }}
|
|
<div class="rowcolor"><span class="tcat">Arm: </span>Amputated Arm</div>
|
|
<div class="rowcolor"><span class="tcat">Head: </span>Shattered Skull</div>
|
|
<div class="rowcolor"><span class="tcat">Leg: </span>Amputated Leg</div>
|
|
<div class="rowcolor"><span class="tcat">Torso: </span>Disembowelled</div>
|
|
{{/rollTotal() Roll 20 }}
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<script type="text/worker">
|
|
|
|
on("sheet:opened", function(eventInfo){
|
|
|
|
|
|
getAttrs(["setupDone"], function(pvalue) {
|
|
console.log("Hello there");
|
|
|
|
let SetupDone=parseInt(pvalue.setupDone);
|
|
console.log("setupdone: "+SetupDone );
|
|
|
|
if (SetupDone==0){
|
|
console.log("Do setup");
|
|
|
|
incSkill("repeating_skills-left"," ","");
|
|
incSkill("repeating_skills-left"," ","");
|
|
incSkill("repeating_skills-left"," ","");
|
|
incSkill("repeating_skills-right"," ","");
|
|
incSkill("repeating_skills-right"," ","");
|
|
incSkill("repeating_skills-right"," ","");
|
|
|
|
setAttrs({setupDone:1});
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
function incSkill(section,skill,value){
|
|
getSectionIDs(section, function(idArray) {
|
|
var found = false;
|
|
if (idArray.length > 0) {
|
|
var fields = [];
|
|
_.each(idArray, function(currentID) {
|
|
fields.push(section+"_" + currentID + "_skill");
|
|
fields.push(section+"_" + currentID + "_skillValue");
|
|
});
|
|
getAttrs(fields, function(values) {
|
|
_.each(idArray, function(currentID, i) {
|
|
var curSkill = values[section+"_" + idArray[i] + "_skill"];
|
|
if (curSkill === skill){
|
|
found = true;
|
|
}
|
|
});
|
|
if (!found) {
|
|
//console.log(skill+""+section+" add !!!!!!!!!!!");
|
|
addSkill(section,skill,value);
|
|
}
|
|
});
|
|
}
|
|
else{
|
|
addSkill(section,skill,value);
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
|
|
function addSkill(section,skill,value){
|
|
var id=getId();
|
|
var setObj = {};
|
|
setObj[section+"_"+id+'_skill']=skill;
|
|
setAttrs(setObj);
|
|
setObj[section+"_"+id+'_skillValue']=value;
|
|
//console.log("!!!!!!!!! skill value: "+value);
|
|
setAttrs(setObj);
|
|
}
|
|
|
|
|
|
function getId(){
|
|
const sattrs = {};
|
|
const createdIDs = [];
|
|
var retId = 0;
|
|
if (createdIDs.length==0){
|
|
retId = generateRowID();
|
|
createdIDs.push(retId);
|
|
}
|
|
var checkit = true;
|
|
while (checkit==true) {
|
|
let newID = generateRowID();
|
|
//console.log("Newid "+newID);
|
|
if (!createdIDs.includes(newID)) {
|
|
newrowid = newID;
|
|
//console.log("newrowid "+newID);
|
|
createdIDs.push(newrowid);
|
|
checkit=false;
|
|
}
|
|
}
|
|
retId = newrowid;
|
|
|
|
return retId;
|
|
}
|
|
|
|
|
|
|
|
on('clicked:initiative', (info) => {
|
|
startRoll("&{template:initiative} {{name=@{character_name}}} {{roll1=[[2d10+@{prowess} &{tracker}]]}}", (results) => {
|
|
const total = results.results.roll1.result;
|
|
const computed = total;
|
|
/* console.log(" *** Action Initiative: ");
|
|
console.log(" roll1Dice " + results.results.roll1.dice );
|
|
console.log(" roll1Result " + results.results.roll1.result );
|
|
console.log(" roll1Expression " + results.results.roll1.expression );
|
|
*/
|
|
|
|
setAttrs({ initiative: computed });
|
|
|
|
finishRoll(
|
|
results.rollId,
|
|
{
|
|
roll1: computed
|
|
}
|
|
);
|
|
});
|
|
});
|
|
|
|
|
|
// Set isRangeWeapon and isNotRangeWeapon based on weapon_range
|
|
on('change:repeating_weapons:weapon_range', function(eventInfo) {
|
|
let NewRange = eventInfo.newValue;
|
|
let Range = parseInt(NewRange)||0;
|
|
let NotRange = 1;
|
|
if (Range != 0)
|
|
{ Range = 1; NotRange = 0; }
|
|
|
|
let OldRange = eventInfo.previousValue;
|
|
let Source = eventInfo.sourceAttribute;
|
|
console.log(" +-+-+-+-+- Change repeating_weapons: Range[0 or 1]: " + Range + " New Range " + NewRange + " from " + OldRange + " source " + Source);
|
|
|
|
setAttrs({
|
|
repeating_weapons_isRangeWeapon: Range, repeating_weapons_isNotRangeWeapon: NotRange
|
|
});
|
|
});
|
|
|
|
// Set wound level and wound total
|
|
on("change:torsoWnd change:rightArmWnd change:rightLegWnd change:headWnd change:leftArmWnd change:leftLegWnd", function(eventInfo) {
|
|
let NewWound = eventInfo.newValue;
|
|
let OldWound = eventInfo.previousValue;
|
|
let WoundLocation = eventInfo.sourceAttribute;
|
|
console.log(" +-+-+-+-+- Change wound " + WoundLocation + " New level " + NewWound + " from " + OldWound);
|
|
|
|
getAttrs(["torsoWnd","rightArmWnd","rightLegWnd","headWnd","leftArmWnd","leftLegWnd","vitality_current"], function(values) {
|
|
let Torso = parseInt(values.torsoWnd)||0;
|
|
let RightArm = parseInt(values.rightArmWnd)||0;
|
|
let RightLeg = parseInt(values.rightLegWnd)||0;
|
|
let Head = parseInt(values.headWnd)||0;
|
|
let LeftArm = parseInt(values.leftArmWnd)||0;
|
|
let LeftLeg = parseInt(values.leftLegWnd)||0;
|
|
let Vitality = parseInt(values.vitality_current)||0;
|
|
|
|
let WoundTotal = Torso + RightArm + RightLeg + Head + LeftArm + LeftLeg;
|
|
let SeverityLevel = "Uninjured";
|
|
let WoundLevel = 0;
|
|
let TotalIncapacitating = 0;
|
|
let MostSerious = Torso;
|
|
let SeriousLocation = "Torso";
|
|
|
|
if (RightArm > MostSerious) { MostSerious = RightArm; SeriousLocation = "Right Arm"; }
|
|
if (RightLeg > MostSerious) { MostSerious = RightLeg; SeriousLocation = "Right Leg"; }
|
|
if (Head > MostSerious) { MostSerious = Head; SeriousLocation = "Head"; }
|
|
if (LeftArm > MostSerious) { MostSerious = LeftArm; SeriousLocation = "Left Arm"; }
|
|
if (LeftLeg > MostSerious) { MostSerious = LeftLeg; SeriousLocation = "Left Leg"; }
|
|
console.log(" Wounds: Torso " + Torso + " RightArm " + RightArm + " RightLeg " + RightLeg + " Head " + Head + " LeftArm " + LeftArm + " LeftLeg " + LeftLeg);
|
|
console.log(" Total Wounds: " + WoundTotal + " Most Serious: " + MostSerious + " Location: " + SeriousLocation);
|
|
|
|
// Total Incapacitating Wounds
|
|
if (Torso > 16) { ++TotalIncapacitating; }
|
|
if (RightArm > 16) { ++TotalIncapacitating; }
|
|
if (RightLeg > 16) { ++TotalIncapacitating; }
|
|
if (Head > 16) { ++TotalIncapacitating; }
|
|
if (LeftArm > 16) { ++TotalIncapacitating; }
|
|
if (LeftLeg > 16) { ++TotalIncapacitating; }
|
|
console.log(" Total Incapacitating: " + TotalIncapacitating + " Vitality: " + Vitality);
|
|
|
|
if (TotalIncapacitating >= Vitality) {
|
|
SeverityLevel = "Fatal*";
|
|
} else {
|
|
|
|
if (MostSerious > 20) {
|
|
SeverityLevel = "Fatal";
|
|
WoundLevel = 11;
|
|
} else if (MostSerious > 16) {
|
|
SeverityLevel = "Incapacitating Wound";
|
|
WoundLevel = 3;
|
|
} else if (MostSerious > 11) {
|
|
SeverityLevel = "Serious Wound";
|
|
WoundLevel = 2;
|
|
} else if (MostSerious > 0) {
|
|
SeverityLevel = "Flesh Wound";
|
|
WoundLevel = 1;
|
|
}
|
|
}
|
|
console.log(" SeverityLevel: " + SeverityLevel);
|
|
|
|
setAttrs({
|
|
woundLevel: WoundLevel, woundTotal: WoundTotal
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Set Prowess = Coordination + Wits
|
|
on("change:coordination_base change:wit_base ", function(eventInfo) {
|
|
let NewAttribute = eventInfo.newValue;
|
|
let OldAttribute = eventInfo.previousValue;
|
|
let SourceAttribute = eventInfo.sourceAttribute;
|
|
|
|
getAttrs(["coordination_base","wit_base"], function(values) {
|
|
let Coordination = parseInt(values.coordination_base)||0;
|
|
let Wit = parseInt(values.wit_base)||0;
|
|
let Prowess = Coordination + Wit;
|
|
let Actions = 1;
|
|
if (Prowess > 12) {
|
|
Actions = 4;
|
|
} else if (Prowess > 8) {
|
|
Actions = 3;
|
|
} else if (Prowess > 4) {
|
|
Actions = 2;
|
|
}
|
|
console.log(" Coordination: " + Coordination + " Wit " + Wit + " therefore Prowess = " + Prowess);
|
|
setAttrs({
|
|
prowess: Prowess, actions: Actions
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* On an intellectual level I know this should be done as arrays, but don't know how - sigh */
|
|
on("change:affliction_aiming change:affliction_offHand change:affliction_moving change:affliction_visibility change:affliction_longRange change:affliction_extremeRange change:affliction_partial change:affliction_obscured", function(eventInfo) {
|
|
let Value = eventInfo.newValue;
|
|
let Source = eventInfo.sourceAttribute;
|
|
let AttackRangeModifiers = 0;
|
|
console.log("****** Affliction Change: source " + Source + " Value " + Value);
|
|
getAttrs(["visibility", "affliction_aiming", "affliction_offHand", "affliction_moving", "affliction_visibility", "affliction_longRange", "affliction_extremeRange", "affliction_partial", "affliction_obscured"], function(values) {
|
|
|
|
let Visibility = parseInt(values.visibility) || 0 ;
|
|
let aimed = values.affliction_aiming == 'on' ? 1 : 0;
|
|
let offHand = values.affliction_offHand == 'on' ? 1 : 0;
|
|
let moving = values.affliction_moving == 'on' ? 1 : 0;
|
|
let visibility = values.affliction_visibility == 'on' ? 1 : 0;
|
|
let longRange = values.affliction_longRange == 'on' ? 1 : 0;
|
|
let extremeRange = values.affliction_extremeRange == 'on' ? 1 : 0;
|
|
let partial = values.affliction_partial == 'on' ? 1 : 0;
|
|
let obscured = values.affliction_obscured == 'on' ? 1 : 0;
|
|
console.log(" aimed " + aimed + " offHand " + offHand + " moving " + moving + " visibility " + visibility + " longRange " + longRange + " extremeRange " + extremeRange + " partial " + partial + " obscured " + obscured);
|
|
|
|
if (aimed) { AttackRangeModifiers += 5; console.log(" Aiming +5 ") }
|
|
if (offHand) { AttackRangeModifiers += -3; console.log(" OffHand -3 ") }
|
|
if (moving) { AttackRangeModifiers += -2; console.log(" Moving -2 ") }
|
|
if (visibility) { AttackRangeModifiers += Visibility; console.log(" Visibility " + Visibility) }
|
|
if (longRange) { AttackRangeModifiers += -2; console.log(" LongRange -2 ") }
|
|
if (extremeRange) { AttackRangeModifiers += -5; console.log(" ExtremeRange -5 ") }
|
|
if (partial) { AttackRangeModifiers += -2; console.log(" Partial -2 ") }
|
|
if (obscured) { AttackRangeModifiers += -4; console.log(" obscured -4 ") }
|
|
|
|
setAttrs({ AttackRangeModifiers: AttackRangeModifiers });
|
|
});
|
|
});
|
|
|
|
</script>
|