mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
5504 lines
341 KiB
HTML
5504 lines
341 KiB
HTML
<!--5/31/20 set data version manually with currentVersion IN SHEETWORKERS -->
|
|
<input type="hidden" name="attr_version" value="0" />
|
|
<!--6/21/21 set sheet version manually with currentVersion HERE -->
|
|
<input type="hidden" name="attr_sheetversion" value="2.02" />
|
|
<!--6/21/21 sets indicator of new sheet HERE -->
|
|
<input type="hidden" name="attr_is_new_character" value="1" />
|
|
<!--6/21/21 sets verbose debugging, if implemented -->
|
|
<input type="hidden" name="attr_verbose_logging" value="0" />
|
|
<!-- Sheet visibility and behavioural attributes -->
|
|
<input class="tab" type="hidden" name="attr_tab" value="character">
|
|
<input class="hidden attr-chartype-selected" name="attr_chartype" value="(@{chartype})" type="hidden" hidden readonly />
|
|
<input class="hidden header-bgimg" type="checkbox" name="attr_header-bgimg" value="1" hidden readonly />
|
|
<input class="hidden adv-modifiers" type="checkbox" name="attr_adv-modifiers" value="1" hidden readonly />
|
|
<input class="hidden adv-monsterinfo" type="checkbox" name="attr_force_show_monsterinfo" value="1" hidden readonly />
|
|
|
|
<!-- LOGO -->
|
|
<div class="logo" title="MUTANT YEAR ZERO" data-i18n-title="logo-myz">
|
|
<span class="sheet-logo-image lang-sv"></span>
|
|
</div>
|
|
|
|
<!--tabs
|
|
<span class="separator-m"> </span>
|
|
<input class="tab character" name="attr_tab" data-i18n-title="character" title="Character" type="radio" value="1" checked />
|
|
<input class="tab ark" name="attr_tab" data-i18n-title="ark" title="Ark" type="radio" value="2" />
|
|
<input class="tab monster_only" name="attr_tab" data-i18n-title="npc-monster" title="NPC/Monster" type="radio" value="3" />
|
|
<select class="input-text select-chartype" name="attr_chartype" value="">
|
|
<option value="Character Type" data-i18n="chartype" value="Mutant" selected hidden disabled>Character type</option>
|
|
<option class="character-type" value="Mutant" data-i18n="mutant">Mutant</option>
|
|
<option class="character-type" value="Animal" data-i18n="animal">Animal</option>
|
|
<option class="character-type" value="Robot" data-i18n="robot">Robot</option>
|
|
<option class="character-type" value="Human" data-i18n="human">Human</option>
|
|
</select>
|
|
<input class="tab settings" name="attr_tab" data-i18n-title="settings" title="Settings" type="radio" value="5" />
|
|
-->
|
|
|
|
<!--tabs-->
|
|
<div class="grid-tabs">
|
|
<button class="tab character" data-i18n="character" title="Character" name="act_tab_character" type="action">Character</button>
|
|
<button class="tab ark" data-i18n="ark" name="act_tab_ark" title="Ark" type="action">Ark</button>
|
|
<button class="tab zonelog" data-i18n="zone-log" name="act_tab_zonelog" title="Zone Log" type="action">Zone Log</button>
|
|
<button class="tab monster" data-i18n="monster" name="act_tab_monster" title="Monster" type="action">Monster</button>
|
|
<select class="input-text select-chartype" name="attr_chartype" value="">
|
|
<option class="character-type" value="Mutant" data-i18n="chartype" selected hidden disabled style="background-color: rgb(160, 14, 14);">Type</option>
|
|
<option class="character-type" value="Mutant" data-i18n="mutant">Mutant</option>
|
|
<option class="character-type" value="Animal" data-i18n="animal">Animal</option>
|
|
<option class="character-type" value="Robot" data-i18n="robot">Robot</option>
|
|
<option class="character-type" value="Human" data-i18n="human">Human</option>
|
|
</select>
|
|
<button class="tab settings" data-i18n-title="settings" name="act_tab_settings" title="Settings" type="action" value="5"></button>
|
|
<!--img alt="Mutant Year Zero" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Mutant%20Year%20Zero/images/logo.jpg"-->
|
|
</div>
|
|
|
|
<div class="wrapper tab-content character character-grid">
|
|
|
|
|
|
<div class="character-grid">
|
|
|
|
<div class="character-heading box toggle-pc-only chartype-background-light">
|
|
<div class="heading-grid">
|
|
<div class="heading-box heading-box1">
|
|
<span class="sheet-label" data-i18n="name">Name</span><br>
|
|
<input class="input input-center" type="text" name="attr_character_name" value="" title="@{character_name}" />
|
|
</div>
|
|
<div class="heading-box heading-box3 char-human">
|
|
<span class="sheet-label" data-i18n="house">House</span><br>
|
|
<input class="input input-center" type="text" name="attr_house" value="" title="@{house}" />
|
|
</div>
|
|
<div class="heading-box heading-box3 char-animal">
|
|
<span class="sheet-label" data-i18n="animaltype">Animal Type</span><br>
|
|
<select class="input input-center" type="text" name="attr_animal_type" value="Animal type" title="@{animal_type}">
|
|
<option value="animaltype" data-i18n="animaltype" selected disabled hidden >Animal type</option>
|
|
<option value="dogs" data-i18n="dogs">Dogs</option>
|
|
<option value="cats" data-i18n="cats">Cats</option>
|
|
<option value="rats" data-i18n="rats">Rats</option>
|
|
<option value="bears" data-i18n="bears">Bears</option>
|
|
<option value="apes" data-i18n="apes">Apes</option>
|
|
<option value="rabbits" data-i18n="rabbits">Rabbits</option>
|
|
<option value="badgers" data-i18n="badgers">Badgers</option>
|
|
<option value="reptiles" data-i18n="reptiles">Reptiles</option>
|
|
<option value="moose" data-i18n="moose">Moose</option>
|
|
<option value="other" data-i18n="other">Other</option>
|
|
</select>
|
|
</div>
|
|
<div class="heading-box heading-box3 char-animal">
|
|
<span class="sheet-label" data-i18n="species">Species</span><br>
|
|
<input class="input input-center" type="text" name="attr_species" value="" title="@{species}" />
|
|
</div>
|
|
<div class="heading-box heading-box4 char-robot">
|
|
<span class="sheet-label" data-i18n="model">Model</span><br>
|
|
<input class="input input-center" type="text" name="attr_model" value="" title="@{model}" />
|
|
</div>
|
|
<div class="heading-box heading-box5m char-mutant">
|
|
<span class="sheet-label" data-i18n="role">Role</span><br>
|
|
<input class="input input-center" type="text" name="attr_role" value="" title="@{role}" />
|
|
</div>
|
|
<div class="heading-box heading-box5 char-animal">
|
|
<span class="sheet-label" data-i18n="role">Role</span><br>
|
|
<input class="input input-center" type="text" name="attr_role" value="" title="@{role}" />
|
|
</div>
|
|
<div class="heading-box heading-box5 char-human">
|
|
<span class="sheet-label" data-i18n="profession">Profession</span><br>
|
|
<input class="input input-center" type="text" name="attr_profession" value="" title="@{profession}" />
|
|
</div>
|
|
<div class="heading-box heading-box6 char-robot">
|
|
<span class="sheet-label" data-i18n="personality">Personality</span><br>
|
|
<input class="input input-center" type="text" name="attr_personality" value="" title="@{personality}" />
|
|
</div>
|
|
<div class="heading-box heading-box7 char-human char-animal char-mutant">
|
|
<span class="sheet-label" data-i18n="age">Age</span><br>
|
|
<input type="number" class="input-number" name="attr_age" min="0" title="@{age}">
|
|
</div>
|
|
<div class="heading-box heading-box9 char-human">
|
|
<span class="sheet-label" data-i18n-title="reputation-title" data-i18n="reputation">Reputation</span><br>
|
|
<input type="number" class="input-number" name="attr_reputation" title="@{reputation}" />
|
|
</div>
|
|
<div class="heading-box heading-box9 char-robot">
|
|
<span class="sheet-label" data-i18n="hierarchy">Hierarchy</span><br>
|
|
<input type="number" class="input-number" name="attr_hierarchy" title="@{hierarchy}" />
|
|
</div>
|
|
<div class="heading-box heading-box9 char-animal">
|
|
<span class="sheet-label" data-i18n="rank">Rank</span><br>
|
|
<input type="number" class="input-number" name="attr_rank" title="@{rank}" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-attributes monster-grid chartype-background-dark box">
|
|
<!--Monster Stats-->
|
|
<div class="monster monster-stat1 toggle-monster-only">
|
|
<span class="header monster-stats-box1">
|
|
<input class="input-number header-h1" type="text" name="attr_character_name" value="" title="@{character_name}" data-i18n-placeholder="monster-name" placeholder="Monster's Name/Type" />
|
|
</span>
|
|
</div>
|
|
<div class="attributes-grid monster-flex chartype-background-dark">
|
|
<div class="attributes-box1 toggle-pc-only header">
|
|
<h1 data-i18n="attributes-u">ATTRIBUTES</h1>
|
|
</div> <!-- Broken Indicators -->
|
|
<input class="broken-str" type="hidden" name="attr_strength_total" value="0" />
|
|
<input class="broken-agi" type="hidden" name="attr_agility_total" value="0" />
|
|
<input class="broken-wit" type="hidden" name="attr_wits_total" value="0" />
|
|
<input class="broken-emp" type="hidden" name="attr_empathy_total" value="0" />
|
|
<div class="attributes-box2">
|
|
<button type="action" name="act_strength_roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-str" data-i18n="strength" name="attr_strength_name">Strength</span>
|
|
</button>
|
|
</div>
|
|
<div class="attributes-box3">
|
|
<!-- PC or Monster Strength attr_strength updates pc/monster str depending on sheet tab-->
|
|
<input class="broken-str" type="hidden" name="attr_strength" value="1" />
|
|
<input class="input-number broken-str toggle-monster-only" type="number" name="attr_strength_monster" value="1" min="0" max="40" title="@{strength_monster}" />
|
|
<input class="input-number broken-str toggle-pc-only" type="number" name="attr_strength_pc" value="1" min="0" max="6" title="@{strength_pc}" />
|
|
</div>
|
|
<div class="attributes-box4">
|
|
<input class="broken-str" type="hidden" name="attr_strength" />
|
|
<input type="radio" name="attr_damage" value="0" style="margin: 4px 8px 3px 2px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="1" title="1 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="2" title="2 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="3" title="3 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="4" title="4 @{damage}" /><span>☣</span><span class="break-at-four"><br /></span>
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="5" title="5 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_damage" value="6" title="6 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="7" title="7 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="8" title="8 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="9" title="9 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="10" title="10 @{damage}" /><span>☣</span>
|
|
<!--force line break for 2nd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="11" title="11 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="12" title="12 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="13" title="13 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="14" title="14 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="15" title="15 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="16" title="16 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="17" title="17 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="18" title="18 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="19" title="19 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_damage" value="20" title="20 @{damage}" /><span>☣</span>
|
|
<!--force line break for 3rd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<!--input class="monster extra-damage-show" type="checkbox" name="attr_show_more_damage" value="1" data-i18n-title="extra-damage" title="Toggle extra damage tracking (25-48)" style="padding-top: 6px;" /-->
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="21" title="21 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="22" title="22 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="23" title="23 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="24" title="24 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="25" title="25 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="26" title="26 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="27" title="27 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="28" title="28 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="29" title="29 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="30" title="30 @{damage}" /><span>☣</span>
|
|
<!--force line break for 4th row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="31" title="31 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="32" title="32 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="33" title="33 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="34" title="34 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="35" title="35 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="36" title="36 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="37" title="37 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="38" title="38 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="39" title="39 @{damage}" /><span>☣</span>
|
|
<input class="skull biohaz monster extra-damage-show" type="radio" name="attr_damage" value="40" title="40 @{damage}" /><span>☣</span>
|
|
</div>
|
|
<div class="attributes-box5">
|
|
<span class="input-span broken-str" name="attr_strength_total" value="1" title="@{strength_total}">1</span>
|
|
</div>
|
|
<div class="attributes-box6">
|
|
<button type="action" name="act_agility_roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-agi" data-i18n="agility" name="attr_agility_name">Agility</span>
|
|
</button>
|
|
</div>
|
|
<div class="attributes-box7">
|
|
<input class="input-number broken-agi" type="number" name="attr_agility" value="1" min="0" title="@{agility}" />
|
|
</div>
|
|
<div class="attributes-box8">
|
|
<input class="broken-agi" type="hidden" name="attr_agility" />
|
|
<input type="radio" name="attr_fatigue" value="0" style="margin: 4px 8px 3px 2px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="1" title="1 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="2" title="2 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="3" title="3 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="4" title="4 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="5" title="5 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_fatigue" value="6" title="6 @{fatigue}" /><span>☣</span>
|
|
<!--force line break for 2nd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="7" title="7 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="8" title="8 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="9" title="9 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="10" title="10 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="11" title="11 @{fatigue}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_fatigue" value="12" title="12 @{fatigue}" /><span>☣</span>
|
|
</div>
|
|
<div class="attributes-box9">
|
|
<span class="input-span broken-agi" name="attr_agility_total" value="1" title="@{agility_total}">1</span>
|
|
</div>
|
|
<div class="attributes-box10">
|
|
<button type="action" name="act_wits_roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-wit" data-i18n="wits" name="attr_wits_name">Wits</span>
|
|
</button>
|
|
</div>
|
|
<div class="attributes-box11">
|
|
<input class="input-number broken-wit" type="number" name="attr_wits" value="1" min="0" title="@{wits}" />
|
|
</div>
|
|
<div class="attributes-box12">
|
|
<input class="broken-wit" type="hidden" name="attr_wits" />
|
|
<input type="radio" name="attr_confusion" value="0" style="margin: 4px 8px 3px 2px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="1" title="1 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="2" title="2 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="3" title="3 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="4" title="4 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="5" title="5 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_confusion" value="6" title="6 @{confusion}" /><span>☣</span>
|
|
<!--force line break for 2nd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="7" title="7 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="8" title="8 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="9" title="9 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="10" title="10 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="11" title="11 @{confusion}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_confusion" value="12" title="12 @{confusion}" /><span>☣</span>
|
|
</div>
|
|
<div class="attributes-box13">
|
|
<span class="input-span broken-wit" name="attr_wits_total" value="1" title="@{wits_total}">1</span>
|
|
</div>
|
|
<div class="attributes-box14">
|
|
<button type="action" name="act_empathy_roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-emp" data-i18n="empathy" name="attr_empathy_name">Empathy</span>
|
|
</button>
|
|
</div>
|
|
<div class="attributes-box15">
|
|
<input class="input-number broken-emp" type="number" name="attr_empathy" value="1" min="0" title="@{empathy}" />
|
|
</div>
|
|
<div class="attributes-box16">
|
|
<input class="broken-emp" type="hidden" name="attr_empathy" />
|
|
<input type="radio" name="attr_doubt" value="0" style="margin: 4px 8px 3px 2px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="1" title="1 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="2" title="2 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="3" title="3 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="4" title="4 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="5" title="5 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz" type="radio" name="attr_doubt" value="6" title="6 @{doubt}" /><span>☣</span>
|
|
<!--force line break for 2nd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<span class="monster" style="width: 21px;"></span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="7" title="7 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="8" title="8 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="9" title="9 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="10" title="10 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="11" title="11 @{doubt}" /><span>☣</span>
|
|
<input class="skull biohaz monster" type="radio" name="attr_doubt" value="12" title="12 @{doubt}" /><span>☣</span>
|
|
</div>
|
|
<div class="attributes-box17">
|
|
<span class="input-span broken-emp" name="attr_empathy_total" value="1" title="@{empathy_total}">1</span>
|
|
</div>
|
|
</div>
|
|
<div class="conditions-grid toggle-pc-only chartype-background-dark">
|
|
<input class="hidden conditions-hungry" type="checkbox" name="attr_hungry" value="1" />
|
|
<div class="conditions-box conditions-box2 conditions-hungry"><input class="input xbox conditions-hungry" type="checkbox" name="attr_hungry" value="1" data-i18n-title="condition-hungry" title="Hungry" /><span></span></div>
|
|
<div class="conditions-box conditions-box3 conditions-hungry">
|
|
<span class="header-h1 conditions-hungry" data-i18n="hungry-condition">Starving</span>
|
|
</div>
|
|
<input class="hidden conditions-sleepy" type="checkbox" name="attr_sleepy" value="1" />
|
|
<div class="conditions-box conditions-box4 conditions-sleepy"><input class="input xbox conditions-sleepy" type="checkbox" name="attr_sleepy" value="1" data-i18n-title="condition-sleepy" title="Sleepy" /><span></span></div>
|
|
<div class="conditions-box conditions-box5 conditions-sleepy">
|
|
<span class="header-h1 conditions-sleepy" data-i18n="sleepy-condition">Sleepless</span>
|
|
</div>
|
|
<input class="hidden conditions-thirsty" type="checkbox" name="attr_thirsty" value="1" />
|
|
<div class="conditions-box conditions-box6 conditions-thirsty"><input class="input xbox conditions-thirsty" type="checkbox" name="attr_thirsty" value="1" data-i18n-title="condition-thirsty" title="Thirsty" /><span></span></div>
|
|
<div class="conditions-box conditions-box7 conditions-thirsty">
|
|
<span class="header-h1 conditions-thirsty" data-i18n="thirsty-condition">Dehydrated</span>
|
|
</div>
|
|
<input class="hidden conditions-cold" type="checkbox" name="attr_cold" value="1" />
|
|
<div class="conditions-box conditions-box8 conditions-cold"><input class="input xbox conditions-cold" type="checkbox" name="attr_cold" value="1" data-i18n-title="condition-cold" title="Cold" /><span></span></div>
|
|
<div class="conditions-box conditions-box9 conditions-cold">
|
|
<span class="header-h1 conditions-cold" data-i18n="cold-condition">Hypothermic</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="monster-features box toggle-monster-only chartype-background-light">
|
|
<div class="monster-features-grid">
|
|
<div class="monster-features-box header">
|
|
<h1 data-i18n="monster-features-u">MONSTER FEATURES</h1>
|
|
</div>
|
|
<div class="monster-features-box1 column-header">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="monster-features-box2 column-header">
|
|
<span data-i18n="features">Features</span>
|
|
</div>
|
|
<div class="monster-features-box3 column-header">
|
|
<span data-i18n="dice">Dice</span>
|
|
</div>
|
|
<div class="monster-features-box4 column-header">
|
|
<span data-i18n="damage-abbr">Dmg</span>
|
|
</div>
|
|
<div class="monster-features-box5 column-header">
|
|
<span data-i18n="range">Range</span>
|
|
</div>
|
|
<div class="monster-features-box6 column-header"></div>
|
|
<div class="monster-features-box8 repeating-fields">
|
|
<fieldset class="repeating_monster">
|
|
<div class="monster-features-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<input class="monster-features-box1 input" type="text" name="attr_attack_name" value="" title="@{repeating_monster_$X_attack_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input class="monster-features-box2 input-text" type="text" name="attr_attack_features" value="" title="@{repeating_monster_$X_attack_features}" />
|
|
<input class="monster-features-box3 input-number" type="number" name="attr_attack_dice" value="0" title="@{repeating_monster_$X_attack_dice}" />
|
|
<input class="monster-features-box4 input-number" type="number" name="attr_attack_damage" value="0" title="@{repeating_monster_$X_attack_damage}" />
|
|
<select class="monster-features-box5 input" name="attr_attack_range" title="@{repeating_monster_$X_attack_range}">
|
|
<option value="n/a" data-i18n="not-applicable-abbr">n/a</option>
|
|
<option value="Arm" data-i18n="arms-length-abbr" selected>Arm's L.</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Long" data-i18n="long">Long</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select>
|
|
<button class="monster-features-box6 roll-button" type="action" name="act_monster-features-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
t
|
|
</button>
|
|
<textarea class="monster-features-box8 input-textarea" name="attr_attack_description" title="@{repeating_monster_$X_attack_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-appearance box toggle-pc-only chartype-background-light">
|
|
<div class="appearance-grid">
|
|
<div class="appearance-box appearance-box1 header">
|
|
<h1 data-i18n="appearance-u">APPEARANCE</h1>
|
|
</div>
|
|
<div class="appearance-box appearance-box2">
|
|
<span class="label char-mutant char-human char-animal" data-i18n="face">Face</span>
|
|
<span class="label char-robot" data-i18n="colour">Colour</span>
|
|
</div>
|
|
<div class="appearance-box appearance-box3">
|
|
<textarea class="input-textarea char-mutant char-human char-animal" name="attr_face" title="@{face}"></textarea>
|
|
<textarea class="input-textarea char-robot" name="attr_robot_colour" title="@{robot_colour}"></textarea>
|
|
</div>
|
|
<div class="appearance-box appearance-box4">
|
|
<span class="label char-mutant char-human char-animal" data-i18n="body">Body</span>
|
|
<span class="label char-robot" data-i18n="voice">Voice</span>
|
|
</div>
|
|
<div class="appearance-box appearance-box5">
|
|
<textarea class="input-textarea char-mutant char-human char-animal" name="attr_body" title="@{body}"></textarea>
|
|
<textarea class="input-textarea char-robot" name="attr_robot_voice" title="@{robot_voice}"></textarea>
|
|
</div>
|
|
<div class="appearance-box appearance-box6 ">
|
|
<span class="label char-mutant char-human char-animal" data-i18n="clothing">Clothing</span>
|
|
<span class="label char-robot" data-i18n="features">Features</span>
|
|
</div>
|
|
<div class="appearance-box appearance-box7">
|
|
<textarea class="input-textarea char-mutant char-human char-animal" name="attr_clothing" title="@{clothing}"></textarea>
|
|
<textarea class="input-textarea char-robot" name="attr_robot_features" title="@{robot_features}"></textarea>
|
|
</div>
|
|
<div class="character-chassis chassis-box chassis-box1 char-robot header">
|
|
<h1 data-i18n="chassisparts-u">CHASSIS PARTS</h1>
|
|
</div>
|
|
<div class="character-chassis chassis-box char-robot chassis-box2">
|
|
<div class="label" data-i18n="head">Head</div>
|
|
<input type="text" class="input-text" name="attr_chassis_head" title="@{chassis_head}">
|
|
</div>
|
|
<div class="character-chassis chassis-box char-robot chassis-box4">
|
|
<div class="label" data-i18n="torso">Torso</div>
|
|
<input type="text" class="input-text" name="attr_chassis_torso" title="@{chassis_torso}">
|
|
</div>
|
|
<div class="character-chassis chassis-box char-robot chassis-box6">
|
|
<div class="label" data-i18n="undercarriage">Undercarriage</div>
|
|
<input type="text" class="input-text" name="attr_chassis_under" title="@{chassis_under}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-injuries box toggle-pc-only chartype-background-light">
|
|
<div class="injuries-grid">
|
|
<div class="injuries-box1 header">
|
|
<h1 data-i18n="critical-u">CRITICAL INJURIES</h1>
|
|
</div>
|
|
<div class="injuries-box2 column-header">
|
|
<span data-i18n="injury">Injury</span>
|
|
</div>
|
|
<div class="injuries-box3 column-header">
|
|
<span data-i18n="lethal">Lethal</span>
|
|
</div>
|
|
<div class="injuries-box4 column-header">
|
|
<span data-i18n="time-limit">Time Limit</span>
|
|
</div>
|
|
<div class="injuries-box5 column-header">
|
|
<span data-i18n="effects">Effects</span>
|
|
</div>
|
|
<div class="injuries-box6 column-header">
|
|
<span data-i18n="heal-time">heal Time</span>
|
|
</div>
|
|
<div class="injuries-box7">
|
|
<fieldset class="repeating_injuries">
|
|
<div class="injuries-grid">
|
|
<input type="text" class="injuries-box8 input" name="attr_injury_name" value="" title="@{repeating_injuries_$X_injury_name}" />
|
|
<select class="injuries-box9 input" name="attr_injury_lethal" title="@{repeating_injuries_$X_injury_lethal}">
|
|
<option value="no" data-i18n="no" selected>No</option>
|
|
<option value="yes" data-i18n="yes">Yes</option>
|
|
<option value="yes -1" data-i18n="yes-1">Yes, -1</option>
|
|
<option value="n/a" data-i18n="not-applicable-abbr">n/a</option>
|
|
</select>
|
|
<input type="text" class="injuries-box10 input" name="attr_injury_time_limit" value="n/a" title="@{repeating_injuries_$X_injury_time_limit}" />
|
|
<input type="text" class="injuries-box11 input" name="attr_injury_effects" value="" title="@{repeating_injuries_$X_injury_effects}" />
|
|
<input type="text" class="injuries-box12 input" name="attr_injury_heal_time" value="n/a" title="@{repeating_injuries_$X_injury_heal_time}" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="injuries-box13">
|
|
<img alt="skull biohaz" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/FBL%20skull.png" title="" style="position: absolute; height: 5em; width: 7em; margin: -2.8em 0 0 -2em;" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-weapons box monster chartype-background-light">
|
|
<div class="weapons-grid">
|
|
<div class="weapons-box weapons-box0 header">
|
|
<h1 style="margin-top: -21px;"></h1>
|
|
</div>
|
|
<div class="weapons-box weapons-box-header header">
|
|
<h1 data-i18n="weapons-u" style="margin-top: -21px;">WEAPONS</h1>
|
|
</div>
|
|
<div class="weapons-box weapons-box-skill column-header">
|
|
<h1 data-i18n="skill" style="margin-top: -21px;">SKILL</h1>
|
|
</div>
|
|
<div class="weapons-box weapons-box-gear column-header">
|
|
<h1 data-i18n="gear" style="margin-top: -21px;">GEAR</h1>
|
|
</div>
|
|
<div class="weapons-box weapons-box-damage column-header">
|
|
<h1 data-i18n="damage" style="margin-top: -21px;">DAMAGE</h1>
|
|
</div>
|
|
<div class="weapons-box weapons-box3 column-header">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box4 column-header">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box5 column-header">
|
|
<span data-i18n="base-dice-abbr" data-i18n-title="base-dice">Base</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box6 column-header separator">
|
|
<span>|</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box7 column-header modifiers-toggled-on">
|
|
<span data-i18n="modifier-abbr" class="modifiers-toggled-on">Mod</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box8 column-header">
|
|
<span data-i18n="skill-level-abbr" data-i18n-title="skill-level" class="modifiers-toggled-off">Skill</span>
|
|
<span data-i18n="total-abbr" class="modifiers-toggled-on">Tot</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box9 column-header separator">
|
|
<span> | </span>
|
|
</div>
|
|
<div class="weapons-box weapons-box11 column-header">
|
|
<span data-i18n="gear-bonus-abbr" data-i18n-title="gear-bonus" class="modifiers-toggled-off">Gear</span>
|
|
<span data-i18n="bonus-abbr" class="modifiers-toggled-on">Bonus</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box12 column-header">
|
|
<span data-i18n="maximum-abbr">Max</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box13 column-header modifiers-toggled-on">
|
|
<span data-i18n="modifier-abbr" data-i18n-title="modifier" class="modifiers-toggled-on">Mod</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box14 column-header modifiers-toggled-on">
|
|
<span data-i18n="total-abbr" data-i18n-title="total" class="modifiers-toggled-on">Sum</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box16 column-header separator">
|
|
<span>|</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box17 column-header">
|
|
<span data-i18n="damage-abbr" data-i18n-title="damage">Dmg</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box18 column-header modifiers-toggled-on">
|
|
<span data-i18n="modifier-abbr" data-i18n-title="modifier" class="modifiers-toggled-on">Mod</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box19 column-header modifiers-toggled-on">
|
|
<span data-i18n="total-abbr" data-i18n-title="total" class="modifiers-toggled-on">Sum</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box20 column-header separator">
|
|
<span>|</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box2 column-header">
|
|
<span data-i18n="parry">Parry</span>
|
|
</div>
|
|
<div class="weapons-box weapons-box1 column-header">
|
|
<span data-i18n="attack-abbr" data-i18n-title="attack">Attk</span>
|
|
</div>
|
|
<div class="weapons-box-repeating">
|
|
<fieldset class="repeating_weapons">
|
|
<div class="weapons-grid weapons-repeating chartype-background-light">
|
|
<input class="weapons-box weapons-box30 input" type="text" name="attr_weapon_name" value="" title="@{repeating_weapons_$X_weapon_name}" />
|
|
<select class="weapons-box weapons-box31 input" name="attr_weapon_skill" title="@{repeating_weapons_$X_weapon_skill}">
|
|
<option value="0" data-i18n="melee" selected>Melee</option>
|
|
<option value="1" data-i18n="ranged">Ranged</option>
|
|
</select>
|
|
<span class="weapons-box weapons-box32 readonly" name="attr_weapon_base_total" value="0" data-i18n-title="weapon-type-base" title="BASE dice as per weapon/skill type. @{repeating_weapons_$X_weapon_base_total}">0</span>
|
|
<span class="weapons-box weapons-box33 readonly separator"> | </span>
|
|
<!--<span class="weapons-box34 readonly" name="attr_weapon_skill_value" value="0" data-i18n-title="weapon-type-skill" title="SKILL dice as per weapon/skill type. @{repeating_weapons_$X_weapon_skill_value}">0</span>-->
|
|
<select class="weapons-box weapons-box34 input modifiers-toggled-on" name="attr_weapon_skill_misc" data-i18n-title="weapon-skill-misc" title="Miscellaneous attack modifier (adjusts SKILL dice). @{repeating_weapons_$X_weapon_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="weapons-box weapons-box35 readonly" name="attr_weapon_skill_total" value="0" data-i18n-title="weapon-skill-total" title="Total Skill dice included with the attack. @{repeating_weapons_$X_weapon_skill_total}">0</span>
|
|
<span class="weapons-box weapons-box37 readonly separator"> | </span>
|
|
<select class="weapons-box weapons-box38 input" name="attr_weapon_bonus" data-i18n-title="weapon-bonus" title="Record the weapon's CURRENT bonus up to MAX (adjusts Gear dice). @{repeating_weapons_$X_weapon_bonus}">
|
|
<option value="0">+0</option>
|
|
<option value="1" selected>+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
<option value="7">+7</option>
|
|
<option value="8">+8</option>
|
|
<option value="9">+9</option>
|
|
<option value="10">+10</option>
|
|
<option value="11">+11</option>
|
|
<option value="12">+12</option>
|
|
</select>
|
|
<select class="weapons-box weapons-box39 input" name="attr_weapon_bonus_max" data-i18n-title="weapon-bonus-max" title="Record the weapon's UNDAMAGED bonus. @{repeating_weapons_$X_weapon_bonus_max}">
|
|
<option value="0">0</option>
|
|
<option value="1" selected>1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="weapons-box weapons-box40 input modifiers-toggled-on" name="attr_weapon_bonus_misc" data-i18n-title="weapon-bonus-misc" title="Miscellaneous bonus modifier (adjusts Gear dice). @{repeating_weapons_$X_weapon_bonus_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<span class="weapons-box weapons-box41 readonly modifiers-toggled-on" name="attr_weapon_bonus_total" value="0" data-i18n-title="weapon-bonus-total" title="Total GEAR dice included with the attack. @{repeating_weapons_$X_weapon_bonus_total}">0</span>
|
|
<span class="weapons-box weapons-box47 readonly separator"> | </span>
|
|
<select class="weapons-box weapons-box48 input" name="attr_weapon_damage" data-i18n-title="weapon-damage" title="Damage as per weapon tables. @{repeating_weapons_$X_weapon_damage}">
|
|
<option value="0">0</option>
|
|
<option value="1" selected>1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="weapons-box weapons-box49 input modifiers-toggled-on" name="attr_weapon_damage_misc" data-i18n-title="modifier-damage-abbr" title="Miscellaneous damage modifier. @{repeating_weapons_$X_weapon_damage_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="weapons-box weapons-box50 readonly modifiers-toggled-on" name="attr_weapon_damage_total" value="0" data-i18n-title="weapon-damage-total" title="Total damage included with the attack. @{repeating_weapons_$X_weapon_damage_total}">0</span>
|
|
<span class="weapons-box weapons-box59 readonly separator"> | </span>
|
|
<button class="weapons-box weapons-box60 roll-button" type="action" name="act_attack-parry-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
t
|
|
</button>
|
|
<button class="weapons-box weapons-box61 roll-button" type="action" name="act_attack-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
t
|
|
</button>
|
|
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="weapons-subgrid">
|
|
<div class="weapons-box weapons-box71">
|
|
<span data-i18n="grip">Grip</span>:
|
|
</div>
|
|
<select class="weapons-box weapons-box72 input" name="attr_weapon_grip" title="@{repeating_weapons_$X_weapon_grip}" title="@{repeating_weapons_$X_weapon_grip}">
|
|
<option data-i18n="not-applicable-abbr" value="n/a">n/a</option>
|
|
<option data-i18n="one-hand-abbr" value="1H" selected>1H</option>
|
|
<option data-i18n="two-hand-abbr" value="2H">2H</option>
|
|
</select>
|
|
<div class="weapons-box weapons-box73">
|
|
<span data-i18n="range">Range</span>:
|
|
</div>
|
|
<select class="weapons-box weapons-box74 input" name="attr_weapon_range" title="@{repeating_weapons_$X_weapon_range}">
|
|
<option value="Arm" selected data-i18n="arms-length-abbr">Arm's L.</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Long" data-i18n="long">Long</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select><div class="weapons-box weapons-box75">
|
|
<span data-i18n="weight-abbr">Wt</span>:
|
|
</div>
|
|
<select class="weapons-box weapons-box76 input" name="attr_weapon_weight" title="@{repeating_weapons_$X_weapon_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="tiny" title="Tiny" value="0">T</option>
|
|
<option data-i18n="quarter-abbr" data-i18n-title="quarter" title="Quarter" value="0.25">Q</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="light" title="Light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="normal" title="Normal" value="1" selected>N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="heavy" title="Heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
|
|
<div class="weapons-box weapons-box77">
|
|
<span data-i18n="carried-abbr">Carried</span>:
|
|
</div>
|
|
<input type="checkbox" class="weapons-box weapons-box78 input" name="attr_weapon_carried" value="1" title="@{repeating_weapons_$X_weapon_carried}" checked />
|
|
<div class="weapons-box weapons-box79">
|
|
<span data-i18n="features">Features</span>:
|
|
</div>
|
|
<input class="weapons-box weapons-box80 input" type="text" name="attr_weapon_features" value="" title="@{repeating_weapons_$X_weapon_features}" />
|
|
<span class="weapons-box weapons-box81"></span>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-skill-dice-box box monster">
|
|
<!--hidden skill attributes to be used as placeholder for currently selected skill-->
|
|
<input type="hidden" name="attr_skill_attribute_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_bonus_misc_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_bonus_misc_gear_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_only_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_notes_selected" value="" readonly />
|
|
|
|
<!-- MONSTER DESCRIPTION-->
|
|
<div class="monster-description box chartype-background-light monster toggle-monster-only">
|
|
<div class="description-grid">
|
|
<div class="description-box description-box1 header">
|
|
<h1 data-i18n="description-u">DESCRIPTION</h1>
|
|
</div>
|
|
<div class="description-box description-box2">
|
|
<textarea class="input-textarea" name="attr_monster_description" title="@{monster_description}"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- SKILL GRID -->
|
|
<div class="character-skills box chartype-background-light">
|
|
<input type="checkbox" class="skill-order-group hidden" name="attr_skill_order_group" value="1" />
|
|
<div class="skills-grid" data-i18n-list="skills-list">
|
|
|
|
<span class="skills-header-row skills-row header">
|
|
<div class="skills-header-box skills-box1">
|
|
<h1 class="char-mutant-flex char-animal-flex char-human-flex" data-i18n="skills-u" name="attr_skill_name">SKILLS</h1>
|
|
<h1 class="char-robot-flex" data-i18n="programs-u" name="attr_skill_name">PROGRAMS</h1>
|
|
</div>
|
|
<div class="skills-box skills-box-base column-header">
|
|
<span data-i18n="attribute-abbr" data-i18n-title="attribute">Attr</span>
|
|
</div>
|
|
<div class="skills-box skills-box2 column-header">
|
|
<span data-i18n="skill-level-abbr" data-i18n-title="skill-level">Lvl</span>
|
|
</div>
|
|
<div class="skills-box skills-box3 column-header modifiers-toggled-on">
|
|
<span data-i18n="misc-skill-abbr" data-i18n-title="misc-skill">Mod</span>
|
|
</div>
|
|
<div class="skills-box skills-box4 column-header modifiers-toggled-on">
|
|
<span data-i18n="misc-gear-abbr" data-i18n-title="misc-gear">Gear</span>
|
|
</div>
|
|
<div class="skills-box skills-box5 column-header">
|
|
<span data-i18n="total-abbr" data-i18n-title="total">Total</span>
|
|
</div>
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="endure">
|
|
<span class="skill-name" data-i18n="endure" name="attr_endure_name">Endure</span>
|
|
<span class="small-caps skill-attribute" name="attr_strength_abbr">Str</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_endure" value="0" min="0" title="@{endure}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_endure_skill_misc" title="@{endure_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_endure_gear_misc" title="@{endure_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_endure" class="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_endure_total" value="0" title="@{endure_total}">0</span>
|
|
</button>
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="force">
|
|
<span class="skill-name" data-i18n="force" name="attr_force_name">Force</span>
|
|
<span class="small-caps skill-attribute" name="attr_strength_abbr">Str</span>
|
|
<input class="input-number" type="number" name="attr_force" value="0" min="0" title="@{force}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_force_skill_misc" title="@{force_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_force_gear_misc" title="@{force_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_force" class="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly" name="attr_force_total" value="0" title="@{force_total}">0</span>
|
|
</button>
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="fight">
|
|
<span class="skill-name" data-i18n="fight" name="attr_fight_name">Fight</span>
|
|
<span class="small-caps skill-attribute" name="attr_strength_abbr">Str</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_fight" value="0" min="0" title="@{fight}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_fight_skill_misc" title="@{fight_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_fight_gear_misc" title="@{fight_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_fight" class="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_fight_total" value="0" title="@{fight_total}">0</span>
|
|
</button>
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="sneak">
|
|
<span class="skill-name" data-i18n="sneak" name="attr_sneak_name">Sneak</span>
|
|
<span class="small-caps skill-attribute" name="attr_agility_abbr">Agi</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_sneak" value="0" min="0" title="@{sneak}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_sneak_skill_misc" title="@{sneak_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_sneak_gear_misc" title="@{sneak_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_sneak" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_sneak_total" value="0" title="@{sneak_total}"></span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_sneak" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="sneak-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_sneak_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{sneak_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="move">
|
|
<span class="skill-name" data-i18n="move" name="attr_move_name">Move</span>
|
|
<span class="small-caps skill-attribute" name="attr_agility_abbr">Agi</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_move" value="0" min="0" title="@{move}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_move_skill_misc" title="@{move_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_move_gear_misc" title="@{move_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_move" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_move_total" value="0" title="@{move_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_move" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="move-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_move_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{move_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="shoot">
|
|
<span class="skill-name" data-i18n="shoot" name="attr_shoot_name">Shoot</span>
|
|
<span class="small-caps skill-attribute" name="attr_agility_abbr">Agi</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_shoot" value="0" min="0" title="@{shoot}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_shoot_skill_misc" title="@{shoot_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_shoot_gear_misc" title="@{shoot_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_shoot" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_shoot_total" value="0" title="@{shoot_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_shoot" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="shoot-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_shoot_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{shoot_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="scout">
|
|
<span class="skill-name" data-i18n="scout" name="attr_scout_name">Scout</span>
|
|
<span class="small-caps skill-attribute" name="attr_wits_abbr">Wit</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_scout" value="0" min="0" title="@{scout}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_scout_skill_misc" title="@{scout_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_scout_gear_misc" title="@{scout_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_scout" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_scout_total" value="0" title="@{scout_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_scout" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="scout-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_scout_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{scout_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="comprehend">
|
|
<span class="skill-name" name="attr_comprehend_name">Comprehend</span>
|
|
<span class="small-caps skill-attribute" name="attr_wits_abbr">Wit</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_comprehend" value="0" min="0" title="@{comprehend}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_comprehend_skill_misc" title="@{comprehend_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_comprehend_gear_misc" title="@{comprehend_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_comprehend" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_comprehend_total" value="0" title="@{comprehend_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_comprehend" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="comprehend-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_comprehend_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{comprehend_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="know-the-zone">
|
|
<span class="skill-name" data-i18n="know-the-zone" name="attr_know_the_zone_name">Know the Zone</span>
|
|
<span class="small-caps skill-attribute" name="attr_wits_abbr">Wit</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_know_the_zone" value="0" min="0" title="@{know_the_zone}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_know_the_zone_skill_misc" title="@{know_the_zone_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_know_the_zone_gear_misc" title="@{know_the_zone_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_know_the_zone" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_know_the_zone_total" value="0" title="@{know_the_zone_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_know_the_zone" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="know_the_zone-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_know_the_zone_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{know_the_zone_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="sense-emotion">
|
|
<span class="skill-name" data-i18n="sense-emotion" name="attr_sense_emotion_name">Sense emotion</span>
|
|
<span class="small-caps skill-attribute" name="attr_empathy_abbr">Emp></span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_sense_emotion" value="0" min="0" title="@{sense_emotion}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_sense_emotion_skill_misc" title="@{sense_emotion_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_sense_emotion_gear_misc" title="@{sense_emotion_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_sense_emotion" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_sense_emotion_total" value="0" title="@{sense_emotion_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_sense_emotion" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="sense_emotion-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_sense_emotion_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{sense_emotion_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="manipulate">
|
|
<span class="skill-name" data-i18n="manipulate" name="attr_manipulate_name">Manipulate</span>
|
|
<span class="small-caps skill-attribute" name="attr_empathy_abbr">Emp</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_manipulate" value="0" min="0" title="@{manipulate}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_manipulate_skill_misc" title="@{manipulate_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_manipulate_gear_misc" title="@{manipulate_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_manipulate" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_manipulate_total" value="0" title="@{manipulate_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_manipulate" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="manipulate-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_manipulate_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{manipulate_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
<span class="skills-row chartype-background-dark" data-i18n-list-item="heal">
|
|
<span class="skill-name" data-i18n="heal" name="attr_heal_name">Heal</span>
|
|
<span class="small-caps skill-attribute" name="attr_empathy_abbr">Emp</span>
|
|
<input class="input-number" type="number" name="attr_heal" value="0" min="0" title="@{heal}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_heal_skill_misc" title="@{heal_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_heal_gear_misc" title="@{heal_gear_misc}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_dice_pool_heal" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly" name="attr_heal_total" value="0" title="@{heal_total}">0</span>
|
|
</button>
|
|
<!-- expand 2nd row -->
|
|
<!--<input class="expand" type="checkbox" name="attr_expand_heal" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
|
|
<div class="heal-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box6 column-header"></div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_heal_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{heal_notes}"></textarea>
|
|
</div>
|
|
</div>-->
|
|
</span>
|
|
|
|
</div>
|
|
<div>
|
|
<fieldset class="repeating_skills">
|
|
<div class="skills-row repeating-skills-row chartype-background-light">
|
|
<input class="skill-name chartype-background-light" class="input" type="text" name="attr_name" title="@{repeating_skills_$X_name}" />
|
|
<span class="small-caps skill-attribute">
|
|
<input type="hidden" name="attr_base" value="0" min="0" title="@{repeating_skills_$X_base}" readonly />
|
|
<select class="input character-skill-mod input-skills-base-attr chartype-background-light char-mutant char-human" name="attr_attribute" title="@{repeating_skills_$X_attribute}">
|
|
<option value="" selected disabled hidden data-i18n="base">Base</option>
|
|
<option value="strength" data-i18n="strength-abbr">Str</option>
|
|
<option value="agility" data-i18n="agility-abbr">Agi</option>
|
|
<option value="wits" data-i18n="wits-abbr" >Wit</option>
|
|
<option value="empathy" data-i18n="empathy-abbr">Emp</option>
|
|
</select>
|
|
<select class="input character-skill-mod chartype-background-light char-animal" name="attr_attribute" title="@{repeating_skills_$X_attribute}">
|
|
<option value="" selected disabled hidden data-i18n="base">Base</option>
|
|
<option value="strength" data-i18n="strength-abbr">Str</option>
|
|
<option value="agility" data-i18n="agility-abbr">Agi</option>
|
|
<option value="wits" data-i18n="wits-abbr">Wit</option>
|
|
<option value="empathy" data-i18n="instinct-abbr">Ins</option>
|
|
</select>
|
|
<select class="input character-skill-mod chartype-background-light char-robot" name="attr_attribute" title="@{repeating_skills_$X_attribute}">
|
|
<option value="" selected disabled hidden data-i18n="base">Base</option>
|
|
<option value="strength" data-i18n="servos-abbr">Srv</option>
|
|
<option value="agility" data-i18n="stability-abbr">Stb</option>
|
|
<option value="wits" data-i18n="processor-abbr">Prc</option>
|
|
<option value="empathy" data-i18n="network-abbr">Net</option>
|
|
</select>
|
|
</span>
|
|
<input class="input-number character-skill-level" type="number" name="attr_skill" value="0" min="0" title="@{repeating_skills_$X_skill}" />
|
|
<select class="input character-skill-mod modifiers-toggled-on" name="attr_misc" title="@{repeating_skills_$X_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input character-skill-gear modifiers-toggled-on" name="attr_gear" title="@{repeating_skills_$X_gear}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
</select>
|
|
<button type="action" name="act_skill-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total" name="attr_total" value="0" title="@{repeating_skills_$X_total}">0</span>
|
|
</button>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- DICE POOL GRID-->
|
|
<div class="character-dice_pool box chartype-background-light">
|
|
<div class="dice_pool-grid">
|
|
<div class="dice-header dice_pool-box1 header">
|
|
<h1 data-i18n="dice-pool-u">DICE POOL</h1>
|
|
</div>
|
|
<div class="dice-base">
|
|
<div class="dice-base-header">
|
|
<span class="label" data-i18n-title="base-attribute-dice" data-i18n="base">Base</span>
|
|
</div>
|
|
<input type="hidden" name="attr_attribute_die_twelve" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_eleven" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_ten" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_nine" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_eight" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_seven" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_six" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_five" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_four" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_three" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_two" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_one" value="1" />
|
|
<div class="dice-base-col1">
|
|
<input type="radio" name="attr_attribute" value="6" class="dice-selection attribute" /><span title="6"></span>
|
|
<input type="radio" name="attr_attribute" value="5" class="dice-selection attribute" /><span title="5"></span>
|
|
<input type="radio" name="attr_attribute" value="4" class="dice-selection attribute" /><span title="4"></span>
|
|
<input type="radio" name="attr_attribute" value="3" class="dice-selection attribute" /><span title="3"></span>
|
|
<input type="radio" name="attr_attribute" value="2" class="dice-selection attribute" /><span title="2"></span>
|
|
<input type="radio" name="attr_attribute" value="1" class="dice-selection attribute" /><span title="1"></span>
|
|
<input type="radio" name="attr_attribute" value="0" class="dice-selection attribute" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-base-col2">
|
|
<input type="radio" name="attr_attribute" value="7" class="dice-selection attribute" /><span title="7"></span>
|
|
<input type="radio" name="attr_attribute" value="8" class="dice-selection attribute" /><span title="8"></span>
|
|
<input type="radio" name="attr_attribute" value="9" class="dice-selection attribute" /><span title="9"></span>
|
|
<input type="radio" name="attr_attribute" value="10" class="dice-selection attribute" /><span title="10"></span>
|
|
<input type="radio" name="attr_attribute" value="11" class="dice-selection attribute" /><span title="11"></span>
|
|
<input type="radio" name="attr_attribute" value="12" class="dice-selection attribute" /><span title="12"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-skill">
|
|
<div class="dice-skill-header">
|
|
<span class="label" data-i18n-title="skill-level" data-i18n="skill">Skill</span>
|
|
</div>
|
|
<input type="hidden" name="attr_negative_die_one" value="1" />
|
|
<input type="hidden" name="attr_negative_die_two" value="1" />
|
|
<input type="hidden" name="attr_negative_die_three" value="1" />
|
|
<input type="hidden" name="attr_skill_die_ten" value="1" />
|
|
<input type="hidden" name="attr_skill_die_nine" value="1" />
|
|
<input type="hidden" name="attr_skill_die_eight" value="1" />
|
|
<input type="hidden" name="attr_skill_die_seven" value="1" />
|
|
<input type="hidden" name="attr_skill_die_six" value="1" />
|
|
<input type="hidden" name="attr_skill_die_five" value="1" />
|
|
<input type="hidden" name="attr_skill_die_four" value="1" />
|
|
<input type="hidden" name="attr_skill_die_three" value="1" />
|
|
<input type="hidden" name="attr_skill_die_two" value="1" />
|
|
<input type="hidden" name="attr_skill_die_one" value="1" />
|
|
<div class="dice-skill-col1">
|
|
<input type="radio" name="attr_skill" value="6" class="dice-selection skill" /><span title="6"></span>
|
|
<input type="radio" name="attr_skill" value="5" class="dice-selection skill" /><span title="5"></span>
|
|
<input type="radio" name="attr_skill" value="4" class="dice-selection skill" /><span title="4"></span>
|
|
<input type="radio" name="attr_skill" value="3" class="dice-selection skill" /><span title="3"></span>
|
|
<input type="radio" name="attr_skill" value="2" class="dice-selection skill" /><span title="2"></span>
|
|
<input type="radio" name="attr_skill" value="1" class="dice-selection skill" /><span title="1"></span>
|
|
<input type="radio" name="attr_skill" value="0" class="dice-selection skill" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-skill-col2">
|
|
<input type="radio" name="attr_skill" value="7" class="dice-selection skill" /><span title="7"></span>
|
|
<input type="radio" name="attr_skill" value="8" class="dice-selection skill" /><span title="8"></span>
|
|
<input type="radio" name="attr_skill" value="9" class="dice-selection skill" /><span title="9"></span>
|
|
<input type="radio" name="attr_skill" value="10" class="dice-selection skill" /><span title="10"></span>
|
|
<input type="radio" name="attr_skill" value="-1" class="dice-selection negative" /><span title="-1"></span> <input type="radio" name="attr_skill" value="-2" class="dice-selection negative" /><span title="-2"></span>
|
|
<input type="radio" name="attr_skill" value="-3" class="dice-selection negative" /><span title="-3"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-gear">
|
|
<div class="dice-gear-header">
|
|
<span class="label" data-i18n-title="gear-bonus" data-i18n="gear">Gear</span>
|
|
</div>
|
|
<input type="hidden" name="attr_gear_die_twelve" value="1" />
|
|
<input type="hidden" name="attr_gear_die_eleven" value="1" />
|
|
<input type="hidden" name="attr_gear_die_ten" value="1" />
|
|
<input type="hidden" name="attr_gear_die_nine" value="1" />
|
|
<input type="hidden" name="attr_gear_die_eight" value="1" />
|
|
<input type="hidden" name="attr_gear_die_seven" value="1" />
|
|
<input type="hidden" name="attr_gear_die_six" value="1" />
|
|
<input type="hidden" name="attr_gear_die_five" value="1" />
|
|
<input type="hidden" name="attr_gear_die_four" value="1" />
|
|
<input type="hidden" name="attr_gear_die_three" value="1" />
|
|
<input type="hidden" name="attr_gear_die_two" value="1" />
|
|
<input type="hidden" name="attr_gear_die_one" value="1" />
|
|
<div class="dice-gear-col1">
|
|
<input type="radio" name="attr_gear" value="6" class="dice-selection gear" /><span title="6"></span>
|
|
<input type="radio" name="attr_gear" value="5" class="dice-selection gear" /><span title="5"></span>
|
|
<input type="radio" name="attr_gear" value="4" class="dice-selection gear" /><span title="4"></span>
|
|
<input type="radio" name="attr_gear" value="3" class="dice-selection gear" /><span title="3"></span>
|
|
<input type="radio" name="attr_gear" value="2" class="dice-selection gear" /><span title="2"></span>
|
|
<input type="radio" name="attr_gear" value="1" class="dice-selection gear" /><span title="1"></span>
|
|
<input type="radio" name="attr_gear" value="0" class="dice-selection gear" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-gear-col2">
|
|
<input type="radio" name="attr_gear" value="7" class="dice-selection gear" /><span title="7"></span>
|
|
<input type="radio" name="attr_gear" value="8" class="dice-selection gear" /><span title="8"></span>
|
|
<input type="radio" name="attr_gear" value="9" class="dice-selection gear" /><span title="9"></span>
|
|
<input type="radio" name="attr_gear" value="10" class="dice-selection gear" /><span title="10"></span>
|
|
<input type="radio" name="attr_gear" value="11" class="dice-selection gear" /><span title="11"></span>
|
|
<input type="radio" name="attr_gear" value="12" class="dice-selection gear" /><span title="12"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-rolls">
|
|
<div class="dice-rolls1">
|
|
<input class="hidden api-toggle-show" type="checkbox" name="attr_api_toggle" value="1" />
|
|
<input class="hidden" name="attr_api_dice_command" value="@{whisper_option_api} [[(@{skill})d6]] [[(@{attribute})d6]] [[(@{gear})d6]] --Character|@{character_name} --Roll|@{current_preset}" hidden readonly />
|
|
<div class="template-roll dice-rolls-roll">
|
|
<input class="hidden roll-indicator" type="checkbox" name="attr_roll_the_dice_flag" value="1" readonly />
|
|
<span class="box-indicator">
|
|
<button class="dice-pool" type="roll" name="roll_the_dice" value="@{whisper_option} &{template:mutantyearzero} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{dice-pool}}} {{subtitle=@{current_preset}}} {{free-text}} {{footer}} {{attribute-die-one=[[ @{attribute_die_one}]] }} {{attribute-roll-one=[[1d6]] }} {{attribute-die-two=[[ @{attribute_die_two}]] }} {{attribute-roll-two=[[1d6]] }} {{attribute-die-three=[[ @{attribute_die_three}]] }} {{attribute-roll-three=[[1d6]] }} {{attribute-die-four=[[ @{attribute_die_four}]] }} {{attribute-roll-four=[[1d6]] }} {{attribute-die-five=[[ @{attribute_die_five}]] }} {{attribute-roll-five=[[1d6]] }} {{attribute-die-six=[[ @{attribute_die_six}]] }} {{attribute-roll-six=[[1d6]] }} {{attribute-die-seven=[[ @{attribute_die_seven}]] }} {{attribute-roll-seven=[[1d6]] }} {{attribute-die-eight=[[ @{attribute_die_eight}]] }} {{attribute-roll-eight=[[1d6]] }} {{attribute-die-nine=[[ @{attribute_die_nine}]] }} {{attribute-roll-nine=[[1d6]] }} {{attribute-die-ten=[[ @{attribute_die_ten}]] }} {{attribute-roll-ten=[[1d6]] }} {{attribute-die-eleven=[[ @{attribute_die_eleven}]] }} {{attribute-roll-eleven=[[1d6]] }} {{attribute-die-twelve=[[ @{attribute_die_twelve}]] }} {{attribute-roll-twelve=[[1d6]] }} {{skill-die-one=[[ @{skill_die_one}]] }} {{skill-roll-one=[[1d6]] }} {{skill-die-two=[[ @{skill_die_two}]] }} {{skill-roll-two=[[1d6]] }} {{skill-die-three=[[ @{skill_die_three}]] }} {{skill-roll-three=[[1d6]] }} {{skill-die-four=[[ @{skill_die_four}]] }} {{skill-roll-four=[[1d6]] }} {{skill-die-five=[[ @{skill_die_five}]] }} {{skill-roll-five=[[1d6]] }} {{skill-die-six=[[ @{skill_die_six}]] }} {{skill-roll-six=[[1d6]] }} {{skill-die-seven=[[ @{skill_die_seven}]] }} {{skill-roll-seven=[[1d6]] }} {{skill-die-eight=[[ @{skill_die_eight}]] }} {{skill-roll-eight=[[1d6]] }} {{skill-die-nine=[[ @{skill_die_nine}]] }} {{skill-roll-nine=[[1d6]] }} {{skill-die-ten=[[ @{skill_die_ten}]] }} {{skill-roll-ten=[[1d6]] }} {{negative-die-one=[[ @{negative_die_one}]] }} {{negative-roll-one=[[1d6]] }} {{negative-die-two=[[ @{negative_die_two}]] }} {{negative-roll-two=[[1d6]] }} {{negative-die-three=[[ @{negative_die_three}]] }} {{negative-roll-three=[[1d6]] }} {{gear-die-one=[[ @{gear_die_one}]] }} {{gear-roll-one=[[1d6]] }} {{gear-die-two=[[ @{gear_die_two}]] }} {{gear-roll-two=[[1d6]] }} {{gear-die-three=[[ @{gear_die_three}]] }} {{gear-roll-three=[[1d6]] }} {{gear-die-four=[[ @{gear_die_four}]] }} {{gear-roll-four=[[1d6]] }} {{gear-die-five=[[ @{gear_die_five}]] }} {{gear-roll-five=[[1d6]] }} {{gear-die-six=[[ @{gear_die_six}]] }} {{gear-roll-six=[[1d6]] }} {{gear-die-seven=[[ @{gear_die_seven}]] }} {{gear-roll-seven=[[1d6]] }} {{gear-die-eight=[[ @{gear_die_eight}]] }} {{gear-roll-eight=[[1d6]] }} {{gear-die-nine=[[ @{gear_die_nine}]] }} {{gear-roll-nine=[[1d6]] }} {{gear-die-ten=[[ @{gear_die_ten}]] }} {{gear-roll-ten=[[1d6]] }} {{gear-die-eleven=[[ @{gear_die_eleven}]] }} {{gear-roll-eleven=[[1d6]] }} {{gear-die-twelve=[[ @{gear_die_twelve}]] }} {{gear-roll-twelve=[[1d6]] }} @{include_with_roll}" data-i18n-title="roll-dice" title="Roll the Dice!">
|
|
<span data-i18n="roll">Roll</span>
|
|
</button>
|
|
</span>
|
|
</div>
|
|
<div class="api-roll dice-rolls-roll">
|
|
<input class="hidden roll-indicator" type="checkbox" name="attr_roll_the_dice_flag" value="1" readonly />
|
|
<span class="box-api-indicator">
|
|
<button class="dice-pool" type="roll" name="roll_the_dice_api" value="@{whisper_option_api} [[(@{skill})d6]] [[(@{attribute})d6]] [[(@{gear})d6]] --Character|@{character_name} --Roll|@{current_preset}" data-i18n-title="roll-dice-api" title="Roll API Dice!">
|
|
<span data-i18n="roll">Roll</span>
|
|
</button>
|
|
</span>
|
|
</div>
|
|
<!-- Needs to be handled in dice pool and clear dice pool
|
|
<div class="api-button dice-rolls-copy hidden">
|
|
<input type="checkbox" class="dice-pool dice-rolls-copy-button" name="attr_command_toggle" value="@{whisper_option_api} [[(@{skill})d6]] [[(@{attribute})d6]] [[(@{gear})d6]] --Character|@{character_name} --Roll|@{current_preset}" title="Copy macro">
|
|
<span>⿻</span>
|
|
</button>
|
|
</div>-->
|
|
<div class="template-roll dice-rolls-push">
|
|
<button class="dice-pool" type="roll" name="roll_a_push" value="@{whisper_option} &{template:mutantyearzero} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{pushes-the-roll}}} {{subtitle=@{current_preset}}} {{free-text}} {{footer}} {{attribute-die-one=[[ @{attribute_die_one}]] }} {{attribute-roll-one=[[1d6]] }} {{attribute-die-two=[[ @{attribute_die_two}]] }} {{attribute-roll-two=[[1d6]] }} {{attribute-die-three=[[ @{attribute_die_three}]] }} {{attribute-roll-three=[[1d6]] }} {{attribute-die-four=[[ @{attribute_die_four}]] }} {{attribute-roll-four=[[1d6]] }} {{attribute-die-five=[[ @{attribute_die_five}]] }} {{attribute-roll-five=[[1d6]] }} {{attribute-die-six=[[ @{attribute_die_six}]] }} {{attribute-roll-six=[[1d6]] }} {{attribute-die-seven=[[ @{attribute_die_seven}]] }} {{attribute-roll-seven=[[1d6]] }} {{attribute-die-eight=[[ @{attribute_die_eight}]] }} {{attribute-roll-eight=[[1d6]] }} {{attribute-die-nine=[[ @{attribute_die_nine}]] }} {{attribute-roll-nine=[[1d6]] }} {{attribute-die-ten=[[ @{attribute_die_ten}]] }} {{attribute-roll-ten=[[1d6]] }} {{attribute-die-eleven=[[ @{attribute_die_eleven}]] }} {{attribute-roll-eleven=[[1d6]] }} {{attribute-die-twelve=[[ @{attribute_die_twelve}]] }} {{attribute-roll-twelve=[[1d6]] }} {{skill-die-one=[[ @{skill_die_one}]] }} {{skill-roll-one=[[1d6]] }} {{skill-die-two=[[ @{skill_die_two}]] }} {{skill-roll-two=[[1d6]] }} {{skill-die-three=[[ @{skill_die_three}]] }} {{skill-roll-three=[[1d6]] }} {{skill-die-four=[[ @{skill_die_four}]] }} {{skill-roll-four=[[1d6]] }} {{skill-die-five=[[ @{skill_die_five}]] }} {{skill-roll-five=[[1d6]] }} {{skill-die-six=[[ @{skill_die_six}]] }} {{skill-roll-six=[[1d6]] }} {{skill-die-seven=[[ @{skill_die_seven}]] }} {{skill-roll-seven=[[1d6]] }} {{skill-die-eight=[[ @{skill_die_eight}]] }} {{skill-roll-eight=[[1d6]] }} {{skill-die-nine=[[ @{skill_die_nine}]] }} {{skill-roll-nine=[[1d6]] }} {{skill-die-ten=[[ @{skill_die_ten}]] }} {{skill-roll-ten=[[1d6]] }} {{negative-die-one=[[ @{negative_die_one}]] }} {{negative-roll-one=[[1d6]] }} {{negative-die-two=[[ @{negative_die_two}]] }} {{negative-roll-two=[[1d6]] }} {{negative-die-three=[[ @{negative_die_three}]] }} {{negative-roll-three=[[1d6]] }} {{gear-die-one=[[ @{gear_die_one}]] }} {{gear-roll-one=[[1d6]] }} {{gear-die-two=[[ @{gear_die_two}]] }} {{gear-roll-two=[[1d6]] }} {{gear-die-three=[[ @{gear_die_three}]] }} {{gear-roll-three=[[1d6]] }} {{gear-die-four=[[ @{gear_die_four}]] }} {{gear-roll-four=[[1d6]] }} {{gear-die-five=[[ @{gear_die_five}]] }} {{gear-roll-five=[[1d6]] }} {{gear-die-six=[[ @{gear_die_six}]] }} {{gear-roll-six=[[1d6]] }} {{gear-die-seven=[[ @{gear_die_seven}]] }} {{gear-roll-seven=[[1d6]] }} {{gear-die-eight=[[ @{gear_die_eight}]] }} {{gear-roll-eight=[[1d6]] }} {{gear-die-nine=[[ @{gear_die_nine}]] }} {{gear-roll-nine=[[1d6]] }} {{gear-die-ten=[[ @{gear_die_ten}]] }} {{gear-roll-ten=[[1d6]] }} {{gear-die-eleven=[[ @{gear_die_eleven}]] }} {{gear-roll-eleven=[[1d6]] }} {{gear-die-twelve=[[ @{gear_die_twelve}]] }} {{gear-roll-twelve=[[1d6]] }} {{push-query=?{@{translation_push_query}} }} @{include_with_roll}" data-i18n-title="push-dice" title="Push the Dice!">
|
|
<span data-i18n="push">Push</span>
|
|
</button>
|
|
<input type="hidden" name="attr_translation_push_query" value="push-query" />
|
|
</div>
|
|
</div>
|
|
<div class="dice-rolls2">
|
|
<div class="dice-rolls-d66">
|
|
<button class="dice-pool dice-rolls-smaller" type="roll" name="roll_d66" value="@{whisper_option} &{template:mutantyearzero} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{d66-roll}}} {{subtitle}} {{free-text}} {{d66-die-one=[[ 1 ]] }} {{d66-roll-one=[[ 1d6 ]] }} {{d66-die-two=[[ 1 ]] }} {{d66-roll-two=[[ 1d6 ]] }} {{footer}}" data-i18n-title="roll-dice-66" title="Roll d66!">
|
|
D66
|
|
</button>
|
|
</div>
|
|
<div class="dice-rolls-d666">
|
|
<button class="dice-pool dice-rolls-smaller" type="roll" name="roll_d666" value="@{whisper_option} &{template:mutantyearzero} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{d666-roll}}} {{subtitle}} {{free-text}} {{d666-die-one=[[ 1 ]] }} {{d666-roll-one=[[ 1d6 ]] }} {{d666-die-two=[[ 1 ]] }} {{d666-roll-two=[[ 1d6 ]] }} {{d666-die-three=[[ 1 ]] }} {{d666-roll-three=[[ 1d6 ]] }} {{footer}}" data-i18n-title="roll-dice-666" title="Roll d666!">
|
|
D666
|
|
</button>
|
|
</div>
|
|
<div class="dice-rolls-init">
|
|
<button class="dice-pool dice-rolls-smaller" data-i18n="initiative" data-i18n-title="initiative" type="roll" name="roll_init" value="&{template:mutantyearzero} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=Initiative}} {{free-text}} {{roll-initiative=[[1d6 &{tracker}]] }} {{footer}}" title="Initiative">
|
|
Initiative
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="dice-preset">
|
|
<input type="hidden" class="input" name="attr_current_preset" value="" readonly />
|
|
<input type="hidden" name="attr_include_with_roll" value="" readonly />
|
|
<span class="label dice-preset-header" data-i18n="current-preset">Current Preset</span>
|
|
<input type="text" class="header-h1 dice-preset-preset chartype-background-light" name="attr_current_preset">
|
|
</div>
|
|
<!-- Needs to be set in dice pool function
|
|
<div class="dice-command hidden">
|
|
<span class="label dice-preset-header" data-i18n="current-preset">Current command</span>
|
|
<input type="text" class="dice-preset-preset chartype-background-light" name="attr_dicecommand">
|
|
</div>
|
|
-->
|
|
<div class="dice-footer">
|
|
<button type="action" name="act_dice_pool_clear" class="small-caps dice-footer-clear" data-i18n-title="reset-dice" title="Reset dice pool." data-i18n="clear-dice-pool">
|
|
Clear Dice Pool
|
|
</button>
|
|
<button type="action" name="act_api_dice_toggle" class="api-button small-caps dice-footer-api" data-i18n-title="api-dice-title" title="Use API Dice Roller. (API is a Pro feature) 'Forbidden Lands Year-Zero Die Roller' script must be installed." data-i18n="api-dice">
|
|
api dice
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-column3 box monster toggle-pc-only">
|
|
<input type="checkbox" class="hidden force-show-mutations" name="attr_force_show_mutations" value="1" />
|
|
<input type="checkbox" class="hidden force-show-animalpowers" name="attr_force_show_animalpowers" value="1" />
|
|
<input type="checkbox" class="hidden force-show-contacts" name="attr_force_show_contacts" value="1" />
|
|
<input type="checkbox" class="hidden force-show-biomech" name="attr_force_show_biomech" value="1" />
|
|
<input type="checkbox" class="hidden force-show-modules" name="attr_force_show_modules" value="1" />
|
|
<input type="checkbox" class="hidden force-show-money" name="attr_force_show_money" value="1" />
|
|
<input type="checkbox" class="hidden force-show-vehicle" name="attr_force_show_vehicle" value="1" />
|
|
|
|
<div class="character-experience box toggle-pc-only sheet-header">
|
|
<div class="experience-grid">
|
|
<div class="experience-box1">
|
|
<h1 data-i18n="experience-u">EXPERIENCE</h1>
|
|
</div>
|
|
<div class="experience-box2">
|
|
<input class="input-number input-experience" type="number" name="attr_experience" value="0" min="0" title="@{experience}" />
|
|
</div>
|
|
<div class="experience-box3"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-talents box toggle-pc-only chartype-background-light">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 class="char-mutant char-animal char-human" data-i18n="talent-u">TALENTS</h1>
|
|
<h1 class="char-robot" data-i18n="secondary-functions-u">SECONDARY FUNCTIONS</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="talents-box3 column-header">
|
|
<span data-i18n="roll">Roll</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_talents">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input type="number" name="attr_talent_rank" class="hidden readonly" value="1" readonly hidden>
|
|
<input class="talents-box1 input" type="text" name="attr_talent_name" value="" title="@{repeating_talents_$X_talent_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<select class="talents-box2 input" name="attr_talent_type" title="@{repeating_talents_$X_talent_type}">
|
|
<option value="Prof" data-i18n="profession-abbrv">Prof</option>
|
|
<option value="Gen" data-i18n="general-abbrv" selected>Gen</option>
|
|
</select>
|
|
<span class="talents-box3 input">
|
|
<button name="act_talentroll" class="roll-button" type="action">t</button>
|
|
</span>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_talent_description" title="@{repeating_talents_$X_talent_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-mutations box toggle-pc-only chartype-background-light char-mutant">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="mutation-u">MUTATIONS</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header">
|
|
<span data-i18n="power">Power</span>
|
|
</div>
|
|
<div class="talents-box3 column-header">
|
|
<span data-i18n="misfire">Misfire</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_mutations">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input type="number" class="talents-box2 input-number" name="attr_rank" min="1" max="10" value="1" title="@{repeating_mutations_$X_rank}" hidden>
|
|
<input class="talents-box1 input" type="text" name="attr_name" value="" title="@{repeating_mutations_$X_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input type="number" class="talents-box2 input-number" name="attr_powerlevel" min="1" max="10" title="@{repeating_mutations_$X_powerlevel}">
|
|
<span class="talents-box3 input">
|
|
<button name="act_powerroll" class="roll-button" type="action">t</button>
|
|
</span>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_description" title="@{repeating_mutations_$X_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="powerpoint-grid">
|
|
<div class="powerpoint-box2 chartype-background-dark">
|
|
<input class="xbox-null" type="radio" name="attr_mutationpoints" value="0" data-i18n-title="no-mutationpoints" title="No Mutation Points" checked />
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="1" title="1 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="2" title="2 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="3" title="3 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="4" title="4 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="5" title="5 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="6" title="6 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="7" title="7 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="8" title="8 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="9" title="9 @{mutationpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_mutationpoints" value="10" title="10 @{mutationpoints}" /><span></span>
|
|
<input type="hidden" name="attr_mutationpoints_max" value="10" />
|
|
</div>
|
|
<div class="powerpoint-box3 chartype-background-dark">
|
|
<span class="input-span" name="attr_mutationpoints" title="Mutation points" data-i18n-title="mutation-points" readonly></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-modules box toggle-pc-only chartype-background-light char-robot">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="modules-u">MODULES</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header">
|
|
<span data-i18n="power">Power</span>
|
|
</div>
|
|
<div class="talents-box3 column-header">
|
|
<span data-i18n="overheat">Overheat</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_modules">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="talents-box1 input" type="text" name="attr_name" value="" title="@{repeating_modules_$X_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input type="number" class="talents-box2 input-number" name="attr_powerlevel" min="1" max="10" title="@{repeating_modules_$X_powerlevel}">
|
|
<span class="talents-box3 input" >
|
|
<button name="act_powerroll" class="roll-button" type="action">t</button>
|
|
</span>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_module_description" title="@{repeating_modules_$X_module_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="powerpoint-grid">
|
|
<div class="powerpoint-box2 chartype-background-dark">
|
|
<input class="xbox-null" type="radio" name="attr_energypoints" value="0" data-i18n-title="no-energypoints" title="No Energy Points" style="margin: 4px 8px 3px 2px; width: 0.95em; height: 0.95em;" checked />
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="1" title="1 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="2" title="2 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="3" title="3 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="4" title="4 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="5" title="5 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="6" title="6 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="7" title="7 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="8" title="8 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="9" title="9 @{energypoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_energypoints" value="10" title="10 @{energypoints}" /><span></span>
|
|
<input type="hidden" name="attr_energypoints_max" value="10" />
|
|
</div>
|
|
<div class="powerpoint-box3 chartype-background-dark">
|
|
<span class="input-span" name="attr_energypoints" title="@Energy points" data-i18n-title="energypoints" readonly></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-animalpowers box toggle-pc-only chartype-background-light char-animal">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="animalpowers-u">ANIMAL POWERS</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header">
|
|
<span data-i18n="power">Power</span>
|
|
</div>
|
|
<div class="talents-box3 column-header">
|
|
<span data-i18n="feral">Feral</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_animalpowers">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="talents-box1 input" type="text" name="attr_name" value="" title="@{repeating_animalpowers_$X_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input type="number" class="talents-box2 input-number" name="attr_powerlevel" min="1" max="10" title="@{repeating_animalpowers_$X_powerlevel}">
|
|
<span class="talents-box3 input">
|
|
<button name="act_powerroll" class="roll-button" type="action">t</button>
|
|
</span>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_animalpower_description" title="@{repeating_animalpowers_$X_animalpower_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="powerpoint-grid">
|
|
<div class="powerpoint-box2 chartype-background-dark">
|
|
<input class="xbox-null" type="radio" name="attr_feralpoints" value="0" data-i18n-title="no-feralpoints" title="No Feral Points" style="margin: 4px 8px 3px 2px; width: 0.95em; height: 0.95em;" checked />
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="1" title="1 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="2" title="2 @feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="3" title="3 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="4" title="4 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="5" title="5 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="6" title="6 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="7" title="7 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="8" title="8 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="9" title="9 @{feralpoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_feralpoints" value="10" title="10 @{feralpoints}" /><span></span>
|
|
<input type="hidden" name="attr_feralpoints_max" value="10" />
|
|
</div>
|
|
<div class="powerpoint-box3 chartype-background-dark">
|
|
<span class="input-span" name="attr_feralpoints" title="Feral points" data-i18n-title="feral-points" readonly></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-contacts character box toggle-pc-only chartype-background-light char-human">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="contacts-u">CONTACTS</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header">
|
|
<span data-i18n="power">Points</span>
|
|
</div>
|
|
<div class="talents-box3 column-header">
|
|
<span data-i18n="backlash">Backlash</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_contacts">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="talents-box1 input" type="text" name="attr_name" value="" title="@{repeating_contacts_$X_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input type="number" class="talents-box2 input-number" name="attr_powerlevel" min="1" max="10" title="@{repeating_contact_$X_powerlevel}">
|
|
<span class="talents-box3 input" >
|
|
<button name="act_powerroll" class="roll-button" type="action">t</button>
|
|
</span>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_contact_description" title="@{repeating_contacts_$X_contact_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="powerpoint-grid">
|
|
<div class="powerpoint-box2 chartype-background-dark">
|
|
<input class="xbox-null" type="radio" name="attr_influencepoints" value="0" data-i18n-title="no-influencepoints" title="No Influence Points" style="margin: 4px 8px 3px 2px; width: 0.95em; height: 0.95em;" checked />
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="1" title="1 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="2" title="2 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="3" title="3 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="4" title="4 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attrinfluencepoints" value="5" title="5 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="6" title="6 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="7" title="7 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="8" title="8 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="9" title="9 @{influencepoints}" /><span></span>
|
|
<input class="xbox" type="radio" name="attr_influencepoints" value="10" title="10 @{influencepoints}" /><span></span>
|
|
<input type="hidden" name="attr_influencepoints_max" value="10" />
|
|
</div>
|
|
<div class="powerpoint-box3 chartype-background-dark">
|
|
<span class="input-span" name="attr_influencepoints" title="influence-points" readonly></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-biomech character box toggle-pc-only chartype-background-light char-human">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="biomechatronics-u">BIOMECHATRONICS</h1>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<fieldset class="repeating_biomechs">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="talents-box1 input" type="text" name="attr_biomech_name" value="" title="@{repeating_biomechs_$X_biomech_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_biomech_description" title="@{repeating_biomechs_$X_biomech_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-rotpoints box toggle-pc-only chartype-background-light">
|
|
<div class="talents-grid">
|
|
<div class="talents-box header">
|
|
<h1 data-i18n="rotpoints-u">ROT POINTS</h1>
|
|
</div>
|
|
</div>
|
|
<div class="talents-box1">
|
|
<span class="subheader-h1" data-i18n="permanent-rot">Permanent Rot</span>
|
|
<input class="input-number" type="number" name="attr_rot_permanent" value="0" min="0" title="@{rot_permanent}" />
|
|
<!--button class="dicefontd6" name="rot" type="roll" value=" &{template:rolls} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{rot}}} @{rot_roll}">L</button-->
|
|
</div>
|
|
<div class="powerpoint-grid">
|
|
<div class="powerpoint-box2 chartype-background-dark">
|
|
<input type="hidden" name="attr_rot_permanent" value="0" />
|
|
<input class="xbox-null" type="radio" name="attr_rot" value="0" data-i18n-title="no-rot" title="No Rot Points" checked />
|
|
<input class="xbox rot1" type="radio" name="attr_rot" value="1" title="1 @{rot}" /><span></span>
|
|
<input class="xbox rot2" type="radio" name="attr_rot" value="2" title="2 @{rot}" /><span></span>
|
|
<input class="xbox rot3" type="radio" name="attr_rot" value="3" title="3 @{rot}" /><span></span>
|
|
<input class="xbox rot4" type="radio" name="attr_rot" value="4" title="4 @{rot}" /><span></span>
|
|
<input class="xbox rot5" type="radio" name="attr_rot" value="5" title="5 @{rot}" /><span></span>
|
|
<input class="xbox rot6" type="radio" name="attr_rot" value="6" title="6 @{rot}" /><span></span>
|
|
<input class="xbox rot7" type="radio" name="attr_rot" value="7" title="7 @{rot}" /><span></span>
|
|
<input class="xbox rot8" type="radio" name="attr_rot" value="8" title="8 @{rot}" /><span></span>
|
|
<input class="xbox rot9" type="radio" name="attr_rot" value="9" title="9 @{rot}" /><span></span>
|
|
<input class="xbox rot10" type="radio" name="attr_rot" value="10" title="10 @{rot}" /><span></span>
|
|
<input type="hidden" name="attr_rot_max" value="10" />
|
|
</div>
|
|
<div class="powerpoint-box3 chartype-background-dark">
|
|
<!--span class="input-span" name="attr_rot" title="@{rot}" readonly></span-->
|
|
<button type="action" class="rot-button" name="act_rot_roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total rot-button" name="attr_rot" value="0" title="Rotpoints" data-i18n-title="rotpoints" disabled>0</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-consumables box toggle-pc-only chartype-background-light">
|
|
<div class="consumables-grid">
|
|
<div class="consumables-box header">
|
|
<h1 data-i18n="consumables-u">CONSUMABLES</h1>
|
|
</div>
|
|
<div class="consumables-box1 column-header">
|
|
<span data-i18n="quantity">Amount</span>
|
|
</div>
|
|
<div class="consumables-box2 column-header">
|
|
<span data-i18n="quantity">Amount</span>
|
|
</div>
|
|
<input class="hidden consumables-img" type="checkbox" name="attr_consumables-icons" value="1" hidden readonly />
|
|
<!--<div class="consumables-box3"><span> </span></div>-->
|
|
<div class="consumables-box4">
|
|
<img class="consumables-icon consumables-food" src="" />
|
|
<span class="header-h1 consumables-label" data-i18n="food">Food</span>
|
|
</div>
|
|
<div class="consumables-box5">
|
|
<input type="number" class="input-number" name="attr_grub" value="0" min="0" title="@{grub}"></option>
|
|
</div>
|
|
<div class="consumables-box6">
|
|
</div>
|
|
<div class="consumables-box7">
|
|
<img class="consumables-icon consumables-bullets" src="" />
|
|
<span class="header-h1 consumables-label" data-i18n="bullets">Bullets</span>
|
|
</div>
|
|
<div class="consumables-box8">
|
|
<input type="number" class="input-number" name="attr_bullets" value="0" min="0" title="@{bullets}"></option>
|
|
</div>
|
|
<div class="consumables-box9">
|
|
</div>
|
|
<div class="consumables-box10">
|
|
<img class="consumables-icon consumables-water" src="" />
|
|
<span class="header-h1 consumables-label" data-i18n="water">Water</span>
|
|
</div>
|
|
<div class="consumables-box11">
|
|
<input type="number" class="input-number" name="attr_water" value="0" min="0" title="@{water}"></option>
|
|
</div>
|
|
<div class="consumables-box12">
|
|
</div>
|
|
<div class="consumables-box13">
|
|
<img class="consumables-icon consumables-epacks" src="" />
|
|
<span class="header-h1 consumables-label" data-i18n="e-pack">E-pack</span>
|
|
</div>
|
|
<div class="consumables-box14">
|
|
<input type="number" class="input-number" name="attr_epacks" value="0" min="0" title="@{epacks}"></option>
|
|
</div>
|
|
<div class="consumables-box15">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-money box toggle-pc-only chartype-background-light char-human">
|
|
<div class="money-grid">
|
|
<div class="money-box header">
|
|
<h1 data-i18n="money-u">MONEY</h1>
|
|
</div>
|
|
<!--<div class="money-box1 column-header"></div>
|
|
<div class="money-box2 column-header">
|
|
<span data-i18n="gold">Gold</span>
|
|
</div>
|
|
<div class="money-box3 column-header">
|
|
<span data-i18n="silver">Silver</span>
|
|
</div>-->
|
|
<div class="money-box2 column-header">
|
|
<span data-i18n="credits">Credits</span>
|
|
</div>
|
|
<div class="money-box4 column-header">
|
|
<span data-i18n="credits">Credits</span>
|
|
</div>
|
|
|
|
<div class="money-box5">
|
|
<span class="label" data-i18n="carried">Carried</span>
|
|
</div>
|
|
<div class="money-box6">
|
|
<input class="input-number" type="text" name="attr_credits" value="0" min="0" title="@{credits}" />
|
|
</div>
|
|
|
|
<div class="money-box7">
|
|
<span class="label" style="text-align: center;" data-i18n="vehicle-credits">Vehicle</span>
|
|
</div>
|
|
<div class="money-box8">
|
|
<input class="input-number" type="text" name="attr_credits_vehicle" value="0" min="0" title="@{credits_vehicle}" />
|
|
</div>
|
|
|
|
<div class="money-box9">
|
|
<span class="label" data-i18n="stash">Stash</span>
|
|
</div>
|
|
<div class="money-box10">
|
|
<input class="input-number" type="text" name="attr_credits_stash" value="0" min="0" title="@{credits_stash}" />
|
|
</div>
|
|
|
|
<input type="hidden" name="attr_money_other_total" value="0" min="0" />
|
|
<div class="money-box11">
|
|
<span class="label" data-i18n="total">Total</span>
|
|
</div>
|
|
<div class="money-box12">
|
|
<input class="input-number" type="text" name="attr_credits_total" value="0" min="0" readonly />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="gear-grid box toggle-pc-only chartype-background-light">
|
|
<div class="gear-box1 header">
|
|
<h1 data-i18n="gear-u">GEAR</h1>
|
|
</div>
|
|
<div class="gear-box2 column-header">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="gear-box3 column-header">
|
|
<span data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<div class="gear-box4 column-header">
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<div class="gear-box5">
|
|
<fieldset class="repeating_gear">
|
|
<div class="gear-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="gear-box1 input" type="text" name="attr_gear_name" value="" title="@{repeating_gear_$X_gear_name}" data-i18n-placeholder="item" placeholder="item" />
|
|
<input class="gear-box2 input-number" type="number" name="attr_gear_qty" value="1" min="0" title="@{repeating_gear_$X_gear_qty}" />
|
|
<input class="gear-box3 input" type="checkbox" name="attr_gear_carried" value="1" title="@{repeating_gear_$X_gear_carried}" checked />
|
|
<select class="gear-box4 input" name="attr_gear_weight" title="@{repeating_gear_$X_gear_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="tiny" title="Tiny" value="0" selected>T</option>
|
|
<option data-i18n="quarter-abbr" data-i18n-title="quarter" title="Quarter" value="0.25">Q</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="light" title="Light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="normal" title="Normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="heavy" title="Heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="gear-box5 input-textarea" name="attr_gear_description" title="@{repeating_gear_$X_gear_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="gear-weight">
|
|
<div><span class="label" data-i18n="gear">Gear</span></div>
|
|
<div>
|
|
<input class="input-number" type="text" name="attr_gear_encumbrance" value="0" title="@{gear_encumbrance}" readonly />
|
|
</div>
|
|
<div><span class="label" data-i18n="consumables">Consumables</span></div>
|
|
<div>
|
|
<input class="input-number" type="text" name="attr_consumables_encumbrance" value="0" title="@{character_consumables_encumbrance}" readonly />
|
|
</div>
|
|
<div><span class="label" data-i18n="weapons">Weapons</span></div>
|
|
<div>
|
|
<input class="input-number" type="text" name="attr_weapons_encumbrance" value="0" title="@{weapons_encumbrance}" readonly />
|
|
</div>
|
|
<div><span class="label" data-i18n="armor">Armor</span></div>
|
|
<div>
|
|
<input class="input-number" type="text" name="attr_armor_encumbrance" value="0" title="@{armor_encumbrance}" readonly />
|
|
</div>
|
|
</div>
|
|
<div class="gear-box6 column-header chartype-background-dark">
|
|
<div class="gear">
|
|
<span class="label encumberance" data-i18n="encumbrance">Encumbrance</span>
|
|
</div>
|
|
<div class="gear">
|
|
<input type="hidden" name="attr_gear_encumbrance" value="0" />
|
|
<input class="input-number" type="text" name="attr_character_encumbrance" value="0" title="@{character_encumbrance}" readonly />
|
|
</div>
|
|
<div class="gear">
|
|
<span class="label carry-separator"> / </span>
|
|
</div>
|
|
<div class="gear">
|
|
<span class="label carry-cap" data-i18n="carry-cap">Carry Cap</span>
|
|
</div>
|
|
<div class="gear">
|
|
<input class="input-number" type="text" name="attr_carry" value="((2*(@{strength}))*@{pack_rat})" title="@{carry} = 2 x @{strength} x @{pack_rat}" disabled />
|
|
</div>
|
|
</div>
|
|
<div class="gear-subgrid2 chartype-background-light">
|
|
<div class="gear-box12">
|
|
<span class="label" data-i18n-title="pack-rat-title" data-i18n="pack-rat">Pack Mule Talent? </span>
|
|
</div>
|
|
<div class="gear-box13">
|
|
<select class="input" name="attr_pack_rat">
|
|
<option value="1" data-i18n="no" selected>No</option>
|
|
<option value="2" data-i18n="yes">Yes</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="vehicle-grid box toggle-pc-only chartype-background-light char-human-grid char-robot-grid">
|
|
<div class="vehicle-box1 header">
|
|
<h1 data-i18n="vehicle-u">VEHICLE</h1>
|
|
</div>
|
|
<input class="expand" type="checkbox" name="attr_expand_vehicle1" value="1" data-i18n-title="show-hide" title="show/hide" style="margin-top: 3.35em;" /><span></span>
|
|
<input class="vehicle-box2 input" type="text" name="attr_vehicle_name" value="" title="@{vehicle_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
|
|
<!-- expand 2nd row -->
|
|
<textarea class="vehicle-box-desc vehicle-row2 input-textarea" name="attr_vehicle_description"
|
|
title="@{vehicle_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
|
|
<!-- First row of stats -->
|
|
<div class="vehicle-box3">
|
|
<span class="label" data-i18n="bonus">Bonus</span>
|
|
<input class="input-number" type="number" name="attr_vehicle_bonus" value="0" title="@{vehicle_bonus}" />
|
|
</div>
|
|
<div class="vehicle-box4">
|
|
<input class="input-number" type="number" name="attr_vehicle_maxload" value="0" title="@{vehicle_maxload}" />
|
|
<span class="label" data-i18n="carry-load">Max load</span>
|
|
</div>
|
|
<div class="vehicle-box5">
|
|
<span class="label" data-i18n="armor">Armor</span>
|
|
<input class="vehicle-box6 input-number" type="number" name="attr_vehicle_armor" value="0" title="@{vehicle_armor}" />
|
|
</div>
|
|
<div class="vehicle-box7">
|
|
<input class="input-number" type="number" name="attr_vehicle_resilience" value="0" title="@{vehicle_resilience}" />
|
|
<span class="label" data-i18n="resilience">Resilience</span>
|
|
</div>
|
|
<div class="vehicle-box9">
|
|
<span class="label" data-i18n="fuel">Fuel</span>
|
|
<input class="input-number" type="number" name="attr_vehicle_fuel" value="0" title="@{vehicle_fuel}" />
|
|
</div>
|
|
<div class="vehicle-box11">
|
|
<input class="input-number" type="number" name="attr_vehicle_fuel_cap" value="0" title="@{vehicle_fuel}" />
|
|
<span class="label" data-i18n="fuel-capacity">Fuel Capacity</span>
|
|
</div>
|
|
<div class="vehicle-box13">
|
|
<span class="label" data-i18n="occupants">Occupants</span>
|
|
<input class="input-number" type="number" name="attr_vehicle_occupants" value="0" title="@{vehicle_occupants}" />
|
|
</div>
|
|
<div class="vehicle-box15">
|
|
<input class="input-number" type="number" name="attr_vehicle_seats" value="1" title="@{vehicle_seats}" />
|
|
<span class="label" data-i18n="seats">Seats</span>
|
|
</div>
|
|
|
|
<!-- vehicle gear -->
|
|
|
|
<div class="vehiclegear-box chartype-background-light">
|
|
<div class="vehiclegear-grid chartype-background-light">
|
|
<div class="vehiclegear-box1 header chartype-background-dark">
|
|
<h1 data-i18n="gear-on-vehicle">Gear on vehicle</h1>
|
|
</div>
|
|
<div class="vehiclegear-box2 column-header chartype-background-dark">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="vehiclegear-box3 column-header chartype-background-dark">
|
|
<span data-i18n="carried-abbr">Carried</span>
|
|
</div>
|
|
<div class="vehiclegear-box4 column-header chartype-background-dark">
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<div class="vehiclegear-box5">
|
|
<fieldset class="repeating_vehicle">
|
|
<div class="vehiclegear-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="vehiclegear-box1 input" type="text" name="attr_vehiclegear_name" value="" title="@{repeating_vehicle_$X_vehiclegear_name}" data-i18n-placeholder="item" placeholder="item" />
|
|
<input class="vehiclegear-box2 input-number" type="number" name="attr_vehiclegear_qty" value="1" title="Quantity @{repeating_vehicle_$X_vehiclegear_qty}" />
|
|
<input class="vehiclegear-box3 input" type="checkbox" name="attr_vehiclegear_carried" value="1" title="@{repeating_vehicle_$X_vehiclegear_carried}" checked />
|
|
<select class="vehiclegear-box4 input" name="attr_vehiclegear_weight" title="@{repeating_vehicle_$X_vehiclegear_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="tiny" title="Tiny" value="0" selected>T</option>
|
|
<option data-i18n="quarter-abbr" data-i18n-title="quarter" title="Quarter" value="0.25">Q</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="light" title="Light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="normal" title="Normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="heavy" title="Heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<textarea class="vehiclegear-box5 input-textarea" name="attr_vehiclegear_description" title="@{repeating_vehicle_$X_vehiclegear_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="gear-weight">
|
|
<input type="checkbox" class="input-vehicle-advancedencumbrance hidden" name="attr_vehicle_advancedencumbrance" value="1" />
|
|
<div><span class="label" data-i18n="gear">Gear</span></div>
|
|
<div>
|
|
<input class="input-number" type="text" name="attr_vehiclegear_encumbrance" value="0" title="@{vehiclegear_encumbrance}" readonly />
|
|
</div>
|
|
<div class="advanced-vehicleencumbrance">
|
|
<span class="label" data-i18n="occupants">Occupants</span>
|
|
</div>
|
|
<div class="advanced-vehicleencumbrance">
|
|
<input class="input-number" type="text" name="attr_vehicle_occupants_weight" value="0" title="@{vehicle_occupants_weight}" readonly />
|
|
</div>
|
|
<div class="advanced-vehicleencumbrance">
|
|
<span class="label" data-i18n="fuel">Fuel</span>
|
|
</div>
|
|
<div class="advanced-vehicleencumbrance">
|
|
<input class="input-number" type="text" name="attr_vehicle_fuel_weight" value="0" title="@{vehicle_fuel_weight}" readonly />
|
|
</div>
|
|
</div>
|
|
<div class="vehiclegear-box6 column-header chartype-background-dark">
|
|
<input type="hidden" name="attr_vehicle_overencumbered" hidden readonly />
|
|
<div class="vehiclegear">
|
|
<span class="label encumberance" data-i18n="encumbrance">Encumbrance</span>
|
|
</div>
|
|
<div class="vehiclegear">
|
|
<input class="input-number" type="text" name="attr_vehiclegear_total" value="0" title="@{vehiclegear_total}" readonly />
|
|
</div>
|
|
<div class="gear">
|
|
<span class="label carry-separator"> / </span>
|
|
</div>
|
|
<div class="vehiclegear">
|
|
<span class="label carry-cap" data-i18n="carry-cap">Carry Cap</span>
|
|
</div>
|
|
<div class="vehiclegear">
|
|
<input class="input-number" type="text" name="attr_vehicle_carry" value="@{vehicle_carry}" title="@{vehicle_carry} = vehicle_strength x2, unvehicleed x4" readonly />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-armor box monster chartype-background-light">
|
|
<div class="armor-container">
|
|
<div class="armor-grid">
|
|
<div class="armor-box header">
|
|
</div>
|
|
<div class="armor-box-header header">
|
|
<h1 data-i18n="armor-u">ARMOR</h1>
|
|
</div>
|
|
<div class="armor-box1 column-header">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="armor-box2 column-header">
|
|
<span data-i18n="armor-rating-abbr">AR</span>
|
|
</div>
|
|
<div class="armor-box3 column-header">
|
|
<span data-i18n="maximum-abbr">Max</span>
|
|
</div>
|
|
<div class="armor-box4 column-header">
|
|
<span data-i18n="modifier-abbr">Mod</span>
|
|
</div>
|
|
<div class="armor-box5 column-header">
|
|
<span data-i18n="carried">Carried</span>
|
|
</div>
|
|
<div class="armor-box6 column-header">
|
|
<span data-i18n="donned">Donned</span>
|
|
</div>
|
|
<div class="armor-box7 column-header">
|
|
<span data-i18n="weight">Weight</span>
|
|
</div>
|
|
<div class="armor-box8 column-header">
|
|
<span data-i18n="features">Features</span>
|
|
</div>
|
|
<div class="armor-box9 column-header">
|
|
<span data-i18n="total-abbr" title-i18n="armor-rating">AR</span>
|
|
</div>
|
|
<div class="armor-box10">
|
|
<fieldset class="repeating_armor">
|
|
<div class="armor-grid">
|
|
<input class="armor-box1 input" type="text" name="attr_name" value="" title="@{repeating_armor_$X_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<input class="armor-box2 input-number" type="number" name="attr_bonus" value="0" min="0" max="@{bonus_max}" data-i18n-title="armor-bonus" title="Record the armor's CURRENT bonus up to MAX (adjusts GEAR dice). @{repeating_armor_$X_bonus}" />
|
|
<input class="armor-box3 input-number" type="number" name="attr_bonus_max" value="0" min="0" data-i18n-title="armor-bonus-max" title="Record the armor's UNDAMAGED bonus. @{repeating_armor_$X_bonus_max}" />
|
|
<select class="armor-box4 input" name="attr_bonus_misc" data-i18n-title="armor-bonus-misc" title="Miscellaneous bonus modifier (adjusts GEAR dice). @{repeating_armor_$X_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="armor-box5 input" name="attr_carried" title="@{repeating_armor_$X_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
</select>
|
|
<input class="armor-box6 input" type="checkbox" name="attr_equipped" value="1" title="@{repeating_armor_$X_equipped}" checked />
|
|
<select class="armor-box7 input" name="attr_weight" title="@{repeating_armor_$X_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="tiny" title="Tiny" value="0" selected>T</option>
|
|
<option data-i18n="quarter-abbr" data-i18n-title="quarter" title="Quarter" value="0.25">Q</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="light" title="Light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="normal" title="Normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="heavy" title="Heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<input class="armor-box8 input" type="text" name="attr_features" value="" title="@{repeating_armor_$X_features}" />
|
|
<span class="armor-box9 readonly" name="attr_rating" value="0" data-i18n-title="armor-rating" title="Total GEAR and SKILL dice included for armor. @{repeating_armor_$X_rating}" readonly>0</span>
|
|
<!-- expand 2nd row
|
|
<input class="expand" type="checkbox" name="attr_expand_armor" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
-->
|
|
<!-- 2nd row -->
|
|
<!--
|
|
<div class="armor-row2">
|
|
<span class="armor-box21">
|
|
<span data-i18n="carried">Carried</span>
|
|
</span>
|
|
<select class="armor-box22 input" name="attr_carried" title="@{repeating_armor_$X_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
</select>
|
|
<span class="armor-box23">
|
|
<span data-i18n="weight">Weight</span>
|
|
</span>
|
|
<select class="armor-box24 input" name="attr_weight" title="@{repeating_armor_$X_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="tiny" title="Tiny" value="0" selected>T</option>
|
|
<option data-i18n="quarter-abbr" data-i18n-title="quarter" title="Quarter" value="0.25">Q</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="light" title="Light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="normal" title="Normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="heavy" title="Heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<span class="armor-box25"><span data-i18n="donned">Donned</span></span>
|
|
<input class="armor-box26 input" type="checkbox" name="attr_equipped" value="1" title="@{repeating_armor_$X_equipped}" checked />
|
|
</div>-->
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="armor-ar chartype-background-dark">
|
|
<span class="armor-box-ar">
|
|
<h1 data-i18n="armor-rating-u" style="margin: 0;">
|
|
ARMOR RATING
|
|
</h1>
|
|
<button type="action" class="armor-button" name="act_armor-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly character-skill-total ar-total" name="attr_ar_total" value="0" title="@{ar_total}">0</span>
|
|
</button>
|
|
<input type="hidden" class="hidden" name="attr_armor-equipped-list" value="" hidden readonly />
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-relationships box toggle-pc-only chartype-background-light">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box1 header">
|
|
<h1 data-i18n="relationships-u">RELATIONSHIPS</h1>
|
|
</div>
|
|
<div class="relationships-box1">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box3">
|
|
<span data-i18n="i-hate">Hate: </span>
|
|
</div>
|
|
<div class="relationships-box6">
|
|
<textarea class="input-textarea" name="attr_hate" title="@{hate}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relationships-box1">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box3">
|
|
<span data-i18n="i-protect">Protect: </span>
|
|
</div>
|
|
<div class="relationships-box6">
|
|
<textarea class="input-textarea" name="attr_protect" title="@{protect}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relationships-box1">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box3">
|
|
<span data-i18n="i-dream">Dream: </span>
|
|
</div>
|
|
<div class="relationships-box6">
|
|
<textarea class="input-textarea" name="attr_dream" title="@{dream}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relationships-box11 chartype-background-dark">
|
|
<div class="relationships-grid-repeating">
|
|
<div class="relationships-box3 column-subheader chartype-background-dark">
|
|
<span data-i18n="rpc-name">Player Character</span>
|
|
</div>
|
|
<div class="relationships-box4 column-subheader chartype-background-dark">
|
|
<span data-i18n="description">Description</span>
|
|
</div>
|
|
<div class="relationships-box5 column-subheader chartype-background-dark">
|
|
<span data-i18n="close">Close</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relationships-box11">
|
|
<fieldset class="repeating_relationships">
|
|
<div class="relationships-box11">
|
|
<div class="relationships-grid-repeating">
|
|
<div class="relationships-box3">
|
|
<input class="input" type="text" name="attr_pc_name" value="" title="@{repeating_relationships_$X_pc_name}" data-i18n-placeholder="rpc-name" placeholder="RPC's name" />
|
|
</div>
|
|
<div class="relationships-box4">
|
|
<textarea class="input-textarea" name="attr_pc_description" title="@{repeating_relationships_$X_pc_description}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
<div class="relationships-box5">
|
|
<input type="radio" name="attr_buddy" title="@{repeating_relationships_$X_buddy}" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="relationships-box11 chartype-background-dark">
|
|
<div class="relationships-grid-repeating">
|
|
<div class="relationships-box3 column-subheader chartype-background-dark">
|
|
<span data-i18n="npc-name">Non-Player Character</span>
|
|
</div>
|
|
<div class="relationships-box6 column-subheader chartype-background-dark">
|
|
<span data-i18n="description">Description</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relationships-box11">
|
|
<fieldset class="repeating_npcrelations">
|
|
<div class="relationships-box11">
|
|
<div class="relationships-grid-repeating">
|
|
<div class="relationships-box3">
|
|
<input class="input" type="text" name="attr_npcrelations_name" value="" title="@{repeating_npcrelations_$X_relation_name}" data-i18n-placeholder="npc-name" placeholder="NPC's name" />
|
|
</div>
|
|
<div class="relationships-box6">
|
|
<textarea class="input-textarea" name="attr_npcrelations_description" title="@{repeating_npcrelations_$X_relation_description}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-spells box toggle-pc-only">
|
|
<div class="spells-grid">
|
|
<div class="spells-box header">
|
|
<h1 data-i18n="spell-u">SPELLS</h1>
|
|
</div>
|
|
<div class="spells-box0 column-header"></div>
|
|
<div class="spells-box1 column-header">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="spells-box2 column-header">
|
|
<span data-i18n="rank">Rank</span>
|
|
</div>
|
|
<div class="spells-box3 column-header">
|
|
<span data-i18n="powerpoint-abbr">Will</span>
|
|
</div>
|
|
<div class="spells-box4 column-header">
|
|
<span data-i18n="range">Range</span>
|
|
</div>
|
|
<div class="spells-box5 column-header">
|
|
<span data-i18n="duration">Duration</span>
|
|
</div>
|
|
<div class="spells-box6 column-header">
|
|
<span data-i18n="ingredients">Ingredients</span>
|
|
</div>
|
|
<div class="spells-box7">
|
|
<fieldset class="repeating_spells">
|
|
<div class="spells-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<button class="spells-box0 roll-button" type="action" name="act_spell-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
t
|
|
</button>
|
|
<input class="spells-box1 input" type="text" name="attr_spell_name" value="" title="@{repeating_spells_$X_spell_name}" data-i18n-placeholder="spell-name" placeholder="Spell's name" />
|
|
<select class="spells-box2 input" name="attr_spell_rank" title="@{repeating_spells_$X_spell_rank}">
|
|
<option value="1" selected>1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
</select>
|
|
<input class="spells-box3 input" type="number" name="attr_spell_powerpoint" value="1" min="1" title="@{repeating_spells_$X_spell_powerpoint}" />
|
|
<select class="spells-box4 input" name="attr_spell_range" title="@{repeating_spells_$X_spell_range}">
|
|
<option value="Personal" selected data-i18n="personal">Personal</option>
|
|
<option value="Arm's L." data-i18n="arms-length-abbr">Arm's L.</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select>
|
|
<input class="spells-box5 input" type="text" name="attr_spell_duration" value="" title="@{repeating_spells_$X_spell_duration}" />
|
|
<input class="spells-box6 input" type="text" name="attr_spell_ingredients" value="" title="@{repeating_spells_$X_spell_ingredients}" />
|
|
<textarea class="spells-box7 input-textarea" name="attr_spell_description" title="@{repeating_spells_$X_spell_description}" data-i18n-placeholder="description" placeholder="Description."></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- MONSTER DESCRIPTION-->
|
|
<div class="monster-information box chartype-background-light monster toggle-monster-only monster-information-toggle">
|
|
<div class="information-grid">
|
|
<div class="information-box information-box0 header">
|
|
<h1 data-i18n="monster-information-u">MONSTER INFORMATION</h1>
|
|
</div>
|
|
<div class="heading-box heading-box1">
|
|
<span class="sheet-label" data-i18n="description">Description</span><br>
|
|
<textarea class="input-textarea" name="attr_description" title="@{description}"></textarea>
|
|
</div>
|
|
<div class="heading-box heading-box1">
|
|
<span class="sheet-label" data-i18n="skills">Skills</span><br>
|
|
<textarea class="input-textarea" name="attr_skills" title="@{skills}"></textarea>
|
|
</div>
|
|
|
|
<div class="heading-box heading-box1">
|
|
<span class="sheet-label" data-i18n="weapons">Weapons</span><br>
|
|
<textarea class="input-textarea" name="attr_weapons" title="@{weapons}"></textarea>
|
|
</div>
|
|
<div class="heading-box heading-box1">
|
|
<span class="sheet-label" data-i18n="armor">Armor</span><br>
|
|
<input class="input" type="text" name="attr_armor" value="" title="@{armor}" />
|
|
</div>
|
|
<div class="monster-abilities">
|
|
<div class="header chartype-background-dark" data-i18n="abilities">Abilities</div>
|
|
<fieldset class="repeating_abilities">
|
|
<div class="monster-abilities-row">
|
|
<input name="attr_name" type="text" value="" /><textarea name="attr_description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="character-notes box chartype-background-light">
|
|
<div class="notes-grid">
|
|
<div class="notes-box1 header">
|
|
<h1 data-i18n="notes-u">NOTES</h1>
|
|
</div>
|
|
<div class="notes-box2">
|
|
<fieldset class="repeating_notes">
|
|
<div class="notes-grid">
|
|
<div class="notes-box4">
|
|
<input class="input" type="text" name="attr_note_name" value="" title="@{repeating_notes_$X_note_name}" data-i18n-placeholder="note-name" placeholder="Note's name" />
|
|
</div>
|
|
<div class="notes-box5">
|
|
<textarea class="input-textarea" name="attr_note_description" title="@{repeating_notes_$X_note_description}" data-i18n-placeholder="note-description" placeholder="Note's description."></textarea>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wrapper tab-content ark">
|
|
<div class="ark-grid">
|
|
<input type="checkbox" class="hidden force-show-arklevels" name="attr_force_show_arklevels" value="1" />
|
|
<input type="checkbox" class="hidden force-show-arkdetails" name="attr_force_show_arkdetails" value="1" />
|
|
<input type="checkbox" class="hidden force-show-projects" name="attr_force_show_projects" value="1" />
|
|
|
|
<div class="box ark-development chartype-background-dark char-human char-robot char-mutant">
|
|
<div class="ark-development-grid">
|
|
<div class="ark-development-box1 header">
|
|
<h1 data-i18n="development-u">DEVELOPMENT</h1>
|
|
</div>
|
|
<div class="ark-development-subheader ark-development-subheader1 column-header">
|
|
<span class="char-mutant char-animal" data-i18n="foodsupply">Food Supply</span>
|
|
<span class="char-robot" data-i18n="energy">Energy</span>
|
|
<span class="char-human" data-i18n="production">Production</span>
|
|
</div>
|
|
<div class="ark-development-subheader ark-development-subheader2 column-header">
|
|
<span class="char-mutant char-animal" data-i18n="culture">Culture</span>
|
|
<span class="char-robot" data-i18n="production">Production</span>
|
|
<span class="char-human" data-i18n="security">Security</span>
|
|
</div>
|
|
<div class="ark-development-subheader ark-development-subheader3 column-header">
|
|
<span class="char-mutant char-animal" data-i18n="technology">Technology</span>
|
|
<span class="char-robot" data-i18n="defence">Defence</span>
|
|
<span class="char-human" data-i18n="culture">Culture</span>
|
|
</div>
|
|
<div class="ark-development-subheader ark-development-subheader4 column-header">
|
|
<span class="char-mutant char-animal" data-i18n="warfare">Warfare</span>
|
|
<span class="char-robot" data-i18n="information">Information</span>
|
|
<span class="char-human" data-i18n="science">Science</span>
|
|
</div>
|
|
<div class="ark-development-col ark-development-col1">
|
|
<input type="number" class="input-number char-mutant char-animal" name="attr_ark_dev_food" />
|
|
<input type="number" class="input-number char-robot" name="attr_ark_dev_energy" />
|
|
<input type="number" class="input-number char-human" name="attr_ark_dev_prod" />
|
|
</div>
|
|
<div class="ark-development-col ark-development-col2">
|
|
<input type="number" class="input-number char-mutant char-animal" name="attr_ark_dev_cult" />
|
|
<input type="number" class="input-number char-robot" name="attr_ark_dev_prod" />
|
|
<input type="number" class="input-number char-human" name="attr_ark_dev_sec" />
|
|
</div>
|
|
<div class="ark-development-col ark-development-col3">
|
|
<input type="number" class="input-number char-mutant char-animal" name="attr_ark_dev_tech" />
|
|
<input type="number" class="input-number char-robot" name="attr_ark_dev_def" />
|
|
<input type="number" class="input-number char-human" name="attr_ark_dev_cult" />
|
|
</div>
|
|
<div class="ark-development-col ark-development-col4">
|
|
<input type="number" class="input-number char-mutant char-animal" name="attr_ark_dev_war" />
|
|
<input type="number" class="input-number char-robot" name="attr_ark_dev_info" />
|
|
<input type="number" class="input-number char-human" name="attr_ark_dev_sci" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box ark-influence chartype-background-light char-human">
|
|
<div class="ark-influence-core ark-influence-grid">
|
|
<div class="ark-influence-header header">
|
|
<h1 data-i18n="thecore-influence-u">
|
|
THE CORE - INFLUENCE
|
|
</h1>
|
|
</div>
|
|
<div class="ark-influence-subheaderrow">
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader1 column-header chartype-background-darkest" data-i18n="sector">Sector</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader2 column-header chartype-background-darkest" data-i18n="warburg">Warburg</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader3 column-header chartype-background-darkest" data-i18n="fortescue">Fortescue</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader4 column-header chartype-background-darkest" data-i18n="kilgore">Kilgore</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader5 column-header chartype-background-darkest" data-i18n="morningstar">Morningstar</span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="nova-paloma">Nova Paloma</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_novapaloma_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_novapaloma_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_novapaloma_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_novapaloma_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="old-koly">Old Koly</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_oldkoly_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_oldkoly_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_oldkoly_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_oldkoly_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="pirius">Pirius</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_pirius_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_pirius_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_pirius_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_pirius_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="tindertuft">Tindertuft</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_tindertuft_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_tindertuft_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_tindertuft_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_tindertuft_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="northolme">Northolme</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_northolme_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_northolme_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_northolme_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_northolme_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="calista">Calista</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_calista_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_calista_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_calista_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_calista_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="hindenburg">Hindenburg</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_hindenburg_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_hindenburg_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_hindenburg_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_hindenburg_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
</div>
|
|
<div class="ark-influence-deep ark-influence-grid">
|
|
<div class="ark-influence-header header">
|
|
<h1 data-i18n="thedeep-influence-u">
|
|
THE DEEP - INFLUENCE
|
|
</h1>
|
|
</div>
|
|
<div class="ark-influence-subheaderrow">
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader1 column-header chartype-background-darkest" data-i18n="sector">Sector</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader2 column-header chartype-background-darkest" data-i18n="warburg">Warburg</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader3 column-header chartype-background-darkest" data-i18n="fortescue">Fortescue</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader4 column-header chartype-background-darkest" data-i18n="kilgore">Kilgore</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader5 column-header chartype-background-darkest" data-i18n="morningstar">Morningstar</span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="mosel">Mosel</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_mosel_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_mosel_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_mosel_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_mosel_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="laborum">Laborum</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_laborum_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_laborum_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_laborum_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_laborum_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="arcadium">Arcadium</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_arcadium_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_arcadium_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_arcadium_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_arcadium_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="cinderfalls">Cinderfalls</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_cinderfalls_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_cinderfalls_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_cinderfalls_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_cinderfalls_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1 chartype-background-dark" data-i18n="cogsofhel">Cogs of Hel</span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" name="attr_cogsofhel_warburg" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" name="attr_cogsofhel_fortescue" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" name="attr_cogsofhel_kilgore" class="input-number" value="0" min="0" max="2" /></span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" name="attr_cogsofhel_morningstar" class="input-number" value="0" min="0" max="2" /></span>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ark-influence-total ark-influence-grid">
|
|
<div class="ark-influence-header header">
|
|
<h1 data-i18n="total-influence-u">
|
|
TOTAL INFLUENCE
|
|
</h1>
|
|
</div>
|
|
<div class="ark-influence-subheaderrow">
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader1 column-header chartype-background-darkest"> </span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader2 column-header chartype-background-darkest" data-i18n="warburg">Warburg</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader3 column-header chartype-background-darkest" data-i18n="fortescue">Fortescue</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader4 column-header chartype-background-darkest" data-i18n="kilgore">Kilgore</span>
|
|
<span class="ark-influence ark-influence-subheader ark-influence-subheader5 column-header chartype-background-darkest" data-i18n="morningstar">Morningstar</span>
|
|
</div>
|
|
<div class="ark-influence-row">
|
|
<span class="ark-influence ark-influence-col ark-influence-col1"> </span>
|
|
<span class="ark-influence ark-influence-col ark-influence-col2"><input type="number" disabled readonly name="attr_total_warburg" class="input-number" value="(@{novapaloma_warburg}+@{oldkoly_warburg}+@{pirius_warburg}+@{tindertuft_warburg}+@{northolme_warburg}+@{calista_warburg}+@{hindenburg_warburg}+@{mosel_warburg}+@{laborum_warburg}+@{arcadium_warburg}+@{cinderfalls_warburg}+@{cogsofhel_warburg})" min="0" /></span>
|
|
|
|
<span class="ark-influence ark-influence-col ark-influence-col3"><input type="number" disabled readonly name="attr_total_fortescue" class="input-number" value="(@{novapaloma_fortescue}+@{oldkoly_fortescue}+@{pirius_fortescue}+@{tindertuft_fortescue}+@{northolme_fortescue}+@{calista_fortescue}+@{hindenburg_fortescue}+@{mosel_fortescue}+@{laborum_fortescue}+@{arcadium_fortescue}+@{cinderfalls_fortescue}+@{cogsofhel_fortescue})" min="0" /></span>
|
|
|
|
<span class="ark-influence ark-influence-col ark-influence-col4"><input type="number" disabled readonly name="attr_total_kilgore" class="input-number" value="(@{novapaloma_kilgore}+@{oldkoly_kilgore}+@{pirius_kilgore}+@{tindertuft_kilgore}+@{northolme_kilgore}+@{calista_kilgore}+@{hindenburg_kilgore}+@{mosel_kilgore}+@{laborum_kilgore}+@{arcadium_kilgore}+@{cinderfalls_kilgore}+@{cogsofhel_kilgore})" min="0" /></span>
|
|
|
|
<span class="ark-influence ark-influence-col ark-influence-col5"><input type="number" disabled readonly name="attr_total_morningstar" class="input-number" value="(@{novapaloma_morningstar}+@{oldkoly_morningstar}+@{pirius_morningstar}+@{tindertuft_morningstar}+@{northolme_morningstar}+@{calista_morningstar}+@{hindenburg_morningstar}+@{mosel_morningstar}+@{laborum_morningstar}+@{arcadium_morningstar}+@{cinderfalls_morningstar}+@{cogsofhel_morningstar})" min="0" /></span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="box ark-details chartype-background-dark char-mutant">
|
|
<div class="ark-details-grid">
|
|
<div class="ark-details-header header">
|
|
<h1 data-i18n="ark-u">
|
|
ARK
|
|
</h1>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box1">
|
|
<span class="label ark-details-label" data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box2">
|
|
<input class="input-text" type="text" name="attr_ark_name" value="" title="@{ark_name}" />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box3">
|
|
<span class="label ark-details-label" data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box4">
|
|
<input class="input-text" type="text" name="attr_ark_type" value="" title="@{ark_type}" />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box5">
|
|
<span class="label ark-details-label" data-i18n="coordinates">Coordinates</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box6">
|
|
<input class="input-text" type="text" name="attr_ark_coordinates" title="@{ark_coordinates}" />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box7">
|
|
<span class="label ark-details-label" data-i18n="battle-level">Battle level</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box8 ark-details-number">
|
|
<input class="input-number" type="text" name="attr_ark_battle_level" title="battle-level" readonly />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box9">
|
|
<span class="label ark-description-label" data-i18n="description" style="margin: 0 5px 0 0;">Description</span>
|
|
<textarea class="input-textarea" name="attr_ark_description" title="@{ark_description}"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box ark-other chartype-background-dark char-mutant">
|
|
<div class="ark-details-grid">
|
|
<div class="ark-details-header header">
|
|
<h1 data-i18n="other-u">
|
|
OTHER
|
|
</h1>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box1">
|
|
<span class="label ark-details-label" data-i18n="population">Population</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box2">
|
|
<input class="input-text ark-population" type="text" name="attr_ark_population" value="" min="0" title="@{ark_population}" />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box3">
|
|
<span class="label ark-details-label" data-i18n="water-source">Water source</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box4">
|
|
<input class="input-text" type="text" name="attr_ark_water_source" value="" title="@{ark_water_source}" />
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box5">
|
|
<span class="label ark-details-label" data-i18n="season">Season</span>
|
|
</div>
|
|
<div class="ark-details-box ark-details-box6">
|
|
<input class="input-text" type="text" name="attr_ark_season" title="@{ark_season}"/>
|
|
</div>
|
|
|
|
<div class="ark-details-box ark-details-box9">
|
|
<span class="label ark-description-label " data-i18n="notable-inhabitants">Notable inhabitants</span>
|
|
<textarea class="input-textarea" name="attr_ark_notableinhabitants" title="@{ark_notableinhabitants}"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box ark-bosses chartype-background-light char-mutant">
|
|
<div class="ark-bosses-grid">
|
|
<div class="ark-bosses-box header">
|
|
<h1 data-i18n="bosses-u">BOSSES</h1>
|
|
</div>
|
|
<div class="ark-bosses-subheader ark-bosses-subheader1 column-header">
|
|
<span data-i18n="description">Description</span>
|
|
</div>
|
|
<div class="ark-bosses-subheader ark-bosses-subheader2 column-header">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="ark-bosses-repeating">
|
|
<fieldset class="repeating_bosses">
|
|
<div class="ark-bosses-grid">
|
|
<input class="ark-bosses-box1 input-textarea" type="text" name="attr_name" value="" title="@{repeating_bosses_$X_name}" />
|
|
<input class="ark-bosses-box2 input-text" type="text" name="attr_type" value="" title="@{repeating_bosses_$X_type}" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box ark-projects chartype-background-light char-mutant char-robot">
|
|
<div class="ark-projects-grid">
|
|
<div class="ark-projects-box header">
|
|
<h1 data-i18n="projects-u">PROJECTS</h1>
|
|
</div>
|
|
<div class="ark-projects-box1 column-header">
|
|
<span data-i18n="project">Project</span>
|
|
</div>
|
|
<div class="ark-projects-box2 column-header">
|
|
<span data-i18n="comment">Comment</span>
|
|
</div>
|
|
<div class="ark-projects-box3 column-header">
|
|
<span data-i18n="skill">Skill</span>
|
|
</div>
|
|
<div class="ark-projects-box4 column-header">
|
|
<span data-i18n="workpoints">Work Points</span>
|
|
</div>
|
|
<div class="ark-projects-box5 column-header">
|
|
<span data-i18n="complete">Complete</span>
|
|
</div>
|
|
<div class="ark-projects-repeating">
|
|
<fieldset class="repeating_projects">
|
|
<div class="ark-projects-grid">
|
|
<input class="ark-projects-col ark-projects-box6 input-text" type="text" name="attr_name" title="@{repeating_projects_$X_name}" />
|
|
<input class="ark-projects-col ark-projects-box7 input-text" type="text" name="attr_comment" title="@{repeating_projects_$X_comment}" />
|
|
<input class="ark-projects-col ark-projects-box8 input-text" type="text" name="attr_skills" title="@{repeating_projects_$X_skills}" />
|
|
<span class="ark-projects-col ark-projects-box9">
|
|
<input class="input-number" type="number" name="attr_work_points" min="0" title="@{repeating_projects_$X_work_points}" /> /
|
|
<input class="input-number" type="number" name="attr_work_points_max" min="0" title="@{repeating_projects_$X_work_points_max}" />
|
|
</span>
|
|
<input class="ark-projects-col ark-projects-box10 input-checkbox" type="checkbox" name="attr_complete" title="@{repeating_projects_$X_complete}" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box ark-notes chartype-background-light">
|
|
<div class="ark-notes-grid">
|
|
<div class="ark-notes-box header">
|
|
<h1 data-i18n="ark-notes-u">ARK NOTES</h1>
|
|
</div>
|
|
<div class="ark-notes-box1 column-header">
|
|
<span data-i18n="title">Title</span>
|
|
</div>
|
|
<div class="ark-notes-box2 column-header">
|
|
<span data-i18n="note">Note</span>
|
|
</div>
|
|
<div class="ark-notes-repeating">
|
|
<fieldset class="repeating_ark-notes">
|
|
<div class="ark-notes-grid">
|
|
<div class="ark_notes-box3">
|
|
<input type="text" class="input-text" name="attr_notes_title" title="@{repeating_ark-notes_$X_notes_title}" />
|
|
</div>
|
|
<div class="ark_notes-box4">
|
|
<textarea class="input-textarea" name="attr_notes" title="@{repeating_ark-notes_$X_notes}"></textarea>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wrapper tab-content zonelog">
|
|
<div class="box">
|
|
<div class="grid log-grid log-grid-header chartype-background-darkest">
|
|
<h1 class="header" data-i18n="zone-log-u">Zone Log</h1>
|
|
<h2 class="column-header log-box log-column1" data-i18n="coordinates">Coordinates</h2>
|
|
<h2 class="column-header log-box log-column2" data-i18n="terrain">Terrain</h2>
|
|
<h2 class="column-header log-box log-column3" data-i18n="rot-level">Rot Level</h2>
|
|
<h2 class="column-header log-box log-column4" data-i18n="threat">Threat</h2>
|
|
<h2 class="column-header log-box log-column5" data-i18n="threat-notes">Threat Notes</h2>
|
|
<h2 class="column-header log-box log-column6-13" data-i18n="resources-found">Resources Found</h2>
|
|
</div>
|
|
<!--<div class="grid log-grid log-grid-column-header chartype-background-darkest">
|
|
|
|
</div>-->
|
|
<div class="repeating-log-grid chartype-background-light">
|
|
<fieldset class="repeating_log">
|
|
<div class="grid log-grid chartype-background-light">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="input-text log-box log-column1" name="attr_coordinates" title="@{repeating_log_$X_coordinates}" type="text"value="" />
|
|
<input class="input-text log-box log-column2" name="attr_terrain" title="@{repeating_log_$X_terrain}" type="text" value="" />
|
|
<input class="input-number log-box log-column3" name="attr_rot_level" title="@{repeating_log_$X_rot_level}" type="number" value="" />
|
|
<input class="input log-box log-column4" name="attr_threat" title="@{repeating_log_$X_threat}" type="checkbox" /><span></span>
|
|
<input class="input-text log-box log-column5" name="attr_threat_notes" title="@{repeating_log_$X_threat_notes}" type="text" value="" />
|
|
<div class="log-box log-column6">
|
|
<label class="log-resources" title="artifacts" data-i18n-title="artifacts" data-i18n="artifacts-abbr">A</label><input class="input log-resources log-box log-column7 center" name="attr_artifacts" title="@{repeating_log_$X_artifacts}" type="checkbox" />
|
|
</div>
|
|
<div class="log-box log-column7">
|
|
<label class="log-resources" title="bullets" data-i18n-title="bullets" data-i18n="bullets-abbr">B</label><input class="input log-resources log-box log-column9 center" name="attr_bullets" title="@{repeating_log_$X_bullets}" type="checkbox" />
|
|
</div>
|
|
<div class="log-box log-column8">
|
|
<label class="log-resources" title="grub" data-i18n-title="grub" data-i18n="grub-abbr">G</label><input class="input log-resources log-box log-column11 center" name="attr_grub" title="@{repeating_log_$X_grub}" type="checkbox" />
|
|
</div>
|
|
<div class="log-box log-column9">
|
|
<label class="log-resources" title="water" data-i18n-title="water" data-i18n="water-abbr">W</label><input class="input log-resources log-box log-column13 center" name="attr_water" title="@{repeating_log_$X_water}" type="checkbox" />
|
|
</div>
|
|
<textarea class="input-textarea log-box log-comments" data-i18n-placeholder="comment" name="attr_comment" placholder="Comment" title="@{repeating_log_$X_comment}" value="" ></textarea>
|
|
</div>
|
|
<!--hr class="chartype-background-light" /-->
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="wrapper tab-content settings">
|
|
|
|
<!--announcements/updates-->
|
|
<input type="checkbox" class="announcements-show" name="attr_show_announcements" value="1" data-i18n-title="version-announcements" title="Sheet version and announcements" style="width: 4.5em; height: 2em;">
|
|
<span class="announcements-show" name="attr_version"> </span>
|
|
<div class="settings-options">
|
|
<input type="hidden" name="attr_translation_whisper_query" value="whisper-query" />
|
|
<input type="hidden" name="attr_translation_whisper_api_query" value="whisper_api-query" />
|
|
<div>
|
|
<span data-i18n="whisper-options">Whisper Options:</span>
|
|
<select name="attr_whisper_option" title="@{whisper_option}">
|
|
<option value="" data-i18n="whisper-nothing" selected>Do not whisper rolls(default).</option>
|
|
<option value="/w gm" data-i18n="whisper-rolls">Whisper all rolls to the GM.</option>
|
|
<option value="@{translation_whisper_macro_query}" data-i18n="whisper-query">Use a query.</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<span data-i18n="whisper-options-api">API Whisper Options:</span>
|
|
<select name="attr_whisper_option_api" title="@{whisper_option_api}">
|
|
<option value="!myz" data-i18n="whisper-nothing" selected>Do not whisper rolls(default).</option>
|
|
<option value="!wmyz" data-i18n="whisper-rolls">Whisper all rolls to the GM.</option>
|
|
<option value="@{translation_whisper_api_macro_query}" data-i18n="whisper-query">Use a query.</option>
|
|
</select>
|
|
</div>
|
|
<!-- used to translate query-->
|
|
<span style="display: none;" name="attr_translation_whisper_macro_query" value=""></span>
|
|
<span style="display: none;" name="attr_translation_whisper_api_macro_query" value=""></span>
|
|
<span style="display: none;" data-i18n="whisper-query">Whisper roll?</span>
|
|
<span style="display: none;" data-i18n="yes">yes</span>
|
|
<span style="display: none;" data-i18n="no">no</span>
|
|
<!--<div>
|
|
<span data-i18n="sort-skills">Sort Skills by Attribute:</span>
|
|
<input type="checkbox" name="attr_skill_order_group" value="1" title="@{skill_order_group}" style="vertical-align: middle;" />
|
|
</div>
|
|
<div>
|
|
<span data-i18n="sort-stockpile">Sort Stockpile resources alphabetically:</span>
|
|
<input type="checkbox" name="attr_stockpile_order_group" value="1" title="@{stockpile_order_group}" style="vertical-align: text-top;" checked />
|
|
</div>-->
|
|
<div>
|
|
<span data-i18n="adv-vehicleencumbrance">Advanced vehicle encumbrance</span>:
|
|
<input type="checkbox" name="attr_vehicle_advancedencumbrance" value="1" title="@{vehicle_advancedencumbrance}" style="vertical-align: center;" />
|
|
</div>
|
|
<div>
|
|
<span data-i18n="adv-modifiers">Show attribute, skill and gear modifiers in lists</span>:
|
|
<input type="checkbox" name="attr_adv-modifiers" value="1" title="@{adv-modifiers}" style="vertical-align: center;" />
|
|
</div>
|
|
<div>
|
|
<span data-i18n="adv-headerbgimg">Show header background images (mutant only)</span>:
|
|
<input type="checkbox" name="attr_header-bgimg" value="1" title="@{header-bgimg}" style="vertical-align: center;" />
|
|
</div>
|
|
<div>
|
|
<span data-i18n="adv-legacy-monster-info">Display legacy (v1) NPC / Monster information, e.g. Abilities, Skills, Weapons fields.</span>:
|
|
<input type="checkbox" name="attr_force_show_monsterinfo" value="1" title="@{force_show_monsterinfo}" style="vertical-align: center;" />
|
|
</div>
|
|
<!--div>
|
|
<span data-i18n="adv-consumables-icons">Show consumables as icons</span>:
|
|
<input type="checkbox" name="attr_consumables-icons" value="1" title="@{consumables-icons}" style="vertical-align: center;" />
|
|
</div-->
|
|
<div> </div>
|
|
<div>
|
|
<div><span data-i18n="traits-visibility">Force visibility of character traits</span>:</div>
|
|
<div class="traits-vis-grid">
|
|
<div class="traits-vis-col1">
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_mutations" label="Mutations" value="1" title="@{force_show_mutations}" style="vertical-align: center;" />
|
|
<span data-i18n="show-mutations">Show Mutations</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_animalpowers" label="Animal powers" value="1" title="@{force_show_animalpowers}" style="vertical-align: center;" />
|
|
<span data-i18n="show-animalpowers">Show Animal powers</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_contacts" label="Contacts" value="1" title="@{force_show_contacts}" style="vertical-align: center;" />
|
|
<span data-i18n="show-contacts">Show Contacts</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_biomech" label="Biomechatronics" value="1" title="@{force_show_biomech}" style="vertical-align: center;" />
|
|
<span data-i18n="show-biomechatronics">Show Biomechatronics</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_modules" label="Modules" value="1" title="@{force_show_modules}" style="vertical-align: center;" />
|
|
<span data-i18n="show-modules">Show Modules</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_money" label="Money" value="1" title="@{force_show_money}" style="vertical-align: center;" />
|
|
<span data-i18n="show-money">Show Money</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_vehicle" label="Vehicle" value="1" title="@{force_show_vehicle}" style="vertical-align: center;" />
|
|
<span data-i18n="show-vehicle">Show Vehicle</span>
|
|
</div>
|
|
</div>
|
|
<div class="traits-vis-col2">
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_arklevels" label="Ark details" value="1" title="@{force_show_arklevels}" style="vertical-align: center;" />
|
|
<span data-i18n="show-arklevels">Show Ark development levels</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_arkdetails" label="Ark details" value="1" title="@{force_show_arkdetails}" style="vertical-align: center;" />
|
|
<span data-i18n="show-arkdetails">Show Ark details</span>
|
|
</div>
|
|
<div style="margin-left: 10px;">
|
|
<input type="checkbox" name="attr_force_show_projects" label="Ark projects" value="1" title="@{force_show_projects}" style="vertical-align: center;" />
|
|
<span data-i18n="show-projects">Show Ark projects</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div><br/></div>
|
|
|
|
</div>
|
|
<div class="announcements">
|
|
<h3 data-i18n="latest-announcements">Latest Announcements</h3>
|
|
<ol style="margin: 0 2em 0 2em; padding: 0 1em 0 3em;">
|
|
<span>v2.02</span> <!-- Also need to update the version in Sheet worker code below -->
|
|
<li>Fixed upgrade issues, e.g. active tab, identifying version 1 upgrades vs new sheets better.
|
|
<ul>
|
|
<li>Fixed issue with version updating during upgrade. The version would stay on 0 both for upgraded and new characters, this has now been fixed and should show 2.02.</li>
|
|
<li>Fixed issue with attributes total not setting after upgrade. </li>
|
|
<li>Fixed issue with mutations and armor not upgrading properly. Mutations and armor that were not properly moved from v1 will now be added, unless they have already been readded.
|
|
This is checked by using the mutation or armor name, and could result in an mutations or armor reappearing if the name used has changed from v1 and the readded one.
|
|
Any added mutation while there are other readded ones will be marked with a asterisk* for clarity, which can be deleted if not needed. </li>
|
|
<li>Fixed issues with weapons upgrade where base, skill and grip was not updating properly.</li>
|
|
<li>Set so that mutation points only upgrade when upgraded from version 1 and no mutationspoints has been added. If still needing the mutation points from version 1, they can be found on the settings page in the version 1 data list. </li>
|
|
<li>Fixed issue with tab selection after upgrade when tab was NPC before upgrade. The NPC/Monster tab will now be selected, instead of a blank tab. This will also enable the legacy (v1) monster informaiton box (see below).</li>
|
|
<li>Added an expandable list at the bottom of the settings page with the previous version 1 data, e.g. mutation points, armor, monster info.</li>
|
|
<li>Some sheetworker calculations needs a reload of the character sheet after upgrading, such as the armor encumbrance calculation. Just close the character and re-open to resolve.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Fixed issue with attributes max values, including monster strength. Attributes max value is now 12, except for Strength on the NPC/Monster page that has a maximum of 40. </li>
|
|
<li>Fixed strength biohazard damage display issue on the NPC/Monster tab. One biohazard was misnamed in the stylesheet and not displaying, this is now resolved. </li>
|
|
<li>Fixed issue with attribute totals on opening of sheet. Attribute totals are now re-calculated on sheet opening. </li>
|
|
<li>Fixed an issue whereby Grub / Food was not included in the encumberance calculation. </li>
|
|
<li>Fixed an issue with initial encumbrance, it used to state 1 at creation of character, it will now correctly state 0. </li>
|
|
<li>Fixed translation for pack mule talent and conditions.</li>
|
|
<li>Fixed legacy (v1) monster information, now optional to display in NPC / Monster tab. The information can be found in the Attributres and Abilities tab,
|
|
e.g. description, Skills, Weapons and Armor attributes. The information can also be found in the version 1 data list on the Settings tab. </li>
|
|
<li>Fixed and readded the D666 button on popular demand.</li>
|
|
<li>Fixed the Initiative button - it now tries to add the selected token to the Turn Tracker. This works well for the players, who can normally only control and select their own token.
|
|
For the GM you will need to keep track of the token selected when you click Initiative. If no token selected, and informative notice will be posted in chat.</li>
|
|
<li>Added background image for the rolltemplate.</li>
|
|
<li>Added option to select default character type for new characters in the sheet.json, so that it can be selected in the Game Settings.</li>
|
|
</ol>
|
|
<br />
|
|
<span data-i18n-title="announcements-older-show"><span data-i18n="old-announcements">Older Announcements</span></span>
|
|
<input type="checkbox" class="announcements-older-show" name="attr_show_announcements_old" value="1" data-i18n-title="old-announcements" />
|
|
<span data-i18n-title="old-announcements"> </span>
|
|
<span class="announcements-older-show">
|
|
<ol>
|
|
<span>v2.01</span> <!-- Also need to update the version in Sheet worker code below -->
|
|
<li>Fixed translation issue caused by incomplete merge and build.</li>
|
|
<li>Added more apparent highlighting of conditions.</li>
|
|
<li>Fixed the dice pool indicator for the Roll button.</li>
|
|
</ol>
|
|
<ol>
|
|
<span>v2.0</span> <!-- Also need to update the version in Sheet worker code below -->
|
|
<li>Upgradeable from the version 1.12, using sheet worker versioning.</li>
|
|
<li>Fixing Dice pool issues in previous version.</li>
|
|
<li>Adding additional graphics.</li>
|
|
<li>Published to Roll20, for full list of updates and fixes see pre-v2.0 announcement below.</li>
|
|
</ol>
|
|
<br />
|
|
<ol>
|
|
<span>pre-v2.0</span>
|
|
<li>Updated the sheet with the offical Mutant Year Zero logo.</li>
|
|
<li>Updated version. </li>
|
|
<li>Added a selection for Character Type a la MYZ Alternative sheet, in a dropdown integrated in the tabs. The chosen character type determines what is included in the sheet as well as the color scheme.</li>
|
|
<li>Updated roll template for MYZ dice.</li>
|
|
<li>Updated API roll macro to use the Mutant Year Zero macro (!myz). </li>
|
|
<li>Made Armor a repeatable section with one row per armor item, with encumberance and total Armor Rating as a button to use for Armor Rolls. </li>
|
|
<li>Added item weight Quarter, to allow assigning 0.25 weight units to items (if wanted). Also added titles to weight dropdowns.</li>
|
|
<li>Modified consumables for MYZ rules and added E-packs. </li>
|
|
<li>Added Money section for Elysium and Currency project. </li>
|
|
<li>Added Animal Powers, Modules, Biomech and Contacts traits for the different character types. </li>
|
|
<li>Updated Rot points to display properly and moved into third column. Please note there is no functionality for Rot rolls.</li>
|
|
<li>Made it possible to force display of the different traits, e.g. in case Biomechatroid animals, mutated humans, etc. </li>
|
|
<li>Default sheet settings have been added. Make default changes from the campaign Settings page. These defaults
|
|
will apply to all new sheets. To apply these changes to all existing sheets as well, you must also use the
|
|
"Apply Default Settings" button found at the bottom of the sidebar's "My Settings" page.
|
|
Currently, Advanced vehicle encumbrance and Add Modifiers are the only seetings available this way.</li>
|
|
<li>Skills, weapons, and armor have additional Modifiers for to make updating the Dice pool easier.</li>
|
|
<li>Profession specific skills added as a repeating section at the bottom of skill list, with same columns in the list as the normal skills.
|
|
The skill attribute is selecteable through a dropdown. </li>
|
|
<li>All Attributes are rollable, using the Dice pool.</li>
|
|
<li>Added option to configure one Vehicle, including advanced vehicle information such as Resilience, Armor, Fuel, Occupants.
|
|
Encumberance can either be straight up based on Gear, or calculated using occupants, fuel, and gear.</li>
|
|
<li>Repeating row text "+Add" and "Modify" replaced with simple icons.</li>
|
|
<li>Full Swedish translations have been added. </li>
|
|
<li>Biohazards used to indicate the damage on Attributes. </li>
|
|
<li>Removed toggleable 2nd row to each skill.</li>
|
|
<li>Added Ark page, which dependent on the character type will display the relevant items such as Projects, Development levels, Influence and Sectors.</li>
|
|
<li>Added setting to display Ark page component Projects, Development levels, and Ark details for any character type.</li>
|
|
<li>Updated Monster page to align with updated lists and displayed boxes, as well as the MYZ monster features.</li>
|
|
<li>Updated and expanded Relationship section at the bottom of the character sheet. </li>
|
|
<li>Added fonts Oswald and Didact Gothic to make similar to paper sheet. </li>
|
|
<li>Fixed Profession skill dice pool calculation bug (Thanks GiGs).</li>
|
|
</ol>
|
|
</span>
|
|
<!--<input type="checkbox" class="announcements-show" name="attr_show_announcements" value="1" data-i18n-title="close-announcements" title="Close Announcements" style="margin: 10px 0 0 -10px; position: relative;" />
|
|
<span class="announcements-exit" data-i18n-title="close">*</span>-->
|
|
<div><br /></div>
|
|
<div style="display: inline-block; width: 100%; margin-top: 10px;">
|
|
<span data-i18n-title="old-data-show"><span>Data from sheet version 1 </span>:</span>
|
|
<input type="checkbox" class="v1-data-show" name="attr_v1_data_show" value="1" data-i18n-title="version1-data" />
|
|
<span data-i18n-title="v1-data"> </span>
|
|
<div class="v1-data-show" style="margin: 0 2em 0 2em; padding: 1em 1em 1em 3em;">
|
|
<div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Data</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px;">Value</div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Mutations</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left; display:flex;flex-direction: row;">
|
|
<fieldset class="repeating_mutantions">
|
|
<div style="width: 100%;">
|
|
<span name="attr_mutantion_name" value="" title="@{repeating_mutantions_$X_mutantion_name}" placeholder="Name"></span>,
|
|
<span name="attr_mutantion_description" title="@{repeating_mutantions_$X_mutantion_description}" placeholder="description"></span>. <br />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Mutation points</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left"><span name="attr_mutation"></span></div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Permanent rot points</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left"><span name="attr_rot_permenant"></span></div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Armor 1</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left">
|
|
<div><span name="attr_armor1_name"></span>, </div><div> Bonus: <span name="attr_armor1_bonus"></span></div><div> Damage: <span name="attr_armor1_damage"></span></div><div> Armor rating: <span name="attr_armor1_ar"></span></div><div> Equipped: </span><span name="attr_armor1_equiped"></span></div>
|
|
</div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Armor 2</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left">
|
|
<div><span name="attr_armor2_name"></span>, </div><div> Bonus: <span name="attr_armor2_bonus"></span></div><div> Damage: <span name="attr_armor2_damage"></span></div><div> Armor rating: <span name="attr_armor2_ar"></span></div><div> Equipped: </span><span name="attr_armor2_equiped"></span></div>
|
|
</div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">Ark levels</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left">
|
|
<div><span>Food: </span><span name="attr_ark_food_supply"></span></div>
|
|
<div><span>Culture:</span> <span name="attr_ark_culture"></span></div>
|
|
<div><span>Technology: </span><span name="attr_ark_technology"></span></div>
|
|
<div><span>Warfare: </span><span name="attr_ark_warfare"></span></div>
|
|
</div>
|
|
</div>
|
|
<div style="display:flex; flex-direction: row; width: 100%;">
|
|
<div style="border: 1px solid black; width: 20%; margin: 0; padding: 3px;">monster info</div>
|
|
<div style="border: 1px solid black; width: 70%; margin: 0; padding: 3px; text-align: left">
|
|
<div><span>Description: </span><span name="attr_description"></span></div>
|
|
<div><span>Skills:</span> <span name="attr_skills"></span></div>
|
|
<div><span>Armor: </span><span name="attr_armor"></span></div>
|
|
<div><span>Weapons: </span><span name="attr_weapons"></span></div>
|
|
<div><span>Abilities: </span>
|
|
<fieldset class="repeating_abilities">
|
|
<input name="attr_name" type="text" value="" />
|
|
<textarea name="attr_description"></textarea>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Roll Templates -->
|
|
<rolltemplate class="sheet-rolltemplate-mutantyearzero">
|
|
<div class="template-wrap">
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-header">
|
|
{{#character_name}}
|
|
<div class="template-grid-item template-span-six template-header">
|
|
{{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}}
|
|
{{^character_id}}{{character_name}}{{/character_id}}
|
|
</div>
|
|
{{#name}}
|
|
<div class="template-grid-item template-span-six template-header" style="width: 15px; z-index: 0; margin: 2px 2px 5px 2px;">
|
|
◇
|
|
</div>
|
|
{{/name}} {{/character_name}} {{#name}}
|
|
<div class="template-grid-item template-span-six template-header">
|
|
{{#name_link}}[{{name}}]({{name_link}}){{/name_link}} {{^name_link}}{{name}}{{/name_link}}
|
|
</div>
|
|
{{/name}}
|
|
</div>
|
|
|
|
{{#subtitle}}
|
|
<div class="template-grid-item template-span-six template-subtitle">
|
|
“<span>{{subtitle}}</span>”<br />
|
|
</div>
|
|
{{/subtitle}}
|
|
|
|
<!--- dice pool -->
|
|
{{#rollTotal() attribute-die-one 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-one}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-one}} {{#rollBetween() attribute-roll-one 2 5}} {{attribute-roll-one}}
|
|
{{/rollBetween() attribute-roll-one 2 5}} {{#rollWasCrit() attribute-roll-one}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-one}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-one 1}} {{#rollTotal() attribute-die-two 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-two}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-two}} {{#rollBetween() attribute-roll-two 2 5}} {{attribute-roll-two}}
|
|
{{/rollBetween() attribute-roll-two 2 5}} {{#rollWasCrit() attribute-roll-two}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-two}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-two 1}} {{#rollTotal() skill-die-one 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-one 1 5}} {{skill-roll-one}} {{/rollBetween() skill-roll-one 1 5}}
|
|
{{#rollWasCrit() skill-roll-one}}
|
|
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-one}}
|
|
</div>
|
|
{{/rollTotal() skill-die-one 1}} {{#rollTotal() skill-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-two 1 5}} {{skill-roll-two}} {{/rollBetween() skill-roll-two 1 5}}
|
|
{{#rollWasCrit() skill-roll-two}}
|
|
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-two}}
|
|
</div>
|
|
{{/rollTotal() skill-die-two 1}} {{#rollTotal() negative-die-one 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-red-dice">
|
|
{{#rollBetween() negative-roll-one 1 5}} {{negative-roll-one}} {{/rollBetween() negative-roll-one 1 5}}
|
|
{{#rollWasCrit() negative-roll-one}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() negative-roll-one}}
|
|
</div>
|
|
{{/rollTotal() negative-die-one 1}} {{#rollTotal() negative-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-red-dice">
|
|
{{#rollBetween() negative-roll-two 1 5}} {{negative-roll-two}} {{/rollBetween() negative-roll-two 1 5}}
|
|
{{#rollWasCrit() negative-roll-two}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() negative-roll-two}}
|
|
</div>
|
|
{{/rollTotal() negative-die-two 1}} {{#rollTotal() gear-die-one 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-one}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-one}} {{#rollBetween() gear-roll-one 2 5}} {{gear-roll-one}}
|
|
{{/rollBetween() gear-roll-one 2 5}} {{#rollWasCrit() gear-roll-one}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-one}}
|
|
</div>
|
|
{{/rollTotal() gear-die-one 1}} {{#rollTotal() gear-die-two 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-two}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-two}} {{#rollBetween() gear-roll-two 2 5}} {{gear-roll-two}}
|
|
{{/rollBetween() gear-roll-two 2 5}} {{#rollWasCrit() gear-roll-two}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-two}}
|
|
</div>
|
|
{{/rollTotal() gear-die-two 1}}
|
|
<!--- BEGIN ROW TWO --->
|
|
{{#rollTotal() attribute-die-three 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-three}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-three}} {{#rollBetween() attribute-roll-three 2 5}} {{attribute-roll-three}}
|
|
{{/rollBetween() attribute-roll-three 2 5}} {{#rollWasCrit() attribute-roll-three}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-three}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-three 1}} {{#rollTotal() attribute-die-four 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-four}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-four}} {{#rollBetween() attribute-roll-four 2 5}} {{attribute-roll-four}}
|
|
{{/rollBetween() attribute-roll-four 2 5}} {{#rollWasCrit() attribute-roll-four}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-four}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-four 1}} {{#rollTotal() skill-die-three 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-three 1 5}} {{skill-roll-three}} {{/rollBetween() skill-roll-three 1 5}}
|
|
{{#rollWasCrit() skill-roll-three}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-three}}
|
|
</div>
|
|
{{/rollTotal() skill-die-three 1}} {{#rollTotal() skill-die-four 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-four 1 5}} {{skill-roll-four}} {{/rollBetween() skill-roll-four 1 5}}
|
|
{{#rollWasCrit() skill-roll-four}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-four}}
|
|
</div>
|
|
{{/rollTotal() skill-die-four 1}} {{#rollTotal() negative-die-three 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-red-dice">
|
|
{{#rollBetween() negative-roll-three 1 5}} {{negative-roll-three}} {{/rollBetween() negative-roll-three 1 5}}
|
|
{{#rollWasCrit() negative-roll-three}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() negative-roll-three}}
|
|
</div>
|
|
{{/rollTotal() negative-die-three 1}} {{#rollTotal() gear-die-three 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-three}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-three}} {{#rollBetween() gear-roll-three 2 5}} {{gear-roll-three}}
|
|
{{/rollBetween() gear-roll-three 2 5}} {{#rollWasCrit() gear-roll-three}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-three}}
|
|
</div>
|
|
{{/rollTotal() gear-die-three 1}} {{#rollTotal() gear-die-four 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-four}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-four}} {{#rollBetween() gear-roll-four 2 5}} {{gear-roll-four}}
|
|
{{/rollBetween() gear-roll-four 2 5}} {{#rollWasCrit() gear-roll-four}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-four}}
|
|
</div>
|
|
{{/rollTotal() gear-die-four 1}}
|
|
<!--- BEGIN ROW THREE -->
|
|
{{#rollTotal() attribute-die-five 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-five}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-five}} {{#rollBetween() attribute-roll-five 2 5}} {{attribute-roll-five}}
|
|
{{/rollBetween() attribute-roll-five 2 5}} {{#rollWasCrit() attribute-roll-five}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-five}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-five 1}} {{#rollTotal() attribute-die-six 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-six}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-six}} {{#rollBetween() attribute-roll-six 2 5}} {{attribute-roll-six}}
|
|
{{/rollBetween() attribute-roll-six 2 5}} {{#rollWasCrit() attribute-roll-six}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-six}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-six 1}} {{#rollTotal() skill-die-five 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-five 1 5}} {{skill-roll-five}} {{/rollBetween() skill-roll-five 1 5}}
|
|
{{#rollWasCrit() skill-roll-five}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-five}}
|
|
</div>
|
|
{{/rollTotal() skill-die-five 1}} {{#rollTotal() skill-die-six 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-six 1 5}} {{skill-roll-six}} {{/rollBetween() skill-roll-six 1 5}}
|
|
{{#rollWasCrit() skill-roll-six}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-six}}
|
|
</div>
|
|
{{/rollTotal() skill-die-six 1}} {{#rollTotal() gear-die-five 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-five}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-five}} {{#rollBetween() gear-roll-five 2 5}} {{gear-roll-five}}
|
|
{{/rollBetween() gear-roll-five 2 5}} {{#rollWasCrit() gear-roll-five}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-five}}
|
|
</div>
|
|
{{/rollTotal() gear-die-five 1}} {{#rollTotal() gear-die-six 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-six}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-six}} {{#rollBetween() gear-roll-six 2 5}} {{gear-roll-six}}
|
|
{{/rollBetween() gear-roll-six 2 5}} {{#rollWasCrit() gear-roll-six}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-six}}
|
|
</div>
|
|
{{/rollTotal() gear-die-six 1}}
|
|
<!--- BEGIN ROW FOUR -->
|
|
{{#rollTotal() attribute-die-seven 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-seven}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-seven}} {{#rollBetween() attribute-roll-seven 2 5}} {{attribute-roll-seven}}
|
|
{{/rollBetween() attribute-roll-seven 2 5}} {{#rollWasCrit() attribute-roll-seven}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-seven}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-seven 1}} {{#rollTotal() attribute-die-eight 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-eight}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-eight}} {{#rollBetween() attribute-roll-eight 2 5}} {{attribute-roll-eight}}
|
|
{{/rollBetween() attribute-roll-eight 2 5}} {{#rollWasCrit() attribute-roll-eight}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-eight}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-eight 1}} {{#rollTotal() skill-die-seven 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-seven 1 5}} {{skill-roll-seven}} {{/rollBetween() skill-roll-seven 1 5}}
|
|
{{#rollWasCrit() skill-roll-seven}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-seven}}
|
|
</div>
|
|
{{/rollTotal() skill-die-seven 1}} {{#rollTotal() skill-die-eight 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-eight 1 5}} {{skill-roll-eight}} {{/rollBetween() skill-roll-eight 1 5}}
|
|
{{#rollWasCrit() skill-roll-eight}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-eight}}
|
|
</div>
|
|
{{/rollTotal() skill-die-eight 1}} {{#rollTotal() gear-die-seven 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-seven}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-seven}} {{#rollBetween() gear-roll-seven 2 5}} {{gear-roll-seven}}
|
|
{{/rollBetween() gear-roll-seven 2 5}} {{#rollWasCrit() gear-roll-seven}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-seven}}
|
|
</div>
|
|
{{/rollTotal() gear-die-seven 1}} {{#rollTotal() gear-die-eight 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-eight}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-eight}} {{#rollBetween() gear-roll-eight 2 5}} {{gear-roll-eight}}
|
|
{{/rollBetween() gear-roll-eight 2 5}} {{#rollWasCrit() gear-roll-eight}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-eight}}
|
|
</div>
|
|
{{/rollTotal() gear-die-eight 1}}
|
|
<!--- BEGIN ROW FIVE -->
|
|
{{#rollTotal() attribute-die-nine 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-nine}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-nine}} {{#rollBetween() attribute-roll-nine 2 5}} {{attribute-roll-nine}}
|
|
{{/rollBetween() attribute-roll-nine 2 5}} {{#rollWasCrit() attribute-roll-nine}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-nine}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-nine 1}} {{#rollTotal() attribute-die-ten 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-ten}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-ten}} {{#rollBetween() attribute-roll-ten 2 5}} {{attribute-roll-ten}}
|
|
{{/rollBetween() attribute-roll-ten 2 5}} {{#rollWasCrit() attribute-roll-ten}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-ten}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-ten 1}} {{#rollTotal() skill-die-nine 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-nine 1 5}} {{skill-roll-nine}} {{/rollBetween() skill-roll-nine 1 5}}
|
|
{{#rollWasCrit() skill-roll-nine}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-nine}}
|
|
</div>
|
|
{{/rollTotal() skill-die-nine 1}} {{#rollTotal() skill-die-ten 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() skill-roll-ten 1 5}} {{skill-roll-ten}} {{/rollBetween() skill-roll-ten 1 5}}
|
|
{{#rollWasCrit() skill-roll-ten}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() skill-roll-ten}}
|
|
</div>
|
|
{{/rollTotal() skill-die-ten 1}} {{#rollTotal() gear-die-nine 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-nine}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-nine}} {{#rollBetween() gear-roll-nine 2 5}} {{gear-roll-nine}}
|
|
{{/rollBetween() gear-roll-nine 2 5}} {{#rollWasCrit() gear-roll-nine}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-nine}}
|
|
</div>
|
|
{{/rollTotal() gear-die-nine 1}} {{#rollTotal() gear-die-ten 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-ten}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-ten}} {{#rollBetween() gear-roll-ten 2 5}} {{gear-roll-ten}}
|
|
{{/rollBetween() gear-roll-ten 2 5}} {{#rollWasCrit() gear-roll-ten}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-ten}}
|
|
</div>
|
|
{{/rollTotal() gear-die-ten 1}}
|
|
<!--- BEGIN ROW SIX -->
|
|
{{#rollTotal() attribute-die-eleven 1}}
|
|
<div class="template-grid-item template-span-one template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-eleven}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-eleven}} {{#rollBetween() attribute-roll-eleven 2 5}}
|
|
{{attribute-roll-eleven}} {{/rollBetween() attribute-roll-eleven 2 5}} {{#rollWasCrit() attribute-roll-eleven}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-eleven}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-eleven 1}} {{#rollTotal() attribute-die-twelve 1}}
|
|
<div class="template-grid-item template-span-two template-dice template-yellow-dice">
|
|
{{#rollWasFumble() attribute-roll-twelve}}
|
|
<span data-i18n-title="bane" title="Bane">☣︎</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" /> -->
|
|
{{/rollWasFumble() attribute-roll-twelve}} {{#rollBetween() attribute-roll-twelve 2 5}}
|
|
{{attribute-roll-twelve}} {{/rollBetween() attribute-roll-twelve 2 5}} {{#rollWasCrit() attribute-roll-twelve}}
|
|
<span data-i18n-title="success" title="Success">☢</span>
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" /> -->
|
|
{{/rollWasCrit() attribute-roll-twelve}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-twelve 1}} {{#rollTotal() gear-die-eleven 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-eleven}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-eleven}} {{#rollBetween() gear-roll-eleven 2 5}} {{gear-roll-eleven}}
|
|
{{/rollBetween() gear-roll-eleven 2 5}} {{#rollWasCrit() gear-roll-eleven}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-eleven}}
|
|
</div>
|
|
{{/rollTotal() gear-die-eleven 1}} {{#rollTotal() gear-die-twelve 1}}
|
|
<div class="template-grid-item template-span-shix template-dice template-black-dice">
|
|
{{#rollWasFumble() gear-roll-twelve}}
|
|
<span data-i18n-title="bane" title="Bane">💥
|
|
<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /> --></span>
|
|
{{/rollWasFumble() gear-roll-twelve}} {{#rollBetween() gear-roll-twelve 2 5}} {{gear-roll-twelve}}
|
|
{{/rollBetween() gear-roll-twelve 2 5}} {{#rollWasCrit() gear-roll-twelve}}
|
|
<span data-i18n-title="success" title="Success">☢<!-- <img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" /> --></span>
|
|
{{/rollWasCrit() gear-roll-twelve}}
|
|
</div>
|
|
{{/rollTotal() gear-die-twelve 1}}
|
|
<!--- d66 -->
|
|
<!-- increased range of each d66 dice to allow for custom rolls 0-100-->
|
|
{{#rollTotal() d66-die-one 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() d66-roll-one 0 100}} {{d66-roll-one}} {{/rollBetween() d66-roll-one 0 100}}
|
|
</div>
|
|
{{/rollTotal() d66-die-one 1}} {{#rollTotal() d66-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() d66-roll-two 0 100}} {{d66-roll-two}} {{/rollBetween() d66-roll-two 0 100}}
|
|
</div>
|
|
{{/rollTotal() d66-die-two 1}}
|
|
|
|
<!--- d666 -->
|
|
<!-- increased range of each d66 dice to allow for custom rolls 0-1000-->
|
|
{{#rollTotal() d666-die-one 1}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{#rollBetween() d666-roll-one 0 100}} {{d666-roll-one}} {{/rollBetween() d666-roll-one 0 100}}
|
|
</div>
|
|
{{/rollTotal() d666-die-one 1}}
|
|
{{#rollTotal() d666-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-dice template-green-dice">
|
|
{{#rollBetween() d666-roll-two 0 100}} {{d666-roll-two}} {{/rollBetween() d666-roll-two 0 100}}
|
|
</div>
|
|
{{/rollTotal() d666-die-two 1}}
|
|
{{#rollTotal() d666-die-three 1}}
|
|
<div class="template-grid-item template-span-five template-dice template-green-dice">
|
|
{{#rollBetween() d666-roll-three 0 100}} {{d666-roll-three}} {{/rollBetween() d666-roll-three 0 100}}
|
|
</div>
|
|
{{/rollTotal() d666-die-three 1}}
|
|
|
|
<!--- Initiative -->
|
|
|
|
{{#roll-initiative}}
|
|
<div class="template-grid-item template-span-three template-dice template-green-dice">
|
|
{{roll-initiative}}
|
|
</div>
|
|
{{/roll-initiative}}
|
|
|
|
<!--- dice pool column labels in footer-->
|
|
{{#attribute-die-one}}
|
|
<div class="template-grid-item template-span-left">
|
|
<span class="template-smaller sheet-small-caps template-label-dice-column" data-i18n="base-dice">Base Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-center">
|
|
<span class="template-smaller sheet-small-caps template-label-dice-column" data-i18n="skill-dice">Skill Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-right">
|
|
<span class="template-smaller sheet-small-caps template-label-dice-column" data-i18n="gear-dice">Gear Dice</span>
|
|
</div>
|
|
{{/attribute-die-one}}
|
|
|
|
<!--- attack -->
|
|
{{#weapon-bonus}}
|
|
<div class="template-grid-item template-span-six condensed template-footer">
|
|
<span class="label" data-i18n="bonus">Bonus</span><span>: {{weapon-bonus}}</span>
|
|
{{#weapon-bonus-max}}<span>/{{weapon-bonus-max}}</span>{{/weapon-bonus-max}}
|
|
{{#weapon-bonus-misc}}
|
|
<span> ± <span class="label" data-i18n="modifier-abbr">Mod</span>: {{weapon-bonus-misc}}</span>
|
|
{{/weapon-bonus-misc}}
|
|
{{#weapon-damage}}
|
|
<span><br /><span class="label" data-i18n="damage-abbr">Damage</span>: {{weapon-damage}}</span>
|
|
{{/weapon-damage}}
|
|
{{#weapon-damage-misc}} ±
|
|
<span class="label" data-i18n="modifier-abbr">Mod</span><span>: {{weapon-damage-misc}}</span>
|
|
{{/weapon-damage-misc}}
|
|
{{#attack-features}}
|
|
<span><br /><span class="label" data-i18n="features">Features</span>: {{attack-features}}</span>
|
|
{{/attack-features}}
|
|
|
|
{{#weapon-range}}
|
|
<div class="template-grid-item template-span-six"><span class="label"data-i18n="range">Range</span><span>: {{weapon-range}}</span></div>
|
|
{{/weapon-range}}
|
|
{{#weapon-features}}
|
|
<div class="template-grid-item template-span-six"><span class="label" data-i18n="features">Features</span><span>: {{weapon-features}}</span></div>
|
|
{{/weapon-features}}
|
|
|
|
{{#attack-description}}
|
|
<hr class="template-span-six" style="margin: 5px 10px 5px 10px;" />
|
|
<div class="template-grid-item template-span-six scroll-text">
|
|
{{attack-description}}
|
|
</div>
|
|
{{/attack-description}}
|
|
</div>
|
|
{{/weapon-bonus}}
|
|
|
|
<!--- armor -->
|
|
{{#rollTotal() armor-equipped}}
|
|
{{#armor-name}}
|
|
<div class="template-grid-item template-span-six template-footer">
|
|
<span class="strong bold">{{armor-name}}</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed template-footer">
|
|
<span>{{#armor-rating}}<span class="label" data-i18n="armor-rating-abbr">AR</span>: {{armor-rating}}{{/armor-rating}}</span>
|
|
<span>{{#armor-rating-max}}/{{armor-rating-max}}{{/armor-rating-max}}</span>
|
|
<span>{{#armor-rating-misc}} ± <span class="label" data-i18n="modifier-abbr">Mod</span>: {{armor-rating-misc}}{{/armor-rating-misc}}</span>
|
|
<span>{{#armor-rating-total}} = <span class="label" data-i18n="total">Total</span>: {{armor-rating-total}}{{/armor-rating-total}}</span>
|
|
</div>
|
|
{{/armor-name}}
|
|
{{/rollTotal() armor-equipped}}
|
|
|
|
<!--skills-->
|
|
{{#skill-base}}
|
|
<div class="template-grid-item template-span-half template-footer">
|
|
<span> <span class="label right-align right" data-i18n="base">Base</span>:</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-2nd-half template-footer">
|
|
<span class="allprops allprops-value">{{skill-base}}</span>
|
|
</div>
|
|
{{/skill-base}}
|
|
{{#skill-level}}
|
|
<div class="template-grid-item template-span-half template-footer">
|
|
<span> <span class="label right-align right" data-i18n="skill">Skill</span>:</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-2nd-half template-footer">
|
|
<span class="allprops allprops-value">{{skill-level}}</span>
|
|
</div>
|
|
{{/skill-level}}
|
|
{{#skill-bonus-misc}}
|
|
<div class="template-grid-item template-span-half template-footer">
|
|
<span> <span class="label right-align right" data-i18n="modifier-abbr">Mod</span>:</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-2nd-half template-footer">
|
|
<span class="allprops allprops-value">{{skill-bonus-misc}}</span>
|
|
</div>
|
|
{{/skill-bonus-misc}}
|
|
{{#skill-bonus-gear}}
|
|
<div class="template-grid-item template-span-half template-footer">
|
|
<span> <span class="label right-align right" data-i18n="gear">Gear</span>:</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-2nd-half template-footer">
|
|
<span class="allprops allprops-value">{{skill-bonus-gear}}</span>
|
|
</div>
|
|
{{/skill-bonus-gear}}
|
|
|
|
{{#free-text}}
|
|
<div class="template-grid-item template-span-six free-text scroll-text template-footer"><span>{{free-text}}</span></div>
|
|
{{/free-text}}
|
|
{{#footer}}
|
|
<div class="template-grid-item template-span-six template-footer">{{footer}}</div>
|
|
{{/footer}}
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<script type="text/worker">
|
|
/* beautify preserve:start */
|
|
|
|
"use strict";
|
|
|
|
/* START ASYNC FUNCTIONS
|
|
Function from https://github.com/onyxring/Roll20Async, Many thanks Onyx RIng
|
|
*/
|
|
|
|
function setActiveCharacterId(charId){
|
|
var oldAcid=getActiveCharacterId();
|
|
var ev = new CustomEvent("message");
|
|
ev.data={"id":"0", "type":"setActiveCharacter", "data":charId};
|
|
self.dispatchEvent(ev);
|
|
return oldAcid;
|
|
}
|
|
/* var _sIn=setInterval;
|
|
setInterval=function(callback, timeout){
|
|
var acid=getActiveCharacterId();
|
|
_sIn(
|
|
function(){
|
|
var prevAcid=setActiveCharacterId(acid);
|
|
callback();
|
|
setActiveCharacterId(prevAcid);
|
|
}
|
|
,timeout);
|
|
}
|
|
var _sto=setTimeout
|
|
setTimeout=function(callback, timeout){
|
|
var acid=getActiveCharacterId();
|
|
_sto(
|
|
function(){
|
|
var prevAcid=setActiveCharacterId(acid);
|
|
callback();
|
|
setActiveCharacterId(prevAcid);
|
|
}
|
|
,timeout);
|
|
} */
|
|
function getAttrsAsync(props){
|
|
var acid=getActiveCharacterId(); //save the current activeCharacterID in case it has changed when the promise runs
|
|
var prevAcid=null; //local variable defined here, because it needs to be shared across the promise callbacks defined below
|
|
return new Promise((resolve,reject)=>{
|
|
prevAcid=setActiveCharacterId(acid); //in case the activeCharacterId has changed, restore it to what we were expecting and save the current value to restore later
|
|
try{
|
|
getAttrs(props,(values)=>{ resolve(values); });
|
|
}
|
|
catch{ reject(); }
|
|
}).finally(()=>{
|
|
setActiveCharacterId(prevAcid); //restore activeCharcterId to what it was when the promise first ran
|
|
});
|
|
}
|
|
//use the same pattern for each of the following...
|
|
function setAttrsAsync(propObj, options){
|
|
var acid=getActiveCharacterId();
|
|
var prevAcid=null;
|
|
return new Promise((resolve,reject)=>{
|
|
prevAcid=setActiveCharacterId(acid);
|
|
try{
|
|
setAttrs(propObj,options,(values)=>{ resolve(values); });
|
|
}
|
|
catch{ reject(); }
|
|
}).finally(()=>{
|
|
setActiveCharacterId(prevAcid);
|
|
});
|
|
}
|
|
|
|
function getSectionIDsAsync(sectionName){
|
|
var acid=getActiveCharacterId();
|
|
var prevAcid=null;
|
|
return new Promise((resolve,reject)=>{
|
|
prevAcid=setActiveCharacterId(acid);
|
|
try{
|
|
getSectionIDs(sectionName,(values)=>{ resolve(values); });
|
|
}
|
|
catch{ reject(); }
|
|
}).finally(()=>{
|
|
setActiveCharacterId(prevAcid);
|
|
});
|
|
}
|
|
|
|
function getSingleAttrAsync(prop){
|
|
var acid=getActiveCharacterId();
|
|
var prevAcid=null;
|
|
return new Promise((resolve,reject)=>{
|
|
prevAcid=setActiveCharacterId(acid);
|
|
try{
|
|
getAttrs([prop],(values)=>{ resolve(values[prop]); });
|
|
}
|
|
catch{ reject(); }
|
|
}).finally(()=>{
|
|
setActiveCharacterId(prevAcid);
|
|
});
|
|
}
|
|
/* END ASYNC FUNCTIONS */
|
|
|
|
|
|
|
|
let race_att_names;
|
|
|
|
/* START RACE TYPE UPDATES */
|
|
|
|
//object reference for Race specific attribute names
|
|
|
|
//Upate sheet labels when chartype attribute changes
|
|
on("change:chartype sheet:opened", function(eventInfo) {
|
|
|
|
var character_types = {
|
|
"Mutant":{ strength: getTranslationByKey("strength"),
|
|
agility: getTranslationByKey("agility"),
|
|
wits: getTranslationByKey("wits"),
|
|
empathy: getTranslationByKey("empathy"),
|
|
str:getTranslationByKey("strength-abbr"),
|
|
agi: getTranslationByKey("agility-abbr"),
|
|
wit: getTranslationByKey("wits-abbr"),
|
|
emp: getTranslationByKey("empathy-abbr"),
|
|
damage: getTranslationByKey("damage"),
|
|
fatigue: getTranslationByKey("fatigue"),
|
|
confusion: getTranslationByKey("confusion"),
|
|
doubt: getTranslationByKey("doubt"),
|
|
endure: getTranslationByKey("endure"),
|
|
force: getTranslationByKey("force"),
|
|
fight: getTranslationByKey("fight"),
|
|
sneak: getTranslationByKey("sneak"),
|
|
move: getTranslationByKey("move"),
|
|
shoot: getTranslationByKey("shoot"),
|
|
scout: getTranslationByKey("scout"),
|
|
comprehend: getTranslationByKey("comprehend"),
|
|
know_the_zone: getTranslationByKey("know-the-zone"),
|
|
sense_emotion: getTranslationByKey("sense-emotion"),
|
|
manipulate: getTranslationByKey("manipulate"),
|
|
heal: getTranslationByKey("heal") },
|
|
|
|
"Animal":{ strength: getTranslationByKey("strength"),
|
|
agility: getTranslationByKey("agility"),
|
|
wits: getTranslationByKey("wits"),
|
|
empathy: getTranslationByKey("instinct"),
|
|
str:getTranslationByKey("strength-abbr"),
|
|
agi: getTranslationByKey("agility-abbr"),
|
|
wit: getTranslationByKey("wits-abbr"),
|
|
emp: getTranslationByKey("instinct-abbr"),
|
|
damage: getTranslationByKey("damage"),
|
|
fatigue: getTranslationByKey("fatigue"),
|
|
confusion: getTranslationByKey("confusion"),
|
|
doubt: getTranslationByKey("doubt"),
|
|
endure: getTranslationByKey("endure"),
|
|
force: getTranslationByKey("force"),
|
|
fight: getTranslationByKey("fight"),
|
|
sneak: getTranslationByKey("sneak"),
|
|
move: getTranslationByKey("move"),
|
|
shoot: getTranslationByKey("shoot"),
|
|
scout: getTranslationByKey("scout"),
|
|
comprehend: getTranslationByKey("comprehend"),
|
|
know_the_zone: getTranslationByKey("know-nature"),
|
|
sense_emotion: getTranslationByKey("sense-emotion-animal"),
|
|
manipulate: getTranslationByKey("dominate"),
|
|
heal: getTranslationByKey("heal") },
|
|
|
|
"Robot":{ strength: getTranslationByKey("servos"),
|
|
agility: getTranslationByKey("stability"),
|
|
wits: getTranslationByKey("processor"),
|
|
empathy: getTranslationByKey("network"),
|
|
str: getTranslationByKey("servos-abbr"),
|
|
agi: getTranslationByKey("stability-abbr"),
|
|
wit: getTranslationByKey("processor-abbr"),
|
|
emp: getTranslationByKey("network-abbr"),
|
|
damage: getTranslationByKey("damage"),
|
|
fatigue: getTranslationByKey("damage"),
|
|
confusion: getTranslationByKey("damage"),
|
|
doubt: getTranslationByKey("damage"),
|
|
endure: getTranslationByKey("overload"),
|
|
force: getTranslationByKey("force-robot"),
|
|
fight: getTranslationByKey("assault"),
|
|
sneak: getTranslationByKey("infiltrate"),
|
|
move: getTranslationByKey("move-robot"),
|
|
shoot: getTranslationByKey("shoot-robot"),
|
|
scout: getTranslationByKey("scan"),
|
|
comprehend: getTranslationByKey("datamine"),
|
|
know_the_zone: getTranslationByKey("analyze"),
|
|
sense_emotion: getTranslationByKey("question"),
|
|
manipulate: getTranslationByKey("interact"),
|
|
heal: getTranslationByKey("repair") },
|
|
|
|
"Human":{ strength: getTranslationByKey("strength"),
|
|
agility: getTranslationByKey("agility"),
|
|
wits: getTranslationByKey("wits"),
|
|
empathy: getTranslationByKey("empathy"),
|
|
str: getTranslationByKey("strength-abbr"),
|
|
agi: getTranslationByKey("agility-abbr"),
|
|
wit: getTranslationByKey("wits-abbr"),
|
|
emp: getTranslationByKey("empathy-abbr"),
|
|
damage: getTranslationByKey("damage"),
|
|
fatigue: getTranslationByKey("fatigue"),
|
|
confusion: getTranslationByKey("confusion"),
|
|
doubt: getTranslationByKey("doubt"),
|
|
endure: getTranslationByKey("endure"),
|
|
force: getTranslationByKey("force"),
|
|
fight: getTranslationByKey("fight"),
|
|
sneak: getTranslationByKey("sneak"),
|
|
move: getTranslationByKey("move"),
|
|
shoot: getTranslationByKey("shoot"),
|
|
scout: getTranslationByKey("scout"),
|
|
comprehend: getTranslationByKey("comprehend"),
|
|
know_the_zone: getTranslationByKey("know-the-zone"),
|
|
sense_emotion: getTranslationByKey("sense-emotion"),
|
|
manipulate: getTranslationByKey("manipulate"),
|
|
heal: getTranslationByKey("heal") },
|
|
};
|
|
|
|
getAttrs(["chartype"], function(values) {
|
|
|
|
// race_att_names;
|
|
if (_.has(character_types, values.chartype) ) {
|
|
race_att_names = character_types[values.chartype];
|
|
}
|
|
else {
|
|
race_att_names = character_types["Mutant"];
|
|
setAttrs({chartype: "Mutant"});
|
|
}
|
|
setAttrs({strength_name: race_att_names.strength});
|
|
setAttrs({agility_name: race_att_names.agility});
|
|
setAttrs({wits_name: race_att_names.wits});
|
|
setAttrs({empathy_name: race_att_names.empathy});
|
|
setAttrs({strength_abbr: race_att_names.str});
|
|
setAttrs({agility_abbr: race_att_names.agi});
|
|
setAttrs({wits_abbr: race_att_names.wit});
|
|
setAttrs({empathy_abbr: race_att_names.emp});
|
|
setAttrs({damage_name: race_att_names.damage});
|
|
setAttrs({fatigue_name: race_att_names.fatigue});
|
|
setAttrs({confusion_name: race_att_names.confusion});
|
|
setAttrs({doubt_name: race_att_names.doubt});
|
|
setAttrs({endure_name: race_att_names.endure});
|
|
setAttrs({force_name: race_att_names.force});
|
|
setAttrs({fight_name: race_att_names.fight});
|
|
setAttrs({sneak_name: race_att_names.sneak});
|
|
setAttrs({move_name: race_att_names.move});
|
|
setAttrs({shoot_name: race_att_names.shoot});
|
|
setAttrs({scout_name: race_att_names.scout});
|
|
setAttrs({comprehend_name: race_att_names.comprehend});
|
|
setAttrs({know_the_zone_name: race_att_names.know_the_zone});
|
|
setAttrs({sense_emotion_name: race_att_names.sense_emotion});
|
|
setAttrs({manipulate_name: race_att_names.manipulate});
|
|
setAttrs({heal_name: race_att_names.heal});
|
|
});
|
|
});
|
|
|
|
/* END RACE TYPE UPDATES */
|
|
|
|
|
|
|
|
/* Attributre damage const */
|
|
const attributes = {
|
|
// an Object Literal: damages['strength'] returns 'damage', damages['empathy'] returns 'doubt', etc
|
|
strength: "strength_total",
|
|
agility: "agility_total",
|
|
wits: "wits_total",
|
|
empathy: "empathy_total",
|
|
};
|
|
|
|
|
|
/* Attributre damage const */
|
|
const damages = {
|
|
// an Object Literal: damages['strength'] returns 'damage', damages['empathy'] returns 'doubt', etc
|
|
strength: "damage",
|
|
agility: "fatigue",
|
|
wits: "confusion",
|
|
empathy: "doubt",
|
|
};
|
|
|
|
/* Skill attributes, misc and gear */
|
|
const skills = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding attribute
|
|
endure: "strength_total",
|
|
force: "strength_total",
|
|
fight: "strength_total",
|
|
sneak: "agility_total",
|
|
Move: "agility_total",
|
|
shoot: "agility_total",
|
|
scout: "wits_total",
|
|
comprehend: "wits_total",
|
|
know_the_zone: "wits_total",
|
|
sense_emotion: "empathy_total",
|
|
manipulate: "empathy_total",
|
|
heal: "empathy_total",
|
|
},
|
|
misc = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding skill modification
|
|
endure: "endure_skill_misc",
|
|
force: "force_skill_misc",
|
|
fight: "fight_skill_misc",
|
|
sneak: "sneak_skill_misc",
|
|
Move: "move_skill_misc",
|
|
shoot: "shoot_skill_misc",
|
|
scout: "scout_skill_misc",
|
|
comprehend: "comprehend_skill_misc",
|
|
know_the_zone: "know_the_zone_skill_misc",
|
|
sense_emotion: "sense_emotion_skill_misc",
|
|
manipulate: "manipulate_skill_misc",
|
|
heal: "heal_skill_misc",
|
|
},
|
|
miscGear = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding gear modification
|
|
endure: "endure_gear_misc",
|
|
force: "force_gear_misc",
|
|
fight: "fight_gear_misc",
|
|
sneak: "sneak_gear_misc",
|
|
Move: "move_gear_misc",
|
|
shoot: "shoot_gear_misc",
|
|
scout: "scout_gear_misc",
|
|
comprehend: "comprehend_gear_misc",
|
|
know_the_zone: "know_the_zone_gear_misc",
|
|
sense_emotion: "sense_emotion_gear_misc",
|
|
manipulate: "manipulate_gear_misc",
|
|
heal: "heal_gear_misc",
|
|
}
|
|
|
|
/* Monster constant */
|
|
const monster_skills = {
|
|
"endure monster": "endure_monster",
|
|
"fight monster": "fight_monster",
|
|
"force monster": "force_monster",
|
|
},
|
|
monster_misc = {
|
|
"endure monster": "endure_skill_misc_monster",
|
|
"fight monster": "fight_skill_misc_monster",
|
|
"force monster": "force_skill_misc_monster",
|
|
},
|
|
monster_miscGear = {
|
|
"endure monster": "endure_gear_misc_monster",
|
|
"fight monster": "fight_gear_misc_monster",
|
|
"force monster": "force_gear_misc_monster",
|
|
};
|
|
|
|
/* Switch between tabs. From version 1.12, using buttons.*/
|
|
[`character`, `ark`, `monster`, `zonelog`, 'npc', 'settings'].forEach(attr => {
|
|
on(`clicked:tab_${attr}`, () => {
|
|
setAttrs({tab: attr});
|
|
});
|
|
});
|
|
|
|
|
|
/* number and log handling */
|
|
const int = (score, on_error = 0) => parseInt(score) || on_error;
|
|
const float = (score, on_error = 0) => parseFloat(score) || on_error;
|
|
const clog = (text, title = "", color = "green", style = "font-size:12px; font-weight:normal;", headerstyle = "font-size:13px; font-weight:bold;") => {
|
|
let titleStyle = `color:${color}; ${headerstyle} text-decoration:underline;`;
|
|
let textStyle = `color:${color}; ${style}`;
|
|
let output = `%c${title} %c${text}`;
|
|
if (title) {
|
|
console.log(output, titleStyle, textStyle);
|
|
} else {
|
|
output = `%c${text}`;
|
|
console.log(output, textStyle);
|
|
}
|
|
};
|
|
|
|
/* version tracking */
|
|
|
|
const newAnnouncement = async (old_version, new_version, show_announcement) => {
|
|
const setter = {};
|
|
clog(`Current sheet data version: ${old_version}, Sheet code version: ${new_version}`);
|
|
|
|
if (new_version > old_version) {
|
|
setter.version = new_version;
|
|
}
|
|
if (show_announcement) {
|
|
clog("New Announcements: v" + new_version);
|
|
setter.show_announcements = 1;
|
|
}
|
|
if (setter) {
|
|
await setAttrsAsync(setter);
|
|
}
|
|
};
|
|
|
|
const versionator = async (old_version) => {
|
|
// set the sheet version you are upgrading sheet to,
|
|
// and set show_announcement to 1 if you want to force an announcement to be shown.
|
|
// don't set a code_version; we use the switch below for that.
|
|
// let new_version = 2.02; // DEPRECATED, using the attribute attr_sheetversion at top of html for this
|
|
var new_version = (await getAttrsAsync(["sheetversion"])).sheetversion;
|
|
clog("New version from attr: "+ new_version);
|
|
let show_announcement = 1;
|
|
|
|
// Test if character is new
|
|
var new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
|
|
// Test for upgrade from previous version 1.x (by checking for previous Attributes)
|
|
var test = await getAttrsAsync(["chartype", "adv-modifiers", "header-bgimg", "rot_permenant", "rot_permanent", "strength_max", "agility_max", "wits_max", "empathy_max", "ark_culture"]);
|
|
//clog("Test prev version: " + JSON.stringify(test));
|
|
//clog("Test prev version 2: " + ( ( test.strength_max || test.agility_max || test.wits_max || test.empathy_max ) === undefined));
|
|
//clog("Test prev version 3: " + ( test.strength_max === undefined || test.agility_max === undefined || test.wits_max === undefined || test.empathy_max === undefined ));
|
|
const prev_version_one = ( test.strength_max === undefined && test.agility_max === undefined && test.wits_max === undefined && test.empathy_max === undefined ) ? 0 : 1;
|
|
//clog("prev_version_one: "+prev_version_one);
|
|
|
|
// Test for upgrade from previous version 1.x (by checking for previous Attributes)
|
|
var test2 = await getAttrsAsync(["strength_total", "agility_total", "wits_total", "empathy_total"]);
|
|
//clog("Test prev version two: " + JSON.stringify(test2));
|
|
//clog("Test prev version two 1: " + (( test2.strength_total && test2.agility_total && test2.wits_total && test2.empathy_total ) === 0));
|
|
//clog("Test prev version two 2: " + ( test2.agility_total === 0 && test2.wits_total === 0 && test2.empathy_total === 0 ));
|
|
const prev_version_two = ( test2.agility_total === 0 && test2.wits_total === 0 && test2.empathy_total === 0 ) ? 0 : 1;
|
|
//clog("prev_version_two: "+prev_version_two);
|
|
|
|
//clog("old_version 1 = "+old_version);
|
|
//if (!old_version) old_version = 2.01; // New sheet
|
|
//clog("old_version 2 = "+old_version);
|
|
|
|
// Set version based on old_version and old attributes - DEPRECATED
|
|
/*
|
|
if ( !old_version && prev_version_one == 1 ) { // Also updates v 2.01!!!
|
|
clog("Not old_version and prev_version_one is 1, setting old version to 1.12");
|
|
old_version = 1.12;
|
|
} else if ( !old_version && prev_version_one == 0 ) { // New sheet
|
|
clog("Not old_version and prev_version_one is 0, setting old version to 2.02");
|
|
old_version = 2.01;
|
|
}
|
|
else { // ( old_version && prev_version_one == 0 )
|
|
clog("else do 2.01 upgrade");
|
|
old_version = 2.01;
|
|
} */
|
|
// clog("Old version: "+ old_version);
|
|
|
|
switch (true) {
|
|
//add checks for updates here
|
|
case new_character == 1 && prev_version_one == 0:
|
|
clog("----- New character and not old old version, setting new character to 0 and version to "+new_version);
|
|
old_version = new_version;
|
|
show_announcement = 0;
|
|
await setAttrsAsync({is_new_character: 0, version: new_version});
|
|
new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
break;
|
|
case old_version < 2.02 && prev_version_one == 1 && prev_version_two == 0:
|
|
clog("---- Updating from v1 to version 2.02 from 1.12");
|
|
update_to_2_0(float(1.12), float(2.02));
|
|
await setAttrsAsync({is_new_character: 0});
|
|
new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
break;
|
|
case old_version < 2.02 && prev_version_one == 1 && prev_version_two == 1:
|
|
clog("---- Updating from v1 to version 2.02 from 2.01");
|
|
update_to_2_0(float(2.01), float(2.02));
|
|
await setAttrsAsync({is_new_character: 0});
|
|
new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
break;
|
|
/* case old_version < 2.02 && prev_version_one == 0: // Should be no need to upgrade
|
|
clog("----- Updating to version 2.02");
|
|
update_to_2_0(float(2.01), float(2.02));
|
|
new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
break; */
|
|
default:
|
|
clog("----- In switch default. ");
|
|
await setAttrsAsync({is_new_character: 0});
|
|
new_character = (await getAttrsAsync(["is_new_character"])).is_new_character;
|
|
clog("New character: "+ new_character);
|
|
// if reach this, all codeversion upgrades are complete
|
|
// can run your recalculate function to show announcements
|
|
newAnnouncement(old_version, new_version, show_announcement);
|
|
}
|
|
};
|
|
//add updates here
|
|
|
|
/* rename misspelled items
|
|
const update_to_1_12 = (old_version, upgraded_version) => {
|
|
getAttrs(["armor1_equiped", "armor2_equiped"], (v) => {
|
|
const setter = {};
|
|
|
|
const statswaps = {
|
|
armor1_equiped: "armor1_equipped",
|
|
armor2_equiped: "armor2_equipped",
|
|
};
|
|
|
|
Object.entries(statswaps).forEach(([key, value]) => {
|
|
if (v[key]) {
|
|
setter[key] = v[value];
|
|
clog(`Upgrading stat setter[key] ${setter[key]} to v[value] ${v[value]}`);
|
|
}
|
|
});
|
|
|
|
// UPDATE THIS /
|
|
// MUST set the version to a specific value here, the one where the sheet was updated like this.
|
|
|
|
setter.version = upgraded_version;
|
|
|
|
setAttrs(setter, { silent: true }, versionator(upgraded_version));
|
|
clog("updating misspelled items");
|
|
});
|
|
};*/
|
|
|
|
/* Upgrade to 2.0 version from previous version */
|
|
const update_to_2_0 = async (old_version, upgraded_version) => {
|
|
|
|
var values = {};
|
|
const charname = await getAttrsAsync(["character_name"]);
|
|
|
|
clog(`** UPDATING "${charname.character_name}" TO V2.0 FROM ${old_version} **`);
|
|
|
|
// On upgrade, set character type to Mutant
|
|
if (old_version < 2.01) {
|
|
//clog(`Upgrade ${charname.character_name}: Setting character type Mutant.`);
|
|
await setAttrsAsync({chartype: "Mutant"});
|
|
}
|
|
|
|
// On upgrade, turn off modifiers
|
|
if (old_version < 2.01) {
|
|
//clog(`Upgrade ${charname.character_name}: Turning off modifiers.`);
|
|
await setAttrsAsync({"adv-modifiers": 0});;
|
|
}
|
|
|
|
// On upgrade, turn on Mutant headers
|
|
if (old_version < 2.01) {
|
|
//clog(`Upgrade ${charname.character_name}: using image header backgrounds.`);
|
|
await setAttrsAsync({"header-bgimg": 1});
|
|
}
|
|
|
|
// On upgrade, change tab according to new tab naming
|
|
if (old_version < 2.01) {
|
|
const tab = await getAttrsAsync(["tab"]);
|
|
//clog(`Upgrading tab, current is ${tab.tab}`);
|
|
switch (tab.tab) {
|
|
case "log" :
|
|
await setAttrsAsync({tab: "zonelog"});
|
|
//clog("Setting tab from Log to Zonelog");
|
|
break;
|
|
case "npc" :
|
|
await setAttrsAsync({tab: "monster"});
|
|
await setAttrsAsync({"force_show_monsterinfo":1});
|
|
clog("Setting tab from Npc to Monster, and showing legacy npc info.");
|
|
break;
|
|
default:
|
|
//clog("No need to update tab");
|
|
}
|
|
}
|
|
|
|
// Upgrade attributes, no need to update damages
|
|
// const attributes = { strength: "strength_total", agility: "agility_total", wits: "wits_total", empathy: "empathy_total" };
|
|
// const damages = { strength: "damage", agility: "fatigue", wits: "confusion", empathy: "doubt"};
|
|
Object.keys(attributes).forEach( async (attr) => {
|
|
var attrib = {};
|
|
values = await getAttrsAsync([attr, attributes[attr], damages[attr], attr+"_max", "character_name"]);
|
|
|
|
//charname = values.character_name;
|
|
|
|
// Set attributes to the attribute_max value from v1
|
|
//clog(`Testing attribute ${attr}_total exists (): exists ${(!values[attr+"_total"])} or is zero ${(values[attr+"_total"] == 0)}`);
|
|
// if (!values[attr+"_total"] || values[attr+"_total"] == 0) { // replaced with old version test
|
|
//clog(`Old version test: ${old_version < 2}`);
|
|
//clog(`Testing if ${attr}_max exists: ${values[attr+"_max"]}`);
|
|
//clog(`Testing is ${attr} is not equal to ${attr}_max: ${values[attr] != values[attr+"_max"]}`);
|
|
//clog(`Set ${attr} to ${attr}_max test: ${(old_version < 2 || (values[attr+"_max"] && (values[attr] != values[attr+"_max"])) )}`);
|
|
if (old_version < 2 || (values[attr+"_max"] && (values[attr] != values[attr+"_max"])) ) {
|
|
attrib[attr] = int(values[attr+"_max"]);
|
|
//clog(`Upgrading attribute ${attr} from v1 version ${values[attr+"_max"]} to v2 ${values[attr]}`);
|
|
if (attr == "strength") {
|
|
// Set strength attributes for PC and Monster to attribute_max value
|
|
attrib["strength_pc"] = values["strength_max"];
|
|
attrib["strength_monster"] = values["strength_max"];
|
|
//clog(`Attrib is Strength, pc = ${attrib["strength_pc"]} and Monster is ${attrib["strength_monster"]}`);
|
|
}
|
|
} else {
|
|
attrib[attr] = int(values[attr]);
|
|
}
|
|
//clog(`Attributes ${attr} damage is ${int(values[damages[attr]])}`);
|
|
attrib[attr+"_total"] = attrib[attr] - int(values[damages[attr]]);
|
|
//clog("Attributes attrib: "+JSON.stringify(attrib));
|
|
const attr_name = getSkillName(attr);
|
|
clog(`Set ${charname.character_name} attribute ${attr_name} from ${attr_name}_max ${values[attr+"_max"]} to ${attr_name} ${attrib[attr]} with total ${attrib[attr+"_total"]}.`);
|
|
await setAttrsAsync(attrib);
|
|
});
|
|
|
|
// Upgrade conditions - no need
|
|
// Upgrade apprearance - no need
|
|
// Upgrade injuries - non need
|
|
// Upgrade rot -
|
|
//clog("Pre Upgrade rot points");
|
|
const rot = await getAttrsAsync(["rot_permenant", "rot_permanent"]);
|
|
//clog("Upgrade rot points test 1, permenant exists : "+ rot.rot_permenant);
|
|
//clog("Upgrade rot points test 2, permanent : "+ rot.rot_permanent);
|
|
const permenant = int(rot.rot_permenant || 0),
|
|
permanent = int(rot.rot_permanent);
|
|
//clog("Upgrade rot points test 3, permenant > permanent : "+ (permenant > permanent) );
|
|
if (permenant > permanent) {
|
|
clog(`Upgrading ${charname.character_name} permanent rot points from ${permanent} to ${permenant}`);
|
|
await setAttrsAsync({rot_permanent: permenant});
|
|
}
|
|
rot["value"] = await getAttrsAsync(["rot_permanent"]);
|
|
//clog(`Post Upgrade ${charname.character_name} permanent rot points ${rot.value.rot_permanent}`);
|
|
|
|
// Upgrade experience - no need, same attribute
|
|
|
|
// Upgrade skills - no need
|
|
// Upgrade repeating skills - no need, aligned
|
|
|
|
// Talents - no need - aligned
|
|
|
|
// Mutations, checking if need upgrade, checking if mutation names exists, then upgrading
|
|
var muts_actioned = false;
|
|
// Collect new mutaitons, if any
|
|
const mutationIds = await getSectionIDsAsync("repeating_mutations");
|
|
//clog("Mutation IDs list: "+ JSON.stringify(mutationIds));
|
|
//clog("Mutation IDs length: "+ mutationIds.length);
|
|
const mutations = [];
|
|
mutationIds.forEach( async (mutationId) => {
|
|
const muts = await getAttrsAsync(["repeating_mutations_"+mutationId+"_name", "repeating_mutations_"+mutationId+"_description"]);
|
|
mutations.push({name: muts["repeating_mutations_"+mutationId+"_name"], description: muts["repeating_mutations_"+mutationId+"_description"]});
|
|
//clog("Mutation names: "+JSON.stringify(mutations));
|
|
});
|
|
// Collect old mutantions, if any
|
|
const mutantionIds = await getSectionIDsAsync("repeating_mutantions");
|
|
//clog("Mutations list: "+ JSON.stringify(mutationIds));
|
|
//clog("Mutations length: "+ mutationIds.length);
|
|
//clog("Mutantion IDs list: "+ JSON.stringify(mutantionIds));
|
|
//clog("Mutantion IDs list: "+ mutantionIds.length);
|
|
|
|
if(mutantionIds.length > 0 && mutationIds.length < mutantionIds.length) {
|
|
mutantionIds.forEach( async (mutantionsId) => {
|
|
values = await getAttrsAsync(["repeating_mutantions_"+mutantionsId+"_mutantion_name", "repeating_mutantions_"+mutantionsId+"_mutantion_description", "character_name"]);
|
|
const name = values["repeating_mutantions_"+mutantionsId+"_mutantion_name"],
|
|
description = values["repeating_mutantions_"+mutantionsId+"_mutantion_description"],
|
|
newrowid = generateRowID();
|
|
//clog(`Found ${charname.character_name}'s mutantion ${name}.`);
|
|
const found = mutations.find(element => element.name == name);
|
|
//clog("Mutantion and mutations doesnt match? "+(found === undefined));
|
|
if (!found) {
|
|
//clog("Couldnt find match to "+name);
|
|
} else {
|
|
//clog("Found match to "+name);
|
|
}
|
|
var asterisk = "";
|
|
if ( mutationIds.length > 0) { asterisk = "*"; }
|
|
if(found === undefined) { // No match for mutantion in the new mutations list
|
|
clog(`Upgrading ${charname.character_name}'s mutantion ${name}.`);
|
|
let newmutation = {};
|
|
newmutation["repeating_mutations_"+newrowid+"_name"] = name + asterisk;
|
|
newmutation["repeating_mutations_"+newrowid+"_description"] = description;
|
|
newmutation["repeating_mutations_"+newrowid+"_rank"] = 1;
|
|
newmutation["repeating_mutations_"+newrowid+"_powerlevel"] = 1;
|
|
await setAttrsAsync(newmutation);
|
|
} else { // Found a match in the new mutation list, skipping
|
|
muts_actioned = true;
|
|
clog("mutation already re-added, "+name);
|
|
}
|
|
});
|
|
}
|
|
|
|
// Mutation points
|
|
const mp = await getAttrsAsync(["mutation", "mutationpoints", "character_name"]);
|
|
//clog(`${charname.character_name} mutation points mutation: ${mp.mutation}`);
|
|
//clog(`${charname.character_name} mutation points mutationpoints: ${mp.mutationpoints}`);
|
|
//clog("Testing mutpoints 0: " + old_version );
|
|
//clog(`Testing mutpoints 1: ${ old_version < float(2.01) } `);
|
|
//clog(`Testing mutpoints 2: ${ int(mp.mutation) != 0 } `);
|
|
//clog(`Testing mutpoints 3: ${ int(mp.mutationpoints) == 0 } `);
|
|
if (old_version < float(2.01) && int(mp.mutation) != 0 && int(mp.mutationpoints) == 0) {
|
|
//charname = mp.character_name;
|
|
//clog("Mutations ationed: "+muts_actioned);
|
|
//clog("Mutation points upgrade check: "+ (!mutation && !muts_actioned) || !mutationpoints );
|
|
clog(`Upgrading ${charname.character_name} mutation points using v1 mutantion points ${mp.mutation}`);
|
|
setAttrs({mutationpoints: mp.mutation});
|
|
} else {
|
|
clog("Mutation points not upgraded in version 2+, or when mutantion is 0, or mutationpoints is bigger than 0.");
|
|
}
|
|
|
|
|
|
// Upgrade Weapons ASYNC
|
|
const weaponIds = await getSectionIDsAsync("repeating_weapons");
|
|
weaponIds.forEach( async (weaponId) => {
|
|
var values = await getAttrsAsync(["repeating_weapons_"+weaponId+"_weapon_name", "repeating_weapons_"+weaponId+"_weapon_skill", "repeating_weapons_"+weaponId+"_weapon_skill_misc", "repeating_weapons_"+weaponId+"_weapon_bonus", "repeating_weapons_"+weaponId+"_weapon_bonus_max", "repeating_weapons_"+weaponId+"_weapon_damage", "repeating_weapons_"+weaponId+"_weapon_damage_misc", "repeating_weapons_"+weaponId+"_weapon_range", "repeating_weapons_"+weaponId+"_weapon_features", "repeating_weapons_"+weaponId+"_weapon_grip", "repeating_weapons_"+weaponId+"_weapon_weight", "repeating_weapons_"+weaponId+"_weapon_carried", "strength_total", "agility_total", "shoot", "fight", "character_name"]);
|
|
//clog(`Upgrade weapon attributes: Weapon ${values["repeating_weapons_"+weaponId+"_weapon_name"]} with bonus ${int(values["repeating_weapons_"+weaponId+"_weapon_bonus"])} and damage ${int(values["repeating_weapons_"+weaponId+"_weapon_damage"])} up to ${values["repeating_weapons_"+weaponId+"_weapon_range"]} distance.`);
|
|
//clog("Weapon upgrade json: "+ JSON.stringify(values));
|
|
const name = values["repeating_weapons_"+weaponId+"_weapon_name"],
|
|
skill = int(values["repeating_weapons_"+weaponId+"_weapon_skill"] || 0),
|
|
//skill_misc = int(values["repeating_weapons_"+weaponId+"_weapon_skill_misc"] || 0),
|
|
bonus = int(values["repeating_weapons_"+weaponId+"_weapon_bonus"] || 1),
|
|
bonus_max = values["repeating_weapons_"+weaponId+"_weapon_bonus_max"] ? int(values["repeating_weapons_"+weaponId+"_weapon_bonus_max"]) : int(values["repeating_weapons_"+weaponId+"_weapon_bonus"] || 1),
|
|
//bonus_misc = int(values["repeating_weapons_"+weaponId+"_weapon_bonus_misc" || 0]),
|
|
//bonus_tot = bonus + bonus_misc,
|
|
//damage = int(values["repeating_weapons_"+weaponId+"_weapon_damage"] || 1),
|
|
//damage_misc = int(values["repeating_weapons_"+weaponId+"_weapon_damage_misc"] || 0),
|
|
//damage_tot = damage + damage_misc,
|
|
//range = values["repeating_weapons_"+weaponId+"_weapon_range"] || "Arm",
|
|
//features = values["repeating_weapons_"+weaponId+"_weapon_features"] || "",
|
|
//grip = values["repeating_weapons_"+weaponId+"_weapon_grip"] || "1H",
|
|
//weight = values["repeating_weapons_"+weaponId+"_weapon_weight"] || 1,
|
|
//carried = values["repeating_weapons_"+weaponId+"_weapon_carried"] || 1,
|
|
//fight = int(values.fight),
|
|
//shoot = int(values.shoot),
|
|
base = skill === 0 ? int(values.strength_total) : int(values.agility_total),
|
|
skill_lvl = skill === 0 ? int(values.fight) : int(values.shoot);
|
|
const max = bonus_max < bonus ? bonus : bonus_max;
|
|
//clog(`Upgrade ${charname.character_name}'s weapon Weapon ${name} with ${base} base and ${skill_level} skill, max bonus ${bonus_max} and damage ${damage} up to ${range} distance.`);
|
|
|
|
let weapon = {};
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_name"] = name;
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_base_total"] = base;
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_skill"] = int(values["repeating_weapons_"+weaponId+"_weapon_skill"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_skill_misc"] = int(values["repeating_weapons_"+weaponId+"_weapon_skill_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_skill_total"] = skill_lvl + int(values["repeating_weapons_"+weaponId+"_weapon_skill_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_bonus"] = int(values["repeating_weapons_"+weaponId+"_weapon_bonus"] || 1);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_bonus_max"] = max;
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_bonus_misc"] = int(values["repeating_weapons_"+weaponId+"_weapon_bonus_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_bonus_total"] = bonus_max + int(values["repeating_weapons_"+weaponId+"_weapon_bonus_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_damage"] = int(values["repeating_weapons_"+weaponId+"_weapon_damage"] || 1);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_damage_misc"] = int(values["repeating_weapons_"+weaponId+"_weapon_damage_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_damage_total"] = int(values["repeating_weapons_"+weaponId+"_weapon_damage"] || 1) + int(values["repeating_weapons_"+weaponId+"_weapon_damage_misc"] || 0);
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_grip"] = values["repeating_weapons_"+weaponId+"_weapon_grip"] || "1H";
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_range"] = values["repeating_weapons_"+weaponId+"_weapon_range"] || "Arm";
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_carried"] = values["repeating_weapons_"+weaponId+"_weapon_carried"] || 1;
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_weight"] = values["repeating_weapons_"+weaponId+"_weapon_weight"] || 1;
|
|
weapon["repeating_weapons_"+weaponId+"_weapon_features"] = values["repeating_weapons_"+weaponId+"_weapon_features"] || "";
|
|
|
|
//clog("Updating weapon: "+JSON.stringify(weapon));
|
|
await setAttrsAsync(weapon);
|
|
});
|
|
|
|
// Upgrade armor to repeating section
|
|
|
|
var armorIds = await getSectionIDsAsync("repeating_armor");
|
|
//clog("New armor IDs: "+ JSON.stringify(armorIds));
|
|
|
|
const armor_names = [];
|
|
var val = "";
|
|
armorIds.forEach( async (armorId) => {
|
|
val = await getAttrsAsync(["repeating_armor_"+armorId+"_name"]);
|
|
armor_names.push(val["repeating_armor_"+armorId+"_name"]);
|
|
//clog("Armor names: "+JSON.stringify(armor_names));
|
|
});
|
|
//clog("Armor names: "+ JSON.stringify(armor_names));
|
|
|
|
var armors = await getAttrsAsync(["armor1_ar", "armor1_bonus", "armor1_damage", "armor1_equiped", "armor1_name", "armor2_ar", "armor2_bonus", "armor2_damage", "armor2_equiped", "armor2_name", "character_name"]);
|
|
|
|
var newarmor1 = {};
|
|
|
|
//clog("Upgrade armor1 name: "+armors.armor1_name);
|
|
//clog("Upgrade armor1 bonus: "+armors.armor1_bonus);
|
|
//clog("Upgrade armor1 name not found: "+(armor_names.find(element => element == armors.armor1_name) === undefined));
|
|
//clog(`Upgrading ${charname.character_name}'s Armor1 ${armors.armor1_name} with bonus ${armors.armor1_bonus} and damage ${armors.armor1_damage}, equipped ${armors.armor1_equiped}`);
|
|
|
|
if (armors.armor1_name && armors.armor1_bonus && (armor_names.find(element => element == armors.armor1_name) === undefined)) {
|
|
//clog("Upgrading Armor1 : " + armors.armor1_name + " with bonus : "+ armors.armor1_bonus +".");
|
|
clog(`Upgrading ${charname.character_name}'s Armor1 ${armors.armor1_name} with bonus ${armors.armor1_bonus} and damage ${armors.armor1_damage}, equipped ${armors.armor1_equiped}`);
|
|
const newrowid1 = generateRowID();
|
|
const bonus1_actual = int(armors.armor1_bonus) + int(armors.armor1_damage);
|
|
const rating1 = bonus1_actual * (armors.armor1_equiped == 0 ? 0 : 1);
|
|
//clog("Armor rating calculated: "+rating1);
|
|
var asterisk = "";
|
|
if ( old_version == float(2.01) ) { asterisk = "*"; }
|
|
newarmor1["repeating_armor_" + newrowid1 + "_name"] = armors.armor1_name + asterisk;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_rating"] = rating1;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_carried"] = 1;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_equipped"] = armors.armor1_equiped || 1;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_bonus"] = bonus1_actual;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_bonus_misc"] = 0;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_bonus_max"] = int(armors.armor1_bonus);
|
|
newarmor1["repeating_armor_" + newrowid1 + "_weight"] = 1;
|
|
newarmor1["repeating_armor_" + newrowid1 + "_features"] = '';
|
|
|
|
//clog("upgrading armor 1: "+JSON.stringify(newarmor1));
|
|
await setAttrsAsync(newarmor1);
|
|
} else {
|
|
//clog("No need to upgrade Armor_1");
|
|
}
|
|
|
|
var newarmor2 = {};
|
|
|
|
//clog("Upgrade armor2 name: "+armors.armor2_name);
|
|
//clog("Upgrade armor2 bonus: "+armors.armor2_bonus);
|
|
//clog("Upgrade armor1 name not found: "+(armor_names.find(element => element == armors.armor1_name) === undefined));
|
|
//clog(`Upgrade ${charname.character_name}'s Armor2 ${armors.armor2_name} with bonus ${armors.armor2_bonus} and damage ${armors.armor2_damage}, equipped ${armors.armor2_equiped}`);
|
|
|
|
if (armors.armor2_bonus && armors.armor2_name && armor_names.find(element => element == armors.armor2_name) === undefined) {
|
|
//clog("Upgrading Armor2 : " + armors.armor2_name + " with bonus : "+ armors.armor2_bonus +".");
|
|
clog(`Upgrading ${charname.character_name}'s Armor2 ${armors.armor2_name} with bonus ${armors.armor2_bonus} and damage ${armors.armor2_damage}, equipped ${armors.armor2_equiped}`);
|
|
const newrowid2 = generateRowID();
|
|
const bonus2_actual = int(armors.armor2_bonus) + int(armors.armor2_damage);
|
|
const rating2 = bonus2_actual * (armors.armor2_equiped == 0 ? 0 : 1);
|
|
//clog("Armor rating calculated: "+rating2);
|
|
newarmor2["repeating_armor_" + newrowid2 + "_name"] = armors.armor2_name;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_rating"] = rating2;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_carried"] = 1;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_equipped"] = armors.armor2_equiped || 1;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_bonus"] = bonus2_actual;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_bonus_misc"] = 0;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_bonus_max"] = int(armors.armor2_bonus);
|
|
newarmor2["repeating_armor_" + newrowid2 + "_weight"] = 1;
|
|
newarmor2["repeating_armor_" + newrowid2 + "_features"] = '';
|
|
|
|
//clog("upgrading armor 2: "+JSON.stringify(newarmor2));
|
|
await setAttrsAsync(newarmor2);
|
|
} else {
|
|
//clog("No need to upgrade Armor_2");
|
|
}
|
|
|
|
|
|
// Upgrade gear, vehicle and consumables
|
|
// Gear - no need
|
|
// Vehicle - aligned
|
|
// Consumables, aligned
|
|
|
|
// Upgrade relationships, notes etc
|
|
// Aligned
|
|
|
|
// Upgrade Ark sheet
|
|
// Development levels
|
|
values = await getAttrsAsync(["ark_food_supply","ark_culture", "ark_technology", "ark_warfare", "ark_dev_food", "ark_dev_cult", "ark_dev_tech", "ark_dev_war", "character_name"]);
|
|
const dev_food = int(values.ark_dev_food),
|
|
dev_culture = int(values.ark_dev_cult),
|
|
dev_tech = int(values.ark_dev_tech),
|
|
dev_war = int(values.ark_dev_war),
|
|
food = dev_food || int(values.ark_food_supply),
|
|
culture = dev_culture || int(values.ark_culture),
|
|
tech = dev_tech || int(values.ark_technology),
|
|
war = dev_war || int(values.ark_warfare);
|
|
//charname = values.character_name;
|
|
clog(`Upgrade ${charname.character_name}'s ark development levels: food ${food}, culture ${culture}, technology ${tech}, and warfare ${war}.`);
|
|
//clog("Dev levels json: "+ JSON.stringify(values));
|
|
await setAttrsAsync({
|
|
ark_dev_food: food,
|
|
ark_dev_cult: culture,
|
|
ark_dev_tech: tech,
|
|
ark_dev_war: war,
|
|
});
|
|
|
|
// Ark details
|
|
// Aligned
|
|
|
|
// UPDATE THIS /
|
|
// MUST set the version to a specific value here, the one where the sheet was updated like this.
|
|
const setter = {};
|
|
setter.version = upgraded_version;
|
|
|
|
clog("Setting upgraded version: "+JSON.stringify(upgraded_version));
|
|
setAttrs(setter, { silent: true }, versionator(upgraded_version));
|
|
|
|
};
|
|
|
|
on("sheet:opened", () => {
|
|
getAttrs(["version"], (v) => {
|
|
versionator(float(v.version));
|
|
});
|
|
});
|
|
|
|
|
|
/* ===== PARAMETERS ==========
|
|
GiGs 'Super Simple Summarizer'
|
|
*/
|
|
const repeatingSum = (destination, section, fields, multiplier = 1) => {
|
|
if (!Array.isArray(fields)) fields = [fields];
|
|
getSectionIDs(`repeating_${section}`, (idArray) => {
|
|
const attrArray = idArray.reduce((m, id) => [...m, ...fields.map((field) => `repeating_${section}_${id}_${field}`)], []);
|
|
getAttrs(attrArray, (v) => {
|
|
//clog("values of v: " + JSON.stringify(v));
|
|
// getValue: if not a number, returns 1 if it is 'on' (checkbox), otherwise returns 0..
|
|
const getValue = (section, id, field) => float(v[`repeating_${section}_${id}_${field}`]) || (v[`repeating_${section}_${id}_${field}`] === "on" ? 1 : 0);
|
|
|
|
const sumTotal = idArray.reduce((total, id) => total + fields.reduce((subtotal, field) => subtotal * getValue(section, id, field), 1), 0);
|
|
setAttrs({
|
|
[destination]: sumTotal * multiplier,
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
/* character encumbrance */
|
|
on("change:repeating_gear remove:repeating_gear sheet:opened", function () {
|
|
clog("Change Detected: Character Gear Encumbrance");
|
|
repeatingSum("gear_encumbrance", "gear", ["gear_weight", "gear_qty", "gear_carried"]);
|
|
});
|
|
|
|
/* vehicle encumbrance */
|
|
on("change:repeating_vehicle remove:repeating_vehicle sheet:opened", function () {
|
|
clog("Change Detected: Vehicle Gear Encumbrance");
|
|
repeatingSum("vehiclegear_encumbrance", "vehicle", ["vehiclegear_weight", "vehiclegear_qty", "vehiclegear_carried"]);
|
|
});
|
|
|
|
/* weapons encumbrance */
|
|
on("change:repeating_weapons remove:repeating_weapons sheet:opened", function () {
|
|
clog("Change Detected: Character Weapons Encumbrance");
|
|
repeatingSum("weapons_encumbrance", "weapons", ["weapon_weight", "weapon_carried"]);
|
|
});
|
|
|
|
/* armor encumbrance */
|
|
on("change:repeating_armor remove:repeating_armor sheet:opened", function () {
|
|
clog("Change Detected: Character Armor Encumbrance");
|
|
repeatingSum("armor_encumbrance", "armor", ["weight", "carried"]);
|
|
});
|
|
|
|
/* armor rating */
|
|
on("change:repeating_armor remove:repeating_armor sheet:opened", function () {
|
|
clog("Change Detected: Character Armor Rating");
|
|
repeatingSum("ar_total", "armor", ["rating", "equipped"]);
|
|
});
|
|
|
|
/* Permanent rot */
|
|
on("change:rot change:rot_permanent sheet:opened", function () {
|
|
clog("Change Detected: Rot levels");
|
|
getAttrs(["rot", "rot_permanent"], (values) => {
|
|
var rot = int(values.rot),
|
|
rot_permanent = int(values.rot_permanent);
|
|
if(rot <= rot_permanent) {
|
|
setAttrs ({ rot: rot_permanent });
|
|
}
|
|
});
|
|
});
|
|
|
|
/* total encumbrance */
|
|
on("sheet:opened change:gear_encumbrance change:vehiclegear_encumbrance change:weapons_encumbrance change:armor_encumbrance change:grub change:water change:bullets", function () {
|
|
getAttrs(["gear_encumbrance", "vehiclegear_encumbrance", "weapons_encumbrance", "armor_encumbrance", "grub", "water", "bullets"], function (values) {
|
|
clog("Change Detected: Character Encumbrance");
|
|
|
|
const gear_encumbrance = float(values["gear_encumbrance"]),
|
|
vehiclegear_encumbrance = float(values["vehiclegear_encumbrance"]),
|
|
weapons_encumbrance = float(values["weapons_encumbrance"]),
|
|
armor_encumbrance = float(values["armor_encumbrance"]),
|
|
grub = float(values["grub"]),
|
|
water = float(values["water"]),
|
|
bullets = float(values["bullets"]),
|
|
consumables_enc = (grub * 0.25) + (water * 0.25),
|
|
bullets_enc = bullets <= 10 ? 0 : (bullets <= 20 ? 0.5 : (bullets <= 40 ? 1 : 2)),
|
|
consumables_encumbrance = consumables_enc + bullets_enc,
|
|
sum_character_encumbrance = gear_encumbrance + weapons_encumbrance + armor_encumbrance + consumables_encumbrance,
|
|
sum_vehicle_encumbrance = vehiclegear_encumbrance;
|
|
setAttrs({
|
|
weapons_encumbrance: weapons_encumbrance,
|
|
armor_encumbrance: armor_encumbrance,
|
|
character_encumbrance: sum_character_encumbrance,
|
|
consumables_encumbrance: consumables_encumbrance,
|
|
vehicle_encumbrance: sum_vehicle_encumbrance,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* total vehicle encumbrance */
|
|
on("sheet:opened change:vehicle_advancedencumbrance change:vehiclegear_encumbrance change:vehicle_occupants change:vehicle_seats change:vehicle_fuel change:vehicle_fuel_cap change:vehicle_maxload", function () {
|
|
getAttrs(["vehicle_advancedencumbrance", "vehiclegear_total", "vehicle_carry", "vehiclegear_encumbrance", "vehicle_occupants", "vehicle_occupants_weight", "vehicle_seats", "vehicle_fuel", "vehicle_fuel_cap", "vehicle_fuel_weight", "vehicle_maxload", "vehicle_overencumbered"], function (values) {
|
|
clog("Change Detected: Vehicle Encumbrance");
|
|
const adv = int(values["vehicle_advancedencumbrance"]),
|
|
gear = float(values["vehiclegear_encumbrance"]),
|
|
occupants = int(values["vehicle_occupants"]),
|
|
seats = int(values["vehicle_seats"]),
|
|
fuel_cap = int(values["vehicle_fuel_cap"]),
|
|
fuel_in = float(values["vehicle_fuel"]),
|
|
fuel = fuel_in > fuel_cap ? fuel_cap : fuel_in,
|
|
fuel_wght = (adv > 0) ? fuel * 2 : 0, // If Adv, A unit of fuel weighs 2 units
|
|
maxload = int(values["vehicle_maxload"]),
|
|
carry = (adv > 0) ? maxload + (seats * 10) + (fuel_cap * 2) : maxload, // If Adv, Adjusted to accommodate poccupants and fuel
|
|
occupants_wght = (adv > 0) ? occupants * 10 : 0, // If Adv, A person weighs 10 units
|
|
total = gear + fuel_wght + occupants_wght,
|
|
overencumbered = (carry - total) < 0 ? 1 : 0;
|
|
setAttrs({
|
|
vehiclegear_encumbrance: gear,
|
|
vehicle_fuel_weight: fuel_wght,
|
|
vehicle_occupants_weight: occupants_wght,
|
|
vehiclegear_total: total,
|
|
vehicle_carry: carry,
|
|
vehicle_overencumbered: overencumbered,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Credits total */
|
|
on("sheet:opened change:credits change:credits_vehicle change:credits_stash", function () {
|
|
getAttrs(["credits", "credits_vehicle", "credits_stash"], function (values) {
|
|
clog("Change Detected: Credits Total");
|
|
const credits = float(values["credits"]),
|
|
credits_vehicle = float(values["credits_vehicle"]),
|
|
credits_stash = float(values["credits_stash"]),
|
|
sum_credits = credits + credits_vehicle + credits_stash;
|
|
setAttrs({
|
|
credits_total: sum_credits,
|
|
});
|
|
});
|
|
});
|
|
|
|
//Battle Level
|
|
on("change:ark_dev_war", () => {
|
|
getAttrs(["ark_dev_war"], (values) => {
|
|
//clog(JSON.stringify(values));
|
|
//clog(`Battle level at ${int(values.ark_dev_war) || 1}`);
|
|
const warfare = Math.ceil(float(values.ark_dev_war) / 10) || 1;
|
|
setAttrs({
|
|
ark_battle_level: warfare,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Monster or PC Strength handling. updates attr_strength depending on sheet tab*/
|
|
on("change:tab change:strength_pc change:strength_monster sheet:opened", () => {
|
|
getAttrs(["tab", "strength", "strength_pc", "strength_monster"], (v) => {
|
|
const settings = {},
|
|
tab = (v.tab) ? v.tab : 'character', // sets tab to Character if not recognized - so goes to pc tab;
|
|
str = int(v.strength);
|
|
let pc = int(v.strength_pc),
|
|
monster = int(v.strength_monster),
|
|
forceupdate = 0;
|
|
//clog(`Found updated strength max in tab ${tab}, checking pc = ${pc} and monster = ${monster} strengths, max is now = ${str}.`)
|
|
|
|
// check if character existed before strength_pc or _monster stats were introduced.
|
|
if (str > 0) {
|
|
if (0 === pc || 0 === monster) forceupdate = 1;
|
|
if (0 === pc) {
|
|
pc = str;
|
|
settings.strength_pc = str;
|
|
}
|
|
if (0 === monster) {
|
|
monster = str;
|
|
settings.strength_monster = str;
|
|
}
|
|
}
|
|
// if tab is not pc or monster, end the function and leave strength unchanged
|
|
if (tab !== 'character' && tab !== 'monster' && !forceupdate) return;
|
|
|
|
// if tab = 1 or 3, set strength to the appropriate value
|
|
settings.strength = tab === 'monster' ? monster : pc;
|
|
|
|
setAttrs(settings);
|
|
});
|
|
});
|
|
|
|
/* ability damage calcs */
|
|
Object.keys(damages).forEach((stat) => {
|
|
// creates a sheet worker for each stat in damages - first stat = 'strength', then stat = 'agility', etc
|
|
// in each worker, stat = the stat (strength, agility, etc) and damages[stat] = the associated damage ('damage'. 'fatigue', etc)
|
|
on(`change:${stat} change:${damages[stat]}`, function () {
|
|
//clog(`${stat} or ${damages[stat]} has changed.`);
|
|
getAttrs([stat, damages[stat]], (values) => {
|
|
const stat_score = int(values[stat]),
|
|
damage_score = int(values[damages[stat]]);
|
|
setAttrs({
|
|
[stat + "_total"]: Math.max(0, stat_score - damage_score),
|
|
//Math.max returns the highest value from a comma separated list - it's just like roll20's kh1 dice function.
|
|
// so you don't need the if( value > 0) test. With math.max, if the value is below 0, it becomes 0.
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/*** UPDATE ***/
|
|
/* skill total calcs */
|
|
const getSkill = (label) => (label.split("-").join("_")).split(" ").join("_").toLowerCase(),
|
|
// a function to change (for example) "Know the Zone" to "know_the_zone"
|
|
// needed for a couple of functions below
|
|
|
|
getSkillKey = (label) => (label.split("_").join("-")).split(" ").join("-").toLowerCase(),
|
|
// a function to change (for example) "Know the Zone" to "know-the-zone"
|
|
// needed for a couple of functions below
|
|
|
|
getSkillName = (label) => race_att_names[label];
|
|
// A function to get the name of a skill specific for the selected race/character type.
|
|
// Needed for a couple of functions below
|
|
// Note, this is joint for all sheets for one logged on user
|
|
|
|
|
|
Object.keys(skills).forEach((skill_name) => {
|
|
// creates a sheet worker for each skill in skills - first skill = 'strength', then stat = 'agility', etc
|
|
// in each worker, stat = the stat (strength, agility, etc) and damages[stat] = the associated damage ('damage'. 'fatigue', etc)
|
|
const skill = getSkill(skill_name);
|
|
on(`change:${skill} change:${skills[skill_name]} change:${misc[skill_name]} change:${miscGear[skill_name]}`, function () {
|
|
//clog(`${skill} or ${skills[skill_name]} or ${misc[skill_name]} or ${miscGear[skill_name]} has changed.`);
|
|
getAttrs([skill, skills[skill_name], misc[skill_name], miscGear[skill_name]], function (values) {
|
|
const stat_score = int(values[skills[skill_name]]),
|
|
miscSkill_score = int(values[misc[skill_name]]),
|
|
miscGear_score = int(values[miscGear[skill_name]]),
|
|
skillRank_score = int(values[skill]);
|
|
setAttrs({
|
|
[skill + "_total"]: stat_score + skillRank_score + miscSkill_score + miscGear_score,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* set profession skill base and skill total FIX courtesy of GiGs*/
|
|
on('sheet:opened change:repeating_skills:name change:repeating_skills:attribute change:repeating_skills:skill change:repeating_skills:misc change:repeating_skills:gear change:strength_total change:agility_total change:wits_total change:empathy_total', function () {
|
|
//clog('Change Detected: Profession Skill - recalculating Base & Skill totals');
|
|
getSectionIDs('repeating_skills', idarray => {
|
|
const fields = [];
|
|
idarray.forEach(id => fields.push(
|
|
`repeating_skills_${id}_name`,
|
|
`repeating_skills_${id}_attribute`,
|
|
`repeating_skills_${id}_base`,
|
|
`repeating_skills_${id}_skill`,
|
|
`repeating_skills_${id}_misc`,
|
|
`repeating_skills_${id}_gear`,
|
|
`repeating_skills_${id}_total`
|
|
));
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs([...fields, 'strength_total', 'agility_total', 'wits_total', 'empathy_total'], function (values) {
|
|
const output = {};
|
|
idarray.forEach(id => {
|
|
const name = values[`repeating_skills_${id}_name`];
|
|
const attr = values[`repeating_skills_${id}_attribute`];
|
|
const skill_skill = int(values[`repeating_skills_${id}_skill`]);
|
|
const skill_misc = int(values[`repeating_skills_${id}_misc`]);
|
|
const skill_gear = int(values[`repeating_skills_${id}_gear`]);
|
|
// separate out the basic values read from the sheet from those calculated within the worker. for clarity
|
|
const skill_base = int(values[`${attr}_total`] || 0);
|
|
const skill_total = skill_base + skill_skill + skill_misc + skill_gear;
|
|
output[`repeating_skills_${id}_base`] = skill_base;
|
|
output[`repeating_skills_${id}_total`] = skill_total;
|
|
//clog('skill_name: ' + name);
|
|
//clog('skill_base: ' + skill_base);
|
|
//clog('skill_total: ' + skill_total);
|
|
});
|
|
setAttrs(output);
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set repeating armor rating */
|
|
on("change:repeating_armor:bonus change:repeating_armor:bonus_max change:repeating_armor:bonus_misc change:repeating_armor:equipped", function () {
|
|
clog("Change Detected: Repeating Armor Rating - recalculating rating totals");
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(["repeating_armor_bonus", "repeating_armor_bonus_misc", "repeating_armor_bonus_max", "repeating_armor_rating", "repeating_armor_equipped"], function (values) {
|
|
const bonus = int(values.repeating_armor_bonus),
|
|
bonus_misc = int(values.repeating_armor_bonus_misc),
|
|
bonus_max = int(values.repeating_armor_bonus_max),
|
|
equipped = int(values.repeating_armor_equipped);
|
|
// separate out the basic values read from the sheet from those calculated within the worker
|
|
const bonus_actual = Math.min(bonus, bonus_max);
|
|
const rating = (bonus_actual + bonus_misc) * equipped;
|
|
//clog("armor calculation: ( bonus " + bonus + " + bonus_misc " + bonus_misc + " ) * " + equipped + " = rating " + rating);
|
|
setAttrs({
|
|
repeating_armor_bonus: bonus_actual,
|
|
repeating_armor_rating: rating,
|
|
});
|
|
//clog("Armor rating: " + rating);
|
|
});
|
|
});
|
|
|
|
/* set weapon base_total and skill_total */
|
|
on("change:repeating_weapons:weapon_name change:repeating_weapons:weapon_skill change:repeating_weapons:weapon_skill_misc", function () {
|
|
clog("Change Detected: Weapon Attacks - recalculating Base & Skill totals");
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(["repeating_weapons_weapon_skill", "repeating_weapons_weapon_skill_value", "repeating_weapons_weapon_skill_misc", "repeating_weapons_weapon_skill_total", "repeating_weapons_weapon_base_total", "strength_total", "agility_total", "shoot", "fight"], function (values) {
|
|
const strength = int(values.strength_total),
|
|
agility = int(values.agility_total),
|
|
fight = int(values.fight),
|
|
shoot = int(values.shoot),
|
|
weapon_skill = int(values.repeating_weapons_weapon_skill),
|
|
weapon_skill_misc = int(values.repeating_weapons_weapon_skill_misc);
|
|
// separate out the basic values read from the sheet from those calculated within the worker. for clarity
|
|
const attribute = weapon_skill === 0 ? strength : agility,
|
|
skill = weapon_skill === 0 ? fight : shoot,
|
|
weapon_base_total = attribute,
|
|
weapon_skill_value = skill,
|
|
weapon_skill_total = skill + weapon_skill_misc;
|
|
setAttrs({
|
|
repeating_weapons_weapon_base_total: weapon_base_total,
|
|
repeating_weapons_weapon_skill_value: weapon_skill_value,
|
|
repeating_weapons_weapon_skill_total: weapon_skill_total,
|
|
});
|
|
clog(">>>> weapon_base_total: " + weapon_base_total);
|
|
clog(">>>> weapon_skill_value: " + weapon_skill_value);
|
|
clog(">>>> weapon_skill_total: " + weapon_skill_total);
|
|
});
|
|
});
|
|
|
|
/* set weapon bonus_total and max */
|
|
on("repeating_weapons:weapon_name change:repeating_weapons:weapon_bonus change:repeating_weapons:weapon_bonus_misc change:repeating_weapons:weapon_bonus_max", function () {
|
|
clog("Change Detected: Weapon Attacks - recalculating Bonus totals");
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(["repeating_weapons_weapon_bonus", "repeating_weapons_weapon_bonus_misc", "repeating_weapons_weapon_bonus_max"], function (values) {
|
|
const weapon_bonus_misc = int(values.repeating_weapons_weapon_bonus_misc),
|
|
weapon_bonus = int(values.repeating_weapons_weapon_bonus),
|
|
weapon_bonus_max = int(values.repeating_weapons_weapon_bonus_max);
|
|
// separate out the basic values read from the sheet from those calculated within the worker
|
|
//If weapon bonus max is 0, then set it to the value of the weapon bonus
|
|
if (weapon_bonus_max === 0) {
|
|
clog("setting weapon bonus max to value of weapon bonus (since no max detected). New max value = "+weapon_bonus);
|
|
setAttrs({repeating_weapons_weapon_bonus_max: weapon_bonus});
|
|
}
|
|
const weapon_bonus_total = Math.min(weapon_bonus, weapon_bonus_max) + weapon_bonus_misc;
|
|
setAttrs({
|
|
repeating_weapons_weapon_bonus_total: weapon_bonus_total,
|
|
});
|
|
clog(">>>> weapon_bonus_total: " + weapon_bonus_total);
|
|
});
|
|
});
|
|
|
|
/* set weapon damage totals */
|
|
on("change:repeating_weapons:weapon_damage change:repeating_weapons:weapon_damage_misc", function () {
|
|
clog("Change Detected: Weapon Damage - recalculating totals");
|
|
getAttrs(["repeating_weapons_weapon_damage", "repeating_weapons_weapon_damage_misc"], function (values) {
|
|
const weapon_damage = int(values.repeating_weapons_weapon_damage),
|
|
weapon_damage_misc = int(values.repeating_weapons_weapon_damage_misc),
|
|
damage = Math.max(weapon_damage + weapon_damage_misc, 0);
|
|
setAttrs({
|
|
repeating_weapons_weapon_damage_total: damage,
|
|
});
|
|
clog(">>>> weapon_damage_total: " + damage);
|
|
});
|
|
});
|
|
|
|
/* re-calculate repeating_weapons when outside attributes change */
|
|
on("change:strength_total change:agility_total change:fight change:shoot", function () {
|
|
getSectionIDs("repeating_weapons", function (ids) {
|
|
const fieldnames = [];
|
|
ids.forEach((id) => {
|
|
fieldnames.push(`repeating_weapons_${id}_weapon_skill`, `repeating_weapons_${id}_weapon_skill_misc`, `repeating_weapons_${id}_weapon_skill_value`, `repeating_weapons_${id}_weapon_bonus`, `repeating_weapons_${id}_weapon_bonus_max`, `repeating_weapons_${id}_weapon_bonus_misc`);
|
|
});
|
|
getAttrs(["strength_total", "agility_total", "fight", "shoot", ...fieldnames], function (values) {
|
|
const settings = {};
|
|
const strength = int(values.strength_total),
|
|
agility = int(values.agility_total),
|
|
fight = int(values.fight),
|
|
shoot = int(values.shoot);
|
|
|
|
ids.forEach((id) => {
|
|
const weapon_skill = int(values[`repeating_weapons_${id}_weapon_skill`]),
|
|
// calculate attribute total
|
|
attribute = weapon_skill === 0 ? strength : agility,
|
|
weapon_base_total = attribute;
|
|
// calculate skill total
|
|
const weapon_skill_misc = int(values[`repeating_weapons_${id}_weapon_skill_misc`]),
|
|
skill = weapon_skill === 0 ? fight : shoot,
|
|
weapon_skill_total = skill + weapon_skill_misc;
|
|
//calculate bonus total
|
|
const weapon_bonus = int(values[`repeating_weapons_${id}_weapon_bonus`]),
|
|
weapon_bonus_max = int(values[`repeating_weapons_${id}_weapon_bonus_max`]),
|
|
weapon_bonus_misc = int(values[`repeating_weapons_${id}_weapon_bonus_misc`]),
|
|
weapon_bonus_total = Math.min(weapon_bonus, weapon_bonus_max) + weapon_bonus_misc;
|
|
// no need to calculate damage total, its not affected by external factors
|
|
settings[`repeating_weapons_${id}_weapon_base_total`] = weapon_base_total;
|
|
settings[`repeating_weapons_${id}_weapon_skill_value`] = skill;
|
|
settings[`repeating_weapons_${id}_weapon_skill_total`] = weapon_skill_total;
|
|
settings[`repeating_weapons_${id}_weapon_bonus_total`] = weapon_bonus_total;
|
|
});
|
|
setAttrs(settings, { silent: true });
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set project completion */
|
|
on("change:repeating_projects:work_points change:repeating_projects:work_points_max", function () {
|
|
clog("Change Detected: Repeating Project Completion - recalculating completion");
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(["repeating_projects_work_points", "repeating_projects_work_points_max", "repeating_projects_complete"], function (values) {
|
|
var points = int(values.repeating_projects_work_points),
|
|
points_max = int(values.repeating_projects_work_points_max),
|
|
complete = int(values.repeating_projects_complete);
|
|
// separate out the basic values read from the sheet from those calculated within the worker
|
|
points = Math.min(points,points_max),
|
|
complete = (points === points_max) ? 1 : 0;
|
|
const completedStr = (complete === 1) ? "completed" : "not completed";
|
|
clog("project completion: work points " + points + " < required points " + points_max + " => " + completedStr);
|
|
setAttrs({
|
|
repeating_projects_work_points: points,
|
|
repeating_projects_complete: complete,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Monster strength-based skill total calcs */
|
|
Object.keys(monster_skills).forEach((skill_name) => {
|
|
const monster_skill = getSkill(skill_name);
|
|
on(`change:${monster_skill} change:${monster_skills[skill_name]} change:${monster_misc[skill_name]} change:${monster_miscGear[skill_name]}`, function () {
|
|
//clog(`${monster_skill} or ${monster_skills[skill_name]} or ${monster_misc[skill_name]} or ${monster_miscGear[skill_name]} has changed.`);
|
|
getAttrs([monster_skill, monster_skills[skill_name], monster_misc[skill_name], monster_miscGear[skill_name]], function (values) {
|
|
const stat_score = int(values[monster_skills[skill_name]]),
|
|
miscSkill_score = int(values[monster_misc[skill_name]]),
|
|
miscGear_score = int(values[monster_miscGear[skill_name]]);
|
|
setAttrs({
|
|
[monster_skill + "_total"]: stat_score + miscSkill_score + miscGear_score,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Wes's Dice Pool */
|
|
const pools = {
|
|
attribute: {
|
|
max: 12,
|
|
negative: 0,
|
|
},
|
|
skill: {
|
|
max: 10,
|
|
negative: 3,
|
|
},
|
|
gear: {
|
|
max: 12,
|
|
negative: 0,
|
|
},
|
|
};
|
|
// need to know the max pool size for each type, and whether negative dice should be in the pool.
|
|
const numbers = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"];
|
|
// need to convert numbers 1-12 to text. left index 0 empty, as its not needed.
|
|
Object.keys(pools).forEach((which) => {
|
|
on(`change:${which}`, function () {
|
|
getAttrs([which], function (values) {
|
|
let score = Math.min(pools[which].max, int(values[which]));
|
|
const settings = {};
|
|
// loop through numbers from 1 to the pool's max, and enter a value of 1 if less < pool value, or 0 otherwise.
|
|
for (let d = 1; d <= pools[which].max; d++) {
|
|
// pools[which].max gets the max value from the pools object.
|
|
settings[`${which}_die_${numbers[d]}`] = d <= score ? 1 : 0;
|
|
// `${which}_die_${numbers[d]}` creates a name like 'gear_die_three'
|
|
// (d <= score) ? 1 : 0; checks current index and assigns value of 1 if less than equal to pool score
|
|
// settings[attribute] = value stores the appropriate attribute names and values
|
|
}
|
|
// need to check negative dice, and compare score
|
|
// negative dice are set to zero. They are set to 1 only if pool.negative > 0, score is below zero, and absolute value of score is below 1-3.
|
|
for (let n = 1; n <= 3; n++) {
|
|
settings[`negative_die_${numbers[n]}`] = pools[which].negative && score < 0 && n <= Math.abs(score) ? 1 : 0;
|
|
|
|
// clog("Negative dice are being evaluated. |pools.negative value=" + pools[which].negative + " |Skill score=" + score + " |n=" + n + " |abs of score=" + Math.abs(score) + " |include negative die=" + settings[`negative_die_${numbers[n]}`]);
|
|
}
|
|
setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
|
|
const dicePoolButtons = (which) => {
|
|
clog(`Change Detected: Dice Pool ${which} - button clicked`);
|
|
getAttrs([skills[which], misc[which], miscGear[which], getSkill(which), getSkillKey(which), getSkillName(which)], function (
|
|
values
|
|
) {
|
|
// skills[which] returns the attribute; e.g skills['sneak'] gives 'agility_total'
|
|
// getSkill(which) converts the skill name to a valid attribute string: getSkill('Know the zone') gives 'know-the-zone'
|
|
// getSkillName(which) uses label, string or key to return character type specific translated skill name: getSkillName('Know the zone') gives 'Know nature' for Animals
|
|
const stat = int(values[skills[which]]),
|
|
miscSkill_score = Math.max(int(values[misc[which]]), -3),
|
|
miscGear_score = int(values[miscGear[which]]),
|
|
// stat here first gets skills['sneak'] which will be, say, 'agility' and
|
|
// then values['ability_total'] gives you the score from the character sheet.
|
|
skill_attribute_selected = stat > 0 ? stat : 0,
|
|
skill_bonus_misc_selected = miscSkill_score,
|
|
skill_bonus_misc_gear_selected = miscGear_score,
|
|
skill_only_selected = int(values[getSkill(which)]),
|
|
skill = getSkill(which),
|
|
skill_name = getSkillName(skill); // used to get the proper translated character type skill
|
|
clog("Found skill button click, Skill key "+JSON.stringify(which)+" calculated to "+skill+" corresponding to character type "+skill_name);
|
|
|
|
setAttrs({
|
|
attribute: stat > 0 ? stat : 0, // this is a Ternary Operator, it starts with a question (e.g. is stat > 0)
|
|
// and if true, returns the bit after the ? and if false returns the bit after the :
|
|
// you can often replace simple if/then expressions with a single line ternary operator.
|
|
// uses the translation key
|
|
gear: miscGear_score,
|
|
skill: int(values[getSkill(which)]) + miscSkill_score,
|
|
skill_attribute_selected: skill_attribute_selected,
|
|
skill_bonus_misc_selected: skill_bonus_misc_selected,
|
|
skill_bonus_misc_gear_selected: skill_bonus_misc_gear_selected,
|
|
skill_only_selected: skill_only_selected,
|
|
//skill_notes_selected: skill_notes_selected,
|
|
current_preset: skill_name,
|
|
include_with_roll: `{{skill-base=${skill_attribute_selected}}} {{skill-skill=${skill_only_selected}}} {{skill-bonus-misc-skill=${skill_bonus_misc_selected}}} {{skill-bonus-misc-gear=${skill_bonus_misc_gear_selected}}}}`, // {{skill-notes=${skill_notes_selected}}
|
|
});
|
|
});
|
|
};
|
|
|
|
Object.keys(skills).forEach((skill) => {
|
|
on(`clicked:dice_pool_${getSkill(skill)}`, () => dicePoolButtons(skill));
|
|
});
|
|
|
|
/* Monster strength-based skill dice pool */
|
|
const monster_dicePoolButtons = (which) => {
|
|
clog(`Change Detected: Dice Pool ${which} - button clicked`);
|
|
getAttrs([monster_skills[which], monster_misc[which], monster_miscGear[which], getSkill(which), getSkillKey(which)], function (values) {
|
|
const stat = int(values[monster_skills[which]]),
|
|
miscSkill_score = Math.max(int(values[monster_misc[which]]), -3),
|
|
miscGear_score = int(values[monster_miscGear[which]]);
|
|
let whichKey = getTranslationByKey(getSkillKey(which));
|
|
setAttrs({
|
|
attribute: stat > 0 ? stat : 0,
|
|
gear: miscGear_score,
|
|
skill: miscSkill_score,
|
|
current_preset: whichKey,
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
};
|
|
|
|
Object.keys(monster_skills).forEach((monster_skill) => {
|
|
on(`clicked:dice_pool_${getSkill(monster_skill)}`, () => monster_dicePoolButtons(monster_skill));
|
|
});
|
|
|
|
on("sheet:opened clicked:dice_pool_clear", function () {
|
|
clog("Change Detected: Clear Dice Pool - button clicked or sheet loaded");
|
|
setAttrs({
|
|
attribute: 0,
|
|
skill: 0,
|
|
gear: 0,
|
|
attribute_die_twelve: 0,
|
|
attribute_die_eleven: 0,
|
|
attribute_die_ten: 0,
|
|
attribute_die_nine: 0,
|
|
attribute_die_eight: 0,
|
|
attribute_die_seven: 0,
|
|
attribute_die_six: 0,
|
|
attribute_die_five: 0,
|
|
attribute_die_four: 0,
|
|
attribute_die_three: 0,
|
|
attribute_die_two: 0,
|
|
attribute_die_one: 0,
|
|
negative_die_one: 0,
|
|
negative_die_two: 0,
|
|
negative_die_three: 0,
|
|
skill_die_ten: 0,
|
|
skill_die_nine: 0,
|
|
skill_die_eight: 0,
|
|
skill_die_seven: 0,
|
|
skill_die_six: 0,
|
|
skill_die_five: 0,
|
|
skill_die_four: 0,
|
|
skill_die_three: 0,
|
|
skill_die_two: 0,
|
|
skill_die_one: 0,
|
|
gear_die_twelve: 0,
|
|
gear_die_eleven: 0,
|
|
gear_die_ten: 0,
|
|
gear_die_nine: 0,
|
|
gear_die_eight: 0,
|
|
gear_die_seven: 0,
|
|
gear_die_six: 0,
|
|
gear_die_five: 0,
|
|
gear_die_four: 0,
|
|
gear_die_three: 0,
|
|
gear_die_two: 0,
|
|
gear_die_one: 0,
|
|
current_preset: getTranslationByKey(`custom-roll`),
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
|
|
/* api dice toggle */
|
|
on("clicked:api_dice_toggle", function () {
|
|
clog("Change Detected: API Dice Toggle - button clicked");
|
|
getAttrs(["api_toggle"], function (values) {
|
|
const api_toggle = int(values.api_toggle);
|
|
let buttonState = api_toggle;
|
|
|
|
if (buttonState !== 0) {
|
|
buttonState = 0;
|
|
} else {
|
|
buttonState = 1;
|
|
}
|
|
setAttrs({
|
|
api_toggle: buttonState,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set weapon dice pool */
|
|
on("clicked:repeating_weapons:attack-roll", function () {
|
|
clog("Change Detected: Weapon Attack - button clicked");
|
|
getAttrs( ["repeating_weapons_weapon_name", "repeating_weapons_weapon_skill", "repeating_weapons_weapon_base_total", "repeating_weapons_weapon_skill_misc", "repeating_weapons_weapon_skill_total", "repeating_weapons_weapon_bonus", "repeating_weapons_weapon_bonus_max", "repeating_weapons_weapon_bonus_misc", "repeating_weapons_weapon_bonus_total", "repeating_weapons_weapon_damage", "repeating_weapons_weapon_damage_misc", "repeating_weapons_weapon_damage_total", "repeating_weapons_weapon_range", "repeating_weapons_weapon_features", "strength_total", "agility_total", "shoot", "fight", ],
|
|
function (values) {
|
|
const weapon_name = values.repeating_weapons_weapon_name,
|
|
weapon_base_total = int(values.repeating_weapons_weapon_base_total),
|
|
weapon_bonus = int(values.repeating_weapons_weapon_bonus),
|
|
weapon_bonus_misc = int(values.repeating_weapons_weapon_bonus_misc),
|
|
weapon_bonus_max = int(values.repeating_weapons_weapon_bonus_max),
|
|
weapon_bonus_total = int(values.repeating_weapons_weapon_bonus_total),
|
|
weapon_skill_total = int(values.repeating_weapons_weapon_skill_total),
|
|
weapon_damage = int(values.repeating_weapons_weapon_damage),
|
|
weapon_damage_misc = int(values.repeating_weapons_weapon_damage_misc),
|
|
weapon_range = values.repeating_weapons_weapon_range,
|
|
weapon_features = values.repeating_weapons_weapon_features;
|
|
setAttrs({
|
|
attribute: weapon_base_total,
|
|
gear: weapon_bonus_total,
|
|
skill: weapon_skill_total,
|
|
current_preset: getTranslationByKey(`attack`) + ` - ${weapon_name}`,
|
|
include_with_roll: `{{weapon-bonus=${weapon_bonus}}} {{weapon-bonus-max=${weapon_bonus_max}}} {{weapon-bonus-misc=${weapon_bonus_misc}}} {{weapon-damage=${weapon_damage}}} {{weapon-damage-misc=${weapon_damage_misc}}} {{weapon-range=${weapon_range}}} {{weapon-features=${weapon_features}}}`,
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
/* set weapon parry dice pool */
|
|
on("clicked:repeating_weapons:attack-parry-roll", function () {
|
|
clog("Change Detected: Weapon Parry - button clicked");
|
|
getAttrs( ["repeating_weapons_weapon_name", "repeating_weapons_weapon_skill", "repeating_weapons_weapon_base_total", "repeating_weapons_weapon_skill_misc", "repeating_weapons_weapon_skill_total", "repeating_weapons_weapon_bonus", "repeating_weapons_weapon_bonus_max", "repeating_weapons_weapon_bonus_misc", "repeating_weapons_weapon_bonus_total", "repeating_weapons_weapon_damage", "repeating_weapons_weapon_damage_misc", "repeating_weapons_weapon_damage_total", "repeating_weapons_weapon_range", "repeating_weapons_weapon_features", "strength_total", "agility_total", "shoot", "fight",],
|
|
function (values) {
|
|
const weapon_name = values.repeating_weapons_weapon_name,
|
|
weapon_base_total = int(values.repeating_weapons_weapon_base_total),
|
|
weapon_bonus = int(values.repeating_weapons_weapon_bonus),
|
|
weapon_bonus_max = int(values.repeating_weapons_weapon_bonus_max),
|
|
weapon_bonus_misc = int(values.repeating_weapons_weapon_bonus_misc),
|
|
weapon_bonus_total = int(values.repeating_weapons_weapon_bonus_total),
|
|
weapon_skill_total = int(values.repeating_weapons_weapon_skill_total),
|
|
weapon_damage = int(values.repeating_weapons_weapon_damage),
|
|
weapon_damage_misc = int(values.repeating_weapons_weapon_damage_misc),
|
|
weapon_features = values.repeating_weapons_weapon_features;
|
|
setAttrs({
|
|
attribute: weapon_base_total,
|
|
gear: weapon_bonus_total,
|
|
skill: weapon_skill_total,
|
|
current_preset: getTranslationByKey(`parry`) + ` - ${weapon_name}`,
|
|
include_with_roll: `{{weapon-bonus=${weapon_bonus}}} {{weapon-bonus-max=${weapon_bonus_max}}} {{weapon-bonus-misc=${weapon_bonus_misc}}} {{weapon-damage=${weapon_damage}}} {{weapon-damage-misc=${weapon_damage_misc}}} {{weapon-range=^{arms-length-abbr}}} {{weapon-features=${weapon_features}}}`,
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
/* Monster attacks dice pool */
|
|
on("clicked:repeating_monster:monster-features-roll", function () {
|
|
clog("Change Detected: Monster Attack - button clicked");
|
|
getAttrs(["repeating_monster_attack_name", "repeating_monster_attack_dice", "repeating_monster_attack_damage", "repeating_monster_attack_features", "repeating_monster_attack_range", "repeating_monster_attack_description"], function (values) {
|
|
const monster_attack_name = values.repeating_monster_attack_name,
|
|
monster_attack_dice = int(values.repeating_monster_attack_dice),
|
|
monster_attack_damage = int(values.repeating_monster_attack_damage),
|
|
monster_attack_features = values.repeating_monster_attack_features,
|
|
monster_attack_range = values.repeating_monster_attack_range,
|
|
monster_attack_description = values.repeating_monster_attack_description,
|
|
attribute = monster_attack_dice;
|
|
setAttrs({
|
|
attribute: attribute,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: monster_attack_name,
|
|
include_with_roll: `{{weapon-damage=${monster_attack_damage}}} {{attack-features=${monster_attack_features}}} {{weapon-range=${monster_attack_range}}} {{attack-description=${monster_attack_description}}}`,
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* set prof skill dice pool */
|
|
on("clicked:repeating_skills", function () {
|
|
clog("Change Detected: Profession Skill - button clicked");
|
|
getAttrs(["repeating_skills_name", "repeating_skills_base", "repeating_skills_skill", "repeating_skills_misc", "repeating_skills_gear"], function (values) {
|
|
const skill_name = values.repeating_skills_name,
|
|
skill_base = int(values.repeating_skills_base),
|
|
skill_level = int(values.repeating_skills_skill),
|
|
skill_misc = int(values.repeating_skills_misc),
|
|
skill_gear = int(values.repeating_skills_gear),
|
|
skill_skill = skill_level + skill_misc;
|
|
setAttrs({
|
|
attribute: skill_base,
|
|
skill: skill_skill,
|
|
gear: skill_gear,
|
|
current_preset: getTranslationByKey(`skill`) + ` - ${skill_name}`,
|
|
include_with_roll: `{{skill-base=${skill_base}}} {{skill-level=${skill_level}}} {{skill-bonus-misc=${skill_misc}}} {{skill-bonus-gear=${skill_gear}}}`,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set dice pool for Powers action button - NOT WORKING (buttons are hidden) */
|
|
const powers = ["mutations","modules","animalpowers","contacts"];
|
|
powers.forEach(pow => {
|
|
on(`clicked:repeating_${pow}:powerroll`, (eventInfo) => {
|
|
//clog(JSON.stringify(eventInfo.sourceAttribute));
|
|
var getAttrsString = [`repeating_${pow}_name`,`repeating_${pow}_powerlevel`];
|
|
getAttrs(getAttrsString, function(values) {
|
|
const name = values[`repeating_${pow}_name`],
|
|
level = int(values[`repeating_${pow}_powerlevel`]),
|
|
setAttrObj = {
|
|
attribute: level,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: getTranslationByKey(`power`) + ` - ${name}`,
|
|
include_with_roll: ``,
|
|
};
|
|
//clog(name);
|
|
//clog(level);
|
|
//clog(JSON.stringify(setAttrObj));
|
|
SetAttrs(setAttrObj);/**/
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set spell dice pool */
|
|
on("clicked:repeating_spells:spell-roll", function () {
|
|
clog("Change Detected: Spell - button clicked");
|
|
getAttrs(["repeating_spells_spell_name", "repeating_spells_spell_rank", "repeating_spells_spell_range", "repeating_spells_spell_duration", "repeating_spells_spell_ingredients", "repeating_spells_spell_description", "repeating_spells_spell_powerpoint", "powerpoint"], function (values) {
|
|
const spell_name = values.repeating_spells_spell_name,
|
|
spell_rank = int(values.repeating_spells_spell_rank),
|
|
spell_powerpoint = int(values.repeating_spells_spell_powerpoint),
|
|
spell_range = values.repeating_spells_spell_range,
|
|
spell_duration = values.repeating_spells_spell_duration,
|
|
spell_ingredients = values.repeating_spells_spell_ingredients,
|
|
spell_description = values.repeating_spells_spell_description,
|
|
powerpoint = int(values.powerpoint);
|
|
setAttrs({
|
|
attribute: spell_powerpoint,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: getTranslationByKey(`spell`) + ` - ${spell_name}`,
|
|
include_with_roll: `{{powerpoint-total=${powerpoint}}} {{spell-rank=${spell_rank}}} {{spell-powerpoint=${spell_powerpoint}}} {{spell-range=${spell_range}}} {{spell-duration=${spell_duration}}} {{spell-ingredients=${spell_ingredients}}} {{spell-description=${spell_description}}}`,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set armor dice pool */
|
|
on("clicked:armor-roll", function () {
|
|
clog("Change Detected: Armor - button clicked");
|
|
getAttrs(["ar_total"], function (values) {
|
|
const ar_total = int(values.ar_total);
|
|
setAttrs({
|
|
attribute: 0,
|
|
gear: ar_total,
|
|
skill: 0,
|
|
current_preset: getTranslationByKey(`armor-roll`),
|
|
include_with_roll: `{{armor-rating=[[ ${ar_total} ]]}}`,
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
/* set rot dice pool */
|
|
on("clicked:rot_roll", function () {
|
|
clog("Change Detected: Rot - button clicked");
|
|
getAttrs(["rot", "rot_permanent"], function (values) {
|
|
const rot = int(values.rot),
|
|
rot_permanent = int(values.rot_permanent);
|
|
setAttrs({
|
|
attribute: rot,
|
|
gear: 0,
|
|
skill: 0,
|
|
current_preset: getTranslationByKey(`rot-roll`),
|
|
include_with_roll: `{{rot-level=[[ ${rot} ]]}} {{rot-permanent=[[ ${rot_permanent} ]]}}`,
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
|
|
/* vehicle/Beast Carry calcs */
|
|
const carry = (strength, vehicleed) => (strength * 4) / (vehicleed + 1);
|
|
|
|
on("change:vehicleed change:vehicle_strength", function () {
|
|
clog("Change Detected: vehicleed/Unvehicleed");
|
|
getAttrs(["vehicleed", "vehicle_strength"], function (values) {
|
|
const vehicleed = int(values["vehicleed"]),
|
|
strength = int(values["vehicle_strength"]),
|
|
Carry = carry(strength, vehicleed);
|
|
setAttrs({
|
|
vehicle_carry: Carry,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_beasts", function () {
|
|
clog("Change Detected: Beasts Check Carry Calculation");
|
|
getAttrs(["repeating_beasts_beast_vehicleed", "repeating_beasts_beast_strength"], function (values) {
|
|
const vehicleed = int(values["repeating_beasts_beast_vehicleed"]),
|
|
strength = int(values["repeating_beasts_beast_strength"]),
|
|
Carry = carry(strength, vehicleed);
|
|
setAttrs({
|
|
repeating_beasts_beast_carry: Carry,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Broken Indicator flags*/
|
|
// first create an array listing all 4 stats
|
|
const stats = ["strength_pc", "strength_monster", "agility", "wits", "empathy"];
|
|
|
|
/* Update the Dice Pool indicator */
|
|
on(
|
|
"clicked:dice_pool_clear clicked:strength_roll clicked:agility_roll cliecked:wits_roll clicked:empathy_roll clicked:rot_roll clicked:repeating_skills:skill-roll clicked:dice_pool_force_monster clicked:dice_pool_endure_monster clicked:dice_pool_fight_monster clicked:dice_pool_force clicked:dice_pool_endure clicked:dice_pool_fight clicked:dice_pool_sneak clicked:dice_pool_know_the_zone clicked:dice_pool_move clicked:dice_pool_shoot clicked:dice_pool_scout clicked:dice_pool_comprehend clicked:dice_pool_manipulate clicked:dice_pool_sense_emotion clicked:dice_pool_heal clicked:reputation-roll clicked:repeating_weapons:attack-roll clicked:repeating_weapons:attack-parry-roll clicked:repeating_monster:monster-features-roll clicked:repeating_spells:spell-roll clicked:armor-roll",
|
|
function () {
|
|
clog("Change Detected: Update Dice Pool");
|
|
getAttrs(["roll_the_dice_flag"], function (values) {
|
|
const flag = int(values.roll_the_dice_flag);
|
|
setAttrs({
|
|
roll_the_dice_flag: 1 - flag,
|
|
});
|
|
});
|
|
}
|
|
);
|
|
|
|
on("sheet:opened change:roll_the_dice_flag", function (event) {
|
|
clog("Change Detected: resetting roll_the_dice_flag to zero");
|
|
const flag = int(event.newValue) || 0; // you don't need to include the ,10
|
|
if (flag === 1)
|
|
setAttrs(
|
|
{
|
|
roll_the_dice_flag: 0,
|
|
},
|
|
{
|
|
silent: true,
|
|
}
|
|
);
|
|
});
|
|
|
|
/* translate query text */
|
|
on("sheet:opened", function () {
|
|
//clog("Translation of query text complete.");
|
|
setAttrs({
|
|
translation_push_query: getTranslationByKey("push-query"),
|
|
translation_whisper_macro_query: "?{" + getTranslationByKey("whisper-macro") + "|" + getTranslationByKey("no") + ",|" + getTranslationByKey("yes") + ",/w gm |" + "}",
|
|
translation_whisper_api_macro_query: "?{" + getTranslationByKey("whisper-macro") + "|" + getTranslationByKey("no") + ",!myz |" + getTranslationByKey("yes") + ",!wmyz |" + "}",
|
|
});
|
|
});
|
|
|
|
// attribute and skill maximum
|
|
// function which takes an attribute name, its score, and its max, and checks the score is valid.
|
|
// if not, resets its value.
|
|
const checkMax = (stat, score, max) => {
|
|
const settings = {};
|
|
if (score > max) {
|
|
settings[stat] = max;
|
|
} else if (score < 0) {
|
|
settings[stat] = 0;
|
|
}
|
|
return settings;
|
|
};
|
|
stats.forEach((stat) => {
|
|
on(`change:${stat} change:tab`, function () {
|
|
getAttrs([stat, "tab"], function (values) {
|
|
const total = int(values[stat]);
|
|
const tab = values.tab;
|
|
//clog("Attribute "+stat+" on tab "+tab+" is "+total);
|
|
//clog("tab === 'monster' = "+(tab === 3 || tab === 'monster'));
|
|
var max = tab === 'monster' ? 12 : 6;
|
|
// const max attribute = 12 for monsters;
|
|
//clog("tab === 'monster' && stat === strength_monster = "+tab === 'monster' && stat === 'strength_monster');
|
|
max = tab === 'monster' && stat === 'strength_monster' ? 40 : 12;
|
|
// const max strength = 40 for monsters;
|
|
const settings = checkMax(stat, total, max);
|
|
if (settings) setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Duplicate
|
|
Object.keys(attributes).forEach((stat) => {
|
|
on(`change:${stat}`, function () {
|
|
getAttrs([stat], function (values) {
|
|
const total = int(values[stat]);
|
|
const max = pools.attribute.max;
|
|
const settings = checkMax(stat, total, max);
|
|
if (settings) setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
*/
|
|
|
|
/* Update attributes total max */
|
|
on("sheet:opened change:strength_total", function () {
|
|
//clog("Change Detected: strength_total has changed");
|
|
getAttrs(["strength", "strength_total"], function (values) {
|
|
const strength = int(values.strength),
|
|
strength_total = int(values.strength_total);
|
|
setAttrs({
|
|
strength: strength,
|
|
strength_total: strength_total,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("sheet:opened change:agility_total", function () {
|
|
//clog("Change Detected: agility_total has changed");
|
|
getAttrs(["agility", "agility_total"], function (values) {
|
|
const agility = int(values.agility),
|
|
agility_total = int(values.agility_total);
|
|
setAttrs({
|
|
agility: agility,
|
|
agility_total: agility_total,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("sheet:opened change:wits_total", function () {
|
|
//clog("Change Detected: wits_total has changed");
|
|
getAttrs(["wits", "wits_total"], function (values) {
|
|
const wits = int(values.wits),
|
|
wits_total = int(values.wits_total);
|
|
setAttrs({
|
|
wits: wits,
|
|
wits_total: wits_total,
|
|
});
|
|
});
|
|
});
|
|
|
|
on("sheet:opened change:empathy_total", function () {
|
|
clog("Change Detected: empathy_total has changed");
|
|
getAttrs(["empathy", "empathy_total"], function (values) {
|
|
const empathy = int(values.empathy),
|
|
empathy_total = int(values.empathy_total);
|
|
setAttrs({
|
|
empathy: empathy,
|
|
empathy_total: empathy_total,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set strength dice pool */
|
|
on("clicked:strength_roll", function () {
|
|
clog("Change Detected: Strength - button clicked");
|
|
getAttrs(["strength_total", "strength_name"], function (values) {
|
|
const strength_total = int(values.strength_total),
|
|
strength_name = values.strength_name;
|
|
//clog(strength_name + " : " + strength);
|
|
setAttrs({
|
|
attribute: strength_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: strength_name,
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set agility dice pool */
|
|
on("clicked:agility_roll", function () {
|
|
clog("Change Detected: agility - button clicked");
|
|
getAttrs(["agility_total", "agility_name"], function (values) {
|
|
const agility_total = int(values.agility_total),
|
|
agility_name = values.agility_name;
|
|
//clog(agility_name + " : " + agility_total);
|
|
setAttrs({
|
|
attribute: agility_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: agility_name,
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set wits dice pool */
|
|
on("clicked:wits_roll", function () {
|
|
clog("Change Detected: wits - button clicked");
|
|
getAttrs(["wits_total","wits_name"], function (values) {
|
|
const wits_total = int(values.wits_total),
|
|
wits_name = values.wits_name;
|
|
//clog(wits_name + " : " + wits_total);
|
|
setAttrs({
|
|
attribute: wits_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: wits_name,
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set empathy dice pool */
|
|
on("clicked:empathy_roll", function () {
|
|
clog("Change Detected: empathy - button clicked");
|
|
getAttrs(["empathy_total", "empathy_name"], function (values) {
|
|
const empathy_total = int(values.empathy_total),
|
|
empathy_name = values.empathy_name;
|
|
//clog(empathy_name + " : " + empathy_total);
|
|
setAttrs({
|
|
attribute: empathy_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: empathy_name,
|
|
include_with_roll: "",
|
|
});
|
|
});
|
|
});
|
|
|
|
/* delete empty repeating rows w/out having to close/reopen sheet*/
|
|
on('remove:repeating_injuries remove:repeating_weapons remove:repeating_skills remove:repeating_gear remove:repeating_vehicle remove:repeating_relationships remove:repeating_spells remove:repeating_beasts remove:repeating_notes remove:repeating_ark-notes remove:repeating_log remove:repeating_monster remove:repeating_mutations remove:repeating_armor remove:repeating_biomechs remove:repeating_contacts remove:repeating_animalpowers remove:repeating_modules remove:repeating_talents', function() {
|
|
const timestamp = Number(new Date())
|
|
setAttrs({ repeat_delete: timestamp });
|
|
clog("repeating row has been removed");
|
|
});
|
|
|
|
/* beautify preserve:end */
|
|
</script>
|
|
|