Files
William Barker ad1e6d1307 Unhallowed Metropolis
New Character Sheet for Unhallowed Metropolis with (kind) permission of Strix Publishing
2025-03-28 15:46:18 -04:00

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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</div>
</div>
<div class="sheet-skills1">
<div style="display:block">&nbsp;</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">&nbsp;</div>
<div class="sheet-attributes-header"><span>&nbsp;</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">&nbsp;</div>
<div style="display:block">&nbsp;</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">&nbsp;</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}}&#39;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>