mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 11:42:29 +00:00
12042 lines
1.0 MiB
Plaintext
12042 lines
1.0 MiB
Plaintext
<!-- Sheet type at very top to influence the rest -->
|
||
<input class="sheet-typetoggle" type="hidden" name="attr_sheet_type" value="pc">
|
||
<input class="sheet-setting-control" type="hidden" name="attr_setting_option" value="default">
|
||
<input class="sheet-compact-control" type="hidden" name="attr_compact" value="0">
|
||
<div class="sheet-wrapper">
|
||
<!-- Floating Option Bar -->
|
||
<div class="sheet-option-bar">
|
||
<!-- Options -->
|
||
<div class="sheet-space-between sheet-gap">
|
||
<!-- Option Bar Left -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<!-- Whisper Toggle -->
|
||
<div><input data-i18n-title="broadcast_rolls_to_everyone/whisper_rolls_to_gm" type='checkbox' name='attr_roll_display' value="/w gm"><span class="sheet-checkico-reverse">f</span></div>
|
||
|
||
<!-- Skill Difficulty Option -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left sheet-large-screen" data-i18n="difficulty">Difficulty</label>
|
||
<label class="sheet-left sheet-small-screen" data-i18n-title="difficulty" data-i18n="difficulty-a">Diff</label>
|
||
<select class="sheet-auto-width sheet-text-center sheet-inverted" name="attr_difficulty">
|
||
<option value="0" data-i18n="verbose" selected>verbose</option>
|
||
<option value="1" data-i18n="very_easy">Very Easy</option>
|
||
<option value="2" data-i18n="easy">Easy</option>
|
||
<option value="3" data-i18n="standard">Standard</option>
|
||
<option value="4" data-i18n="hard">Hard</option>
|
||
<option value="5" data-i18n="formidable">Formidable</option>
|
||
<option value="6" data-i18n="herculean">Herculean</option>
|
||
</select>
|
||
</div>
|
||
|
||
<!-- Augment Option -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left sheet-large-screen" data-i18n="augmentation">Augmentation</label>
|
||
<label class="sheet-left sheet-small-screen sheet-pictos" data-i18n-title="augmentation">&</label>
|
||
<select class="sheet-auto-width sheet-text-center sheet-inverted" title="@{augmentation}" name="attr_augmentation">
|
||
<option value="@{set_augmentation}" data-i18n="set" selected>Set</option>
|
||
<option value="?{Augmentation|0}" data-i18n="prompt">Prompt</option>
|
||
</select>
|
||
<input type="hidden" class="sheet-set-toggle-control" name="attr_augmentation" value="@{set_augmentation}">
|
||
<input type="number" class="sheet-number-width-sm sheet-set-toggle" name="attr_set_augmentation" value="0">
|
||
<button type="action" class="sheet-set-toggle sheet-set-toggle-reset sheet-checkbox-width sheet-link sheet-no-underline sheet-pictos" data-i18n-title="reset_augmentation" name="act_reset-augmentation">1</button>
|
||
</div>
|
||
|
||
<!-- 101+ Penalty Option -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left sheet-large-screen" data-i18n="101+_penalty">101+ Penalty</label>
|
||
<label class="sheet-left sheet-small-screen sheet-pictos" data-i18n-title="101+_penalty">_</label>
|
||
<select class="sheet-auto-width sheet-text-center sheet-inverted" title="@{penalty}" name="attr_penalty">
|
||
<option value="@{set_penalty}" data-i18n="set" selected>Set</option>
|
||
<option value="?{101+ Penalty|0}" data-i18n="prompt">Prompt</option>
|
||
</select>
|
||
<input type="hidden" class="sheet-set-toggle-control" name="attr_penalty" value="@{set_penalty}">
|
||
<input type="number" class="sheet-number-width-sm sheet-set-toggle" name="attr_set_penalty" value="0">
|
||
<button type="action" class="sheet-set-toggle sheet-set-toggle-reset sheet-checkbox-width sheet-link sheet-link-ico" data-i18n-title="reset_101+_penalty" name="act_reset-penalty">1</button>
|
||
</div>
|
||
</div>
|
||
<!-- Option Bar Right -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<div><input type='checkbox' data-i18n-title="compact_mode" name='attr_compact' value="1"><span class="sheet-checkico">J</span></div>
|
||
<a class="sheet-pictos" data-i18n-title="show_help_popup" href="#help">?</a>
|
||
<a class="sheet-pictos" data-i18n-title="show_import_popup" href="#import">~</a>
|
||
<a class="sheet-pictos" data-i18n-title="show_configuration_popup" href="#configuration">y</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Sheet Tabs -->
|
||
<div class="sheet-character sheet-space-around sheet-gap">
|
||
<a href="#core">Core</a>
|
||
<a href="#skills"><span data-i18n="skills">SKills</span>/<span data-i18n="passions">Passions</span></a>
|
||
<input type="hidden" class="sheet-abilities-control" name="attr_ability_system" value="core">
|
||
<a href="#abilities" data-i18n="abilities">Abilities</a>
|
||
<a class="sheet-creature" href="#weapons" data-i18n="weapons">Weapons</a>
|
||
<a class="sheet-creature" href="#armor" data-i18n="armor">Armor</a>
|
||
<a class="sheet-creature" href="#gear"><span data-i18n="gear">Gear</span>/<span data-i18n="wealth">Wealth</span></a>
|
||
<a class="sheet-major" href="#character-background" data-i18n="background">Background</a></span>
|
||
<a href="#notes" data-i18n="notes">Notes</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Character ID holder -->
|
||
<input type="hidden" name="attr_character_id">
|
||
|
||
<!-- Shared Hit Location Buttons -->
|
||
<div hidden>
|
||
<button type="roll" name="roll_hit_location" value="@{hit_location_roll}"></button>
|
||
<button type="roll" name="roll_hit_location_low" value="@{hit_location_low_roll}"></button>
|
||
<button type="roll" name="roll_hit_location_high" value="@{hit_location_high_roll}"></button>
|
||
|
||
<input type="text" name="attr_hit_location_roll" value="@{creature_hit_location_roll}" readonly>
|
||
<input type="text" name="attr_hit_location_low_roll" value="@{creature_hit_location_low_roll}" readonly>
|
||
<input type="text" name="attr_hit_location_high_roll" value="@{creature_hit_location_high_roll}" readonly>
|
||
|
||
<!-- Hit location roll value used when the sheet_type has no hit locations -->
|
||
<input type="text" name="attr_none_hit_location_roll" value="@{roll_display}&{template:default} {{hitstyle=[[1]]}} {{name=^{hit_location} (^{none})}} {{character=@{character_name}}}" disabled>
|
||
</div>
|
||
|
||
<!-- Sheet Types -->
|
||
<div style="width: 660px" class="sheet-battle-unit">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="unit_name">Unit Name</label></div>
|
||
<div class="sheet-grow"><input type="text" class="sheet-full-width" title="@{character_name}" name="attr_character_name" value=""></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="unit_type">Unit Type</label></div>
|
||
<input type="text" class="sheet-grow" title="@{unit_type}" name="attr_unit_type" value="">
|
||
<div><label class="sheet-help" data-i18n-title="unit_multiplier">X</label></div>
|
||
<input type="number" class="sheet-number-width-sm" title="@{unit_type_multiplier}" name="attr_unit_type_multiplier" value="1" min="1">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="unit_traits">Unit Traits</label></div>
|
||
<input type="text" class="sheet-grow" title="@{unit_traits}" name="attr_unit_traits" value="">
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="commander">Commander</label></div>
|
||
<input type="text" class="sheet-grow" title="@{unit_commander}" name="attr_unit_commander" value="">
|
||
</div>
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="formation">Formation</label></div>
|
||
<div class="sheet-grow">
|
||
<select class="sheet-full-width sheet-text-center" title="@{unit_formation}" name="attr_unit_formation">
|
||
<option value="broken" data-i18n="broken" selected>Broken</option>
|
||
<option value="skirmish" data-i18n="skirmish">Skirmish</option>
|
||
<option value="line" data-i18n="line">Line</option>
|
||
<option value="phalanx" data-i18n="phalanx">Phalanx</option>
|
||
<option value="circle"><span data-i18n="circle">Circle</span>/<span data-i18n="square">Square</span></option>
|
||
<option value="wedge" data-i18n="wedge">Wedge</option>
|
||
<option value="tortoise" data-i18n="tortoise">Tortoise</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label">
|
||
<button type="roll" class="sheet-label-left" title="%{unit_command}" name="roll_unit_command" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{command}}} {{roll=[[1d100]]}} {{original=@{unit_command}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{unit_command}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{unit_command}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{unit_command}*2)+@{penalty})]]}} {{easy=[[ceil((@{unit_command}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{unit_command}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{unit_command}*1.5)+@{penalty})]]}} {{standard=[[@{unit_command}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{unit_command}+@{penalty})/10)]]}} {{standard_fumble=[[(@{unit_command}+@{penalty})]]}} {{hard=[[ceil((@{unit_command}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{unit_command}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{unit_command}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{unit_command}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{unit_command}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{unit_command}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{unit_command}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{unit_command}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{unit_command}*@{herculean_mod})+@{penalty})]]}}" data-i18n="command">Command</button>
|
||
</div>
|
||
<input type="number" class="sheet-grow" title="@{unit_command}" name="attr_unit_command" value="0">
|
||
%
|
||
</div>
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="strength">Strength</label></div>
|
||
<input type="number" class="sheet-grow" title="@{unit_strength}" name="attr_unit_strength" value="0">
|
||
/
|
||
<input type="number" class="sheet-grow" title="@{unit_strength|max}" name="attr_unit_strength_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label">
|
||
<button type="roll" class="sheet-label-left" title="%{unit_competency}" name="roll_unit_competency" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{competency}}} {{roll=[[1d100]]}} {{original=@{unit_competency}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{unit_competency}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{unit_competency}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{unit_competency}*2)+@{penalty})]]}} {{easy=[[ceil((@{unit_competency}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{unit_competency}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{unit_competency}*1.5)+@{penalty})]]}} {{standard=[[@{unit_competency}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{unit_competency}+@{penalty})/10)]]}} {{standard_fumble=[[(@{unit_competency}+@{penalty})]]}} {{hard=[[ceil((@{unit_competency}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{unit_competency}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{unit_competency}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{unit_competency}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{unit_competency}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{unit_competency}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{unit_competency}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{unit_competency}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{unit_competency}*@{herculean_mod})+@{penalty})]]}}" data-i18n="competency">Competency</button>
|
||
</div>
|
||
<input type="number" class="sheet-grow" title="@{unit_competency}" name="attr_unit_competency" value="0">
|
||
%
|
||
</div>
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="frontage">Frontage</label></div>
|
||
<input type="number" class="sheet-grow" title="@{unit_frontage}" name="attr_unit_frontage" value="1" min="1">
|
||
<div class="sheet-unit-label"><label class="sheet-left" data-i18n="depth">Depth</label></div>
|
||
<input type="number" class="sheet-grow" title="@{unit_depth}" name="attr_unit_depth" value="1" min="1" readonly>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label">
|
||
<button type="roll" class="sheet-label-left" title="%{unit_morale}" name="roll_unit_morale" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{morale}}} {{roll=[[1d100]]}} {{original=@{unit_morale}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{unit_morale}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{unit_morale}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{unit_morale}*2)+@{penalty})]]}} {{easy=[[ceil((@{unit_morale}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{unit_morale}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{unit_morale}*1.5)+@{penalty})]]}} {{standard=[[@{unit_morale}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{unit_morale}+@{penalty})/10)]]}} {{standard_fumble=[[(@{unit_morale}+@{penalty})]]}} {{hard=[[ceil((@{unit_morale}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{unit_morale}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{unit_morale}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{unit_morale}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{unit_morale}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{unit_morale}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{unit_morale}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{unit_morale}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{unit_morale}*@{herculean_mod})+@{penalty})]]}}" data-i18n="morale">Morale</button>
|
||
</div>
|
||
<input type="number" class="sheet-grow" title="@{unit_morale}" name="attr_unit_morale" value="0">
|
||
%
|
||
</div>
|
||
<div class="sheet-flex sheet-gap sheet-half-width">
|
||
<div class="sheet-unit-label">
|
||
<button type="roll" class="sheet-label-left" title="%{unit_damage}" name="roll_unit_damage" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{character=@{character_name}}} {{name=^{damage} (@{unit_damage})}} {{^{damage}=[[@{unit_damage} * @{unit_type_multiplier}]]}}" data-i18n="damage">Damage</button>
|
||
</div>
|
||
<input type="text" class="sheet-grow" title="@{unit_damage}" name="attr_unit_damage" value="1d2" readonly>
|
||
</div>
|
||
</div>
|
||
<label class="sheet-left" data-i18n="notes">Notes</label>
|
||
<textarea class="sheet-full-width" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-character">
|
||
<!-- Character Header -->
|
||
<div id="core" class="sheet-anchor-adjust-x2"></div>
|
||
<div class="sheet-flex sheet-gap sheet-detailed">
|
||
<!-- Info Section -->
|
||
<div class="sheet-section sheet-grow">
|
||
<!-- Info 1st Row -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-grow">
|
||
<input type="text" class="sheet-full-width" title="@{character_name}" name="attr_character_name">
|
||
<label data-i18n="name">Name</label>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<div class="sheet-setting-option sheet-ms sheet-os">
|
||
<div class="sheet-flex">
|
||
<input type="text" class="sheet-grow" title="@{species}" name="attr_species" value="">/<input type="number" class="sheet-number-width-sm" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-destined sheet-fioracitta sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-imperative sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="text" class="sheet-full-width" title="@{species}" name="attr_species" value="">
|
||
</div>
|
||
<div class="sheet-text-center">
|
||
<span class="sheet-bold" data-i18n="species">Species</span><span class="sheet-setting-option sheet-ms sheet-os">/<span class="sheet-bold" data-i18n="strangeness">Strangeness</span></span>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<input type="text" class="sheet-full-width" title="@{culture}" name="attr_culture" value="">
|
||
<label data-i18n="culture">Culture</label>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<input type="text" class="sheet-full-width" title="@{career}" name="attr_career" value="">
|
||
<span class="sheet-setting-option sheet-not-cf"><label data-i18n="career">Career</label></span>
|
||
<span class="sheet-setting-option sheet-cf"><label data-i18n="class">Class</label></span>
|
||
</div>
|
||
<div class="sheet-setting-option sheet-cf sheet-info-rank">
|
||
<input type="number" class="sheet-full-width" title="@{rank}" name="attr_rank" value="0">
|
||
<label data-i18n="rank">Rank</label>
|
||
</div>
|
||
</div>
|
||
<!-- Info 2nd Row -->
|
||
<div class="sheet-flex sheet-gap sheet-major">
|
||
<div class="sheet-grow">
|
||
<input type="text" class="sheet-full-width" title="@{homeland}" name="attr_homeland" value="">
|
||
<label data-i18n="homeland">Homeland</label>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<input type="text" class="sheet-full-width" title="@{social_class}" name="attr_social_class" value="">
|
||
<label data-i18n="social_class">Name</label>
|
||
</div>
|
||
<div class="sheet-info-age">
|
||
<input type="number" class="sheet-full-width" title="@{age}" name="attr_age" value="0">
|
||
<label data-i18n="age">Age</label>
|
||
</div>
|
||
<div class="sheet-info-gender">
|
||
<input type="text" class="sheet-full-width" title="@{gender}" name="attr_gender" value="">
|
||
<label data-i18n="gender">Gender</label>
|
||
</div>
|
||
<div class="sheet-info-frame">
|
||
<input type="text" class="sheet-full-width" title="@{frame}" name="attr_frame" value="">
|
||
<label data-i18n="frame">Gender</label>
|
||
</div>
|
||
<div class="sheet-info-height">
|
||
<input type="number" style="padding-right: 25px" class="sheet-full-width" title="@{height}" name="attr_height" value="178">
|
||
<span class="sheet-input-unit" data-i18n="centimetres-a">cm</span>
|
||
<label data-i18n="height-bugfix">Height</label>
|
||
</div>
|
||
<div class="sheet-info-weight">
|
||
<input type="number" style="padding-right: 20px" class="sheet-full-width" title="@{weight}" name="attr_weight" value="88">
|
||
<span class="sheet-input-unit" data-i18n="kilograms-a">kg</span>
|
||
<label data-i18n="weight">Weight</label>
|
||
</div>
|
||
<div class="sheet-setting-option sheet-os sheet-info-the-soot">
|
||
<input type="number" class="sheet-full-width" title="@{the_soot}" name="attr_the_soot" value="0">
|
||
<label data-i18n="the_soot">The Soot</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Header 2nd Column -->
|
||
<div class="sheet-logo sheet-major">
|
||
<!-- Logo -->
|
||
<div class="sheet-lightmode">
|
||
<img class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-destined sheet-fioracitta sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-imperative sheet-perceforest sheet-thennla sheet-wu" src="https://i.imgur.com/EzQDmms.png" alt="Mythras">
|
||
<img class="sheet-setting-option sheet-ms" src="https://i.imgur.com/5uPy3QU.jpg" alt="M-Space">
|
||
<img class="sheet-setting-option sheet-os" src="https://i.imgur.com/35dOQix.jpg" alt="Odd Soot">
|
||
</div>
|
||
<div class="sheet-darkmode">
|
||
<img class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-destined sheet-fioracitta sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-imperative sheet-perceforest sheet-thennla sheet-wu" src="https://i.imgur.com/fH3lDe1.png" alt="Mythras">
|
||
<img class="sheet-setting-option sheet-ms" src="https://i.imgur.com/ku2pOiY.png" alt="M-Space">
|
||
<img class="sheet-setting-option sheet-os" src="https://i.imgur.com/yYojWZO.png" alt="Odd Soot">
|
||
</div>
|
||
<!-- Experience Rolls -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left" data-i18n="experience_rolls">Experience Rolls</label>
|
||
<input type="number" class="sheet-grow" title="@{experience_rolls}" name="attr_experience_rolls" value="0">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Core Section -->
|
||
<div class="sheet-flex sheet-gap sheet-anchor-adjust-x2">
|
||
<!-- Characteristics -->
|
||
<div class="sheet-section">
|
||
<input type="hidden" class="sheet-wide-toggle sheet-deep-toggle" name="attr_extended_conflict_enabled" value="0">
|
||
<h2 class="sheet-anti-toggle"><span data-i18n="characteristics">Characteristics</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Characteristics">?</button></h2>
|
||
<div class="sheet-toggle sheet-space-between sheet-gap">
|
||
<div><h2 class="sheet-toggle sheet-help"><span data-i18n-title="characteristics" data-i18n="characteristics-a">Chars</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Characteristics">?</button></h2></div>
|
||
<div><button type="roll" class="sheet-die sheet-d6" title="%{extended_conflict_damage}" name="roll_extended_conflict_damage" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{name=^{extended_conflict_damage}}} {{character=@{character_name}}} {{^{damage}=[[1d6]]}}">f</button></div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"></div>
|
||
<div class="sheet-th" data-i18n="base">Base</div>
|
||
<div class="sheet-th" data-i18n-title="current" data-i18n="current-a">Curr</div>
|
||
</div>
|
||
|
||
<!-- STR -->
|
||
<div class="sheet-tr sheet-creature">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="str-u">STR</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{str_base}" name="attr_str_base" value="11"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{str}" name="attr_str" value="11"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{str_pool}" name="attr_str_pool" value="11">
|
||
/<input type="number" class="sheet-rval" title="@{str}" name="attr_str" value="11">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_str_temp" value="0">
|
||
</div>
|
||
|
||
<!-- CON -->
|
||
<div class="sheet-tr sheet-creature">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="con-u">CON</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{con_base}" name="attr_con_base" value="11"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{con}" name="attr_con" value="11"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{con_pool}" name="attr_con_pool" value="11">
|
||
/<input type="number" class="sheet-rval" title="@{con}" name="attr_con" value="11">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_con_temp" value="0">
|
||
</div>
|
||
|
||
<!-- SIZ -->
|
||
<div class="sheet-tr sheet-creature">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="siz-u">SIZ</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{siz_base}" name="attr_siz_base" value="13"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{siz}" name="attr_siz" value="13"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{siz_pool}" name="attr_siz_pool" value="13">
|
||
/<input type="number" class="sheet-rval" title="@{siz}" name="attr_siz" value="13">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_siz_temp" value="0">
|
||
</div>
|
||
|
||
<!-- DEX -->
|
||
<div class="sheet-tr sheet-creature">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="dex-u">DEX</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{dex_base}" name="attr_dex_base" value="11"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{dex}" name="attr_dex" value="11"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{dex_pool}" name="attr_dex_pool" value="11">
|
||
/<input type="number" class="sheet-rval" title="@{dex}" name="attr_dex" value="11">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_dex_temp" value="0">
|
||
</div>
|
||
|
||
<!-- INT -->
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left"><span name="attr_int_type" data-i18n-dynamic>INT</span></label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{int_base}" name="attr_int_base" value="13"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{int}" name="attr_int" value="13"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{int_pool}" name="attr_int_pool" value="13">
|
||
/<input type="number" class="sheet-rval" title="@{int}" name="attr_int" value="13">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_int_temp" value="0">
|
||
</div>
|
||
|
||
<!-- POW -->
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="pow-u">POW</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{pow_base}" name="attr_pow_base" value="11"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{pow}" name="attr_pow" value="11"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{pow_pool}" name="attr_pow_pool" value="11">
|
||
/<input type="number" class="sheet-rval" title="@{pow}" name="attr_pow" value="11">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_pow_temp" value="0">
|
||
</div>
|
||
|
||
<!-- CHA -->
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-char-label"><label class="sheet-left" data-i18n="cha-u">CHA</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{cha_base}" name="attr_cha_base" value="11"></div>
|
||
<div class="sheet-td sheet-anti-toggle"><input type="number" class="sheet-impval sheet-number-width" title="@{cha}" name="attr_cha" value="11"></div>
|
||
<div class="sheet-td sheet-toggle">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval" title="@{cha_pool}" name="attr_cha_pool" value="11">
|
||
/<input type="number" class="sheet-rval" title="@{cha}" name="attr_cha" value="11">
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="attr_cha_temp" value="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Composite Pool -->
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-td"><label class="sheet-left sheet-help" data-i18n-title="composite_pool" data-i18n="composite">Composite</label></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-flex sheet-impval">
|
||
<input type="number" class="sheet-lval sheet-grow" name="attr_conflict_pool" value="11">/<input type="number" class="sheet-rval sheet-grow" title="@{conflict_pool|max}" name="attr_conflict_pool_max" value="11">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Attributes -->
|
||
<input type="hidden" class="sheet-attr-toggle" name="attr_attribute_mode" value="physical">
|
||
<div class="sheet-section">
|
||
<input type="hidden" class="sheet-social-conflict-toggle" name="attr_social_conflict_enabled" value="0">
|
||
<input type="hidden" class="sheet-spirits-toggle" name="attr_spirits_enabled" value="1">
|
||
<div class="sheet-space-between">
|
||
<h2>
|
||
<span data-i18n="attributes">Attributes</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Attributes">?</button>
|
||
(<select class="sheet-auto-width sheet-text-center" name="attr_attribute_mode">
|
||
<option value="physical" class="sheet-creature" data-i18n="physical" selected>Physical</option>
|
||
<option value="social" class="sheet-social-conflict" data-i18n="social">Social</option>
|
||
<option value="spiritual" class="sheet-spirits" data-i18n="spiritual">Spiritual</option>
|
||
</select>)
|
||
</h2>
|
||
<div>
|
||
<input type='checkbox' name='attr_attribute_configs' value="1"><span class="sheet-checkico">y</span>
|
||
</div>
|
||
</div>
|
||
|
||
<input type='hidden' class="sheet-details-toggle" name='attr_attribute_configs' value="0">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow" data-i18n="attribute">Attribute</div>
|
||
<div class="sheet-th sheet-details-toggle"><div class="sheet-number-width" data-i18n="other">Other</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="temporary" data-i18n="temporary-a">Temp</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n-title="current" data-i18n="current-a">Curr</div></div>
|
||
</div>
|
||
|
||
<div data-i18n-list="attribute-order">
|
||
<!-- Action Points -->
|
||
<div class="sheet-flex sheet-hl" data-i18n-list-item="action_points">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="action_points">Action Points</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width sheet-not-social" title="@{action_points_other}" name="attr_action_points_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{action_points_temp}" name="attr_action_points_temp" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{action_points}" name="attr_action_points" value="2">/<input type="number" class="sheet-rval" title="@{action_points|max}" name="attr_action_points_max" value="2" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Confidence -->
|
||
<div data-i18n-list-item="confidence" class="sheet-flex sheet-hl sheet-social">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="confidence">Confidence</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{confidence_other}" name="attr_confidence_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{confidence_temp}" name="attr_confidence_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{confidence}" name="attr_confidence" value="1" readonly></div>
|
||
</div>
|
||
|
||
<!-- Social Damage -->
|
||
<div data-i18n-list-item="social_damage" class="sheet-flex sheet-hl sheet-social">
|
||
<div class="sheet-td sheet-grow sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{social_damage}" name="roll_social_damage" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{character=@{character_name}}} {{name=^{social_damage} (@{social_damage})}} {{^{damage}=[[@{social_damage}]]}}" data-i18n="damage">Damage</button>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{social_damage_other}" name="attr_social_damage_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{social_damage_temp}" name="attr_social_damage_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-impval sheet-number-width" title="@{social_damage}" name="attr_social_damage" value="1d4" readonly></div>
|
||
</div>
|
||
|
||
<!-- Spirit Damage -->
|
||
<div data-i18n-list-item="social_damage" class="sheet-flex sheet-hl sheet-spiritual">
|
||
<div class="sheet-td sheet-grow sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{spirit_damage}" name="roll_spirit_damage" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{character=@{character_name}}} {{name=^{spirit_damage} (@{spirit_damage})}} {{^{damage}=[[@{spirit_damage}]]}}" data-i18n="damage">Damage</button>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{spirit_damage_other}" name="attr_spirit_damage_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{spirit_damage_temp}" name="attr_spirit_damage_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-impval sheet-number-width" title="@{spirit_damage}" name="attr_spirit_damage" value="1d2" readonly></div>
|
||
</div>
|
||
|
||
<!-- Damage Modifier -->
|
||
<div data-i18n-list-item="damage_modifier" class="sheet-physical sheet-hl">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{damage_modifier}" name="roll_damage_modifier" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{character=@{character_name}}} {{name=^{damage_modifier} (@{damage_mod})}} {{^{damage}=[[@{damage_mod}]]}}" data-i18n="damage_modifier-a">Damage Mod</button>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{damage_mod_other}" name="attr_damage_mod_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{damage_mod_temp}" name="attr_damage_mod_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-impval sheet-number-width" title="@{damage_mod}" name="attr_damage_mod" value="0" readonly></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<span data-i18n="use">Use</span>:
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_damage_mod_calc">
|
||
<option data-i18n="str+siz" value="0" selected>STR+SIZ</option>
|
||
<option data-i18n="str+siz+pow" value="1">STR+SIZ+POW</option>
|
||
<option data-i18n="str+siz+con" value="2">STR+SIZ+CON</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Experience Modifier -->
|
||
<div data-i18n-list-item="experience_modifier" class="sheet-hl sheet-major">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n-title="experience_modifier" data-i18n="experience-a_modifier">Exp Modifier</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{experience_mod_other}" name="attr_experience_mod_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{experience_mod_temp}" name="attr_experience_mod_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{experience_mod}" name="attr_experience_mod" value="0" readonly></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<span data-i18n="use">Use</span>:
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_experience_mod_calc">
|
||
<option data-i18n="cha-u" value="0" selected>CHA</option>
|
||
<option data-i18n="int-u" value="1">INT</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Healing Rate -->
|
||
<div data-i18n-list-item="healing_rate" class="sheet-hl sheet-physical">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="healing_rate">Healing Rate</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{healing_rate_other}" name="attr_healing_rate_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{healing_rate_temp}" name="attr_healing_rate_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{healing_rate}" name="attr_healing_rate" value="2" readonly></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<span data-i18n="use">Use</span>:
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_healing_rate_calc">
|
||
<option data-i18n="con-u" value="0" selected>CON</option>
|
||
<option data-i18n="con+1/2_pow" value="1">CON + 1/2 POW</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<label class="sheet-checkbox">
|
||
<input type='checkbox' name='attr_healing_rate_double' value="1"/><span>3</span>
|
||
<span data-i18n="double_base_healing_rate">Double Base healing Rate</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Initiative -->
|
||
<div data-i18n-list-item="initiative" class="sheet-hl">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{initiative}" name="roll_initiative" value="@{roll_display}&{template:default} {{initstyle=1}} {{character=@{character_name}}} {{name=^{initiative}}} {{^{roll}=[[@{init_dice} + @{initiative_bonus} &{tracker}]]}}" data-i18n="initiative">Initiative</button>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{initiative_bonus_other}" name="attr_initiative_bonus_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{initiative_bonus_temp}" name="attr_initiative_bonus_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{initiative_bonus}" name="attr_initiative_bonus" value="12" readonly></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<span data-i18n="initiative_roll">Initiative Roll</span>:
|
||
<input type="text" class="sheet-number-width sheet-text-center" name="attr_init_dice" value="1d10">
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<label class="sheet-checkbox">
|
||
<input type='checkbox' name='attr_initiative_add_one_tenth_athletics' value="1"/><span>3</span>
|
||
<span data-i18n="add_1/10_athletics">Add 1/10 Athletics</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Luck Points -->
|
||
<div data-i18n-list-item="luck_points" class="sheet-hl sheet-major">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="luck_points">Luck Points</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{luck_points_other}" name="attr_luck_points_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{luck_points_temp}" name="attr_luck_points_temp" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{luck_points}" name="attr_luck_points" value="2">/<input type="number" class="sheet-rval" title="@{luck_points|max}" name="attr_luck_points_max" value="2" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<span data-i18n="use">Use</span>:
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_luck_points_calc">
|
||
<option data-i18n="pow-u" value="0" selected>POW</option>
|
||
<option data-i18n="cha+1/2_pow" value="1">CHA + 1/2 POW</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Magic Points -->
|
||
<div data-i18n-list-item="magic_points" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-os sheet-perceforest sheet-thennla">
|
||
<div class="sheet-flex sheet-hl">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="magic_points">Magic Points</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_other}" name="attr_magic_points_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_temp}" name="attr_magic_points_temp" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11" readonly></div></div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Movement Rate -->
|
||
<div data-i18n-list-item="movement" class="sheet-hl sheet-physical">
|
||
<input type="hidden" class="sheet-wide-toggle sheet-deep-toggle" name="attr_custom_movement_enabled" value="0">
|
||
<div class="sheet-flex sheet-anti-toggle">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="movement">Movement</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{movement_rate_other}" name="attr_movement_rate_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{movement_rate_temp}" name="attr_movement_rate_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{movement_rate}" name="attr_movement_rate" value="6" readonly></div>
|
||
</div>
|
||
<!-- Custom Movement Alternative -->
|
||
<div class="sheet-space-between sheet-toggle">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="movement">Movement</label></div>
|
||
<div class="sheet-td sheet-custom-movement"><input type="text" class="sheet-full-width sheet-text-right" title="@{custom_movement}" name="attr_custom_movement" value=""></div>
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<select class="sheet-text-center sheet-auto-width sheet-rmargin" name="attr_custom_movement_enabled">
|
||
<option data-i18n="standard" value="0" selected>Standard</option>
|
||
<option data-i18n="custom" value="1">Custom</option>
|
||
</select>
|
||
<span class="sheet-anti-toggle">
|
||
<span data-i18n="species">Species</span>:
|
||
<input type="number" class="sheet-dullval sheet-number-width-sm" title="@{movement_rate_species}" name="attr_movement_rate_species" value="6">
|
||
</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Power Points -->
|
||
<div data-i18n-list-item="power_points" class="sheet-setting-option sheet-destined sheet-ms">
|
||
<div class="sheet-flex sheet-hl">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="power_points">Power Points</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_other}" name="attr_magic_points_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_temp}" name="attr_magic_points_temp" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11" readonly></div></div>
|
||
<input type="hidden" name="magic_points_temp" value="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Prana Points -->
|
||
<div data-i18n-list-item="prana_points" class="sheet-setting-option sheet-la">
|
||
<div class="sheet-flex sheet-hl">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="prana_points">Prana Points</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_other}" name="attr_magic_points_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{magic_points_temp}" name="attr_magic_points_temp" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11" readonly></div></div>
|
||
<input type="hidden" name="magic_points_temp" value="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Spirit intensity -->
|
||
<div data-i18n-list-item="spirit_intensity" class="sheet-flex sheet-hl sheet-spirit">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="spirit_intensity">Spirit Intensity</label></div>
|
||
<div class="sheet-td sheet-details-toggle"></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{confidence}" name="attr_spirit_intensity" value="1" readonly></div>
|
||
</div>
|
||
|
||
<!-- Tenacity -->
|
||
<input type="hidden" class="sheet-toggle" name="attr_tenacity_enabled" value="0">
|
||
<div data-i18n-list-item="tenacity" class="sheet-hl sheet-toggle">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-text-left"><label class="sheet-left" data-i18n="tenacity">Tenacity</label></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-dullval sheet-number-width" title="@{tenacity_other}" name="attr_tenacity_other" value="0"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-dullval sheet-number-width" title="@{tenacity_temp}" name="attr_tenacity_temp" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{tenacity}" name="attr_tenacity" value="11">/<input type="number" class="sheet-rval" title="@{tenacity|max}" name="attr_tenacity_max" value="11" readonly></div></div>
|
||
<input type="hidden" name="attr_tenacity_temp" value="0">
|
||
</div>
|
||
<div class="sheet-details-toggle sheet-lmargin-x3">
|
||
<input type="hidden" class="sheet-toggle" name="attr_dependencies_enabled" value="0">
|
||
<label class="sheet-checkbox sheet-toggle">
|
||
<input type='checkbox' name='attr_apply_dependencies_penalty' value="1" checked/><span>3</span>
|
||
<span data-i18n="apply_dependencies_penalty">Apply Dependencies Penalty</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Hit Locations -->
|
||
<div class="sheet-not-social sheet-bpad">
|
||
<input type="hidden" class="sheet-hit-locations-spirit" name="attr_sheet_type" value="pc">
|
||
<div class="sheet-section sheet-hit-locations-toggle sheet-full-height">
|
||
<div class="sheet-space-between sheet-gap">
|
||
<h2 data-i18n="hit_locations">Hit Locations</h2>
|
||
<div class="sheet-flex sheet-gap">
|
||
<input type="hidden" class="sheet-toggle" name="attr_simplified_combat_enabled" value="0">
|
||
<select class="sheet-auto-width sheet-text-center sheet-anti-toggle" title="@{hit_locations}" name="attr_hit_locations" data-i18n-list="hit-location-order">
|
||
<option value="custom1" data-i18n="custom_1_location" data-i18n-list-item="custom_1_location">Custom(1 Location)</option>
|
||
<option value="custom7" data-i18n="custom_7_locations" data-i18n-list-item="custom_7_locations" selected >Custom(7 Locations)</option>
|
||
<option value="custom8" data-i18n="custom_8_locations" data-i18n-list-item="custom_8_locations">Custom(8 Locations)</option>
|
||
<option value="custom9" data-i18n="custom_9_locations" data-i18n-list-item="custom_9_locations">Custom(9 Locations)</option>
|
||
<option value="custom10" data-i18n="custom_10_locations" data-i18n-list-item="custom_10_locations">Custom(10 Locations)</option>
|
||
<option value="custom11" data-i18n="custom_11_locations" data-i18n-list-item="custom_11_locations">Custom(11 Locations)</option>
|
||
<option value="custom" data-i18n="custom_12_locations" data-i18n-list-item="custom_12_locations">Custom(12 Locations)</option>
|
||
<option value="rabble" data-i18n="rabble/underling" data-i18n-list-item="rabble">Rabble/Underling</option>
|
||
<option value="simplified" data-i18n="simplified-combat" hidden>Simplified Combat</option>
|
||
<option data-i18n-list-item="spacer" disabled>──────────</option>
|
||
<option value="arachnid" data-i18n="arachnid" data-i18n-list-item="arachnid">Arachnid</option>
|
||
<option value="humanoid" data-i18n="biped" data-i18n-list-item="biped">Biped</option>
|
||
<option value="centaurid" data-i18n="centaurid" data-i18n-list-item="centaurid">Centaurid</option>
|
||
<option value="decapoda" data-i18n="decapoda" data-i18n-list-item="decapoda">Decapoda</option>
|
||
<option value="decapodiform" data-i18n="decapodiform" data-i18n-list-item="decapodiform">Decapodiform</option>
|
||
<option value="dorsal_finned_aquatic" data-i18n="dorsal_finned_aquatic" data-i18n-list-item="dorsal_finned_aquatic">Dorsal Finned Aquatic</option>
|
||
<option value="draconic" data-i18n="draconic" data-i18n-list-item="draconic">Draconic</option>
|
||
<option value="insect" data-i18n="insect" data-i18n-list-item="insect">Insect</option>
|
||
<option value="octopodiform" data-i18n="octopodiform" data-i18n-list-item="octopodiform">Octopodiform</option>
|
||
<option value="pachyderm" data-i18n="pachyderm" data-i18n-list-item="pachyderm">Pachyderm</option>
|
||
<option value="quadruped" data-i18n="quadruped" data-i18n-list-item="quadruped">Quadruped</option>
|
||
<option value="serpentine" data-i18n="serpentine" data-i18n-list-item="serpentine">Serpentine</option>
|
||
<option value="tailed_arachnid" data-i18n="tailed_arachnid" data-i18n-list-item="tailed_arachnid">Tailed Arachnid</option>
|
||
<option value="tailed_biped" data-i18n="tailed_biped" data-i18n-list-item="tailed_biped">Tailed Biped</option>
|
||
<option value="tailed_quadruped" data-i18n="tailed_quadruped" data-i18n-list-item="tailed_quadruped">Tailed Quadruped</option>
|
||
<option value="winged_biped" data-i18n="winged_biped" data-i18n-list-item="winged_biped">Winged Biped</option>
|
||
<option value="winged_insect" data-i18n="winged_insect" data-i18n-list-item="winged_insect">Winged Insect</option>
|
||
<option value="winged_quadruped" data-i18n="winged_quadruped" data-i18n-list-item="winged_quadruped">Winged Quadruped</option>
|
||
</select>
|
||
<div>
|
||
<input type='checkbox' name='attr_hit_locations_configs' value="1"><span class="sheet-checkico">y</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<input type="hidden" class="sheet-details-toggle" name="attr_hit_locations_configs" value="0">
|
||
<div class="sheet-details-toggle">
|
||
<label class="sheet-left" data-i18n="calculate_with">Calculate With</label>
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_hp_calc">
|
||
<option data-i18n="con+siz" value="0" selected>CON+SIZ</option>
|
||
<option data-i18n="con+siz+pow" value="1">CON+SIZ+POW</option>
|
||
<option data-i18n="con+siz+str" value="2">CON+SIZ+STR</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"><button type="roll" class="sheet-link" title="%{hit_location}" name="roll_hit_location" value="@{hit_location_roll}">d20</button></div>
|
||
<div class="sheet-th" data-i18n="hit_location">Hit Location</div>
|
||
<!-- Creature hit location roll values -->
|
||
<div hidden>
|
||
<input type="text" name="attr_creature_hit_location_roll" value="@{roll_display}&{template:hit-location} {{name=^{hit_location} (d20)}} {{character=@{character_name}}} {{roll=[[1d20]]}} {{loc1_name=@{location1_name}}} {{loc1_start=[[@{location1_table_start}]]}} {{loc1_end=[[@{location1_table_end}]]}} {{loc1_block=@{location1_block}}} {{loc1_ap=@{location1_ap}}} {{loc1_hp=@{location1_hp}}} {{loc1_hp_max=@{location1_hp|max}}} {{loc2_name=@{location2_name}}} {{loc2_start=[[@{location2_table_start}]]}} {{loc2_end=[[@{location2_table_end}]]}} {{loc2_block=@{location2_block}}} {{loc2_ap=@{location2_ap}}} {{loc2_hp=@{location2_hp}}} {{loc2_hp_max=@{location2_hp|max}}} {{loc3_name=@{location3_name}}} {{loc3_start=[[@{location3_table_start}]]}} {{loc3_end=[[@{location3_table_end}]]}} {{loc3_block=@{location3_block}}} {{loc3_ap=@{location3_ap}}} {{loc3_hp=@{location3_hp}}} {{loc3_hp_max=@{location3_hp|max}}} {{loc4_name=@{location4_name}}} {{loc4_start=[[@{location4_table_start}]]}} {{loc4_end=[[@{location4_table_end}]]}} {{loc4_block=@{location4_block}}} {{loc4_ap=@{location4_ap}}} {{loc4_hp=@{location4_hp}}} {{loc4_hp_max=@{location4_hp|max}}} {{loc5_name=@{location5_name}}} {{loc5_start=[[@{location5_table_start}]]}} {{loc5_end=[[@{location5_table_end}]]}} {{loc5_block=@{location5_block}}} {{loc5_ap=@{location5_ap}}} {{loc5_hp=@{location5_hp}}} {{loc5_hp_max=@{location5_hp|max}}} {{loc6_name=@{location6_name}}} {{loc6_start=[[@{location6_table_start}]]}} {{loc6_end=[[@{location6_table_end}]]}} {{loc6_block=@{location6_block}}} {{loc6_ap=@{location6_ap}}} {{loc6_hp=@{location6_hp}}} {{loc6_hp_max=@{location6_hp|max}}} {{loc7_name=@{location7_name}}} {{loc7_start=[[@{location7_table_start}]]}} {{loc7_end=[[@{location7_table_end}]]}} {{loc7_block=@{location7_block}}} {{loc7_ap=@{location7_ap}}} {{loc7_hp=@{location7_hp}}} {{loc7_hp_max=@{location7_hp|max}}} {{loc8_name=@{location8_name}}} {{loc8_start=[[@{location8_table_start}]]}} {{loc8_end=[[@{location8_table_end}]]}} {{loc8_block=@{location8_block}}} {{loc8_ap=@{location8_ap}}} {{loc8_hp=@{location8_hp}}} {{loc8_hp_max=@{location8_hp|max}}} {{loc9_name=@{location9_name}}} {{loc9_start=[[@{location9_table_start}]]}} {{loc9_end=[[@{location9_table_end}]]}} {{loc9_block=@{location9_block}}} {{loc9_ap=@{location9_ap}}} {{loc9_hp=@{location9_hp}}} {{loc9_hp_max=@{location9_hp|max}}} {{loc10_name=@{location10_name}}} {{loc10_start=[[@{location10_table_start}]]}} {{loc10_end=[[@{location10_table_end}]]}} {{loc10_block=@{location10_block}}} {{loc10_ap=@{location10_ap}}} {{loc10_hp=@{location10_hp}}} {{loc10_hp_max=@{location10_hp|max}}} {{loc11_name=@{location11_name}}} {{loc11_start=[[@{location11_table_start}]]}} {{loc11_end=[[@{location11_table_end}]]}} {{loc11_block=@{location11_block}}} {{loc11_ap=@{location11_ap}}} {{loc11_hp=@{location11_hp}}} {{loc11_hp_max=@{location11_hp|max}}} {{loc12_name=@{location12_name}}} {{loc12_start=[[@{location12_table_start}]]}} {{loc12_end=[[@{location12_table_end}]]}} {{loc12_block=@{location12_block}}} {{loc12_ap=@{location12_ap}}} {{loc12_hp=@{location12_hp}}} {{loc12_hp_max=@{location12_hp|max}}}" disabled>
|
||
<input type="text" name="attr_creature_hit_location_low_roll" value="@{roll_display}&{template:hit-location} {{name=^{hit_location} (d10)}} {{character=@{character_name}}} {{roll=[[1d10]]}} {{loc1_name=@{location1_name}}} {{loc1_start=[[@{location1_table_start}]]}} {{loc1_end=[[@{location1_table_end}]]}} {{loc1_block=@{location1_block}}} {{loc1_ap=@{location1_ap}}} {{loc1_hp=@{location1_hp}}} {{loc1_hp_max=@{location1_hp|max}}} {{loc2_name=@{location2_name}}} {{loc2_start=[[@{location2_table_start}]]}} {{loc2_end=[[@{location2_table_end}]]}} {{loc2_block=@{location2_block}}} {{loc2_ap=@{location2_ap}}} {{loc2_hp=@{location2_hp}}} {{loc2_hp_max=@{location2_hp|max}}} {{loc3_name=@{location3_name}}} {{loc3_start=[[@{location3_table_start}]]}} {{loc3_end=[[@{location3_table_end}]]}} {{loc3_block=@{location3_block}}} {{loc3_ap=@{location3_ap}}} {{loc3_hp=@{location3_hp}}} {{loc3_hp_max=@{location3_hp|max}}} {{loc4_name=@{location4_name}}} {{loc4_start=[[@{location4_table_start}]]}} {{loc4_end=[[@{location4_table_end}]]}} {{loc4_block=@{location4_block}}} {{loc4_ap=@{location4_ap}}} {{loc4_hp=@{location4_hp}}} {{loc4_hp_max=@{location4_hp|max}}} {{loc5_name=@{location5_name}}} {{loc5_start=[[@{location5_table_start}]]}} {{loc5_end=[[@{location5_table_end}]]}} {{loc5_block=@{location5_block}}} {{loc5_ap=@{location5_ap}}} {{loc5_hp=@{location5_hp}}} {{loc5_hp_max=@{location5_hp|max}}} {{loc6_name=@{location6_name}}} {{loc6_start=[[@{location6_table_start}]]}} {{loc6_end=[[@{location6_table_end}]]}} {{loc6_block=@{location6_block}}} {{loc6_ap=@{location6_ap}}} {{loc6_hp=@{location6_hp}}} {{loc6_hp_max=@{location6_hp|max}}} {{loc7_name=@{location7_name}}} {{loc7_start=[[@{location7_table_start}]]}} {{loc7_end=[[@{location7_table_end}]]}} {{loc7_block=@{location7_block}}} {{loc7_ap=@{location7_ap}}} {{loc7_hp=@{location7_hp}}} {{loc7_hp_max=@{location7_hp|max}}} {{loc8_name=@{location8_name}}} {{loc8_start=[[@{location8_table_start}]]}} {{loc8_end=[[@{location8_table_end}]]}} {{loc8_block=@{location8_block}}} {{loc8_ap=@{location8_ap}}} {{loc8_hp=@{location8_hp}}} {{loc8_hp_max=@{location8_hp|max}}} {{loc9_name=@{location9_name}}} {{loc9_start=[[@{location9_table_start}]]}} {{loc9_end=[[@{location9_table_end}]]}} {{loc9_block=@{location9_block}}} {{loc9_ap=@{location9_ap}}} {{loc9_hp=@{location9_hp}}} {{loc9_hp_max=@{location9_hp|max}}} {{loc10_name=@{location10_name}}} {{loc10_start=[[@{location10_table_start}]]}} {{loc10_end=[[@{location10_table_end}]]}} {{loc10_block=@{location10_block}}} {{loc10_ap=@{location10_ap}}} {{loc10_hp=@{location10_hp}}} {{loc10_hp_max=@{location10_hp|max}}} {{loc11_name=@{location11_name}}} {{loc11_start=[[@{location11_table_start}]]}} {{loc11_end=[[@{location11_table_end}]]}} {{loc11_block=@{location11_block}}} {{loc11_ap=@{location11_ap}}} {{loc11_hp=@{location11_hp}}} {{loc11_hp_max=@{location11_hp|max}}} {{loc12_name=@{location12_name}}} {{loc12_start=[[@{location12_table_start}]]}} {{loc12_end=[[@{location12_table_end}]]}} {{loc12_block=@{location12_block}}} {{loc12_ap=@{location12_ap}}} {{loc12_hp=@{location12_hp}}} {{loc12_hp_max=@{location12_hp|max}}}" disabled>
|
||
<input type="text" name="attr_creature_hit_location_high_roll" value="@{roll_display}&{template:hit-location} {{name=^{hit_location} (d10+10)}} {{character=@{character_name}}} {{roll=[[1d10+10]]}} {{loc1_name=@{location1_name}}} {{loc1_start=[[@{location1_table_start}]]}} {{loc1_end=[[@{location1_table_end}]]}} {{loc1_block=@{location1_block}}} {{loc1_ap=@{location1_ap}}} {{loc1_hp=@{location1_hp}}} {{loc1_hp_max=@{location1_hp|max}}} {{loc2_name=@{location2_name}}} {{loc2_start=[[@{location2_table_start}]]}} {{loc2_end=[[@{location2_table_end}]]}} {{loc2_block=@{location2_block}}} {{loc2_ap=@{location2_ap}}} {{loc2_hp=@{location2_hp}}} {{loc2_hp_max=@{location2_hp|max}}} {{loc3_name=@{location3_name}}} {{loc3_start=[[@{location3_table_start}]]}} {{loc3_end=[[@{location3_table_end}]]}} {{loc3_block=@{location3_block}}} {{loc3_ap=@{location3_ap}}} {{loc3_hp=@{location3_hp}}} {{loc3_hp_max=@{location3_hp|max}}} {{loc4_name=@{location4_name}}} {{loc4_start=[[@{location4_table_start}]]}} {{loc4_end=[[@{location4_table_end}]]}} {{loc4_block=@{location4_block}}} {{loc4_ap=@{location4_ap}}} {{loc4_hp=@{location4_hp}}} {{loc4_hp_max=@{location4_hp|max}}} {{loc5_name=@{location5_name}}} {{loc5_start=[[@{location5_table_start}]]}} {{loc5_end=[[@{location5_table_end}]]}} {{loc5_block=@{location5_block}}} {{loc5_ap=@{location5_ap}}} {{loc5_hp=@{location5_hp}}} {{loc5_hp_max=@{location5_hp|max}}} {{loc6_name=@{location6_name}}} {{loc6_start=[[@{location6_table_start}]]}} {{loc6_end=[[@{location6_table_end}]]}} {{loc6_block=@{location6_block}}} {{loc6_ap=@{location6_ap}}} {{loc6_hp=@{location6_hp}}} {{loc6_hp_max=@{location6_hp|max}}} {{loc7_name=@{location7_name}}} {{loc7_start=[[@{location7_table_start}]]}} {{loc7_end=[[@{location7_table_end}]]}} {{loc7_block=@{location7_block}}} {{loc7_ap=@{location7_ap}}} {{loc7_hp=@{location7_hp}}} {{loc7_hp_max=@{location7_hp|max}}} {{loc8_name=@{location8_name}}} {{loc8_start=[[@{location8_table_start}]]}} {{loc8_end=[[@{location8_table_end}]]}} {{loc8_block=@{location8_block}}} {{loc8_ap=@{location8_ap}}} {{loc8_hp=@{location8_hp}}} {{loc8_hp_max=@{location8_hp|max}}} {{loc9_name=@{location9_name}}} {{loc9_start=[[@{location9_table_start}]]}} {{loc9_end=[[@{location9_table_end}]]}} {{loc9_block=@{location9_block}}} {{loc9_ap=@{location9_ap}}} {{loc9_hp=@{location9_hp}}} {{loc9_hp_max=@{location9_hp|max}}} {{loc10_name=@{location10_name}}} {{loc10_start=[[@{location10_table_start}]]}} {{loc10_end=[[@{location10_table_end}]]}} {{loc10_block=@{location10_block}}} {{loc10_ap=@{location10_ap}}} {{loc10_hp=@{location10_hp}}} {{loc10_hp_max=@{location10_hp|max}}} {{loc11_name=@{location11_name}}} {{loc11_start=[[@{location11_table_start}]]}} {{loc11_end=[[@{location11_table_end}]]}} {{loc11_block=@{location11_block}}} {{loc11_ap=@{location11_ap}}} {{loc11_hp=@{location11_hp}}} {{loc11_hp_max=@{location11_hp|max}}} {{loc12_name=@{location12_name}}} {{loc12_start=[[@{location12_table_start}]]}} {{loc12_end=[[@{location12_table_end}]]}} {{loc12_block=@{location12_block}}} {{loc12_ap=@{location12_ap}}} {{loc12_hp=@{location12_hp}}} {{loc12_hp_max=@{location12_hp|max}}}" disabled>
|
||
</div>
|
||
<div class="sheet-th sheet-help sheet-pictos-three" data-i18n-title="passive_block_size">b</div>
|
||
<div class="sheet-th sheet-help" data-i18n-title="armor_points" data-i18n="armor_points-a">AP</div>
|
||
<div class="sheet-th sheet-details-toggle sheet-help" data-i18n-title="modifier" data-i18n="modifier-a">Mod</div>
|
||
<div class="sheet-th sheet-details-toggle sheet-help" data-i18n-title="other" data-i18n="other-a">Oth</div>
|
||
<div class="sheet-th sheet-help" data-i18n-title="hit_points" data-i18n="hit_points-a">HP</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location1_table_start}" name="attr_location1_table_start" value="1">-<input type="number" class="sheet-number-width-xs" title="@{location1_table_end}" name="attr_location1_table_end" value="3"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location1_name}" name="attr_location1_name" value="Right Leg"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location1_block}" name="attr_location1_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location1_ap}" name="attr_location1_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location1_hp_max_base_mod}" name="attr_location1_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location1_hp_max_other}" name="attr_location1_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location1_hp}" name="attr_location1_hp" value="5">/<input type="number" class="sheet-rval" title="@{location1_hp|max}" name="attr_location1_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location2_table_start}" name="attr_location2_table_start" value="4">-<input type="number" class="sheet-number-width-xs" title="@{location2_table_end}" name="attr_location2_table_end" value="6"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location2_name}" name="attr_location2_name" value="Left Leg"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location2_block}" name="attr_location2_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location2_ap}" name="attr_location2_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location2_hp_max_base_mod}" name="attr_location2_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location2_hp_max_other}" name="attr_location2_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location2_hp}" name="attr_location2_hp" value="5">/<input type="number" class="sheet-rval" title="@{location2_hp|max}" name="attr_location2_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location3_table_start}" name="attr_location3_table_start" value="7">-<input type="number" class="sheet-number-width-xs" title="@{location3_table_end}" name="attr_location3_table_end" value="9"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location3_name}" name="attr_location3_name" value="Abdomen"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location3_block}" name="attr_location3_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location3_ap}" name="attr_location3_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location3_hp_max_base_mod}" name="attr_location3_hp_max_base_mod" value="1"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location3_hp_max_other}" name="attr_location3_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location3_hp}" name="attr_location3_hp" value="6">/<input type="number" class="sheet-rval" title="@{location3_hp|max}" name="attr_location3_hp_max" value="6" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location4_table_start}" name="attr_location4_table_start" value="10">-<input type="number" class="sheet-number-width-xs" title="@{location4_table_end}" name="attr_location4_table_end" value="12"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location4_name}" name="attr_location4_name" value="Chest"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location4_block}" name="attr_location4_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location4_ap}" name="attr_location4_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location4_hp_max_base_mod}" name="attr_location4_hp_max_base_mod" value="2"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location4_hp_max_other}" name="attr_location4_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location4_hp}" name="attr_location4_hp" value="7">/<input type="number" class="sheet-rval" title="@{location4_hp|max}" name="attr_location4_hp_max" value="7" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location5_table_start}" name="attr_location5_table_start" value="13">-<input type="number" class="sheet-number-width-xs" title="@{location5_table_end}" name="attr_location5_table_end" value="15"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location5_name}" name="attr_location5_name" value="Right Arm"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location5_block}" name="attr_location5_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location5_ap}" name="attr_location5_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location5_hp_max_base_mod}" name="attr_location5_hp_max_base_mod" value="-1"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location5_hp_max_other}" name="attr_location5_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location5_hp}" name="attr_location5_hp" value="4">/<input type="number" class="sheet-rval" title="@{location5_hp|max}" name="attr_location5_hp_max" value="4" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location6_table_start}" name="attr_location6_table_start" value="16">-<input type="number" class="sheet-number-width-xs" title="@{location6_table_end}" name="attr_location6_table_end" value="18"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location6_name}" name="attr_location6_name" value="Left Arm"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location6_block}" name="attr_location6_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location6_ap}" name="attr_location6_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location6_hp_max_base_mod}" name="attr_location6_hp_max_base_mod" value="-1"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location6_hp_max_other}" name="attr_location6_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location6_hp}" name="attr_location6_hp" value="4">/<input type="number" class="sheet-rval" title="@{location6_hp|max}" name="attr_location6_hp_max" value="4" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location7_table_start}" name="attr_location7_table_start" value="19">-<input type="number" class="sheet-number-width-xs" title="@{location7_table_end}" name="attr_location7_table_end" value="20"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location7_name}" name="attr_location7_name" value="Head"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location7_block}" name="attr_location7_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location7_ap}" name="attr_location7_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location7_hp_max_base_mod}" name="attr_location7_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location7_hp_max_other}" name="attr_location7_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location7_hp}" name="attr_location7_hp" value="5">/<input type="number" class="sheet-rval" title="@{location7_hp|max}" name="attr_location7_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location8_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location8_table_start}" name="attr_location8_table_start" value="0">-<input type="number" class="sheet-number-width-xs" title="@{location8_table_end}" name="attr_location8_table_end" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location8_name}" name="attr_location8_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location8_block}" name="attr_location8_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location8_ap}" name="attr_location8_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location8_hp_max_base_mod}" name="attr_location8_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location8_hp_max_other}" name="attr_location8_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location8_hp}" name="attr_location8_hp" value="5">/<input type="number" class="sheet-rval" title="@{location8_hp|max}" name="attr_location8_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location9_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location9_table_start}" name="attr_location9_table_start" value="0">-<input type="number" class="sheet-number-width-xs" title="@{location9_table_end}" name="attr_location9_table_end" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location9_name}" name="attr_location9_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location9_block}" name="attr_location9_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location9_ap}" name="attr_location9_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location9_hp_max_base_mod}" name="attr_location9_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location9_hp_max_other}" name="attr_location9_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location9_hp}" name="attr_location9_hp" value="5">/<input type="number" class="sheet-rval" title="@{location9_hp|max}" name="attr_location9_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location10_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location10_table_start}" name="attr_location10_table_start" value="0">-<input type="number" class="sheet-number-width-xs" title="@{location10_table_end}" name="attr_location10_table_end" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location10_name}" name="attr_location10_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location10_block}" name="attr_location10_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location10_ap}" name="attr_location10_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location10_hp_max_base_mod}" name="attr_location10_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location10_hp_max_other}" name="attr_location10_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location10_hp}" name="attr_location10_hp" value="5">/<input type="number" class="sheet-rval" title="@{location10_hp|max}" name="attr_location10_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location11_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location11_table_start}" name="attr_location11_table_start" value="0">-<input type="number" class="sheet-number-width-xs" title="@{location11_table_end}" name="attr_location11_table_end" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location11_name}" name="attr_location11_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location11_block}" name="attr_location11_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location11_ap}" name="attr_location11_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location11_hp_max_base_mod}" name="attr_location11_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location11_hp_max_other}" name="attr_location11_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location11_hp}" name="attr_location11_hp" value="5">/<input type="number" class="sheet-rval" title="@{location11_hp|max}" name="attr_location11_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location12_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-xs" title="@{location12_table_start}" name="attr_location12_table_start" value="0">-<input type="number" class="sheet-number-width-xs" title="@{location12_table_end}" name="attr_location12_table_end" value="0"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-location-name sheet-text-center" title="@{location12_name}" name="attr_location12_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{location12_block}" name="attr_location12_block" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-impval" title="@{location12_ap}" name="attr_location12_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location11_hp_max_base_mod}" name="attr_location12_hp_max_base_mod" value="0"></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{location11_hp_max_other}" name="attr_location12_hp_max_other" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{location12_hp}" name="attr_location12_hp" value="5">/<input type="number" class="sheet-rval" title="@{location12_hp|max}" name="attr_location12_hp_max" value="5" readonly></div></div>
|
||
</div>
|
||
</div>
|
||
<!-- Wounds -->
|
||
<div class="sheet-flex sheet-gap">
|
||
<div><label class="sheet-left" data-i18n="wounds">Wounds</label></div>
|
||
<div class="sheet-grow"><input type="text" class="sheet-full-width" name="attr_wounds" value=""></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Social Conflict -->
|
||
<div class="sheet-section sheet-social">
|
||
<div class="sheet-space-between">
|
||
<h2 data-i18n="social_conflict">Social Conflict</h2>
|
||
<div><input type='checkbox' name='attr_social_conflict_configs' value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
|
||
<input type="hidden" class="sheet-details-toggle" name="attr_social_conflict_configs" value="0">
|
||
<div class="sheet-table sheet-bmargin">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"><button type="roll" class="sheet-link" title="%{resolution_pool}" name="roll_resolution_pool" value="@{roll_display}&{template:resolution_pool} {{name=^{resolution_pool}}} {{character=@{character_name}}} {{roll=[[1d12]]}} {{confidence=@{confidence}}} {{composure=@{composure}}} {{composure_max=@{composure|max}}} {{integrity=@{integrity}}} {{integrity_max=@{integrity|max}}} {{resolve=@{resolve}}} {{resolve_max=@{resolve|max}}}">d12</button></div>
|
||
<div class="sheet-th sheet-full-width" data-i18n="resolution_pool">Resolution Pool</div>
|
||
<div class="sheet-th sheet-details-toggle" data-i18n="other">Other</div>
|
||
<div class="sheet-th" data-i18n-title="current" data-i18n="current-a">Curr</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">1-4</div>
|
||
<div class="sheet-td sheet-full-width" data-i18n="composure">Composure</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{composure_other}" name="attr_composure_other" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{composure}" name="attr_composure" value="4">/<input type="number" class="sheet-rval" title="@{composure|max}" name="attr_composure_max" value="4" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">5-8</div>
|
||
<div class="sheet-td sheet-full-width" data-i18n="integrity">Integrity</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{integrity_other}" name="attr_integrity_other" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{integrity}" name="attr_integrity" value="4">/<input type="number" class="sheet-rval" title="@{integrity|max}" name="attr_integrity_max" value="4" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">9-12</div>
|
||
<div class="sheet-td sheet-full-width" data-i18n="resolve">Resolve</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{resolve_other}" name="attr_resolve_other" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{resolve}" name="attr_resolve" value="5">/<input type="number" class="sheet-rval" title="@{resolve|max}" name="attr_resolve_max" value="5" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th" data-i18n="offense">Offense</div>
|
||
<div class="sheet-th">%</div>
|
||
<div class="sheet-th"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width" title="@{social_offense_name}" name="attr_social_offense_name" value="Influence" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{social_offense_total}" name="attr_social_offense_total" value="22" readonly></div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d10" title="%{social_offense}" name="roll_social_offense" value="@{roll_display}&{template:skill} {{socialoffense=1}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=@{social_offense_name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{social_offense_total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{social_offense_total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{social_offense_total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{social_offense_total}*2)+@{penalty})]]}} {{easy=[[ceil((@{social_offense_total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{social_offense_total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{social_offense_total}*1.5)+@{penalty})]]}} {{standard=[[@{social_offense_total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{social_offense_total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{social_offense_total}+@{penalty})]]}} {{hard=[[ceil((@{social_offense_total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{social_offense_total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{social_offense_total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{social_offense_total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{social_offense_total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{social_offense_total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{social_offense_total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{social_offense_total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{social_offense_total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{social_offense_notes}}}">t</button></div>
|
||
<input type="hidden" name="attr_social_offense_notes" value="">
|
||
<input type="hidden" name="attr_social_offense_id" value="influence">
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th" data-i18n="defense">Defense</div>
|
||
<div class="sheet-th">%</div>
|
||
<div class="sheet-th"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width" title="@{social_defense_name}" name="attr_social_defense_name" value="Deceit" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{social_defense_total}" name="attr_social_defense_total" value="24" readonly></div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d10" title="%{social_defense}" name="roll_social_defense" value="@{roll_display}&{template:skill} {{socialdefense=1}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=@{social_defense_name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{social_defense_total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{social_defense_total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{social_defense_total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{social_defense_total}*2)+@{penalty})]]}} {{easy=[[ceil((@{social_defense_total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{social_defense_total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{social_defense_total}*1.5)+@{penalty})]]}} {{standard=[[@{social_defense_total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{social_defense_total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{social_defense_total}+@{penalty})]]}} {{hard=[[ceil((@{social_defense_total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{social_defense_total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{social_defense_total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{social_defense_total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{social_defense_total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{social_defense_total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{social_defense_total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{social_defense_total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{social_defense_total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{social_defense_notes}}}">t</button></div>
|
||
<input type="hidden" name="attr_social_defense_notes" value="">
|
||
<input type="hidden" name="attr_social_defense_id" value="deceit">
|
||
</div>
|
||
</div>
|
||
|
||
<div hidden>
|
||
<!-- Social SE Buttons -->
|
||
<!--
|
||
<button type="roll" name="roll_offensive_social_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{offensive_special_effects}}} {{socialconflict=1}} {{offense=[[1]]}}"></button>
|
||
<button type="roll" name="roll_defensive_social_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{defensive_special_effects}}} {{socialconflict=1}} {{offense=[[0]]}}"></button>
|
||
<button type="roll" name="roll_accidental_humiliation_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{accidental_humiliation}}}"></button>
|
||
<button type="roll" name="roll_choose_resolution_pool_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{choose_resolution_pool}}}"></button>
|
||
-->
|
||
<!-- Circumvent Defense in combat SEs -->
|
||
<!--
|
||
<button type="roll" name="roll_compel_capitulation_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{compel_capitulation}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_disarm_opponent_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{disarm_opponent}}}"></button>
|
||
<button type="roll" name="roll_emotional_impale_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{emotional_impale}}}"></button>
|
||
<button type="roll" name="roll_entangling_argument_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{entangling_argument}}}"></button>
|
||
<button type="roll" name="roll_expose_flaws_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{expose_flaws}}}"></button>
|
||
-->
|
||
<!-- Force Failure in combat SEs -->
|
||
<!--
|
||
<button type="roll" name="roll_ignore_confidence_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{ignore_confidence}}} {{^{conditions}=^{critical}}}"></button>
|
||
-->
|
||
<!-- Maximise Damage in combat SEs -->
|
||
<!--
|
||
<button type="roll" name="roll_obfuscate_opponent_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{obfuscate_opponent}}}"></button>
|
||
-->
|
||
<!-- Prepare COunter in combat SEs -->
|
||
<!--
|
||
<button type="roll" name="roll_shake_confidence_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{shake_confidence}}}"></button>
|
||
<button type="roll" name="roll_sow_doubt_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{sow_doubt}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_stun_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{stun}}}"></button>
|
||
-->
|
||
<!-- Trip Opponent in combat SEs-->
|
||
<!-- Withdraw in combat SEs-->
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Conditions -->
|
||
<div class="sheet-section sheet-flex-column sheet-grow">
|
||
<div class="sheet-space-between sheet-gap">
|
||
<h2><span data-i18n="conditions">Conditions</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Conditions">?</button></h2>
|
||
<div class="sheet-creature"><label class="sheet-checkbox sheet-help" data-i18n-title="pack_equipped"><input type='checkbox' name='attr_pack_equipped' value="1" checked><span>3</span><span data-i18n="pack"></span></label></div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-bmargin sheet-creature">
|
||
<div class="sheet-flex sheet-gap sheet-hl">
|
||
<div><a class="sheet-label-left" data-i18n-title="show_fatigue_popup" data-i18n="fatigue" href="#fatigue-details">Fatigue</a></div>
|
||
<div class="sheet-grow sheet-text-right">
|
||
<select class="sheet-auto-width sheet-text-right" title="@{fatigue}" name="attr_fatigue">
|
||
<option value="9" data-i18n="fresh" selected>Fresh</option>
|
||
<option value="8" data-i18n="winded">Winded</option>
|
||
<option value="7" data-i18n="tired">Tired</option>
|
||
<option value="6" data-i18n="wearied">Wearied</option>
|
||
<option value="5" data-i18n="exhausted">Exhausted</option>
|
||
<option value="4" data-i18n="debilitated">Debilitated</option>
|
||
<option value="3" data-i18n="incapacitated">Incapacitated</option>
|
||
<option value="2" data-i18n="semi-conscious">Semi-Conscious</option>
|
||
<option value="1" data-i18n="comatose">Comatose</option>
|
||
<option value="0" data-i18n="dead">Dead</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-flex sheet-gap sheet-hl">
|
||
<div><label class="sheet-left" data-i18n="load">Load</label></div>
|
||
<div class="sheet-grow">
|
||
<select class="sheet-full-width sheet-text-right sheet-no-border sheet-readonly" title="@{encumbrance_load}" name="attr_encumbrance_load">
|
||
<option value="0" data-i18n="normal" selected>Normal</option>
|
||
<option value="1" data-i18n="medium">Medium</option>
|
||
<option value="2" data-i18n="strenuous">Strenuous</option>
|
||
<option value="3" data-i18n="impossible">Impossible</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-flex sheet-gap sheet-hl">
|
||
<div><label class="sheet-left" data-i18n="armor_penalty">Armor Penalty</label></div>
|
||
<div class="sheet-grow sheet-text-right"><span name="attr_armor_penalty"></span></div>
|
||
</div>
|
||
|
||
<input type="hidden" class="sheet-toggle" name="attr_tenacity_enabled" value="0">
|
||
<div class="sheet-toggle">
|
||
<input type="hidden" class="sheet-toggle" name="attr_dependencies_enabled" value="0">
|
||
<div class="sheet-toggle">
|
||
<input type="hidden" class="sheet-toggle" name="attr_apply_dependencies_penalty" value="1">
|
||
<div class="sheet-flex sheet-gap sheet-hl sheet-toggle">
|
||
<div><label class="sheet-left" data-i18n="tenacity_penalty">Tenacity Penalty</label></div>
|
||
<div class="sheet-grow sheet-text-right"><span name="attr_tenacity_dependencies"></span></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-grow">
|
||
<textarea style="height: 100%" name="attr_conditions" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Skills & Passions -->
|
||
<div id="skills" class="sheet-section sheet-anchor-adjust-x2">
|
||
<input type="hidden" class="sheet-social-conflict-toggle" name="attr_social_conflict_enabled" value="0">
|
||
<input type="hidden" class="sheet-spirits-toggle" name="attr_spirits_enabled" value="1">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-grow"><h2><span data-i18n="skills">Skills</span> & <span data-i18n="passions">Passions</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Skills_.26_Passions">?</button></h2></div>
|
||
<!-- Spirit Combat -->
|
||
<div class="sheet-spirits">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="spirit_combat_skill">Spirit Combat Skill</label>
|
||
<button type="roll" title="%{spirit_combat_skill}" name="roll_spirit_combat_skill" value="@{roll_display}&{template:skill} {{spiritcombat=1}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=@{spirit_combat_skill_name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{spirit_combat_skill_total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{spirit_combat_skill_total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{spirit_combat_skill_total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{spirit_combat_skill_total}*2)+@{penalty})]]}} {{easy=[[ceil((@{spirit_combat_skill_total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{spirit_combat_skill_total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{spirit_combat_skill_total}*1.5)+@{penalty})]]}} {{standard=[[@{spirit_combat_skill_total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{spirit_combat_skill_total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{spirit_combat_skill_total}+@{penalty})]]}} {{hard=[[ceil((@{spirit_combat_skill_total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{spirit_combat_skill_total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{spirit_combat_skill_total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{spirit_combat_skill_total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{spirit_combat_skill_total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{spirit_combat_skill_total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{spirit_combat_skill_total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{spirit_combat_skill_total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{spirit_combat_skill_total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{spirit_combat_skill_notes}}}"><span class="sheet-bold" name="attr_spirit_combat_skill_name"></span> <span name="attr_spirit_combat_skill_total"></span>%</button>
|
||
<input type="hidden" name="attr_spirit_combat_skill_id" value="willpower" readonly>
|
||
<input type="hidden" name="attr_spirit_combat_skill_name" value="Willpower" readonly>
|
||
<input type="hidden" name="attr_spirit_combat_skill_total" value="22" readonly>
|
||
<input type="hidden" name="attr_spirit_combat_skill_notes" value="" readonly>
|
||
<div hidden>
|
||
<!-- Spirit SE Buttons -->
|
||
<!--
|
||
<button type="roll" name="roll_offensive_spirit_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{offensive_special_effects}}} {{spiritcombat=1}} {{offense=[[1]]}}"></button>
|
||
<button type="roll" name="roll_defensive_spirit_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{defensive_special_effects}}} {{spiritcombat=1}} {{offense=[[0]]}}"></button>
|
||
<button type="roll" name="roll_bleed_essence_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{bleed_essence}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_compel_bargain_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{compel_bargain}}}"></button>
|
||
<button type="roll" name="roll_drive_off_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{drive_off}}} {{^{conditions}=^{mortal}}}"></button>
|
||
<button type="roll" name="roll_leech_strength_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{leech_strength}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_obscure_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{obscure}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_possess_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{possess}}} {{^{conditions}=^{spirit}}}"></button>
|
||
<button type="roll" name="roll_psychic_stun_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{psychic_stun}}}"></button>
|
||
<button type="roll" name="roll_restrain_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{restrain}}} {{^{conditions}=^{mortal}}}"></button>
|
||
<button type="roll" name="roll_spirit_lance_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{spirit_lance}}}"></button>
|
||
<button type="roll" name="roll_sunder_binding_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{sunder_binding}}} {{^{conditions}=^{fumble}}}"></button>
|
||
<button type="roll" name="roll_supress_ability_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{supress_ability}}} {{^{conditions}=^{mortal}}}"></button>
|
||
<button type="roll" name="roll_turn_back_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{turn_back}}}"></button>
|
||
-->
|
||
<!-- Withdraw in combat SEs-->
|
||
</div>
|
||
</div>
|
||
<div class="sheet-detailed"><input type='checkbox' data-i18n-title="show_details" name='attr_skill_details' value="1" checked><span class="sheet-checkico">E</span></div>
|
||
</div>
|
||
|
||
<input type="hidden" class="sheet-details-toggle" name="attr_skill_details" value="1">
|
||
<div class="sheet-flex sheet-gap">
|
||
<!-- Column 1 -->
|
||
<div class="sheet-half-width">
|
||
<!-- Resistance Skills -->
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-minor"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="skill_possessed">S</div></div>
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="resistance_skill">Resistence Skill</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="fumbled">!</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="trained">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th sheet-details-toggle"><div class="sheet-number-width" data-i18n="other">Other</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="resistance_skills">Resistence Skills</div></div>
|
||
</div>
|
||
<div class="sheet-compactable" data-i18n-list="resistence_skill-order">
|
||
<!-- Brawn -->
|
||
<div data-i18n-list-item="brawn">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_brawn_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{brawn_possessed}" name="attr_brawn_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="brawn">Brawn</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{brawn_id}" name="roll_brawn_id" value="/w gm &{template:default} {{name=@{brawn_name}}} {{^{id}=brawn}}">i</button>
|
||
<input type="hidden" name="attr_brawn_name" value="^{brawn}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_brawn-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{brawn}" name="roll_brawn" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{brawn}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{brawn}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{brawn}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{brawn}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{brawn}*2)+@{penalty})]]}} {{easy=[[ceil((@{brawn}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{brawn}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{brawn}*1.5)+@{penalty})]]}} {{standard=[[@{brawn}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{brawn}+@{penalty})/10)]]}} {{standard_fumble=[[(@{brawn}+@{penalty})]]}} {{hard=[[ceil((@{brawn}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{brawn}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{brawn}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{brawn}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{brawn}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{brawn}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{brawn}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{brawn}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{brawn}*@{herculean_mod})+@{penalty})]]}} {{notes=@{brawn_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{brawn_fumbled}" name="attr_brawn_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{brawn_trained}" name="attr_brawn_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="str-u">STR</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="siz-u">SIZ</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{brawn_other}" name="attr_brawn_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{brawn}" name="attr_brawn" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{brawn_details}" name="attr_brawn_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_brawn_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_brawn_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{brawn_improve}" name="roll_brawn_improve" value="@{roll_display}&{template:improvement} {{name=^{brawn}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{brawn}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_brawn-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_brawn-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_brawn-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{brawn_notes}" name="attr_brawn_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{brawn}" name="roll_brawn" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{brawn}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{brawn}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{brawn}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{brawn}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{brawn}*2)+@{penalty})]]}} {{easy=[[ceil((@{brawn}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{brawn}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{brawn}*1.5)+@{penalty})]]}} {{standard=[[@{brawn}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{brawn}+@{penalty})/10)]]}} {{standard_fumble=[[(@{brawn}+@{penalty})]]}} {{hard=[[ceil((@{brawn}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{brawn}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{brawn}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{brawn}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{brawn}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{brawn}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{brawn}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{brawn}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{brawn}*@{herculean_mod})+@{penalty})]]}} {{notes=@{brawn_notes}}}"><span class="sheet-bold" data-i18n="brawn"></span> <span name="attr_brawn"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Endurance -->
|
||
<div data-i18n-list-item="endurance">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_endurance_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{endurance_possessed}" name="attr_endurance_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="endurance">Endurance</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{endurance_id}" name="roll_endurance_id" value="/w gm &{template:default} {{name=@{endurance_name}}} {{^{id}=endurance}}">i</button>
|
||
<input type="hidden" name="attr_endurance_name" value="^{endurance}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_endurance-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{endurance}" name="roll_endurance" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{endurance}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{endurance}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{endurance}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{endurance}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{endurance}*2)+@{penalty})]]}} {{easy=[[ceil((@{endurance}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{endurance}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{endurance}*1.5)+@{penalty})]]}} {{standard=[[@{endurance}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{endurance}+@{penalty})/10)]]}} {{standard_fumble=[[(@{endurance}+@{penalty})]]}} {{hard=[[ceil((@{endurance}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{endurance}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{endurance}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{endurance}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{endurance}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{endurance}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{endurance}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{endurance}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{endurance}*@{herculean_mod})+@{penalty})]]}} {{notes=@{endurance_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{endurance_fumbled}" name="attr_endurance_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{endurance_trained}" name="attr_endurance_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="con-u">CON</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="con-u">CON</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{endurance_other}" name="attr_endurance_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{endurance}" name="attr_endurance" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{endurance_details}" name="attr_endurance_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_endurance_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_endurance_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{endurance_improve}" name="roll_endurance_improve" value="@{roll_display}&{template:improvement} {{name=^{endurance}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{endurance}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_endurance-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_endurance-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_endurance-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{endurance_notes}" name="attr_endurance_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{endurance}" name="roll_endurance" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{endurance}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{endurance}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{endurance}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{endurance}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{endurance}*2)+@{penalty})]]}} {{easy=[[ceil((@{endurance}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{endurance}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{endurance}*1.5)+@{penalty})]]}} {{standard=[[@{endurance}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{endurance}+@{penalty})/10)]]}} {{standard_fumble=[[(@{endurance}+@{penalty})]]}} {{hard=[[ceil((@{endurance}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{endurance}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{endurance}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{endurance}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{endurance}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{endurance}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{endurance}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{endurance}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{endurance}*@{herculean_mod})+@{penalty})]]}} {{notes=@{endurance_notes}}}"><span class="sheet-bold" data-i18n="endurance"></span> <span name="attr_endurance"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Evade -->
|
||
<div data-i18n-list-item="evade">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_evade_possessed" value="1">
|
||
<div class="sheet-detailed sheet-opaque">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{evade_possessed}" name="attr_evade_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="evade">Evade</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{evade_id}" name="roll_evade_id" value="/w gm &{template:default} {{name=@{evade_name}}} {{^{id}=evade}}">i</button>
|
||
<input type="hidden" name="attr_evade_name" value="^{evade}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_evade-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{evade}" name="roll_evade" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{evade}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{evade}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{evade}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{evade}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{evade}*2)+@{penalty})]]}} {{easy=[[ceil((@{evade}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{evade}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{evade}*1.5)+@{penalty})]]}} {{standard=[[@{evade}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{evade}+@{penalty})/10)]]}} {{standard_fumble=[[(@{evade}+@{penalty})]]}} {{hard=[[ceil((@{evade}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{evade}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{evade}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{evade}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{evade}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{evade}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{evade}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{evade}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{evade}*@{herculean_mod})+@{penalty})]]}} {{notes=@{evade_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{evade_fumbled}" name="attr_evade_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{evade_trained}" name="attr_evade_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{evade_other}" name="attr_evade_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{evade}" name="attr_evade" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{evade_details}" name="attr_evade_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_evade_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_evade_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{evade_improve}" name="roll_evade_improve" value="@{roll_display}&{template:improvement} {{name=^{evade}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{evade}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_evade-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_evade-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_evade-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{evade_notes}" name="attr_evade_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{evade}" name="roll_evade" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{evade}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{evade}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{evade}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{evade}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{evade}*2)+@{penalty})]]}} {{easy=[[ceil((@{evade}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{evade}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{evade}*1.5)+@{penalty})]]}} {{standard=[[@{evade}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{evade}+@{penalty})/10)]]}} {{standard_fumble=[[(@{evade}+@{penalty})]]}} {{hard=[[ceil((@{evade}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{evade}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{evade}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{evade}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{evade}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{evade}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{evade}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{evade}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{evade}*@{herculean_mod})+@{penalty})]]}} {{notes=@{evade_notes}}}"><span class="sheet-bold" data-i18n="evade"></span> <span name="attr_evade"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Willpower -->
|
||
<div data-i18n-list-item="willpower">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_willpower_possessed" value="1">
|
||
<div class="sheet-detailed sheet-opaque">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{willpower_possessed}" name="attr_willpower_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="willpower">Willpower</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{willpower_id}" name="roll_willpower_id" value="/w gm &{template:default} {{name=@{willpower_name}}} {{^{id}=willpower}}">i</button>
|
||
<input type="hidden" name="attr_willpower_name" value="^{willpower}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_willpower-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{willpower}" name="roll_willpower" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{willpower}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{willpower}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{willpower}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{willpower}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{willpower}*2)+@{penalty})]]}} {{easy=[[ceil((@{willpower}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{willpower}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{willpower}*1.5)+@{penalty})]]}} {{standard=[[@{willpower}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{willpower}+@{penalty})/10)]]}} {{standard_fumble=[[(@{willpower}+@{penalty})]]}} {{hard=[[ceil((@{willpower}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{willpower}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{willpower}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{willpower}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{willpower}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{willpower}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{willpower}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{willpower}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{willpower}*@{herculean_mod})+@{penalty})]]}} {{notes=@{willpower_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{willpower_fumbled}" name="attr_willpower_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{willpower_trained}" name="attr_willpower_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{willpower_other}" name="attr_willpower_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{willpower}" name="attr_willpower" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{willpower_details}" name="attr_willpower_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_willpower_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_willpower_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{willpower_improve}" name="roll_willpower_improve" value="@{roll_display}&{template:improvement} {{name=^{willpower}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{willpower}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_willpower-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_willpower-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_willpower-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{willpower_notes}" name="attr_willpower_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{willpower}" name="roll_willpower" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{willpower}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{willpower}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{willpower}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{willpower}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{willpower}*2)+@{penalty})]]}} {{easy=[[ceil((@{willpower}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{willpower}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{willpower}*1.5)+@{penalty})]]}} {{standard=[[@{willpower}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{willpower}+@{penalty})/10)]]}} {{standard_fumble=[[(@{willpower}+@{penalty})]]}} {{hard=[[ceil((@{willpower}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{willpower}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{willpower}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{willpower}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{willpower}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{willpower}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{willpower}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{willpower}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{willpower}*@{herculean_mod})+@{penalty})]]}} {{notes=@{willpower_notes}}}"><span class="sheet-bold" data-i18n="willpower"></span> <span name="attr_willpower"></span>%</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Standard SKills -->
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-minor"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="skill_possessed">S</div></div>
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="standard_skill">Standard Skill</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="fumbled">!</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="trained">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th sheet-details-toggle"><div class="sheet-number-width" data-i18n="other">Other</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="standard_skills">Standard Skills</div></div>
|
||
</div>
|
||
<div data-i18n-list="standard_skills-order" class="sheet-compactable">
|
||
<!-- Athletics -->
|
||
<div data-i18n-list-item="athletics">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_athletics_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{athletics_possessed}" name="attr_athletics_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="athletics">Athletics</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{athletics_id}" name="roll_athletics_id" value="/w gm &{template:default} {{name=@{athletics_name}}} {{^{id}=athletics}}">i</button>
|
||
<input type="hidden" name="attr_athletics_name" value="^{athletics}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_athletics-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{athletics}" name="roll_athletics" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{athletics}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{athletics}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{athletics}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{athletics}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{athletics}*2)+@{penalty})]]}} {{easy=[[ceil((@{athletics}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{athletics}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{athletics}*1.5)+@{penalty})]]}} {{standard=[[@{athletics}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{athletics}+@{penalty})/10)]]}} {{standard_fumble=[[(@{athletics}+@{penalty})]]}} {{hard=[[ceil((@{athletics}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{athletics}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{athletics}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{athletics}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{athletics}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{athletics}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{athletics}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{athletics}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{athletics}*@{herculean_mod})+@{penalty})]]}} {{notes=@{athletics_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{athletics_fumbled}" name="attr_athletics_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{athletics_trained}" name="attr_athletics_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="str-u">STR</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{athletics_other}" name="attr_athletics_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{athletics}" name="attr_athletics" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{athletics_details}" name="attr_athletics_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_athletics_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_athletics_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{athletics_improve}" name="roll_athletics_improve" value="@{roll_display}&{template:improvement} {{name=^{athletics}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{athletics}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_athletics-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_athletics-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_athletics-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{athletics_notes}" name="attr_athletics_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{athletics}" name="roll_athletics" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{athletics}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{athletics}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{athletics}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{athletics}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{athletics}*2)+@{penalty})]]}} {{easy=[[ceil((@{athletics}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{athletics}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{athletics}*1.5)+@{penalty})]]}} {{standard=[[@{athletics}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{athletics}+@{penalty})/10)]]}} {{standard_fumble=[[(@{athletics}+@{penalty})]]}} {{hard=[[ceil((@{athletics}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{athletics}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{athletics}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{athletics}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{athletics}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{athletics}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{athletics}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{athletics}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{athletics}*@{herculean_mod})+@{penalty})]]}} {{notes=@{athletics_notes}}}"><span class="sheet-bold" data-i18n="athletics"></span> <span name="attr_athletics"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Boating -->
|
||
<div data-i18n-list-item="boating" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_boating_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{boating_possessed}" name="attr_boating_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="boating">Boating</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{boating_id}" name="roll_boating_id" value="/w gm &{template:default} {{name=@{boating_name}}} {{^{id}=boating}}">i</button>
|
||
<input type="hidden" name="attr_boating_name" value="^{boating}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_boating-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{boating}" name="roll_boating" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{boating}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{boating}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{boating}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{boating}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{boating}*2)+@{penalty})]]}} {{easy=[[ceil((@{boating}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{boating}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{boating}*1.5)+@{penalty})]]}} {{standard=[[@{boating}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{boating}+@{penalty})/10)]]}} {{standard_fumble=[[(@{boating}+@{penalty})]]}} {{hard=[[ceil((@{boating}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{boating}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{boating}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{boating}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{boating}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{boating}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{boating}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{boating}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{boating}*@{herculean_mod})+@{penalty})]]}} {{notes=@{boating_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{boating_fumbled}" name="attr_boating_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{boating_trained}" name="attr_boating_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="str-u">STR</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="con-u">CON</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{boating_other}" name="attr_boating_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{boating}" name="attr_boating" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{boating_details}" name="attr_boating_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_boating_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_boating_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{boating_improve}" name="roll_boating_improve" value="@{roll_display}&{template:improvement} {{name=^{boating}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{boating}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_boating-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_boating-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_boating-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{boating_notes}" name="attr_boating_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{boating}" name="roll_boating" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{boating}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{boating}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{boating}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{boating}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{boating}*2)+@{penalty})]]}} {{easy=[[ceil((@{boating}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{boating}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{boating}*1.5)+@{penalty})]]}} {{standard=[[@{boating}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{boating}+@{penalty})/10)]]}} {{standard_fumble=[[(@{boating}+@{penalty})]]}} {{hard=[[ceil((@{boating}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{boating}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{boating}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{boating}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{boating}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{boating}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{boating}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{boating}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{boating}*@{herculean_mod})+@{penalty})]]}} {{notes=@{boating_notes}}}"><span class="sheet-bold" data-i18n="boating"></span> <span name="attr_boating"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Commerce -->
|
||
<div data-i18n-list-item="commerce" class="sheet-setting-option sheet-mba">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_commerce_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{commerce_possessed}" name="attr_commerce_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="commerce">Commerce</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{commerce_id}" name="roll_commerce_id" value="/w gm &{template:default} {{name=@{commerce_name}}} {{^{id}=commerce}}">i</button>
|
||
<input type="hidden" name="attr_commerce_name" value="^{commerce}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_commerce-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{commerce}" name="roll_commerce" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{commerce}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{commerce}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{commerce}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{commerce}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{commerce}*2)+@{penalty})]]}} {{easy=[[ceil((@{commerce}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{commerce}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{commerce}*1.5)+@{penalty})]]}} {{standard=[[@{commerce}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{commerce}+@{penalty})/10)]]}} {{standard_fumble=[[(@{commerce}+@{penalty})]]}} {{hard=[[ceil((@{commerce}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{commerce}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{commerce}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{commerce}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{commerce}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{commerce}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{commerce}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{commerce}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{commerce}*@{herculean_mod})+@{penalty})]]}} {{notes=@{commerce_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{commerce_fumbled}" name="attr_commerce_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{commerce_trained}" name="attr_commerce_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{commerce_other}" name="attr_commerce_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{commerce}" name="attr_commerce" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{commerce_details}" name="attr_commerce_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_commerce_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_commerce_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{commerce_improve}" name="roll_commerce_improve" value="@{roll_display}&{template:improvement} {{name=^{commerce}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{commerce}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_commerce-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_commerce-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_commerce-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{commerce_notes}" name="attr_commerce_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{commerce}" name="roll_commerce" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{commerce}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{commerce}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{commerce}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{commerce}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{commerce}*2)+@{penalty})]]}} {{easy=[[ceil((@{commerce}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{commerce}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{commerce}*1.5)+@{penalty})]]}} {{standard=[[@{commerce}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{commerce}+@{penalty})/10)]]}} {{standard_fumble=[[(@{commerce}+@{penalty})]]}} {{hard=[[ceil((@{commerce}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{commerce}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{commerce}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{commerce}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{commerce}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{commerce}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{commerce}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{commerce}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{commerce}*@{herculean_mod})+@{penalty})]]}} {{notes=@{commerce_notes}}}"><span class="sheet-bold" data-i18n="commerce"></span> <span name="attr_commerce"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Common Tongue -->
|
||
<div data-i18n-list-item="common_tongue" class="sheet-setting-option sheet-lyonesse">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_common_tongue_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{common_tongue_possessed}" name="attr_common_tongue_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="common_tongue">Common Tongue</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{common_tongue_id}" name="roll_common_tongue_id" value="/w gm &{template:default} {{name=@{common_tongue_name}}} {{^{id}=common_tongue}}">i</button>
|
||
<input type="hidden" name="attr_common_tongue_name" value="^{common_tongue}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_common_tongue-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{common_tongue}" name="roll_common_tongue" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{common_tongue}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{common_tongue}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{common_tongue}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{common_tongue}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{common_tongue}*2)+@{penalty})]]}} {{easy=[[ceil((@{common_tongue}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{common_tongue}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{common_tongue}*1.5)+@{penalty})]]}} {{standard=[[@{common_tongue}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{common_tongue}+@{penalty})/10)]]}} {{standard_fumble=[[(@{common_tongue}+@{penalty})]]}} {{hard=[[ceil((@{common_tongue}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{common_tongue}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{common_tongue}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{common_tongue}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{common_tongue}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{common_tongue}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{common_tongue}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{common_tongue}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{common_tongue}*@{herculean_mod})+@{penalty})]]}} {{notes=@{common_tongue_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{common_tongue_fumbled}" name="attr_common_tongue_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{common_tongue_trained}" name="attr_common_tongue_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{common_tongue_other}" name="attr_common_tongue_other" value="74" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{common_tongue}" name="attr_common_tongue" value="100" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{common_tongue_details}" name="attr_common_tongue_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_common_tongue_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_common_tongue_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{common_tongue_improve}" name="roll_common_tongue_improve" value="@{roll_display}&{template:improvement} {{name=^{common_tongue}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{common_tongue}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_common_tongue-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_common_tongue-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_common_tongue-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{common_tongue_notes}" name="attr_common_tongue_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{common_tongue}" name="roll_common_tongue" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{common_tongue}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{common_tongue}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{common_tongue}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{common_tongue}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{common_tongue}*2)+@{penalty})]]}} {{easy=[[ceil((@{common_tongue}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{common_tongue}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{common_tongue}*1.5)+@{penalty})]]}} {{standard=[[@{common_tongue}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{common_tongue}+@{penalty})/10)]]}} {{standard_fumble=[[(@{common_tongue}+@{penalty})]]}} {{hard=[[ceil((@{common_tongue}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{common_tongue}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{common_tongue}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{common_tongue}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{common_tongue}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{common_tongue}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{common_tongue}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{common_tongue}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{common_tongue}*@{herculean_mod})+@{penalty})]]}} {{notes=@{common_tongue_notes}}}"><span class="sheet-bold" data-i18n="common_tongue"></span> <span name="attr_common_tongue"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Conceal -->
|
||
<div data-i18n-list-item="conceal">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_conceal_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{conceal_possessed}" name="attr_conceal_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="conceal">Conceal</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{conceal_id}" name="roll_conceal_id" value="/w gm &{template:default} {{name=@{conceal_name}}} {{^{id}=conceal}}">i</button>
|
||
<input type="hidden" name="attr_conceal_name" value="^{conceal}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_conceal-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{conceal}" name="roll_conceal" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{conceal}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{conceal}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{conceal}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{conceal}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{conceal}*2)+@{penalty})]]}} {{easy=[[ceil((@{conceal}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{conceal}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{conceal}*1.5)+@{penalty})]]}} {{standard=[[@{conceal}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{conceal}+@{penalty})/10)]]}} {{standard_fumble=[[(@{conceal}+@{penalty})]]}} {{hard=[[ceil((@{conceal}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{conceal}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{conceal}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{conceal}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{conceal}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{conceal}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{conceal}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{conceal}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{conceal}*@{herculean_mod})+@{penalty})]]}} {{notes=@{conceal_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{conceal_fumbled}" name="attr_conceal_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{conceal_trained}" name="attr_conceal_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{conceal_other}" name="attr_conceal_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{conceal}" name="attr_conceal" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{conceal_details}" name="attr_conceal_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_conceal_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_conceal_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{conceal_improve}" name="roll_conceal_improve" value="@{roll_display}&{template:improvement} {{name=^{conceal}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{conceal}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_conceal-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_conceal-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_conceal-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{conceal_notes}" name="attr_conceal_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{conceal}" name="roll_conceal" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{conceal}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{conceal}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{conceal}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{conceal}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{conceal}*2)+@{penalty})]]}} {{easy=[[ceil((@{conceal}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{conceal}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{conceal}*1.5)+@{penalty})]]}} {{standard=[[@{conceal}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{conceal}+@{penalty})/10)]]}} {{standard_fumble=[[(@{conceal}+@{penalty})]]}} {{hard=[[ceil((@{conceal}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{conceal}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{conceal}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{conceal}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{conceal}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{conceal}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{conceal}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{conceal}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{conceal}*@{herculean_mod})+@{penalty})]]}} {{notes=@{conceal_notes}}}"><span class="sheet-bold" data-i18n="conceal"></span> <span name="attr_conceal"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Customs -->
|
||
<div data-i18n-list-item="customs" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-lyonesse sheet-la sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_customs_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{customs_possessed}" name="attr_customs_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="customs">Customs</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{customs_id}" name="roll_customs_id" value="/w gm &{template:default} {{name=@{customs_name}}} {{^{id}=customs}}">i</button>
|
||
<input type="hidden" name="attr_customs_name" value="^{customs}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_customs-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{customs}" name="roll_customs" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{customs}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{{original=@{customs}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{customs}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{customs}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{customs}*2)+@{penalty})]]}} {{easy=[[ceil((@{customs}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{customs}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{customs}*1.5)+@{penalty})]]}} {{standard=[[@{customs}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{customs}+@{penalty})/10)]]}} {{standard_fumble=[[(@{customs}+@{penalty})]]}} {{hard=[[ceil((@{customs}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{customs}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{customs}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{customs}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{customs}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{customs}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{customs}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{customs}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{customs}*@{herculean_mod})+@{penalty})]]}} {{notes=@{customs_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{customs_fumbled}" name="attr_customs_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{customs_trained}" name="attr_customs_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{customs_other}" name="attr_customs_other" value="40" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{customs}" name="attr_customs" value="66" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{customs_details}" name="attr_customs_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_customs_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_customs_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{customs_improve}" name="roll_customs_improve" value="@{roll_display}&{template:improvement} {{name=^{customs}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{customs}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_customs-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_customs-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_customs-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{customs_notes}" name="attr_customs_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{customs}" name="roll_customs" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{customs}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{{original=@{customs}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{customs}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{customs}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{customs}*2)+@{penalty})]]}} {{easy=[[ceil((@{customs}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{customs}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{customs}*1.5)+@{penalty})]]}} {{standard=[[@{customs}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{customs}+@{penalty})/10)]]}} {{standard_fumble=[[(@{customs}+@{penalty})]]}} {{hard=[[ceil((@{customs}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{customs}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{customs}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{customs}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{customs}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{customs}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{customs}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{customs}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{customs}*@{herculean_mod})+@{penalty})]]}} {{notes=@{customs_notes}}}"><span class="sheet-bold" data-i18n="customs"></span> <span name="attr_customs"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Dance -->
|
||
<div data-i18n-list-item="dance" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_dance_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{dance_possessed}" name="attr_dance_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="dance">Dance</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{dance_id}" name="roll_dance_id" value="/w gm &{template:default} {{name=@{dance_name}}} {{^{id}=dance}}">i</button>
|
||
<input type="hidden" name="attr_dance_name" value="^{dance}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_dance-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{dance}" name="roll_dance" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{dance}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{dance}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{dance}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{dance}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{dance}*2)+@{penalty})]]}} {{easy=[[ceil((@{dance}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{dance}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{dance}*1.5)+@{penalty})]]}} {{standard=[[@{dance}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{dance}+@{penalty})/10)]]}} {{standard_fumble=[[(@{dance}+@{penalty})]]}} {{hard=[[ceil((@{dance}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{dance}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{dance}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{dance}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{dance}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{dance}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{dance}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{dance}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{dance}*@{herculean_mod})+@{penalty})]]}} {{notes=@{dance_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{dance_fumbled}" name="attr_dance_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{dance_trained}" name="attr_dance_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{dance_other}" name="attr_dance_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{dance}" name="attr_dance" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{dance_details}" name="attr_dance_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_dance_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_dance_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{dance_improve}" name="roll_dance_improve" value="@{roll_display}&{template:improvement} {{name=^{dance}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{dance}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_dance-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_dance-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_dance-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{dance_notes}" name="attr_dance_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{dance}" name="roll_dance" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{dance}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{dance}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{dance}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{dance}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{dance}*2)+@{penalty})]]}} {{easy=[[ceil((@{dance}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{dance}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{dance}*1.5)+@{penalty})]]}} {{standard=[[@{dance}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{dance}+@{penalty})/10)]]}} {{standard_fumble=[[(@{dance}+@{penalty})]]}} {{hard=[[ceil((@{dance}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{dance}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{dance}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{dance}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{dance}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{dance}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{dance}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{dance}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{dance}*@{herculean_mod})+@{penalty})]]}} {{notes=@{dance_notes}}}"><span class="sheet-bold" data-i18n="dance"></span> <span name="attr_dance"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Deceit -->
|
||
<div data-i18n-list-item="deceit">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_deceit_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{deceit_possessed}" name="attr_deceit_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="deceit">Deceit</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{deceit_id}" name="roll_deceit_id" value="/w gm &{template:default} {{name=@{deceit_name}}} {{^{id}=deceit}}">i</button>
|
||
<input type="hidden" name="attr_deceit_name" value="^{deceit}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_deceit-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{deceit}" name="roll_deceit" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{deceit}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{deceit}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{deceit}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{deceit}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{deceit}*2)+@{penalty})]]}} {{easy=[[ceil((@{deceit}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{deceit}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{deceit}*1.5)+@{penalty})]]}} {{standard=[[@{deceit}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{deceit}+@{penalty})/10)]]}} {{standard_fumble=[[(@{deceit}+@{penalty})]]}} {{hard=[[ceil((@{deceit}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{deceit}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{deceit}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{deceit}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{deceit}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{deceit}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{deceit}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{deceit}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{deceit}*@{herculean_mod})+@{penalty})]]}} {{notes=@{deceit_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{deceit_fumbled}" name="attr_deceit_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{deceit_trained}" name="attr_deceit_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{deceit_other}" name="attr_deceit_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{deceit}" name="attr_deceit" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{deceit_details}" name="attr_deceit_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_deceit_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_deceit_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{deceit_improve}" name="roll_deceit_improve" value="@{roll_display}&{template:improvement} {{name=^{deceit}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{deceit}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_deceit-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_deceit-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_deceit-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{deceit_notes}" name="attr_deceit_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{deceit}" name="roll_deceit" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{deceit}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{deceit}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{deceit}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{deceit}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{deceit}*2)+@{penalty})]]}} {{easy=[[ceil((@{deceit}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{deceit}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{deceit}*1.5)+@{penalty})]]}} {{standard=[[@{deceit}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{deceit}+@{penalty})/10)]]}} {{standard_fumble=[[(@{deceit}+@{penalty})]]}} {{hard=[[ceil((@{deceit}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{deceit}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{deceit}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{deceit}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{deceit}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{deceit}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{deceit}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{deceit}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{deceit}*@{herculean_mod})+@{penalty})]]}} {{notes=@{deceit_notes}}}"><span class="sheet-bold" data-i18n="deceit"></span> <span name="attr_deceit"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Drive -->
|
||
<div data-i18n-list-item="drive" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-destined sheet-fioracitta sheet-imperative sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_drive_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{drive_possessed}" name="attr_drive_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="drive">Drive</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{drive_id}" name="roll_drive_id" value="/w gm &{template:default} {{name=@{drive_name}}} {{^{id}=drive}}">i</button>
|
||
<input type="hidden" name="attr_drive_name" value="^{drive}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_drive-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{drive}" name="roll_drive" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{drive}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{drive}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{drive}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{drive}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{drive}*2)+@{penalty})]]}} {{easy=[[ceil((@{drive}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{drive}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{drive}*1.5)+@{penalty})]]}} {{standard=[[@{drive}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{drive}+@{penalty})/10)]]}} {{standard_fumble=[[(@{drive}+@{penalty})]]}} {{hard=[[ceil((@{drive}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{drive}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{drive}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{drive}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{drive}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{drive}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{drive}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{drive}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{drive}*@{herculean_mod})+@{penalty})]]}} {{notes=@{drive_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{drive_fumbled}" name="attr_drive_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{drive_trained}" name="attr_drive_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{drive_other}" name="attr_drive_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{drive}" name="attr_drive" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{drive_details}" name="attr_drive_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_drive_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_drive_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{drive_improve}" name="roll_drive_improve" value="@{roll_display}&{template:improvement} {{name=^{drive}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{drive}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_drive-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_drive-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_drive-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{drive_notes}" name="attr_drive_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{drive}" name="roll_drive" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{drive}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{drive}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{drive}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{drive}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{drive}*2)+@{penalty})]]}} {{easy=[[ceil((@{drive}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{drive}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{drive}*1.5)+@{penalty})]]}} {{standard=[[@{drive}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{drive}+@{penalty})/10)]]}} {{standard_fumble=[[(@{drive}+@{penalty})]]}} {{hard=[[ceil((@{drive}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{drive}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{drive}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{drive}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{drive}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{drive}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{drive}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{drive}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{drive}*@{herculean_mod})+@{penalty})]]}} {{notes=@{drive_notes}}}"><span class="sheet-bold" data-i18n="drive"></span> <span name="attr_drive"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Eloquence -->
|
||
<div data-i18n-list-item="eloquence" class="sheet-setting-option sheet-lyonesse">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_eloquence_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{eloquence_possessed}" name="attr_eloquence_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="eloquence">Eloquence</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{eloquence_id}" name="roll_eloquence_id" value="/w gm &{template:default} {{name=@{eloquence_name}}} {{^{id}=eloquence}}">i</button>
|
||
<input type="hidden" name="attr_eloquence_name" value="^{eloquence}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_eloquence-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{eloquence}" name="roll_eloquence" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{eloquence}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{eloquence}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{eloquence}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{eloquence}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{eloquence}*2)+@{penalty})]]}} {{easy=[[ceil((@{eloquence}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{eloquence}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{eloquence}*1.5)+@{penalty})]]}} {{standard=[[@{eloquence}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{eloquence}+@{penalty})/10)]]}} {{standard_fumble=[[(@{eloquence}+@{penalty})]]}} {{hard=[[ceil((@{eloquence}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{eloquence}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{eloquence}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{eloquence}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{eloquence}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{eloquence}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{eloquence}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{eloquence}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{eloquence}*@{herculean_mod})+@{penalty})]]}} {{notes=@{eloquence_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{eloquence_fumbled}" name="attr_eloquence_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{eloquence_trained}" name="attr_eloquence_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{eloquence_other}" name="attr_eloquence_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{eloquence}" name="attr_eloquence" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{eloquence_details}" name="attr_eloquence_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_eloquence_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_eloquence_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{eloquence_improve}" name="roll_eloquence_improve" value="@{roll_display}&{template:improvement} {{name=^{eloquence}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{eloquence}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_eloquence-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_eloquence-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_eloquence-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{eloquence_notes}" name="attr_eloquence_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{eloquence}" name="roll_eloquence" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{eloquence}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{eloquence}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{eloquence}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{eloquence}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{eloquence}*2)+@{penalty})]]}} {{easy=[[ceil((@{eloquence}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{eloquence}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{eloquence}*1.5)+@{penalty})]]}} {{standard=[[@{eloquence}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{eloquence}+@{penalty})/10)]]}} {{standard_fumble=[[(@{eloquence}+@{penalty})]]}} {{hard=[[ceil((@{eloquence}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{eloquence}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{eloquence}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{eloquence}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{eloquence}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{eloquence}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{eloquence}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{eloquence}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{eloquence}*@{herculean_mod})+@{penalty})]]}} {{notes=@{eloquence_notes}}}"><span class="sheet-bold" data-i18n="eloquence"></span> <span name="attr_eloquence"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- First Aid -->
|
||
<div data-i18n-list-item="first_aid">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_first_aid_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{first_aid_possessed}" name="attr_first_aid_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="first_aid">First Aid</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{first_aid_id}" name="roll_first_aid_id" value="/w gm &{template:default} {{name=@{first_aid_name}}} {{^{id}=first_aid}}">i</button>
|
||
<input type="hidden" name="attr_first_aid_name" value="^{first_aid}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_first_aid-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{first_aid}" name="roll_first_aid" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{first_aid}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{first_aid}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{first_aid}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{first_aid}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{first_aid}*2)+@{penalty})]]}} {{easy=[[ceil((@{first_aid}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{first_aid}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{first_aid}*1.5)+@{penalty})]]}} {{standard=[[@{first_aid}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{first_aid}+@{penalty})/10)]]}} {{standard_fumble=[[(@{first_aid}+@{penalty})]]}} {{hard=[[ceil((@{first_aid}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{first_aid}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{first_aid}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{first_aid}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{first_aid}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{first_aid}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{first_aid}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{first_aid}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{first_aid}*@{herculean_mod})+@{penalty})]]}} {{notes=@{first_aid_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{first_aid_fumbled}" name="attr_first_aid_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{first_aid_trained}" name="attr_first_aid_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{first_aid_other}" name="attr_first_aid_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{first_aid}" name="attr_first_aid" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{first_aid_details}" name="attr_first_aid_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_first_aid_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_first_aid_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{first_aid_improve}" name="roll_first_aid_improve" value="@{roll_display}&{template:improvement} {{name=^{first_aid}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{first_aid}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_first_aid-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_first_aid-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_first_aid-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{first_aid_notes}" name="attr_first_aid_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{first_aid}" name="roll_first_aid" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{first_aid}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{first_aid}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{first_aid}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{first_aid}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{first_aid}*2)+@{penalty})]]}} {{easy=[[ceil((@{first_aid}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{first_aid}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{first_aid}*1.5)+@{penalty})]]}} {{standard=[[@{first_aid}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{first_aid}+@{penalty})/10)]]}} {{standard_fumble=[[(@{first_aid}+@{penalty})]]}} {{hard=[[ceil((@{first_aid}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{first_aid}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{first_aid}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{first_aid}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{first_aid}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{first_aid}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{first_aid}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{first_aid}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{first_aid}*@{herculean_mod})+@{penalty})]]}} {{notes=@{first_aid_notes}}}"><span class="sheet-bold" data-i18n="first_aid"></span> <span name="attr_first_aid"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Folk Lore -->
|
||
<div data-i18n-list-item="folk_lore" class="sheet-setting-option sheet-lyonesse">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_folk_lore_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{folk_lore_possessed}" name="attr_folk_lore_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="folk_lore">Folk Lore</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{folk_lore_id}" name="roll_folk_lore_id" value="/w gm &{template:default} {{name=@{folk_lore_name}}} {{^{id}=folk_lore}}">i</button>
|
||
<input type="hidden" name="attr_folk_lore_name" value="^{folk_lore}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_folk_lore-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{folk_lore}" name="roll_folk_lore" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{folk_lore}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{folk_lore}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{folk_lore}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{folk_lore}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{folk_lore}*2)+@{penalty})]]}} {{easy=[[ceil((@{folk_lore}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{folk_lore}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{folk_lore}*1.5)+@{penalty})]]}} {{standard=[[@{folk_lore}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{folk_lore}+@{penalty})/10)]]}} {{standard_fumble=[[(@{folk_lore}+@{penalty})]]}} {{hard=[[ceil((@{folk_lore}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{folk_lore}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{folk_lore}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{folk_lore}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{folk_lore}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{folk_lore}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{folk_lore}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{folk_lore}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{folk_lore}*@{herculean_mod})+@{penalty})]]}} {{notes=@{folk_lore_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{folk_lore_fumbled}" name="attr_folk_lore_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{folk_lore_trained}" name="attr_folk_lore_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{folk_lore_other}" name="attr_folk_lore_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{folk_lore}" name="attr_folk_lore" value="26" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{folk_lore_details}" name="attr_folk_lore_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_folk_lore_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_folk_lore_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{folk_lore_improve}" name="roll_folk_lore_improve" value="@{roll_display}&{template:improvement} {{name=^{folk_lore}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{folk_lore}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_folk_lore-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_folk_lore-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_folk_lore-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{folk_lore_notes}" name="attr_folk_lore_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{folk_lore}" name="roll_folk_lore" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{folk_lore}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{folk_lore}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{folk_lore}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{folk_lore}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{folk_lore}*2)+@{penalty})]]}} {{easy=[[ceil((@{folk_lore}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{folk_lore}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{folk_lore}*1.5)+@{penalty})]]}} {{standard=[[@{folk_lore}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{folk_lore}+@{penalty})/10)]]}} {{standard_fumble=[[(@{folk_lore}+@{penalty})]]}} {{hard=[[ceil((@{folk_lore}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{folk_lore}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{folk_lore}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{folk_lore}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{folk_lore}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{folk_lore}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{folk_lore}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{folk_lore}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{folk_lore}*@{herculean_mod})+@{penalty})]]}} {{notes=@{folk_lore_notes}}}"><span class="sheet-bold" data-i18n="folk_lore"></span> <span name="attr_folk_lore"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Gaming -->
|
||
<div data-i18n-list-item="gaming" class="sheet-setting-option sheet-mba">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_gaming_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{gaming_possessed}" name="attr_gaming_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="gaming">Gaming</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{gaming_id}" name="roll_gaming_id" value="/w gm &{template:default} {{name=@{gaming_name}}} {{^{id}=gaming}}">i</button>
|
||
<input type="hidden" name="attr_gaming_name" value="^{gaming}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_gaming-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{gaming}" name="roll_gaming" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{gaming}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{gaming}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{gaming}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{gaming}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{gaming}*2)+@{penalty})]]}} {{easy=[[ceil((@{gaming}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{gaming}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{gaming}*1.5)+@{penalty})]]}} {{standard=[[@{gaming}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{gaming}+@{penalty})/10)]]}} {{standard_fumble=[[(@{gaming}+@{penalty})]]}} {{hard=[[ceil((@{gaming}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{gaming}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{gaming}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{gaming}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{gaming}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{gaming}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{gaming}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{gaming}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{gaming}*@{herculean_mod})+@{penalty})]]}} {{notes=@{gaming_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{gaming_fumbled}" name="attr_gaming_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{gaming_trained}" name="attr_gaming_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{gaming_other}" name="attr_gaming_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{gaming}" name="attr_gaming" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{gaming_details}" name="attr_gaming_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_gaming_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_gaming_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{gaming_improve}" name="roll_gaming_improve" value="@{roll_display}&{template:improvement} {{name=^{gaming}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{gaming}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_gaming-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_gaming-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_gaming-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{gaming_notes}" name="attr_gaming_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{gaming}" name="roll_gaming" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{gaming}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{gaming}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{gaming}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{gaming}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{gaming}*2)+@{penalty})]]}} {{easy=[[ceil((@{gaming}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{gaming}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{gaming}*1.5)+@{penalty})]]}} {{standard=[[@{gaming}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{gaming}+@{penalty})/10)]]}} {{standard_fumble=[[(@{gaming}+@{penalty})]]}} {{hard=[[ceil((@{gaming}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{gaming}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{gaming}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{gaming}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{gaming}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{gaming}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{gaming}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{gaming}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{gaming}*@{herculean_mod})+@{penalty})]]}} {{notes=@{gaming_notes}}}"><span class="sheet-bold" data-i18n="gaming"></span> <span name="attr_gaming"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Home Parallel -->
|
||
<div data-i18n-list-item="home_parallel" class="sheet-setting-option sheet-la">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_home_parallel_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{home_parallel_possessed}" name="attr_home_parallel_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="home_parallel">Home Parallel</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{home_parallel_id}" name="roll_home_parallel_id" value="/w gm &{template:default} {{name=@{home_parallel_name}}} {{^{id}=home_parallel}}">i</button>
|
||
<input type="hidden" name="attr_home_parallel_name" value="^{home_parallel}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_home_parallel-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{home_parallel}" name="roll_home_parallel" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{home_parallel}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{home_parallel}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{home_parallel}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{home_parallel}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{home_parallel}*2)+@{penalty})]]}} {{easy=[[ceil((@{home_parallel}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{home_parallel}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{home_parallel}*1.5)+@{penalty})]]}} {{standard=[[@{home_parallel}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{home_parallel}+@{penalty})/10)]]}} {{standard_fumble=[[(@{home_parallel}+@{penalty})]]}} {{hard=[[ceil((@{home_parallel}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{home_parallel}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{home_parallel}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{home_parallel}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{home_parallel}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{home_parallel}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{home_parallel}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{home_parallel}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{home_parallel}*@{herculean_mod})+@{penalty})]]}} {{notes=@{home_parallel_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{home_parallel_fumbled}" name="attr_home_parallel_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{home_parallel_trained}" name="attr_home_parallel_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{home_parallel_other}" name="attr_home_parallel_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{home_parallel}" name="attr_home_parallel" value="26" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{home_parallel_details}" name="attr_home_parallel_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_home_parallel_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_home_parallel_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{home_parallel_improve}" name="roll_home_parallel_improve" value="@{roll_display}&{template:improvement} {{name=^{home_parallel}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{home_parallel}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_home_parallel-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_home_parallel-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_home_parallel-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{home_parallel_notes}" name="attr_home_parallel_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{home_parallel}" name="roll_home_parallel" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{home_parallel}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{home_parallel}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{home_parallel}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{home_parallel}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{home_parallel}*2)+@{penalty})]]}} {{easy=[[ceil((@{home_parallel}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{home_parallel}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{home_parallel}*1.5)+@{penalty})]]}} {{standard=[[@{home_parallel}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{home_parallel}+@{penalty})/10)]]}} {{standard_fumble=[[(@{home_parallel}+@{penalty})]]}} {{hard=[[ceil((@{home_parallel}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{home_parallel}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{home_parallel}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{home_parallel}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{home_parallel}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{home_parallel}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{home_parallel}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{home_parallel}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{home_parallel}*@{herculean_mod})+@{penalty})]]}} {{notes=@{home_parallel_notes}}}"><span class="sheet-bold" data-i18n="home_parallel"></span> <span name="attr_home_parallel"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Influence -->
|
||
<div data-i18n-list-item="influence">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_influence_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{influence_possessed}" name="attr_influence_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="influence">Influence</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{influence_id}" name="roll_influence_id" value="/w gm &{template:default} {{name=@{influence_name}}} {{^{id}=influence}}">i</button>
|
||
<input type="hidden" name="attr_influence_name" value="^{influence}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_influence-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{influence}" name="roll_influence" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{influence}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{influence}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{influence}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{influence}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{influence}*2)+@{penalty})]]}} {{easy=[[ceil((@{influence}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{influence}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{influence}*1.5)+@{penalty})]]}} {{standard=[[@{influence}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{influence}+@{penalty})/10)]]}} {{standard_fumble=[[(@{influence}+@{penalty})]]}} {{hard=[[ceil((@{influence}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{influence}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{influence}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{influence}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{influence}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{influence}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{influence}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{influence}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{influence}*@{herculean_mod})+@{penalty})]]}} {{notes=@{influence_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{influence_fumbled}" name="attr_influence_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{influence_trained}" name="attr_influence_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{influence_other}" name="attr_influence_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{influence}" name="attr_influence" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{influence_details}" name="attr_influence_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_influence_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_influence_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{influence_improve}" name="roll_influence_improve" value="@{roll_display}&{template:improvement} {{name=^{influence}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{influence}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_influence-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_influence-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_influence-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{influence_notes}" name="attr_influence_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{influence}" name="roll_influence" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{influence}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{influence}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{influence}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{influence}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{influence}*2)+@{penalty})]]}} {{easy=[[ceil((@{influence}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{influence}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{influence}*1.5)+@{penalty})]]}} {{standard=[[@{influence}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{influence}+@{penalty})/10)]]}} {{standard_fumble=[[(@{influence}+@{penalty})]]}} {{hard=[[ceil((@{influence}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{influence}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{influence}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{influence}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{influence}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{influence}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{influence}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{influence}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{influence}*@{herculean_mod})+@{penalty})]]}} {{notes=@{influence_notes}}}"><span class="sheet-bold" data-i18n="influence"></span> <span name="attr_influence"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Insight -->
|
||
<div data-i18n-list-item="insight">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_insight_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{insight_possessed}" name="attr_insight_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="insight">Insight</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{insight_id}" name="roll_insight_id" value="/w gm &{template:default} {{name=@{insight_name}}} {{^{id}=insight}}">i</button>
|
||
<input type="hidden" name="attr_insight_name" value="^{insight}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_insight-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{insight}" name="roll_insight" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{insight}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{insight}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{insight}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{insight}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{insight}*2)+@{penalty})]]}} {{easy=[[ceil((@{insight}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{insight}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{insight}*1.5)+@{penalty})]]}} {{standard=[[@{insight}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{insight}+@{penalty})/10)]]}} {{standard_fumble=[[(@{insight}+@{penalty})]]}} {{hard=[[ceil((@{insight}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{insight}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{insight}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{insight}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{insight}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{insight}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{insight}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{insight}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{insight}*@{herculean_mod})+@{penalty})]]}} {{notes=@{insight_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{insight_fumbled}" name="attr_insight_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{insight_trained}" name="attr_insight_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{insight_other}" name="attr_insight_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{insight}" name="attr_insight" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{insight_details}" name="attr_insight_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_insight_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_insight_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{insight_improve}" name="roll_insight_improve" value="@{roll_display}&{template:improvement} {{name=^{insight}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{insight}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_insight-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_insight-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_insight-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{insight_notes}" name="attr_insight_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{insight}" name="roll_insight" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{insight}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{insight}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{insight}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{insight}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{insight}*2)+@{penalty})]]}} {{easy=[[ceil((@{insight}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{insight}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{insight}*1.5)+@{penalty})]]}} {{standard=[[@{insight}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{insight}+@{penalty})/10)]]}} {{standard_fumble=[[(@{insight}+@{penalty})]]}} {{hard=[[ceil((@{insight}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{insight}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{insight}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{insight}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{insight}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{insight}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{insight}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{insight}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{insight}*@{herculean_mod})+@{penalty})]]}} {{notes=@{insight_notes}}}"><span class="sheet-bold" data-i18n="insight"></span> <span name="attr_insight"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Locale -->
|
||
<div data-i18n-list-item="locale" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_locale_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{locale_possessed}" name="attr_locale_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="locale">Locale</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{locale_id}" name="roll_locale_id" value="/w gm &{template:default} {{name=@{locale_name}}} {{^{id}=locale}}">i</button>
|
||
<input type="hidden" name="attr_locale_name" value="^{locale}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_locale-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{locale}" name="roll_locale" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{locale}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{locale}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{locale}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{locale}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{locale}*2)+@{penalty})]]}} {{easy=[[ceil((@{locale}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{locale}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{locale}*1.5)+@{penalty})]]}} {{standard=[[@{locale}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{locale}+@{penalty})/10)]]}} {{standard_fumble=[[(@{locale}+@{penalty})]]}} {{hard=[[ceil((@{locale}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{locale}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{locale}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{locale}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{locale}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{locale}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{locale}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{locale}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{locale}*@{herculean_mod})+@{penalty})]]}} {{notes=@{locale_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{locale_fumbled}" name="attr_locale_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{locale_trained}" name="attr_locale_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{locale_other}" name="attr_locale_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{locale}" name="attr_locale" value="26" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{locale_details}" name="attr_locale_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_locale_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_locale_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{locale_improve}" name="roll_locale_improve" value="@{roll_display}&{template:improvement} {{name=^{locale}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{locale}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_locale-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_locale-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_locale-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{locale_notes}" name="attr_locale_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{locale}" name="roll_locale" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{locale}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{locale}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{locale}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{locale}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{locale}*2)+@{penalty})]]}} {{easy=[[ceil((@{locale}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{locale}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{locale}*1.5)+@{penalty})]]}} {{standard=[[@{locale}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{locale}+@{penalty})/10)]]}} {{standard_fumble=[[(@{locale}+@{penalty})]]}} {{hard=[[ceil((@{locale}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{locale}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{locale}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{locale}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{locale}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{locale}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{locale}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{locale}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{locale}*@{herculean_mod})+@{penalty})]]}} {{notes=@{locale_notes}}}"><span class="sheet-bold" data-i18n="locale"></span> <span name="attr_locale"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Native Tongue -->
|
||
<div data-i18n-list-item="native_tongue" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-destined sheet-fioracitta sheet-imperative sheet-la sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_native_tongue_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{native_tongue_possessed}" name="attr_native_tongue_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="native_tongue">Native Tongue</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{native_tongue_id}" name="roll_native_tongue_id" value="/w gm &{template:default} {{name=@{native_tongue_name}}} {{^{id}=native_tongue}}">i</button>
|
||
<input type="hidden" name="attr_native_tongue_name" value="^{native_tongue}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_native_tongue-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{native_tongue}" name="roll_native_tongue" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{native_tongue}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{native_tongue}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{native_tongue}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{native_tongue}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{native_tongue}*2)+@{penalty})]]}} {{easy=[[ceil((@{native_tongue}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{native_tongue}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{native_tongue}*1.5)+@{penalty})]]}} {{standard=[[@{native_tongue}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{native_tongue}+@{penalty})/10)]]}} {{standard_fumble=[[(@{native_tongue}+@{penalty})]]}} {{hard=[[ceil((@{native_tongue}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{native_tongue}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{native_tongue}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{native_tongue}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{native_tongue}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{native_tongue}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{native_tongue}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{native_tongue}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{native_tongue}*@{herculean_mod})+@{penalty})]]}} {{notes=@{native_tongue_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{native_tongue_fumbled}" name="attr_native_tongue_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{native_tongue_trained}" name="attr_native_tongue_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{native_tongue_other}" name="attr_native_tongue_other" value="40" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{native_tongue}" name="attr_native_tongue" value="64" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{native_tongue_details}" name="attr_native_tongue_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_native_tongue_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_native_tongue_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{native_tongue_improve}" name="roll_native_tongue_improve" value="@{roll_display}&{template:improvement} {{name=^{native_tongue}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{native_tongue}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_native_tongue-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_native_tongue-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_native_tongue-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{native_tongue_notes}" name="attr_native_tongue_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{native_tongue}" name="roll_native_tongue" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{native_tongue}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{native_tongue}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{native_tongue}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{native_tongue}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{native_tongue}*2)+@{penalty})]]}} {{easy=[[ceil((@{native_tongue}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{native_tongue}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{native_tongue}*1.5)+@{penalty})]]}} {{standard=[[@{native_tongue}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{native_tongue}+@{penalty})/10)]]}} {{standard_fumble=[[(@{native_tongue}+@{penalty})]]}} {{hard=[[ceil((@{native_tongue}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{native_tongue}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{native_tongue}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{native_tongue}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{native_tongue}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{native_tongue}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{native_tongue}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{native_tongue}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{native_tongue}*@{herculean_mod})+@{penalty})]]}} {{notes=@{native_tongue_notes}}}"><span class="sheet-bold" data-i18n="native_tongue"></span> <span name="attr_native_tongue"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Perception -->
|
||
<div data-i18n-list-item="perception">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_perception_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{perception_possessed}" name="attr_perception_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="perception">Perception</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{perception_id}" name="roll_perception_id" value="/w gm &{template:default} {{name=@{perception_name}}} {{^{id}=perception}}">i</button>
|
||
<input type="hidden" name="attr_perception_name" value="^{perception}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_perception-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{perception}" name="roll_perception" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{perception}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{perception}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{perception}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{perception}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{perception}*2)+@{penalty})]]}} {{easy=[[ceil((@{perception}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{perception}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{perception}*1.5)+@{penalty})]]}} {{standard=[[@{perception}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{perception}+@{penalty})/10)]]}} {{standard_fumble=[[(@{perception}+@{penalty})]]}} {{hard=[[ceil((@{perception}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{perception}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{perception}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{perception}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{perception}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{perception}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{perception}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{perception}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{perception}*@{herculean_mod})+@{penalty})]]}} {{notes=@{perception_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{perception_fumbled}" name="attr_perception_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{perception_trained}" name="attr_perception_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{perception_other}" name="attr_perception_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{perception}" name="attr_perception" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{perception_details}" name="attr_perception_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_perception_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_perception_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{perception_improve}" name="roll_perception_improve" value="@{roll_display}&{template:improvement} {{name=^{perception}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{perception}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_perception-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_perception-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_perception-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{perception_notes}" name="attr_perception_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{perception}" name="roll_perception" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{perception}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{perception}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{perception}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{perception}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{perception}*2)+@{penalty})]]}} {{easy=[[ceil((@{perception}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{perception}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{perception}*1.5)+@{penalty})]]}} {{standard=[[@{perception}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{perception}+@{penalty})/10)]]}} {{standard_fumble=[[(@{perception}+@{penalty})]]}} {{hard=[[ceil((@{perception}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{perception}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{perception}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{perception}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{perception}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{perception}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{perception}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{perception}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{perception}*@{herculean_mod})+@{penalty})]]}} {{notes=@{perception_notes}}}"><span class="sheet-bold" data-i18n="perception"></span> <span name="attr_perception"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Purity -->
|
||
<div data-i18n-list-item="purity" class="sheet-setting-option sheet-mba">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_purity_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{purity_possessed}" name="attr_purity_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="purity">Purity</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{purity_id}" name="roll_purity_id" value="/w gm &{template:default} {{name=@{purity_name}}} {{^{id}=purity}}">i</button>
|
||
<input type="hidden" name="attr_purity_name" value="^{purity}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_purity-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{purity}" name="roll_purity" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{purity}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{purity}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{purity}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{purity}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{purity}*2)+@{penalty})]]}} {{easy=[[ceil((@{purity}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{purity}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{purity}*1.5)+@{penalty})]]}} {{standard=[[@{purity}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{purity}+@{penalty})/10)]]}} {{standard_fumble=[[(@{purity}+@{penalty})]]}} {{hard=[[ceil((@{purity}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{purity}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{purity}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{purity}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{purity}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{purity}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{purity}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{purity}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{purity}*@{herculean_mod})+@{penalty})]]}} {{notes=@{purity_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{purity_fumbled}" name="attr_purity_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{purity_trained}" name="attr_purity_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{purity_other}" name="attr_purity_other" value="40" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{purity}" name="attr_purity" value="64" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{purity_details}" name="attr_purity_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_purity_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_purity_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{purity_improve}" name="roll_purity_improve" value="@{roll_display}&{template:improvement} {{name=^{purity}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{purity}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_purity-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_purity-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_purity-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{purity_notes}" name="attr_purity_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{purity}" name="roll_purity" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{purity}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{purity}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{purity}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{purity}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{purity}*2)+@{penalty})]]}} {{easy=[[ceil((@{purity}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{purity}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{purity}*1.5)+@{penalty})]]}} {{standard=[[@{purity}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{purity}+@{penalty})/10)]]}} {{standard_fumble=[[(@{purity}+@{penalty})]]}} {{hard=[[ceil((@{purity}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{purity}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{purity}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{purity}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{purity}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{purity}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{purity}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{purity}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{purity}*@{herculean_mod})+@{penalty})]]}} {{notes=@{purity_notes}}}"><span class="sheet-bold" data-i18n="purity"></span> <span name="attr_purity"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Ride -->
|
||
<div data-i18n-list-item="ride" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_ride_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{ride_possessed}" name="attr_ride_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="ride">Ride</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{ride_id}" name="roll_ride_id" value="/w gm &{template:default} {{name=@{ride_name}}} {{^{id}=ride}}">i</button>
|
||
<input type="hidden" name="attr_ride_name" value="^{ride}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_ride-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{ride}" name="roll_ride" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{ride}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{ride}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{ride}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{ride}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{ride}*2)+@{penalty})]]}} {{easy=[[ceil((@{ride}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{ride}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{ride}*1.5)+@{penalty})]]}} {{standard=[[@{ride}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{ride}+@{penalty})/10)]]}} {{standard_fumble=[[(@{ride}+@{penalty})]]}} {{hard=[[ceil((@{ride}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{ride}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{ride}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{ride}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{ride}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{ride}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{ride}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{ride}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{ride}*@{herculean_mod})+@{penalty})]]}} {{notes=@{ride_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{ride_fumbled}" name="attr_ride_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{ride_trained}" name="attr_ride_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{ride_other}" name="attr_ride_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{ride}" name="attr_ride" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{ride_details}" name="attr_ride_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_ride_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_ride_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{ride_improve}" name="roll_ride_improve" value="@{roll_display}&{template:improvement} {{name=^{ride}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{ride}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_ride-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_ride-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_ride-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{ride_notes}" name="attr_ride_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{ride}" name="roll_ride" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{ride}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{ride}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{ride}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{ride}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{ride}*2)+@{penalty})]]}} {{easy=[[ceil((@{ride}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{ride}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{ride}*1.5)+@{penalty})]]}} {{standard=[[@{ride}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{ride}+@{penalty})/10)]]}} {{standard_fumble=[[(@{ride}+@{penalty})]]}} {{hard=[[ceil((@{ride}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{ride}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{ride}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{ride}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{ride}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{ride}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{ride}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{ride}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{ride}*@{herculean_mod})+@{penalty})]]}} {{notes=@{ride_notes}}}"><span class="sheet-bold" data-i18n="ride"></span> <span name="attr_ride"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Research -->
|
||
<div data-i18n-list-item="research" class="sheet-setting-option sheet-destined">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_research_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{research_possessed}" name="attr_research_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="research">Research</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{research_id}" name="roll_research_id" value="/w gm &{template:default} {{name=@{research_name}}} {{^{id}=research}}">i</button>
|
||
<input type="hidden" name="attr_research_name" value="^{research}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_research-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{research}" name="roll_research" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{research}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{research}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{research}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{research}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{research}*2)+@{penalty})]]}} {{easy=[[ceil((@{research}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{research}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{research}*1.5)+@{penalty})]]}} {{standard=[[@{research}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{research}+@{penalty})/10)]]}} {{standard_fumble=[[(@{research}+@{penalty})]]}} {{hard=[[ceil((@{research}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{research}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{research}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{research}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{research}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{research}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{research}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{research}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{research}*@{herculean_mod})+@{penalty})]]}} {{notes=@{research_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{research_fumbled}" name="attr_research_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{research_trained}" name="attr_research_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{research_other}" name="attr_research_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{research}" name="attr_research" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{research_details}" name="attr_research_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_research_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_research_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{research_improve}" name="roll_research_improve" value="@{roll_display}&{template:improvement} {{name=^{research}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{research}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_research-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_research-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_research-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{research_notes}" name="attr_research_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{research}" name="roll_research" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{research}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{research}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{research}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{research}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{research}*2)+@{penalty})]]}} {{easy=[[ceil((@{research}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{research}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{research}*1.5)+@{penalty})]]}} {{standard=[[@{research}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{research}+@{penalty})/10)]]}} {{standard_fumble=[[(@{research}+@{penalty})]]}} {{hard=[[ceil((@{research}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{research}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{research}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{research}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{research}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{research}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{research}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{research}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{research}*@{herculean_mod})+@{penalty})]]}} {{notes=@{research_notes}}}"><span class="sheet-bold" data-i18n="research"></span> <span name="attr_research"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Sing -->
|
||
<div data-i18n-list-item="sing" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_sing_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{sing_possessed}" name="attr_sing_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="sing">Sing</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{sing_id}" name="roll_sing_id" value="/w gm &{template:default} {{name=@{sing_name}}} {{^{id}=sing}}">i</button>
|
||
<input type="hidden" name="attr_sing_name" value="^{sing}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_sing-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{sing}" name="roll_sing" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{sing}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{sing}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{sing}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{sing}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{sing}*2)+@{penalty})]]}} {{easy=[[ceil((@{sing}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{sing}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{sing}*1.5)+@{penalty})]]}} {{standard=[[@{sing}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{sing}+@{penalty})/10)]]}} {{standard_fumble=[[(@{sing}+@{penalty})]]}} {{hard=[[ceil((@{sing}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{sing}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{sing}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{sing}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{sing}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{sing}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{sing}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{sing}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{sing}*@{herculean_mod})+@{penalty})]]}} {{notes=@{sing_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{sing_fumbled}" name="attr_sing_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{sing_trained}" name="attr_sing_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{sing_other}" name="attr_sing_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{sing}" name="attr_sing" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{sing_details}" name="attr_sing_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_sing_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_sing_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{sing_improve}" name="roll_sing_improve" value="@{roll_display}&{template:improvement} {{name=^{sing}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{sing}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_sing-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_sing-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_sing-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{sing_notes}" name="attr_sing_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{sing}" name="roll_sing" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{sing}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{sing}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{sing}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{sing}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{sing}*2)+@{penalty})]]}} {{easy=[[ceil((@{sing}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{sing}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{sing}*1.5)+@{penalty})]]}} {{standard=[[@{sing}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{sing}+@{penalty})/10)]]}} {{standard_fumble=[[(@{sing}+@{penalty})]]}} {{hard=[[ceil((@{sing}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{sing}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{sing}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{sing}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{sing}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{sing}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{sing}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{sing}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{sing}*@{herculean_mod})+@{penalty})]]}} {{notes=@{sing_notes}}}"><span class="sheet-bold" data-i18n="sing"></span> <span name="attr_sing"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Spectral Combat -->
|
||
<div data-i18n-list-item="spectral_combat" class="sheet-spirit">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_spectral_combat_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{spectral_combat_possessed}" name="attr_spectral_combat_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="spectral_combat">Spectral Combat</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{spectral_combat_id}" name="roll_spectral_combat_id" value="/w gm &{template:default} {{name=@{spectral_combat_name}}} {{^{id}=spectral_combat}}">i</button>
|
||
<input type="hidden" name="attr_spectral_combat_name" value="^{spectral_combat}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_spectral_combat-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{spectral_combat}" name="roll_spectral_combat" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{spectral_combat}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{spectral_combat}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{spectral_combat}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{spectral_combat}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{spectral_combat}*2)+@{penalty})]]}} {{easy=[[ceil((@{spectral_combat}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{spectral_combat}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{spectral_combat}*1.5)+@{penalty})]]}} {{standard=[[@{spectral_combat}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{spectral_combat}+@{penalty})/10)]]}} {{standard_fumble=[[(@{spectral_combat}+@{penalty})]]}} {{hard=[[ceil((@{spectral_combat}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{spectral_combat}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{spectral_combat}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{spectral_combat}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{spectral_combat}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{spectral_combat}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{spectral_combat}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{spectral_combat}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{spectral_combat}*@{herculean_mod})+@{penalty})]]}} {{notes=@{spectral_combat_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{spectral_combat_fumbled}" name="attr_spectral_combat_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{spectral_combat_trained}" name="attr_spectral_combat_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{spectral_combat_other}" name="attr_spectral_combat_other" value="50" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{spectral_combat}" name="attr_spectral_combat" value="72" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{spectral_combat_details}" name="attr_spectral_combat_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_spectral_combat_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_spectral_combat_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{spectral_combat_improve}" name="roll_spectral_combat_improve" value="@{roll_display}&{template:improvement} {{name=^{spectral_combat}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{spectral_combat}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_spectral_combat-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_spectral_combat-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_spectral_combat-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{spectral_combat_notes}" name="attr_spectral_combat_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{spectral_combat}" name="roll_spectral_combat" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{spectral_combat}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{spectral_combat}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{spectral_combat}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{spectral_combat}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{spectral_combat}*2)+@{penalty})]]}} {{easy=[[ceil((@{spectral_combat}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{spectral_combat}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{spectral_combat}*1.5)+@{penalty})]]}} {{standard=[[@{spectral_combat}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{spectral_combat}+@{penalty})/10)]]}} {{standard_fumble=[[(@{spectral_combat}+@{penalty})]]}} {{hard=[[ceil((@{spectral_combat}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{spectral_combat}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{spectral_combat}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{spectral_combat}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{spectral_combat}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{spectral_combat}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{spectral_combat}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{spectral_combat}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{spectral_combat}*@{herculean_mod})+@{penalty})]]}} {{notes=@{spectral_combat_notes}}}"><span class="sheet-bold" data-i18n="spectral_combat"></span> <span name="attr_spectral_combat"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Status -->
|
||
<div data-i18n-list-item="status" class="sheet-setting-option sheet-mr">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_status_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{status_possessed}" name="attr_status_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="status">Status</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{status_id}" name="roll_status_id" value="/w gm &{template:default} {{name=@{status_name}}} {{^{id}=status}}">i</button>
|
||
<input type="hidden" name="attr_status_name" value="^{status}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_status-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{status}" name="roll_status" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{status}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{status}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{status}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{status}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{status}*2)+@{penalty})]]}} {{easy=[[ceil((@{status}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{status}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{status}*1.5)+@{penalty})]]}} {{standard=[[@{status}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{status}+@{penalty})/10)]]}} {{standard_fumble=[[(@{status}+@{penalty})]]}} {{hard=[[ceil((@{status}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{status}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{status}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{status}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{status}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{status}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{status}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{status}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{status}*@{herculean_mod})+@{penalty})]]}} {{notes=@{status_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{status_fumbled}" name="attr_status_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{status_trained}" name="attr_status_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width">-</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width">-</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{status_other}" name="attr_status_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{status}" name="attr_status" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{status_details}" name="attr_status_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_status_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_status_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{status_improve}" name="roll_status_improve" value="@{roll_display}&{template:improvement} {{name=^{status}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{status}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_status-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_status-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_status-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{status_notes}" name="attr_status_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{status}" name="roll_status" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{status}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{status}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{status}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{status}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{status}*2)+@{penalty})]]}} {{easy=[[ceil((@{status}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{status}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{status}*1.5)+@{penalty})]]}} {{standard=[[@{status}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{status}+@{penalty})/10)]]}} {{standard_fumble=[[(@{status}+@{penalty})]]}} {{hard=[[ceil((@{status}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{status}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{status}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{status}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{status}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{status}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{status}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{status}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{status}*@{herculean_mod})+@{penalty})]]}} {{notes=@{status_notes}}}"><span class="sheet-bold" data-i18n="status"></span> <span name="attr_status"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Stealth -->
|
||
<div data-i18n-list-item="stealth">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_stealth_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{stealth_possessed}" name="attr_stealth_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="stealth">Stealth</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{stealth_id}" name="roll_stealth_id" value="/w gm &{template:default} {{name=@{stealth_name}}} {{^{id}=stealth}}">i</button>
|
||
<input type="hidden" name="attr_stealth_name" value="^{stealth}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_stealth-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{stealth}" name="roll_stealth" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{stealth}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{stealth}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{stealth}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{stealth}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{stealth}*2)+@{penalty})]]}} {{easy=[[ceil((@{stealth}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{stealth}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{stealth}*1.5)+@{penalty})]]}} {{standard=[[@{stealth}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{stealth}+@{penalty})/10)]]}} {{standard_fumble=[[(@{stealth}+@{penalty})]]}} {{hard=[[ceil((@{stealth}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{stealth}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{stealth}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{stealth}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{stealth}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{stealth}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{stealth}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{stealth}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{stealth}*@{herculean_mod})+@{penalty})]]}} {{notes=@{stealth_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{stealth_fumbled}" name="attr_stealth_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{stealth_trained}" name="attr_stealth_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{stealth_other}" name="attr_stealth_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{stealth}" name="attr_stealth" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{stealth_details}" name="attr_stealth_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_stealth_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_stealth_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{stealth_improve}" name="roll_stealth_improve" value="@{roll_display}&{template:improvement} {{name=^{stealth}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{stealth}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_stealth-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_stealth-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_stealth-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{stealth_notes}" name="attr_stealth_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{stealth}" name="roll_stealth" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{stealth}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{stealth}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{stealth}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{stealth}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{stealth}*2)+@{penalty})]]}} {{easy=[[ceil((@{stealth}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{stealth}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{stealth}*1.5)+@{penalty})]]}} {{standard=[[@{stealth}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{stealth}+@{penalty})/10)]]}} {{standard_fumble=[[(@{stealth}+@{penalty})]]}} {{hard=[[ceil((@{stealth}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{stealth}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{stealth}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{stealth}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{stealth}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{stealth}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{stealth}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{stealth}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{stealth}*@{herculean_mod})+@{penalty})]]}} {{notes=@{stealth_notes}}}"><span class="sheet-bold" data-i18n="stealth"></span> <span name="attr_stealth"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Streetwise -->
|
||
<div data-i18n-list-item="streetwise" class="sheet-setting-option sheet-destined">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_streetwise_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{streetwise_possessed}" name="attr_streetwise_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="streetwise">Streetwise</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{streetwise_id}" name="roll_streetwise_id" value="/w gm &{template:default} {{name=@{streetwise_name}}} {{^{id}=streetwise}}">i</button>
|
||
<input type="hidden" name="attr_streetwise_name" value="^{streetwise}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_streetwise-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{streetwise}" name="roll_streetwise" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{streetwise}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{streetwise}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{streetwise}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{streetwise}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{streetwise}*2)+@{penalty})]]}} {{easy=[[ceil((@{streetwise}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{streetwise}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{streetwise}*1.5)+@{penalty})]]}} {{standard=[[@{streetwise}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{streetwise}+@{penalty})/10)]]}} {{standard_fumble=[[(@{streetwise}+@{penalty})]]}} {{hard=[[ceil((@{streetwise}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{streetwise}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{streetwise}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{streetwise}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{streetwise}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{streetwise}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{streetwise}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{streetwise}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{streetwise}*@{herculean_mod})+@{penalty})]]}} {{notes=@{streetwise_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{streetwise_fumbled}" name="attr_streetwise_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{streetwise_trained}" name="attr_streetwise_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="int-u">INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="cha-u">CHA</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{streetwise_other}" name="attr_streetwise_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{streetwise}" name="attr_streetwise" value="24" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{streetwise_details}" name="attr_streetwise_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_streetwise_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_streetwise_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{streetwise_improve}" name="roll_streetwise_improve" value="@{roll_display}&{template:improvement} {{name=^{streetwise}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{streetwise}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_streetwise-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_streetwise-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_streetwise-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{streetwise_notes}" name="attr_streetwise_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{streetwise}" name="roll_streetwise" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{streetwise}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{streetwise}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{streetwise}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{streetwise}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{streetwise}*2)+@{penalty})]]}} {{easy=[[ceil((@{streetwise}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{streetwise}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{streetwise}*1.5)+@{penalty})]]}} {{standard=[[@{streetwise}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{streetwise}+@{penalty})/10)]]}} {{standard_fumble=[[(@{streetwise}+@{penalty})]]}} {{hard=[[ceil((@{streetwise}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{streetwise}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{streetwise}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{streetwise}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{streetwise}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{streetwise}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{streetwise}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{streetwise}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{streetwise}*@{herculean_mod})+@{penalty})]]}} {{notes=@{streetwise_notes}}}"><span class="sheet-bold" data-i18n="streetwise"></span> <span name="attr_streetwise"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Superstition -->
|
||
<div data-i18n-list-item="superstition" class="sheet-setting-option sheet-mb">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_superstition_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{superstition_possessed}" name="attr_superstition_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="superstition">Superstition</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{superstition_id}" name="roll_superstition_id" value="/w gm &{template:default} {{name=@{superstition_name}}} {{^{id}=superstition}}">i</button>
|
||
<input type="hidden" name="attr_superstition_name" value="^{superstition}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_superstition-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{superstition}" name="roll_superstition" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{superstition}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{superstition}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{superstition}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{superstition}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{superstition}*2)+@{penalty})]]}} {{easy=[[ceil((@{superstition}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{superstition}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{superstition}*1.5)+@{penalty})]]}} {{standard=[[@{superstition}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{superstition}+@{penalty})/10)]]}} {{standard_fumble=[[(@{superstition}+@{penalty})]]}} {{hard=[[ceil((@{superstition}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{superstition}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{superstition}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{superstition}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{superstition}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{superstition}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{superstition}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{superstition}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{superstition}*@{herculean_mod})+@{penalty})]]}} {{notes=@{superstition_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{superstition_fumbled}" name="attr_superstition_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{superstition_trained}" name="attr_superstition_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="21-int-u">21-INT</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="pow-u">POW</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{superstition_other}" name="attr_superstition_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{superstition}" name="attr_superstition" value="19" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{superstition_details}" name="attr_superstition_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_superstition_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_superstition_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{superstition_improve}" name="roll_superstition_improve" value="@{roll_display}&{template:improvement} {{name=^{superstition}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{superstition}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_superstition-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_superstition-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_superstition-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{superstition_notes}" name="attr_superstition_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{superstition}" name="roll_superstition" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{superstition}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{superstition}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{superstition}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{superstition}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{superstition}*2)+@{penalty})]]}} {{easy=[[ceil((@{superstition}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{superstition}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{superstition}*1.5)+@{penalty})]]}} {{standard=[[@{superstition}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{superstition}+@{penalty})/10)]]}} {{standard_fumble=[[(@{superstition}+@{penalty})]]}} {{hard=[[ceil((@{superstition}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{superstition}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{superstition}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{superstition}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{superstition}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{superstition}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{superstition}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{superstition}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{superstition}*@{herculean_mod})+@{penalty})]]}} {{notes=@{superstition_notes}}}"><span class="sheet-bold" data-i18n="superstition"></span> <span name="attr_superstition"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Swim -->
|
||
<div data-i18n-list-item="swim" class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-la sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-ms sheet-os sheet-perceforest sheet-thennla sheet-wu">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_swim_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{swim_possessed}" name="attr_swim_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="swim">Swim</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{swim_id}" name="roll_swim_id" value="/w gm &{template:default} {{name=@{swim_name}}} {{^{id}=swim}}">i</button>
|
||
<input type="hidden" name="attr_swim_name" value="^{swim}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_swim-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{swim}" name="roll_swim" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{swim}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{swim}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{swim}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{swim}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{swim}*2)+@{penalty})]]}} {{easy=[[ceil((@{swim}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{swim}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{swim}*1.5)+@{penalty})]]}} {{standard=[[@{swim}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{swim}+@{penalty})/10)]]}} {{standard_fumble=[[(@{swim}+@{penalty})]]}} {{hard=[[ceil((@{swim}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{swim}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{swim}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{swim}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{swim}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{swim}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{swim}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{swim}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{swim}*@{herculean_mod})+@{penalty})]]}} {{notes=@{swim_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{swim_fumbled}" name="attr_swim_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{swim_trained}" name="attr_swim_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="str-u">STR</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="con-u">CON</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{swim_other}" name="attr_swim_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{swim}" name="attr_swim" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{swim_details}" name="attr_swim_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_swim_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_swim_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{swim_improve}" name="roll_swim_improve" value="@{roll_display}&{template:improvement} {{name=^{swim}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{swim}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_swim-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_swim-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_swim-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{swim_notes}" name="attr_swim_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{swim}" name="roll_swim" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{swim}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{swim}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{swim}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{swim}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{swim}*2)+@{penalty})]]}} {{easy=[[ceil((@{swim}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{swim}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{swim}*1.5)+@{penalty})]]}} {{standard=[[@{swim}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{swim}+@{penalty})/10)]]}} {{standard_fumble=[[(@{swim}+@{penalty})]]}} {{hard=[[ceil((@{swim}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{swim}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{swim}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{swim}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{swim}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{swim}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{swim}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{swim}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{swim}*@{herculean_mod})+@{penalty})]]}} {{notes=@{swim_notes}}}"><span class="sheet-bold" data-i18n="swim"></span> <span name="attr_swim"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<!-- Unarmed -->
|
||
<div data-i18n-list-item="unarmed">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_unarmed_possessed" value="1">
|
||
<div class="sheet-opaque sheet-detailed">
|
||
<div class="sheet-hl sheet-flex">
|
||
<div class="sheet-td sheet-minor"><input type="checkbox" title="@{unarmed_possessed}" name="attr_unarmed_possessed" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<label class="sheet-skill" data-i18n="unarmed">Unarmed</label>
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{unarmed_id}" name="roll_unarmed_id" value="/w gm &{template:default} {{name=@{unarmed_name}}} {{^{id}=unarmed}}">i</button>
|
||
<input type="hidden" name="attr_unarmed_name" value="^{unarmed}">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" name="act_unarmed-augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{unarmed}" name="roll_unarmed" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{unarmed}}} {{combatstyle=1}} {{character_id=@{character_id}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{unarmed}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{unarmed}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{unarmed}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{unarmed}*2)+@{penalty})]]}} {{easy=[[ceil((@{unarmed}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{unarmed}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{unarmed}*1.5)+@{penalty})]]}} {{standard=[[@{unarmed}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{unarmed}+@{penalty})/10)]]}} {{standard_fumble=[[(@{unarmed}+@{penalty})]]}} {{hard=[[ceil((@{unarmed}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{unarmed}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{unarmed}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{unarmed}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{unarmed}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{unarmed}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{unarmed}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{unarmed}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{unarmed}*@{herculean_mod})+@{penalty})]]}} {{notes=@{unarmed_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{unarmed_fumbled}" name="attr_unarmed_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{unarmed_trained}" name="attr_unarmed_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="str-u">STR</div></div>
|
||
<div class="sheet-td"><div class="sheet-number-width" data-i18n="dex-u">DEX</div></div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{unarmed_other}" name="attr_unarmed_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{unarmed}" name="attr_unarmed" value="22" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{unarmed_details}" name="attr_unarmed_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_unarmed_details" value="0">
|
||
<div class="sheet-anti-toggle">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_unarmed_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{unarmed_improve}" name="roll_unarmed_improve" value="@{roll_display}&{template:improvement} {{name=^{unarmed}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{unarmed}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_unarmed-set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_unarmed-set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_unarmed-set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{unarmed_notes}" name="attr_unarmed_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-compact sheet-opaque">
|
||
<button type="roll" title="%{unarmed}" name="roll_unarmed" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{unarmed}}} {{combatstyle=1}} {{character_id=@{character_id}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[1]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{unarmed}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{unarmed}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{unarmed}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{unarmed}*2)+@{penalty})]]}} {{easy=[[ceil((@{unarmed}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{unarmed}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{unarmed}*1.5)+@{penalty})]]}} {{standard=[[@{unarmed}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{unarmed}+@{penalty})/10)]]}} {{standard_fumble=[[(@{unarmed}+@{penalty})]]}} {{hard=[[ceil((@{unarmed}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{unarmed}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{unarmed}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{unarmed}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{unarmed}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{unarmed}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{unarmed}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{unarmed}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{unarmed}*@{herculean_mod})+@{penalty})]]}} {{notes=@{unarmed_notes}}}"><span class="sheet-bold" data-i18n="unarmed"></span> <span name="attr_unarmed"></span>%</button>
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_standardskill">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_skill}" name="roll_skill" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_fumbled}" name="attr_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_trained}" name="attr_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char1}" name="attr_char1">
|
||
<option value="0" selected>-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char2}" name="attr_char2">
|
||
<option value="0" selected>-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{$ID_other}" name="attr_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
<input type="hidden" name="attr_encumbered" value="0">
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_skill}" name="roll_skill" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Column 2 -->
|
||
<div class="sheet-half-width sheet-flex-column sheet-gap">
|
||
<!-- Combat Styles -->
|
||
<div>
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="combat_style">Combat Style</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="fumbled">!</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="trained">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th sheet-details-toggle"><div class="sheet-number-width" data-i18n="other">Other</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="combat_styles">Combat Styles</div></div>
|
||
</div>
|
||
<fieldset class="repeating_combatstyle">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_combatstyle}" name="roll_combatstyle" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{combatstyle=1}} {{weapon_buttons=@{weapon_buttons}}} {{character_id=@{character_id}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_fumbled}" name="attr_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_trained}" name="attr_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char1}" name="attr_char1">
|
||
<option value="0">-</option>
|
||
<option value="@{str}" data-i18n="str-u" selected>STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char2}" name="attr_char2">
|
||
<option value="0">-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u" selected>DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{$ID_other}" name="attr_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
<input type="hidden" name="attr_encumbered" value="1">
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_combatstyle}" name="roll_combatstyle" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{combatstyle=1}} {{weapon_buttons=@{weapon_buttons}}} {{character_id=@{character_id}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
<div hidden>
|
||
<input type="hidden" name="attr_combat_se_list" value="default">
|
||
<!-- Combat SE buttons-->
|
||
<!--
|
||
<button type="roll" name="roll_offensive_combat_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{offensive_special_effects}}} {{combat=1}} {{offense=[[1]]}} {{special_effects=@{special_effects}}} {{simplified_combat_enabled=[[@{simplified_combat_enabled}]]}} {{reach_enabled=[[@{reach_enabled}]]}}"></button>
|
||
<button type="roll" name="roll_defensive_combat_se_menu" value="/w gm &{template:se-menu} {{character=@{character_name}}} {{character_id=@{character_id}}} {{name=^{defensive_special_effects}}} {{combat=1}} {{offense=[[0]]}} {{special_effects=@{special_effects}}} {{simplified_combat_enabled=[[@{simplified_combat_enabled}]]}} {{reach_enabled=[[@{reach_enabled}]]}}"></button>
|
||
|
||
<button type="roll" name="roll_accidental_injury_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{accidental_injury}}} {{^{conditions}=^{fumble}}}"></button>
|
||
<button type="roll" name="roll_arise_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{arise}}}"></button>
|
||
<button type="roll" name="roll_bash_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{bash}}} {{^{conditions}=^{bludgeoning}}}"></button>
|
||
<button type="roll" name="roll_bleed_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{bleed}}} {{^{conditions}=^{cutting}}}"></button>
|
||
<button type="roll" name="roll_blind_opponent_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{blind_opponent}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_bypass_armor_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{bypass_armor}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_choose_location_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{choose_location}}}"></button>
|
||
<button type="roll" name="roll_circumvent_cover_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{circumvent_cover}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_circumvent_defense_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{circumvent_defense}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_circumvent_parry_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{circumvent_parry}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_close_range_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{close_range}}}"></button>
|
||
<button type="roll" name="roll_compel_retreat_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{compel_retreat}}}"></button>
|
||
<button type="roll" name="roll_compel_surrender_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{compel_surrender}}}"></button>
|
||
<button type="roll" name="roll_damage_item_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{damage_item}}}"></button>
|
||
<button type="roll" name="roll_damage_weapon_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{damage_weapon}}}"></button>
|
||
<button type="roll" name="roll_disarm_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{disarm}}}"></button>
|
||
<button type="roll" name="roll_distract_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{distract}}}"></button>
|
||
<button type="roll" name="roll_drop_foe_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{drop_foe}}} {{^{conditions}=^{siege_weapons}, ^{firearms}}}"></button>
|
||
<button type="roll" name="roll_duck_back_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{duck_back}}} {{^{conditions}=^{ranged}}}"></button>
|
||
<button type="roll" name="roll_enhance_defense_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{enhance_defense}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_enhance_parry_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{enhance_parry}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_entangle_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{entangle}}} {{^{conditions}=^{entangling}}}"></button>
|
||
<button type="roll" name="roll_flurry_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{flurry}}} {{^{conditions}=^{unarmed}}}"></button>
|
||
<button type="roll" name="roll_force_failure_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{force_failure}}} {{^{conditions}=^{fumble}}}"></button>
|
||
<button type="roll" name="roll_grip_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{grip}}} {{^{conditions}=^{unarmed}}}"></button>
|
||
<button type="roll" name="roll_impact_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{impact}}}"></button>
|
||
<button type="roll" name="roll_impale_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{impale}}} {{^{conditions}=^{impaling}}}"></button>
|
||
<button type="roll" name="roll_kill_silently_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{kill_silently}}} {{^{conditions}=^{small_weapons}, ^{surprise}}}"></button>
|
||
<button type="roll" name="roll_marksman_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{marksman}}} {{^{conditions}=^{ranged}}}"></button>
|
||
<button type="roll" name="roll_maximise_damage_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{maximise_damage}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_open_range_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{open_range}}}"></button>
|
||
<button type="roll" name="roll_overextend_opponent_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{overextend_opponent}}}"></button>
|
||
<button type="roll" name="roll_overpenetration_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{overpenetration}}} {{^{conditions}=^{ranged}, ^{critical}}}"></button>
|
||
<button type="roll" name="roll_pin_down_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{pin_down}}} {{^{conditions}=^{ranged}}}"></button>
|
||
<button type="roll" name="roll_pin_weapon_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{pin_weapon}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_prepare_counter_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{prepare_counter}}}"></button>
|
||
<button type="roll" name="roll_press_advantage_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{press_advantage}}}"></button>
|
||
<button type="roll" name="roll_rapid_reload_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{rapid_reload}}}"></button>
|
||
<button type="roll" name="roll_remise_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{remise}}} {{^{conditions}=^{small_weapons}}}"></button>
|
||
<button type="roll" name="roll_scar_foe_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{scar_foe}}}"></button>
|
||
<button type="roll" name="roll_select_target_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{select_target}}} {{^{conditions}=^{fumble}}}"></button>
|
||
silent_takedown
|
||
<button type="roll" name="roll_silent_takedown_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{silent_takedown}}} {{^{conditions}=^{surprise}}}"></button>
|
||
<button type="roll" name="roll_slip_free_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{slip_free}}} {{^{conditions}=^{critical}}}"></button>
|
||
<button type="roll" name="roll_spoil_spell_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{spoil_spell}}}"></button>
|
||
<button type="roll" name="roll_stand_fast_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{stand_fast}}}"></button>
|
||
<button type="roll" name="roll_stun_location_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{stun_location}}} {{^{conditions}=^{bludgeoning}}}"></button>
|
||
<button type="roll" name="roll_sunder_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{sunder}}} {{^{conditions}=^{axes}, ^{two_handed}}}"></button>
|
||
<button type="roll" name="roll_take_weapon_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{take_weapon}}} {{^{conditions}=^{unarmed}}}"></button>
|
||
<button type="roll" name="roll_trip_opponent_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{trip_opponent}}}"></button>
|
||
<button type="roll" name="roll_weapon_malfunction_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{weapon_malfunction}}} {{^{conditions}=^{ranged}, ^{fumble}}}"></button>
|
||
<button type="roll" name="roll_withdraw_se" value="@{roll_display}&{template:default} {{character=@{character_name}}} {{name=^{withdraw}}}"></button>
|
||
-->
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Professional Skills -->
|
||
<div>
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="professional_skill">Professional Skill</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="fumbled">!</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="trained">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th sheet-details-toggle"><div class="sheet-number-width" data-i18n="other">Other</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="professional_skills">Professional Skills</div></div>
|
||
</div>
|
||
<fieldset class="repeating_professionalskill">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_skill}" name="roll_skill" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_fumbled}" name="attr_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_trained}" name="attr_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char1}" name="attr_char1">
|
||
<option value="0" selected>-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char2}" name="attr_char2">
|
||
<option value="0" selected>-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-details-toggle"><input type="number" class="sheet-number-width sheet-dullval" title="@{$ID_other}" name="attr_other" value="0" readonly></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
<input type="hidden" name="attr_encumbered" value="0">
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_skill}" name="roll_skill" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Affiliations -->
|
||
<input type="hidden" class="sheet-toggle" name="attr_affiliations_enabled" value="0">
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="affiliation">Affiliation</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="affiliations">Affiliations</div></div>
|
||
</div>
|
||
<fieldset class="repeating_affiliation">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_affiliation}" name="roll_affiliation" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="40" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_affiliation}" name="roll_affiliation" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Passions -->
|
||
<div>
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="passion">Passions</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="passions">Passions</div></div>
|
||
</div>
|
||
<fieldset class="repeating_passion">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_passion}" name="roll_passion" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
<button type="roll" title="%{$ID_waxorwane}" name="roll_waxorwane" value="@{roll_display}&{template:default} {{improvestyle=1}} {{name=@{name}}} {{character=@{character_name}}} {{^{weak}=+/-[[1d10]]%}} {{^{moderate}=+/-[[1d10+5]]%}} {{^{strong}=+/-[[1d10+10]]%}}" data-i18n="wax_or_wane">Wax or Wane</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-offense" data-i18n="set_social_offense">Set Social Offense</button>
|
||
<button type="action" class="sheet-social-conflict" name="act_set-social-defense" data-i18n="set_social_defense">Set Social Defense</button>
|
||
<button type="action" class="sheet-spirits" name="act_set-spirit-combat" data-i18n="set_spirit_combat">Set Spirit Combat</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_passion}" name="roll_passion" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Dependencies -->
|
||
<input type="hidden" class="sheet-toggle" name="attr_dependencies_enabled" value="0">
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="dependency">Dependency</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="increased_for_xp">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="dependencies">Dependencies</div></div>
|
||
</div>
|
||
<fieldset class="repeating_dependency">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_passion}" name="roll_dependency" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_trained}" name="attr_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-flex sheet-flex-wrap sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
</div>
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_passion}" name="roll_dependency" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
<input type="hidden" name="attr_tenacity_dependencies" value="0">
|
||
</div>
|
||
|
||
<!-- Peculiarities -->
|
||
<div class="sheet-setting-option sheet-os">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="peculiarity">Peculiarity</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="peculiarities">Peculiarities</div></div>
|
||
</div>
|
||
<fieldset class="repeating_peculiarity">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><button type="action" class="sheet-pictos" data-i18n-title="set_augmentation" name="act_augment">&</button></div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_passion}" name="roll_peculiarity" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="0">
|
||
<div class="sheet-anti-toggle sheet-detailed">
|
||
<span class="sheet-details-toggle sheet-multi-line" name="attr_notes"></span>
|
||
</div>
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<textarea class="sheet-skill-notes" title="@{$ID_notes}" name="attr_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_passion}" name="roll_peculiarity" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[0]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{notes}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Abilities -->
|
||
<input type="hidden" class="sheet-abilities-control" name="attr_ability_system" value="core">
|
||
<div id="abilities" class="sheet-section sheet-anchor-adjust-x2">
|
||
<div class="sheet-space-between sheet-gap">
|
||
<h2><span data-i18n="abilities">Abilities</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Abilities">?</button></h2>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-gap" data-i18n-list="ability_attribute-order">
|
||
<div class="sheet-setting-option sheet-default sheet-atvw sheet-cf sheet-fioracitta sheet-imperative sheet-lyonesse sheet-mi sheet-mba sheet-mb sheet-mc sheet-mr sheet-os sheet-perceforest sheet-thennla" data-i18n-list-item="magic_points">
|
||
<div class="sheet-inline-flex">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="magic_points">Magic Points</label>
|
||
<div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-setting-option sheet-destined sheet-ms" data-i18n-list-item="power_points">
|
||
<div class="sheet-inline-flex">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="power_points">Power Points</label>
|
||
<div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11"></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-setting-option sheet-la" data-i18n-list-item="prana_points">
|
||
<div class="sheet-inline-flex">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="prana_points">Prana Points</label>
|
||
<div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{magic_points}" name="attr_magic_points" value="11">/<input type="number" class="sheet-rval" title="@{magic_points|max}" name="attr_magic_points_max" value="11"></div>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_tenacity_enabled" value="0">
|
||
<div class="sheet-toggle" data-i18n-list-item="tenacity">
|
||
<div class="sheet-inline-flex">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="tenacity">Tenacity</label>
|
||
<div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{tenacity}" name="attr_tenacity" value="11">/<input type="number" class="sheet-rval" title="@{tenacity|max}" name="attr_tenacity_max" value="11"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-ability-option sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla"><input type='checkbox' name='attr_abilities_config' value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Abilities Config -->
|
||
<input type='hidden' class='sheet-toggle sheet-hidden' name='attr_abilities_config' value="0"/>
|
||
<div class="sheet-toggle">
|
||
<label class="sheet-left" data-i18n="shaping_traits">Shaping Traits</label>
|
||
<div class="sheet-bmargin sheet-flex sheet-gap">
|
||
<div class="sheet-third-width">
|
||
<textarea class="sheet-ability-notes" name="attr_shaping_traits">
|
||
^{combine}: @{shaped_combine}
|
||
^{duration}: @{shaped_duration}
|
||
^{magnitude}: @{shaped_magnitude}
|
||
^{range}: @{shaped_range}
|
||
^{targets}: @{shaped_targets}
|
||
</textarea>
|
||
</div>
|
||
<div class="sheet-two-thirds-width">
|
||
<div class="sheet-components-options">
|
||
<div class="sheet-table" data-i18n-list="shaping_components-order">
|
||
<div class="sheet-tr" data-i18n-list-item="ablation">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="ablation">Ablation</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{ablation}: @{shaped_ablation}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="area">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="area">Area</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{area}: @{sandestin_area}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="combine">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="combine">Combine</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{combine}: @{shaped_combine}</li>
|
||
<li>^{combine}: @{sandestin_combine}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="conditions">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="conditions">Conditions</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{conditions}: @{shaped_conditions}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="doses">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="doses">Doses</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{doses}: @{shaped_doses}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="duration">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="duration">Duration</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{duration}: @{shaped_duration}</li>
|
||
<li>^{duration}: @{extended_duration}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="focus">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="focus">Focus</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{focus}: @{shaped_focus}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="fortune">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="fortune">Fortune</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{fortune}: @{shaped_fortune}</li>
|
||
<li>^{fortune}: @{sandestin_fortune}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="magnitude">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="magnitude">Magnitude</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{magnitude}: @{shaped_magnitude}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="precision">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="precision">Precision</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{precision}: @{shaped_precision}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="range">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="range">Range</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{range}: @{shaped_range}</li>
|
||
<li>^{range}: @{sympathetic_range}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="services">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="services">Services</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{services}: @{sandestin_services}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="shelf_life">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="shelf_life">Shelf Life</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{shelf_life}: @{shaped_shelf_life}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="swiftness">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="swiftness">Swiftness</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{swiftness}: @{shaped_swiftness}</li>
|
||
<li>^{swiftness}: @{sandestin_swiftness}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="targets">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="targets">Targets</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{targets}: @{shaped_targets}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="terms">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="terms">Terms</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{terms}: @{sandestin_terms}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr" data-i18n-list-item="wonders">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="wonders">Wonders</label></div>
|
||
<div class="sheet-td">
|
||
<ul>
|
||
<li>^{wonders}: @{shaped_wonders}</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Pre-defined advanced traits -->
|
||
<div hidden>
|
||
<!-- Dynamic Intensity -->
|
||
<input type="text" name="attr_dynamic_intensity" value="?{@{intensity_i18n}|1}" disabled>
|
||
|
||
<!-- Ablation -->
|
||
<button type="roll" name="roll_shaped_ablation" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{ablation}=?{@{ablation_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - -1 @{magnitude_i18n}, -1 @{magnitude_i18n} (1@{point_a_i18n})|2 - -2 @{magnitude_i18n}, -2 @{magnitude_i18n} (2@{points_a_i18n})|3 - -3 @{magnitude_i18n}, -3 @{magnitude_i18n} (3@{points_a_i18n})|4 - -4 @{magnitude_i18n}, -4 @{magnitude_i18n} (4@{points_a_i18n})|5 - -5 @{magnitude_i18n}, -5 @{magnitude_i18n} (5@{points_a_i18n})|6 - -6 @{magnitude_i18n}, -6 @{magnitude_i18n} (6@{points_a_i18n})|7 - -7 @{magnitude_i18n}, -7 @{magnitude_i18n} (7@{points_a_i18n})|8 - -8 @{magnitude_i18n}, -8 @{magnitude_i18n} (8@{points_a_i18n})|9 - -1 @{magnitude_i18n}, -9 @{magnitude_i18n} (9@{points_a_i18n})|10 - -10 @{magnitude_i18n}, -10 @{magnitude_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_ablation" value="[0](~@{character_id}|shaped_ablation)" disabled>
|
||
|
||
<!-- Area -->
|
||
<button type="roll" name="roll_sandestin_area" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{area}=?{Area|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 2@{meters_a_i18n} @{radius_i18n}, 2@{meters_a_i18n} @{radius_i18n} (1@{point_a_i18n})|3 - 5@{meters_a_i18n} @{radius_i18n}, 5@{meters_a_i18n} @{radius_i18n} (2@{points_a_i18n})|3 - 10@{meters_a_i18n} @{radius_i18n}, 10@{meters_a_i18n} @{radius_i18n} (3@{points_a_i18n})|4 - 25@{meters_a_i18n} @{radius_i18n}, 25@{meters_a_i18n} @{radius_i18n} (4@{points_a_i18n})|5 - 50@{meters_a_i18n} @{radius_i18n}, 50@{meters_a_i18n} @{radius_i18n} (5@{points_a_i18n})|6 - 100@{meters_a_i18n} @{radius_i18n}, 100@{meters_a_i18n} @{radius_i18n} (6@{points_a_i18n})|7 - 250@{meters_a_i18n} @{radius_i18n}, 250@{meters_a_i18n} @{radius_i18n} (7@{points_a_i18n})|8 - 500@{meters_a_i18n} @{radius_i18n}, 500@{meters_a_i18n} @{radius_i18n} (8@{points_a_i18n})|9 - 1@{kilometers_a_i18n} @{radius_i18n}, 1@{kilometers_a_i18n} @{radius_i18n} (9@{points_a_i18n})|10 - 2@{kilometers_a_i18n} @{radius_i18n}, 2@{kilometers_a_i18n} @{radius_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_sandestin_area" value="[@{none_i18n}](~@{character_id}|sandestin_area)" disabled>
|
||
|
||
<!-- Combine -->
|
||
<button type="roll" name="roll_shaped_combine" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{combine}=?{@{combine_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 2 @{spells_i18n}, 2 @{spells_i18n} (1@{point_a_i18n})|2 - 3 @{spells_i18n}, 3 @{spells_i18n} (2@{points_a_i18n})|3 - 4 @{spells_i18n}, 4 @{spells_i18n} (3@{points_a_i18n})|4 - 5 @{spells_i18n}, 5 @{spells_i18n} (4@{points_a_i18n})|5 - 6 @{spells_i18n}, 6 @{spells_i18n} (5@{points_a_i18n})|6 - 7 @{spells_i18n}, 7 @{spells_i18n} (6@{points_a_i18n})|7 - 8 @{spells_i18n}, 8 @{spells_i18n} (7@{points_a_i18n})|8 - 9 @{spells_i18n}, 9 @{spells_i18n} (8@{points_a_i18n})|9 - 10 @{spells_i18n}, 10 @{spells_i18n} (9@{points_a_i18n})|10 - 11 @{spells_i18n}, 11 @{spells_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<button type="roll" name="roll_sandestin_combine" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{combine}=?{@{combine_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 2 @{effects_i18n}, 2 @{effects_i18n} (1@{points_a_i18n})|3 - 3 @{effects_i18n}, 3 @{effects_i18n} (3@{points_a_i18n})|5 - 4 @{effects_i18n}, 4 @{effects_i18n} (5@{points_a_i18n})|7 - 5 @{effects_i18n}, 5 @{effects_i18n} (7@{points_a_i18n})|9 - 6 @{effects_i18n}, 6 @{effects_i18n} (9@{points_a_i18n})|11 - 7 @{effects_i18n}, 7 @{effects_i18n} (11@{points_a_i18n})|13 - 8 @{effects_i18n}, 8 @{effects_i18n} (13@{points_a_i18n})|15 - 9 @{effects_i18n}, 9 @{effects_i18n} (15@{points_a_i18n})|17 - 10 @{effects_i18n}, 10 @{effects_i18n} (17@{points_a_i18n})|19 - 11 @{effects_i18n}, 11 @{effects_i18n} (19@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_combine" value="[@{none_i18n}](~@{character_id}|shaped_combine)" disabled>
|
||
<input type="text" name="attr_sandestin_combine" value="[@{none_i18n}](~@{character_id}|sandestin_combine)" disabled>
|
||
|
||
<!-- Conditions -->
|
||
<button type="roll" name="roll_shaped_conditions" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{conditions}=?{@{conditions_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 1 @{condition_i18n} , 1 @{condition_i18n} (@{point_a_i18n})|2 - 2 @{conditions_i18n} , 2 @{conditions_i18n} (2@{points_a_i18n})|3 - 3 @{conditions_i18n} , 3 @{conditions_i18n} (3@{points_a_i18n})|4 - 4 @{conditions_i18n} , 4 @{conditions_i18n} (4@{points_a_i18n})|5 - 5 @{conditions_i18n} , 5 @{conditions_i18n} (5@{points_a_i18n})|6 - 6 @{conditions_i18n} , 6 @{conditions_i18n} (6@{points_a_i18n})|7 - 7 @{conditions_i18n} , 7 @{conditions_i18n} (7@{points_a_i18n})|8 - 8 @{conditions_i18n} , 8 @{conditions_i18n} (8@{points_a_i18n})|9 - 9 @{conditions_i18n} , 9 @{conditions_i18n} (9@{points_a_i18n})|10 - 10 @{conditions_i18n} , 10 @{conditions_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_conditions" value="[@{none_i18n}](~@{character_id}|shaped_conditions)" disabled>
|
||
|
||
<!-- Doses -->
|
||
<button type="roll" name="roll_shaped_doses" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{doses}=?{@{doses_i18n}|0 - 1 @{dose_i18n} , 1 @{dose_i18n} (0@{points_a_i18n})|1 - 2 @{doses_i18n} , 2 @{doses_i18n} (1@{point_a_i18n})|2 - 3 @{doses_i18n} , 3 @{doses_i18n} (2@{points_a_i18n})|3 - 4 @{doses_i18n} , 4 @{doses_i18n} (3@{points_a_i18n})|4 - 5 @{doses_i18n} , 5 @{doses_i18n} (4@{points_a_i18n})|5 - 6 @{doses_i18n} , 6 @{doses_i18n} (5@{points_a_i18n})|6 - 7 @{doses_i18n} , 7 @{doses_i18n} (6@{points_a_i18n})|7 - 8 @{doses_i18n} , 8 @{doses_i18n} (7@{points_a_i18n})|8 - 9 @{doses_i18n} , 9 @{doses_i18n} (8@{points_a_i18n})|9 - 10 @{doses_i18n} , 10 @{doses_i18n} (9@{points_a_i18n})|10 - 11 @{doses_i18n} , 11 @{doses_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_doses" value="[@{none_i18n}](~@{character_id}|shaped_doses)" disabled>
|
||
|
||
<!-- Duration -->
|
||
<button type="roll" name="roll_shaped_duration" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{duration}=?{@{duration_i18n}|0 - @{pow_u_i18n} @{minutes_a_i18n}, [[@{pow}]]@{minutes_a_i18n} (0@{points_a_i18n})| 1 - 2×@{pow_u_i18n} @{minutes_a_i18n}, [[2*@{pow}]]@{minutes_a_i18n} (1@{point_a_i18n})|2 - 3×@{pow_u_i18n} @{minutes_a_i18n}, 2 - [[3*@{pow}]]@{minutes_a_i18n} (2@{points_a_i18n})|3 - 4×@{pow_u_i18n} @{minutes_a_i18n}, [[4*@{pow}]]@{minutes_a_i18n} (3@{points_a_i18n})|4 - 5×@{pow_u_i18n} @{minutes_a_i18n}, [[5*@{pow}]]@{minutes_a_i18n} (4@{points_a_i18n})|5 - 6×@{pow_u_i18n} @{minutes_a_i18n}, [[6*@{pow}]]@{minutes_a_i18n} (5@{points_a_i18n})|6 - 7×@{pow_u_i18n} @{minutes_a_i18n}, [[7*@{pow}]]@{minutes_a_i18n} (6@{points_a_i18n})|7 - 8×@{pow_u_i18n} @{minutes_a_i18n}, [[8*@{pow}]]@{minutes_a_i18n} (7@{points_a_i18n})|8 - 9×@{pow_u_i18n} @{minutes_a_i18n}, [[9*@{pow}]]@{minutes_a_i18n} (8@{points_a_i18n})|9 - 10×@{pow_u_i18n} @{minutes_a_i18n}, [[10*@{pow}]]@{minutes_a_i18n} (9@{points_a_i18n})|10 - 11×@{pow_u_i18n} @{minutes_a_i18n}, [[11*@{pow}]]@{minutes_a_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<button type="roll" name="roll_extended_duration" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{duration}=?{@{duration_i18n}|0 - @{pow_u_i18n} @{turns_i18n}, [[@{pow}*1]] @{turns_i18n} (0@{points_a_i18n})|1 - @{pow_u_i18n} @{rounds_i18n}, [[@{pow}*1]] @{rounds_i18n} (1@{point_a_i18n})|2 - @{pow_u_i18n} @{minutes_a_i18n}, *1]] @{minutes_a_i18n} (2@{points_a_i18n})|3 - @{pow_u_i18n} × 5 @{minutes_a_i18n}, [[@{pow}*5]] @{minutes_a_i18n} (3@{points_a_i18n})|4 - @{pow_u_i18n} × 15 @{minutes_a_i18n}, [[@{pow}*15]] @{minutes_a_i18n} (4@{points_a_i18n})|5 - @{pow_u_i18n} @{hours_i18n}, [[@{pow}*1]] @{hours_i18n} (5@{points_a_i18n})|6 - @{pow_u_i18n} × 6 @{hours_i18n}, [[@{pow}*6]] @{hours_i18n} (6@{points_a_i18n})|7 - @{pow_u_i18n} @{days_i18n}, [[@{pow}*1]] @{days_i18n} (7@{points_a_i18n})|8 - @{pow_u_i18n} @{weeks_i18n}, [[@{pow}*1]] @{weeks_i18n} (8@{points_a_i18n})|9 - @{pow_u_i18n} @{months_i18n}, [[@{pow}*1]] @{months_i18n} (9@{points_a_i18n})|10 - @{pow_u_i18n} @{years_i18n}, [[@{pow}*1]] @{years_i18n} (10@{points_a_i18n})} }}"></button>
|
||
<input type="text" name="attr_shaped_duration" value="[@{pow} @{minutes_a_i18n}](~@{character_id}|shaped_duration)" disabled>
|
||
<input type="text" name="attr_extended_duration" value="[@{pow} @{turns_i18n}](~@{character_id}|extended_duration)" disabled>
|
||
|
||
<!-- Focus -->
|
||
<button type="roll" name="roll_shaped_focus" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{focus}=?{@{focus_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 1 @{step_i18n}, 1 @{step_i18n} (1@{point_a_i18n})|2 - 2 @{steps_i18n}, 2 @{steps_i18n} (2@{points_a_i18n})|3 - 3 @{steps_i18n}, 3 @{steps_i18n} (3@{points_a_i18n})|4 - 4 @{steps_i18n}, 4 @{steps_i18n} (4@{points_a_i18n})|5 - 5 @{steps_i18n}, 5 @{steps_i18n} (5@{points_a_i18n})|6 - 6 @{steps_i18n}, 6 @{steps_i18n} (6@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_focus" value="[@{none_i18n}](~@{character_id}|shaped_focus)" disabled>
|
||
|
||
<!-- Fortune -->
|
||
<button type="roll" name="roll_shaped_fortune" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{fortune}=?{@{fortune_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 2 @{rolls_i18n}, 2 @{rolls_i18n} (1@{point_a_i18n})|2 - 3 @{rolls_i18n}, 3 @{rolls_i18n} (2@{points_a_i18n})|3 - 4 @{rolls_i18n}, 4 @{rolls_i18n} (3@{points_a_i18n})|4 - 5 @{rolls_i18n}, 5 @{rolls_i18n} (4@{points_a_i18n})|5 - 6 @{rolls_i18n}, 6 @{rolls_i18n} (5@{points_a_i18n})|6 - 7 @{rolls_i18n}, 7 @{rolls_i18n} (6@{points_a_i18n})|7 - 8 @{rolls_i18n}, 8 @{rolls_i18n} (7@{points_a_i18n})|8 - 9 @{rolls_i18n}, 9 @{rolls_i18n} (8@{points_a_i18n})|9 - 10 @{rolls_i18n}, 10 @{rolls_i18n} (9@{points_a_i18n})|10 - 11 @{rolls_i18n}, 11 @{rolls_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<button type="roll" name="roll_sandestin_fortune" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{fortune}=?{@{fortune_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 2 @{rolls_i18n}, 2 @{rolls_i18n} (1@{point_a_i18n})|3 - 3 @{rolls_i18n}, 3 @{rolls_i18n} (3@{points_a_i18n})|6 - 4 @{rolls_i18n}, 4 @{rolls_i18n} (6@{points_a_i18n})|10 - 5 @{rolls_i18n}, 5 @{rolls_i18n} (10@{points_a_i18n})|15 - 6 @{rolls_i18n}, 6 @{rolls_i18n} (15@{points_a_i18n})|21 - 7 @{rolls_i18n}, 7 @{rolls_i18n} (21@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_fortune" value="[@{none_i18n}](~@{character_id}|shaped_fortune)" disabled>
|
||
<input type="text" name="attr_sandestin_fortune" value="[@{none_i18n}](~@{character_id}|sandestin_fortune)" disabled>
|
||
|
||
<!-- Magnitude -->
|
||
<button type="roll" name="roll_shaped_magnitude" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{magnitude}=?{@{magnitude_i18n}|0 - @{magnitude_i18n} 1, 1 (0@{points_a_i18n})|1 - @{magnitude_i18n} 2, 2 (1@{point_a_i18n})|2 - @{magnitude_i18n} 3, 3 (2@{points_a_i18n})|3 - @{magnitude_i18n} 4, 4 (3@{points_a_i18n})|4 - @{magnitude_i18n} 5, 5 (4@{points_a_i18n})|5 - @{magnitude_i18n} 6, 6 (5@{points_a_i18n})|6 - @{magnitude_i18n} 7, 7 (6@{points_a_i18n})|7 - @{magnitude_i18n} 8, 8 (7@{points_a_i18n})|8 - @{magnitude_i18n} 9, 9 (8@{points_a_i18n})|9 - @{magnitude_i18n} 10, 10 (9@{points_a_i18n})|10 - @{magnitude_i18n} 11, 11 (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_magnitude" value="[1](~@{character_id}|shaped_magnitude)" disabled>
|
||
|
||
<!-- Precision -->
|
||
<button type="roll" name="roll_shaped_precision" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{precision}=?{@{precision_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - ±1, ±1 (1@{point_a_i18n})|2 - ±2, ±2 (2@{points_a_i18n})|3 - ±3, ±3 (3@{points_a_i18n})|4 - ±4, ±4 (4@{points_a_i18n})|5 - ±5, ±5 (5@{points_a_i18n})|6 - ±6, ±6 (6@{points_a_i18n})|7 - ±7, ±7 (7@{points_a_i18n})|8 - ±8, ±8 (8@{points_a_i18n})|9 - ±9, ±9 (9@{points_a_i18n})|10 - ±10, ±10 (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_precision" value="[@{none_i18n}](~@{character_id}|shaped_precision)" disabled>
|
||
|
||
<!-- Range -->
|
||
<button type="roll" name="roll_shaped_range" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{range}=?{@{range_i18n}|0 - @{touch_i18n}, @{touch_i18n} (0@{points_a_i18n})|1 - 1@{meters_a_i18n}×@{pow_u_i18n}, [[@{pow}]]@{meters_a_i18n} (1pt)|2 - 5@{meters_a_i18n}×@{pow_u_i18n}, [[5*@{pow}]]@{meters_a_i18n} (2@{points_a_i18n})|3 - 10@{meters_a_i18n}×@{pow_u_i18n}, [[10*@{pow}]]@{meters_a_i18n} (3@{points_a_i18n})|4 - 50@{meters_a_i18n}×@{pow_u_i18n}, [[50*@{pow}]]@{meters_a_i18n} (4@{points_a_i18n})|5 - 100m×@{pow_u_i18n}, [[100*@{pow}]]@{meters_a_i18n} (5@{points_a_i18n})|6 - 500@{meters_a_i18n}×@{pow_u_i18n}, [[500*@{pow}]]@{meters_a_i18n} (6@{points_a_i18n})|7 - 1@{kilometers_a_i18n}×@{pow_u_i18n}, [[1*@{pow}]]@{kilometers_a_i18n} (7@{points_a_i18n})|8 - 5@{kilometers_a_i18n}×@{pow_u_i18n}, [[5*@{pow}]]@{kilometers_a_i18n} (8@{points_a_i18n})|9 - 10@{kilometers_a_i18n}×@{pow_u_i18n}, [[10*@{pow}]]@{kilometers_a_i18n} (9@{points_a_i18n})|10 - 15@{kilometers_a_i18n}×@{pow_u_i18n}, [[15*@{pow}]]@{kilometers_a_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<button type="roll" name="roll_sympathetic_range" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{range}=?{@{range_i18n}|0 - @{touch_i18n}, @{touch_i18n} (0@{points_a_i18n})|1 - 2+ fragments of the target, 2+ fragments of the target (1@{point_a_i18n})|2 - A fragments of the target, A fragments of the target (2@{points_a_i18n})|3 - Any personal object that the target has worn or carried continuously for a year, Any personal object that the target has worn or carried continuously for a year (3@{points_a_i18n})|4 - Any personal object that the target has used several times within the last year, Any personal object that the target has used several times within the last year (4@{points_a_i18n})|5 - Any personal object that the target has used several times within the last year, Any personal object that the target has used several times within the last year (5@{points_a_i18n})|6 - Any object the target has created or consumed, Any object the target has created or consumed (6@{points_a_i18n})|7 - A live video of the target, A live video of the target (7@{points_a_i18n})|8 - A recorded video of the target made within the last year, A recorded video of the target made within the last year (8@{points_a_i18n})|9 - A clear photograph of the target made within the last year, A clear photograph of the target made within the last year (9@{points_a_i18n})|10 - The caster has ever spent over an hour interacting with the target, The caster has ever spent over an hour interacting with the target (10@{points_a_i18n})} }}"></button>
|
||
<input type="text" name="attr_shaped_range" value="[@{touch_i18n}](~@{character_id}|shaped_range)" disabled>
|
||
<input type="text" name="attr_sympathetic_range" value="[@{touch_i18n}](~@{character_id}|sympathetic_range)" disabled>
|
||
|
||
<!-- Services -->
|
||
<button type="roll" name="roll_sandestin_services" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{services}=?{@{services_i18n}|0 - 1 @{service_i18n}, 1 (0@{points_a_i18n})|3 - 2 @{services_i18n}, 2 (3@{points_a_i18n})|7 - 3 @{services_i18n}, 3 (7@{points_a_i18n})|12 - 4 @{services_i18n}, 4 (12@{points_a_i18n})|18 - 5 @{services_i18n}, 5 (18@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_sandestin_services" value="[1](~@{character_id}|sandestin_services)" disabled>
|
||
|
||
<!-- Shelf Life -->
|
||
<button type="roll" name="roll_shaped_shelf_life" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{shelf_life}=?{@{shelf_life_i18n}|0 - @{pow_u_i18n} @{hours_i18n}, [[@{pow}]] @{hours_i18n} (0@{points_a_i18n})| 1 - 3×@{pow_u_i18n} @{hours_i18n}, [[3*@{pow}]] @{hours_i18n} (1pt)|2 - @{pow_u_i18n} @{days_i18n}, 2 - [[@{pow}]] @{days_i18n} (2@{points_a_i18n})|3 - 3×@{pow_u_i18n} @{days_i18n}, [[3*@{pow}]] @{days_i18n} (3@{points_a_i18n})|4 - @{pow_u_i18n} @{weeks_i18n}, [[@{pow}]] @{weeks_i18n} (4@{points_a_i18n})|5 - 3×@{pow_u_i18n} @{weeks_i18n}, [[3*@{pow}]] @{weeks_i18n} (5@{points_a_i18n})|6 - @{pow_u_i18n} @{months_i18n}, [[@{pow}]] @{months_i18n} (6@{points_a_i18n})|7 - 3×@{pow_u_i18n} @{months_i18n}, [[3*@{pow}]] @{months_i18n} (7@{points_a_i18n})|8 - @{pow_u_i18n} @{years_i18n}, [[@{pow}]] @{years_i18n} (8@{points_a_i18n})|9 - 3×@{pow_u_i18n} @{years_i18n}, [[3*@{pow}]] @{years_i18n} (9@{points_a_i18n})|10 - 10×@{pow_u_i18n} @{years_i18n}, [[10*@{pow}]] @{years_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_shelf_life" value="[@{pow} @{hours_i18n}](~@{character_id}|shaped_shelf_life)" disabled>
|
||
|
||
<!-- Swiftness -->
|
||
<button type="roll" name="roll_shaped_swiftness" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{swiftness}=?{@{swiftness_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - -1 @{casting_time_i18n} , -1 @{casting_time_i18n} (1@{point_a_i18n})|2 - -2 @{casting_time_i18n} , -2 @{casting_time_i18n} (2@{points_a_i18n})|3 - -3 @{casting_time_i18n} , -3 @{casting_time_i18n} (3@{points_a_i18n})|4 - -4 @{casting_time_i18n} , -4 @{casting_time_i18n} (4@{points_a_i18n})|5 - -5 @{casting_time_i18n} , -5 @{casting_time_i18n} (5@{points_a_i18n})|6 - -6 @{casting_time_i18n} , -6 @{casting_time_i18n} (6@{points_a_i18n})|7 - -7 @{casting_time_i18n} , -7 @{casting_time_i18n} (7@{points_a_i18n})|8 - -8 @{casting_time_i18n} , -8 @{casting_time_i18n} (8@{points_a_i18n})|9 - -9 @{casting_time_i18n} , -9 @{casting_time_i18n} (9@{points_a_i18n})|10 - -10 @{casting_time_i18n} , -10 @{casting_time_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<button type="roll" name="roll_sandestin_swiftness" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{swiftness}=?{@{swiftness_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - -2 @{casting_time_i18n} , -2 @{casting_time_i18n} (1@{point_a_i18n})|2 - -4 @{casting_time_i18n} , -4 @{casting_time_i18n} (2@{points_a_i18n})|3 - -6 @{casting_time_i18n} , -6 @{casting_time_i18n} (3@{points_a_i18n})|4 - -8 @{casting_time_i18n} , -8 @{casting_time_i18n} (4@{points_a_i18n})|5 - -10 @{casting_time_i18n} , -10 @{casting_time_i18n} (5@{points_a_i18n})|6 - -12 @{casting_time_i18n} , -12 @{casting_time_i18n} (6@{points_a_i18n})|7 - -14 @{casting_time_i18n} , -14 @{casting_time_i18n} (7@{points_a_i18n})|8 - -16 @{casting_time_i18n} , -16 @{casting_time_i18n} (8@{points_a_i18n})|9 - -18 @{casting_time_i18n} , -18 @{casting_time_i18n} (9@{points_a_i18n})|10 - -20 @{casting_time_i18n} , -20 @{casting_time_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_swiftness" value="[@{none_i18n}](~@{character_id}|shaped_swiftness)" disabled>
|
||
<input type="text" name="attr_sandestin_swiftness" value="[@{none_i18n}](~@{character_id}|sandestin_swiftness)" disabled>
|
||
|
||
<!-- Targets -->
|
||
<button type="roll" name="roll_shaped_targets" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{targets}=?{@{targets_i18n}|0 - 1 @{target_i18n}, 1 (0@{points_a_i18n})|1 - 2 @{targets_i18n}, 2 (1@{point_a_i18n})|2 - 3 @{targets_i18n}, 3 (2@{points_a_i18n})|3 - 4 @{targets_i18n}, 4 (3@{points_a_i18n})|4 - 5 @{targets_i18n}, 5 (4@{points_a_i18n})|5 - 6 @{targets_i18n}, 6 (5@{points_a_i18n})|6 - 7 @{targets_i18n}, 7 (6@{points_a_i18n})|7 - 8 @{targets_i18n}, 8 (7@{points_a_i18n})|8 - 9 @{targets_i18n}, 9 (8@{points_a_i18n})|9 - 10 @{targets_i18n}, 10 (9@{points_a_i18n})|10 - 11 @{targets_i18n}, 11 (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_targets" value="[1](~@{character_id}|shaped_targets)" disabled>
|
||
|
||
<!-- Terms -->
|
||
<button type="roll" name="roll_sandestin_terms" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{terms}=?{@{terms_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 1 @{term_i18n} , 1 @{term_i18n} (1@{point_a_i18n})|2 - 2 @{terms_i18n} , 2 @{terms_i18n} (2@{points_a_i18n})|3 - 3 @{terms_i18n} , 3 @{terms_i18n} (3@{points_a_i18n})|4 - 4 @{terms_i18n} , 4 @{terms_i18n} (4@{points_a_i18n})|5 - 5 @{terms_i18n} , 5 @{terms_i18n} (5@{points_a_i18n})|6 - 6 @{terms_i18n} , 6 @{terms_i18n} (6@{points_a_i18n})|7 - 7 @{terms_i18n} , 7 @{terms_i18n} (7@{points_a_i18n})|8 - 8 @{terms_i18n} , 8 @{terms_i18n} (8@{points_a_i18n})|9 - 9 @{terms_i18n} , 9 @{terms_i18n} (9@{points_a_i18n})|10 - 10 @{terms_i18n} , 10 @{terms_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_sandestin_terms" value="[@{none_i18n}](~@{character_id}|sandestin_terms)" disabled>
|
||
|
||
<!-- Wonders -->
|
||
<button type="roll" name="roll_shaped_wonders" value="@{roll_display}&{template:default} {{effectstyle=1}} {{^{wonders}=?{@{wonders_i18n}|0 - @{none_i18n}, @{none_i18n} (0@{points_a_i18n})|1 - 1 @{wonder_i18n} , 1 @{wonder_i18n} (1@{point_a_i18n})|2 - 2 @{wonders_i18n} , 2 @{wonders_i18n} (2@{points_a_i18n})|3 - 3 @{wonders_i18n} , 3 @{wonders_i18n} (3@{points_a_i18n})|4 - 4 @{wonders_i18n} , 4 @{wonders_i18n} (4@{points_a_i18n})|5 - 5 @{wonders_i18n} , 5 @{wonders_i18n} (5@{points_a_i18n})|6 - 6 @{wonders_i18n} , 6 @{wonders_i18n} (6@{points_a_i18n})|7 - 7 @{wonders_i18n} , 7 @{wonders_i18n} (7@{points_a_i18n})|8 - 8 @{wonders_i18n} , 8 @{wonders_i18n} (8@{points_a_i18n})|9 - 9 @{wonders_i18n} , 9 @{wonders_i18n} (9@{points_a_i18n})|10 - 10 @{wonders_i18n} , 10 @{wonders_i18n} (10@{points_a_i18n})}}}"></button>
|
||
<input type="text" name="attr_shaped_wonders" value="[@{none_i18n}](~@{character_id}|shaped_wonders)" disabled>
|
||
</div>
|
||
|
||
<!-- Tradition Table -->
|
||
<div class="sheet-ability-option sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-la sheet-lyonesse sheet-mb sheet-mba sheet-imperative sheet-perceforest sheet-thennla sheet-wu">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th"><div class="sheet-tradition-name"><span data-i18n="tradition">Tradition></span> / <span data-i18n="system">System</span></div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="rank">Rank</div></div>
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="skills">Skills</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="devotional_pool" data-i18n="pool">Pool</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos" data-i18n-title="details-tooltip">y</div></div>
|
||
</div>
|
||
<div class="sheet-bmargin">
|
||
<fieldset class="repeating_tradition">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-tradition-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this tradition" readonly>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_tradition_rank}" name="attr_tradition_rank" value="1" min="0"></div>
|
||
<div class="sheet-td sheet-grow sheet-flex">
|
||
<div class="sheet-full-width sheet-flex sheet-gap">
|
||
<div class="sheet-half-width sheet-flex sheet-gap">
|
||
<input type="text" class="sheet-grow sheet-number-width" title="@{$ID_skill1_name}" name="attr_skill1_name_display" value="@{skill1_name}" disabled>
|
||
<input type="number" class="sheet-number-width-sm sheet-impval" title="@{$ID_skill1_total}" name="attr_skill1_total_display" value="@{skill1_total}" disabled>
|
||
<button type="roll" class="sheet-button-width sheet-die sheet-d10" title="%{$ID_skill1}" name="roll_skill1" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{skill1_name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{skill1_total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{skill1_total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{skill1_total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{skill1_total}*2)+@{penalty})]]}} {{easy=[[ceil((@{skill1_total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{skill1_total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{skill1_total}*1.5)+@{penalty})]]}} {{standard=[[@{skill1_total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{skill1_total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{skill1_total}+@{penalty})]]}} {{hard=[[ceil((@{skill1_total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{skill1_total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{skill1_total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{skill1_total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{skill1_total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{skill1_total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{skill1_total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{skill1_total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{skill1_total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{skill1_notes}}}">t</button>
|
||
</div>
|
||
<div class="sheet-half-width sheet-flex sheet-gap">
|
||
<input type="text" class="sheet-grow sheet-number-width" title="@{$ID_skill2_name}" name="attr_skill2_name_display" value="@{skill2_name}" disabled>
|
||
<input type="number" class="sheet-number-width-sm sheet-impval" title="@{$ID_skill2_total}" name="attr_skill2_total_display" value="@{skill2_total}" disabled>
|
||
<button type="roll" class="sheet-button-width sheet-die sheet-d10" title="%{$ID_skill2}" name="roll_skill2" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{skill2_name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{skill2_total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{skill2_total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{skill2_total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{skill2_total}*2)+@{penalty})]]}} {{easy=[[ceil((@{skill2_total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{skill2_total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{skill2_total}*1.5)+@{penalty})]]}} {{standard=[[@{skill2_total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{skill2_total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{skill2_total}+@{penalty})]]}} {{hard=[[ceil((@{skill2_total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{skill2_total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{skill2_total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{skill2_total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{skill2_total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{skill2_total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{skill2_total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{skill2_total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{skill2_total}*@{herculean_mod})+@{penalty})]]}} {{notes=@{skill2_notes}}}">t</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<input type="hidden" class="sheet-pool-toggle" name="attr_pool_limit" value="0">
|
||
<div class="sheet-pool-toggle-none sheet-number-width">-</div>
|
||
<div class="sheet-pool-toggle-exist sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{$ID_pool}" name="attr_pool" value="0">/<input type="number" class="sheet-rval" title="@{$ID_pool|max}" name="attr_pool_max" value="@{pool_limit}" disabled></div>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1" checked><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<!-- Tradition Details -->
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_details" value="1">
|
||
<span class="sheet-anti-toggle" name="attr_notes"></span>
|
||
<div class="sheet-toggle sheet-lmargin-x3">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-grow sheet-gap">
|
||
<div><label class="sheet-left" data-i18n="skill_1_id">Skill 1 ID</label></div>
|
||
<div class="sheet-grow"><input type="text" class="sheet-full-width" name="attr_skill1_id" value=""></div>
|
||
<input type="hidden" name="attr_skill1_name" value="" readonly>
|
||
<input type="hidden" name="attr_skill1_total" value="0" readonly>
|
||
<input type="hidden" name="attr_skill1_notes" value="" readonly>
|
||
</div>
|
||
<div class="sheet-flex sheet-grow sheet-gap">
|
||
<div><label class="sheet-left" data-i18n="skill_2_id">Skill 2 ID</label></div>
|
||
<div class="sheet-grow"><input type="text" class="sheet-full-width" name="attr_skill2_id" value=""></div>
|
||
<input type="hidden" name="attr_skill2_name" value="" readonly>
|
||
<input type="hidden" name="attr_skill2_total" value="0" readonly>
|
||
<input type="hidden" name="attr_skill2_notes" value="" readonly>
|
||
</div>
|
||
<div>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="devotional_pool">Devotional Pool</label>
|
||
<select class="sheet-auto-width sheet-text-center" name="attr_pool_limit">
|
||
<option value="0" selected>-</option>
|
||
<option value="ceil(@{pow}*.25)" data-i18n="1/4_pow-u">1/4 POW</option>
|
||
<option value="ceil(@{pow}*.5)" data-i18n="1/2_pow-u">1/2 POW</option>
|
||
<option value="ceil(@{pow}*.75)" data-i18n="3/4_pow-u">3/4 POW</option>
|
||
<option value="@{pow}" data-i18n="pow-u">POW</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<textarea class="sheet-full-width sheet-tradition-notes" name="attr_notes" value=""></textarea>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Abilities Table -->
|
||
<div class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-destined sheet-la sheet-lyonesse sheet-mb sheet-mba sheet-mr sheet-imperative sheet-thennla sheet-wu">
|
||
<!-- Abilities Filter -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="filter">Filter</label>
|
||
<span class="sheet-rmargin" data-i18n="favored">Favored</span>
|
||
<span class="sheet-rmargin"><input type="checkbox" title="@{ability_filter_favored}" name="attr_ability_filter_favored" value="1"><span class="sheet-checkico">S</span></span>
|
||
<span class="sheet-rmargin" data-i18n="type">Type</span>
|
||
<select class="sheet-auto-width sheet-rmargin sheet-text-center" title="@{ability_filter_type}" name="attr_ability_filter_type" data-i18n-list="ability_type-order">
|
||
<option value="all" data-i18n="all" selected>All</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-la sheet-lyonesse sheet-mb sheet-mba sheet-mr sheet-imperative sheet-thennla sheet-wu" value="ability" data-i18n="ability">Ability</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-mba sheet-mr sheet-thennla sheet-wu" value="gift" data-i18n="gift">Gift</option>
|
||
<option class="sheet-ability-option sheet-all sheet-destined sheet-imperative" value="limitation" data-i18n="limitation">Limitation</option>
|
||
<option value="other" data-i18n="other">Other</option>
|
||
<option class="sheet-ability-option sheet-all sheet-la" value="trait" data-i18n="trait">Trait</option>
|
||
<option value="-" disabled>-</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-thennla" value="alchemy" data-i18n="alchemy">Alchemy</option>
|
||
<option class="sheet-ability-option sheet-all sheet-thennla" value="assabian_alchemy" data-i18n="alchemy_(assabian)">Alchemy (Assasbian)</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf" value="arcane_magic" data-i18n="arcane_magic">Arcane Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf" value="divine_magic" data-i18n="divine_magic">Divine Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-atvw" value="fae_power" data-i18n="fae_power">Fae Power</option>
|
||
<option class="sheet-ability-option sheet-all sheet-lyonesse" value="fairy_magic" data-i18n="fairy_magic">Fairy Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla" value="folk_magic" data-i18n="folk_magic">Folk Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-mba" value="incantations" data-i18n="incantations">Incantations</option>
|
||
<option class="sheet-ability-option sheet-all sheet-imperative" value="magic" data-i18n="magic">Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-la sheet-perceforest sheet-thennla sheet-wu" value="mysticism" data-i18n="mysticism">Mysticism</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf sheet-la" value="psionics" data-i18n="psionics">Psionics</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-atvw sheet-wu" value="psychic_power" data-i18n="psychic_power">Psychic Power</option>
|
||
<option class="sheet-ability-option sheet-all sheet-lyonesse" value="sandestin_magic" data-i18n="sandestin_magic">Sandestin Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-mba sheet-thennla" value="sorcery" data-i18n="sorcery">Sorcery</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-mb sheet-thennla" value="spirit" data-i18n="spirit">Spirit</option>
|
||
<option class="sheet-ability-option sheet-all sheet-destined sheet-imperative" value="superpower" data-i18n="superpower">Superpower</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla" value="theism" data-i18n="theism">Theism</option>
|
||
<option class="sheet-ability-option sheet-all sheet-thennla" value="work_song" data-i18n="work_song">Work Song</option>
|
||
</select>
|
||
<div class="sheet-setting-option sheet-cf">
|
||
<span class="sheet-rmargin" data-i18n="rank">Rank</span>
|
||
<select class="sheet-auto-width sheet-text-center" title="@{ability_filter_rank}" name="attr_ability_filter_rank">
|
||
<option value="all" data-i18n="all" selected>All</option>
|
||
<option value="0">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>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos sheet-help" data-i18n-title="favored">S</div></div>
|
||
<div class="sheet-th"><div class="sheet-ability-name" data-i18="ability">Ability</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-ability-type" data-i18="type">Type</div></div>
|
||
<div class="sheet-th sheet-setting-option sheet-cf"><div class="sheet-number-width" data-i18="rank">Rank</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="summary">Summary</div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos sheet-help" data-i18n-title="show_details">E</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow"><div class="sheet-full-width" data-i18n="abilities">Abilities</div></div>
|
||
</div>
|
||
<fieldset class="repeating_ability">
|
||
<input type="hidden" class="sheet-toggle" name="attr_show" value="1">
|
||
<div class="sheet-toggle">
|
||
<input type="hidden" class="sheet-opaque-toggle" name="attr_favored" value="1">
|
||
<div class="sheet-opaque sheet-flex sheet-detailed">
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_favored}" name="attr_favored" value="1" checked><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-ability-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this ability" readonly>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-pictos" title="%{$ID_effect}" name="roll_effect" value="@{roll_display}&{template:effect} {{name=@{name}}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{tradition_id=@{tradition_id}}} {{skill1_name=@{skill1_name}}} {{skill1_total=@{skill1_total}}} {{skill2_name=@{skill2_name}}} {{skill2_total=@{skill2_total}}} {{traits=@{traits}}} {{advanced_traits=@{advanced_traits}}} {{description=@{description}}}">e</button>
|
||
</div>
|
||
<div class="sheet-td sheet-text-center">
|
||
<select class="sheet-ability-type" title="@{$ID_type}" name="attr_type" data-i18n-list="ability_type-order">
|
||
<option value="other" data-i18n="other" selected>Other</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-la sheet-lyonesse sheet-mb sheet-mba sheet-mr sheet-imperative sheet-thennla sheet-wu" value="ability" data-i18n="ability">Ability</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-mba sheet-mr sheet-thennla sheet-wu" value="gift" data-i18n="gift">Gift</option>
|
||
<option class="sheet-ability-option sheet-all sheet-destined sheet-imperative" value="limitation" data-i18n="limitation">Limitation</option>
|
||
<option class="sheet-ability-option sheet-all sheet-la" value="trait" data-i18n="trait">Trait</option>
|
||
<option value="-" disabled>-</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-thennla" value="alchemy" data-i18n="alchemy">Alchemy</option>
|
||
<option class="sheet-ability-option sheet-all sheet-thennla" value="assabian_alchemy" data-i18n="alchemy_(assabian)">Alchemy (Assasbian)</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-thennla" value="artifice" data-i18n="artifice">Artifice</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf" value="arcane_magic" data-i18n="arcane_magic">Arcane Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf" value="divine_magic" data-i18n="divine_magic">Divine Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-atvw" value="fae_power" data-i18n="fae_power">Fae Power</option>
|
||
<option class="sheet-ability-option sheet-all sheet-lyonesse" value="fairy_magic" data-i18n="fairy_magic">Fairy Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla" value="folk_magic" data-i18n="folk_magic">Folk Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-mba" value="incantations" data-i18n="incantations">Incantations</option>
|
||
<option class="sheet-ability-option sheet-all sheet-imperative" value="magic" data-i18n="magic">Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-cf sheet-la sheet-perceforest sheet-thennla sheet-wu" value="mysticism" data-i18n="mysticism">Mysticism</option>
|
||
<option class="sheet-ability-option sheet-all sheet-cf sheet-la" value="psionics" data-i18n="psionics">Psionics</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core-plus sheet-atvw sheet-wu" value="psychic_power" data-i18n="psychic_power">Psychic Power</option>
|
||
<option class="sheet-ability-option sheet-all sheet-lyonesse" value="sandestin_magic" data-i18n="sandestin_magic">Sandestin Magic</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-mba sheet-thennla" value="sorcery" data-i18n="sorcery">Sorcery</option>
|
||
<option class="sheet-ability-option sheet-all sheet-destined sheet-imperative" value="superpower" data-i18n="superpower">Superpower</option>
|
||
<option class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla" value="theism" data-i18n="theism">Theism</option>
|
||
<option class="sheet-ability-option sheet-all sheet-thennla" value="work_song" data-i18n="work_song">Work Song</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-setting-option sheet-cf">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_rank}" name="attr_rank">
|
||
<option value="" selected>-</option>
|
||
<option value="0">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>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_summary}" name="attr_summary" value=""></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">E</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_details" value="1">
|
||
<div class="sheet-opaque sheet-toggle sheet-detailed">
|
||
<div class="sheet-lmargin-x3 sheet-flex sheet-gap">
|
||
<input type="hidden" class="sheet-toggle" name="attr_traited" value="0">
|
||
<div class="sheet-third-width sheet-toggle">
|
||
<label class="sheet-left" data-i18n="traits">Traits</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_traits}" name="attr_traits" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-third-width">
|
||
<label class="sheet-left" data-i18n="advanced_traits">Advanced Traits</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_advanced_traits}" name="attr_advanced_traits" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left" data-i18n="description">Description</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_description}" name="attr_description" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_traited" value="0">
|
||
<div class="sheet-lmargin-x3 sheet-toggle sheet-flex sheet-gap">
|
||
<div><label class="sheet-left"><span data-i18n="tradition_id">Tradition ID</span> (<span data-i18n="optional">Optional</span>)</label></div>
|
||
<input type="text" class="sheet-grow" name="attr_tradition_id" value="">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-opaque sheet-compact">
|
||
<button type="roll" title="%{$ID_effect}" name="roll_effect" value="@{roll_display}&{template:effect} {{name=@{name}}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{tradition_id=@{tradition_id}}} {{skill1_name=@{skill1_name}}} {{skill1_total=@{skill1_total}}} {{skill2_name=@{skill2_name}}} {{skill2_total=@{skill2_total}}} {{traits=@{traits}}} {{advanced_traits=@{advanced_traits}}} {{description=@{description}}}"><span name="attr_name"></span></button>
|
||
</div>
|
||
</div>
|
||
<div hidden>
|
||
<input type="text" name="attr_skill1_name" value="" readonly>
|
||
<input type="text" name="attr_skill1_total" value="" readonly>
|
||
<input type="text" name="attr_skill2_name" value="" readonly>
|
||
<input type="text" name="attr_skill2_total" value="" readonly>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Spirit Table -->
|
||
<div class="sheet-ability-option sheet-all sheet-core sheet-core-plus sheet-atvw sheet-mb sheet-thennla">
|
||
<input type="hidden" class="sheet-tenacity-toggle" name="attr_tenacity_enabled" value="0">
|
||
<div class="sheet-flex sheet-tmargin">
|
||
<div class="sheet-th"><div class="sheet-ability-name" data-i18="spirit">Spirit</div></div>
|
||
<div class="sheet-th"><div class="sheet-ability-type" data-i18="type">Type</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18="int-u">INT</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18="pow-u">POW</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18="cha-u">CHA</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm sheet-help" data-i18n-title="intensity" data-i18="intensity-a">IN</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="description">Description</div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos sheet-help" data-i18n-title="show_details">E</div></div>
|
||
</div>
|
||
<fieldset class="repeating_fetish">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-ability-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this spirit" readonly>
|
||
</div>
|
||
<div class="sheet-td sheet-text-center"><input type="text" class="sheet-ability-type" title="@{$ID_type}" name="attr_type" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{$ID_fetish_int}" name="attr_fetish_int" value="13"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{$ID_fetish_pow}" name="attr_fetish_pow" value="11"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width" title="@{$ID_fetish_cha}" name="attr_fetish_cha" value="11"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-impval sheet-number-width-sm" title="@{$ID_fetish_intensity}" name="attr_fetish_intensity" value="floor((@{fetish_pow})/6)" disabled></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_description}" name="attr_description"></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">E</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_details" value="1">
|
||
<div class="sheet-toggle">
|
||
<div class="sheet-space-between sheet-gap sheet-lmargin-x3">
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left sheet-help" data-i18n-title="action_points" data-i18n="action_points-a">AP</label>
|
||
<div class="sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_fetish_action_points}" name="attr_fetish_action_points" value="2">/<input type="number" class="sheet-number-width-xs sheet-bold" title="@{$ID_fetish_action_points|max}" name="attr_fetish_action_points_max" value="ceil((@{fetish_int}+@{fetish_pow})/12)" disabled>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_initiative}" name="roll_fetish_initiative" value="@{roll_display}&{template:default} {{initstyle=1}} {{character=@{name}}} {{name=^{initiative}}} {{^{roll}=[[1d10 + @{fetish_initiative_bonus}]]}} {{notes=^{enter_initiative_manually}}}" data-i18n="initiative">Initiative</button>
|
||
<input type="number" class="sheet-number-width" title="@{$ID_fetish_initiative_bonus}" name="attr_fetish_initiative_bonus" value="ceil((@{fetish_int}+@{fetish_cha})/2)" disabled>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<label class="sheet-left sheet-help" data-i18n-title="magic_points" data-i18n="magic_points-a">MP</label>
|
||
<div class="sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_fetish_magic_points}" name="attr_fetish_magic_points" value="11">/<input type="number" class="sheet-number-width-xs sheet-bold" title="@{$ID_fetish_magic_points|max}" name="attr_fetish_magic_points_max" value="@{fetish_pow}" disabled>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tenacity sheet-flex sheet-gap">
|
||
<label class="sheet-left" data-i18n="tenacity">Tenacity</label>
|
||
<div class="sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_fetish_magic_points}" name="attr_fetish_tenacity" value="11">/<input type="number" class="sheet-number-width-xs sheet-bold" title="@{$ID_fetish_tenacity|max}" name="attr_fetish_tenacity_max" value="@{fetish_pow}" disabled>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_spirit_damage}" name="roll_fetish_spirit_damage" value="@{roll_display}&{template:default} {{dmgstyle=1}} {{character=@{name}}} {{name=^{spirit_damage} (@{fetish_spirit_damage})}} {{^{damage}=[[@{fetish_spirit_damage}]]}}" data-i18n="damage">Damage</button>
|
||
<input type="text" class="sheet-number-width" title="@{$ID_fetish_spirit_damage}" name="attr_fetish_spirit_damage" value="1d8" readonly>
|
||
</div>
|
||
<div class="sheet-flex">
|
||
<button type="roll" class="sheet-label-left sheet-rmargin" title="%{$ID_fetish_spectral_combat}" name="roll_fetish_spectral_combat" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{spectral_combat}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_spectral_combat}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_spectral_combat}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_spectral_combat}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_spectral_combat}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_spectral_combat}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_spectral_combat}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_spectral_combat}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_spectral_combat}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_spectral_combat}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_spectral_combat}+@{penalty})]]}} {{hard=[[ceil((@{fetish_spectral_combat}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_spectral_combat}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_spectral_combat}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_spectral_combat}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_spectral_combat}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_spectral_combat}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_spectral_combat}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_spectral_combat}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_spectral_combat}*@{herculean_mod})+@{penalty})]]}}" data-i18n="spectral_combat">Spectral Combat</button>
|
||
<input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_spectral_combat" name="attr_fetish_spectral_combat" value="(@{fetish_pow} + @{fetish_cha}) + 50" disabled>%
|
||
</div>
|
||
<div class="sheet-flex">
|
||
<button type="roll" class="sheet-label-left sheet-rmargin" title="%{$ID_fetish_willpower}" name="roll_fetish_willpower" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{willpower}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_willpower}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_willpower}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_willpower}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_willpower}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_willpower}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_willpower}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_willpower}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_willpower}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_willpower}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_willpower}+@{penalty})]]}} {{hard=[[ceil((@{fetish_willpower}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_willpower}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_willpower}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_willpower}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_willpower}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_willpower}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_willpower}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_willpower}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_willpower}*@{herculean_mod})+@{penalty})]]}}"><span data-i18n="willpower">Willpower</span></button>
|
||
<input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_willpower" name="attr_fetish_willpower" value="(@{fetish_pow} * 2) + 50" disabled>%
|
||
</div>
|
||
</div>
|
||
<div class="sheet-lmargin-x3">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_folk_magic}" name="roll_fetish_folk_magic" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{folk_magic}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_folk_magic}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_folk_magic}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_folk_magic}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_folk_magic}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_folk_magic}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_folk_magic}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_folk_magic}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_folk_magic}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_folk_magic}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_folk_magic}+@{penalty})]]}} {{hard=[[ceil((@{fetish_folk_magic}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_folk_magic}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_folk_magic}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_folk_magic}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_folk_magic}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_folk_magic}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_folk_magic}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_folk_magic}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_folk_magic}*@{herculean_mod})+@{penalty})]]}}" data-i18n="folk_magic">Folk Magic</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_folk_magic}" name="attr_fetish_folk_magic" value="0">%</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_invocation}" name="roll_fetish_invocation" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{invocation}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_invocation}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_invocation}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_invocation}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_invocation}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_invocation}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_invocation}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_invocation}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_invocation}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_invocation}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_invocation}+@{penalty})]]}} {{hard=[[ceil((@{fetish_invocation}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_invocation}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_invocation}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_invocation}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_invocation}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_invocation}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_invocation}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_invocation}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_invocation}*@{herculean_mod})+@{penalty})]]}}" data-i18n="invocation">Invocation</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_invocation}" name="attr_fetish_invocation" value="0">%</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_shaping}" name="roll_fetish_shaping" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{shaping}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_shaping}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_shaping}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_shaping}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_shaping}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_shaping}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_shaping}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_shaping}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_shaping}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_shaping}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_shaping}+@{penalty})]]}} {{hard=[[ceil((@{fetish_shaping}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_shaping}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_shaping}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_shaping}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_shaping}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_shaping}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_shaping}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_shaping}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_shaping}*@{herculean_mod})+@{penalty})]]}}" data-i18n="shaping">Shaping</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_shaping}" name="attr_fetish_shaping" value="0">%</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_exhort}" name="roll_fetish_exhort" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{exhort}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_exhort}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_exhort}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_exhort}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_exhort}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_exhort}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_exhort}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_exhort}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_exhort}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_exhort}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_exhort}+@{penalty})]]}} {{hard=[[ceil((@{fetish_exhort}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_exhort}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_exhort}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_exhort}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_exhort}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_exhort}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_exhort}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_exhort}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_exhort}*@{herculean_mod})+@{penalty})]]}}" data-i18n="exhort">Exhort</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_exhort}" name="attr_fetish_exhort" value="0">%</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left">
|
||
<button type="roll" class="sheet-label-left" title="%{$ID_fetish_devotion}" name="roll_fetish_devotion" value="@{roll_display}&{template:skill} {{character=@{name}}} {{name=^{devotion}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{fetish_devotion}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fetish_devotion}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fetish_devotion}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fetish_devotion}*2)+@{penalty})]]}} {{easy=[[ceil((@{fetish_devotion}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fetish_devotion}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fetish_devotion}*1.5)+@{penalty})]]}} {{standard=[[@{fetish_devotion}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fetish_devotion}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fetish_devotion}+@{penalty})]]}} {{hard=[[ceil((@{fetish_devotion}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fetish_devotion}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fetish_devotion}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fetish_devotion}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fetish_devotion}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fetish_devotion}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fetish_devotion}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fetish_devotion}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fetish_devotion}*@{herculean_mod})+@{penalty})]]}}" data-i18n="devotion">Devotion</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_fetish_devotion}" name="attr_fetish_devotion" value="0">%</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left" data-i18n="magic">Magic</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_fetish_powers}" name="attr_fetish_powers" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="spirit_abilities">Spirit Abilities</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_fetish_spirit_abilities}" name="attr_fetish_spirit_abilities" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-lmargin-x3 sheet-flex">
|
||
<div><label class="sheet-left sheet-rmargin" data-i18n="other_skills">Other Skills</label></div>
|
||
<input type="text" class="sheet-grow sheet-text-left" title="${ID_fetish_other_skills}" name="attr_fetish_other_skills" value="">
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Skilled Abilities Table -->
|
||
<div class="sheet-ability-option sheet-os sheet-ms">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-th sheet-ability-option sheet-ms"><div class="sheet-ability-name" data-i18n="psionic_power">Psionic Power</div></div>
|
||
<div class="sheet-th sheet-ability-option sheet-os"><div class="sheet-ability-name" data-i18n="spell">Spell</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="fumbled">!</div></div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="trained">3</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="base">Base</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">%</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="summary">Summary</div>
|
||
<div class="sheet-th"><div class="sheet-help sheet-pictos sheet-checkbox-width" data-i18n-title="configuration">y</div></div>
|
||
</div>
|
||
<div class="sheet-flex sheet-compact">
|
||
<div class="sheet-th sheet-grow sheet-ability-option sheet-os"><div class="sheet-full-width" data-i18n="spells">Spells</div></div>
|
||
<div class="sheet-th sheet-grow sheet-ability-option sheet-ms"><div class="sheet-full-width" data-i18n="psionic_powers">Psionic Powers</div></div>
|
||
</div>
|
||
<div class="sheet-bmargin">
|
||
<fieldset class="repeating_skilledability">
|
||
<div class="sheet-flex sheet-detailed">
|
||
<div class="sheet-td">
|
||
<div class="sheet-ability-name sheet-hover-btn">
|
||
<input type="text" class="sheet-ability-name sheet-text-left" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-pictos sheet-button-width" title="%{$ID_effect}" name="roll_effect" value="@{roll_display}&{template:effect} {{name=@{name} (@{total}%)}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{traits=@{traits}}} {{advanced_traits=@{advanced_traits}}} {{description=@{description}}}">e</button>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<button type="roll" class="sheet-die sheet-d10 sheet-button-width" title="%{$ID_skill}" name="roll_skill" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=@{name}}} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[0]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{total}*2)+@{penalty})]]}} {{easy=[[ceil((@{total}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{total}*1.5)+@{penalty})]]}} {{standard=[[@{total}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{standard_fumble=[[(@{total}+@{penalty})]]}} {{hard=[[ceil((@{total}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{total}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{total}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{total}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{total}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{total}*@{herculean_mod})+@{penalty})]]}}">t</button>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_fumbled}" name="attr_fumbled" value="1"><span class="sheet-checkico">!</span></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_trained}" name="attr_trained" value="1"><span class="sheet-checkico">3</span></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char1}" name="attr_char1">
|
||
<option value="0">-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u" selected>POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-number-width sheet-text-center" title="@{$ID_char2}" name="attr_char2">
|
||
<option value="0">-</option>
|
||
<option value="@{str}" data-i18n="str-u">STR</option>
|
||
<option value="@{con}" data-i18n="con-u">CON</option>
|
||
<option value="@{siz}" data-i18n="siz-u">SIZ</option>
|
||
<option value="@{dex}" data-i18n="dex-u">DEX</option>
|
||
<option value="@{int}" data-i18n="int-u">INT</option>
|
||
<option value="@{pow}" data-i18n="pow-u" selected>POW</option>
|
||
<option value="@{cha}" data-i18n="cha-u">CHA</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{$ID_total}" name="attr_total" value="0" step="1" min="0"></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_summary}" name="attr_summary" value=""></div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">y</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_details" value="0">
|
||
<div class="sheet-toggle sheet-detailed">
|
||
<div class="sheet-lmargin-x3 sheet-flex sheet-gap">
|
||
<button type="roll" title="%{$ID_improve}" name="roll_improve" value="@{roll_display}&{template:improvement} {{name=@{name}}} {{character=@{character_name}}} {{roll=[[1d100+@{int}]]}} {{improvement=[[1d4+1]]}} {{skill=[[@{total}]]}}" data-i18n="improve">Improve</button>
|
||
<div>
|
||
<label class="sheet-left" data-i18n="traits">Traits</label>
|
||
<textarea class="sheet-ability-notes" title="@{$ID_traits}" name="attr_traits" value=""></textarea>
|
||
</div>
|
||
<div>
|
||
<label class="sheet-left" data-i18n="advanced_traits">Advanced Traits</label>
|
||
<textarea class="sheet-ability-notes" title="@{$ID_advanced_traits}" name="attr_advanced_traits" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left" data-i18n="description">Description</label>
|
||
<textarea class="sheet-full-width sheet-ability-notes" title="@{$ID_description}" name="attr_description" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div hidden>
|
||
<input type="number" name="attr_other" value="0" readonly>
|
||
</div>
|
||
<div class="sheet-compact">
|
||
<button type="roll" title="%{$ID_effect}" name="roll_effect" value="@{roll_display}&{template:effect} {{name=@{name}}} {{character=@{character_name}}} {{character_id=@{character_id}}} {{traits=@{traits}}} {{advanced_traits=@{advanced_traits}}} {{description=@{description}}}"><span class="sheet-bold" name="attr_name"></span> <span name="attr_total"></span>%</button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Features -->
|
||
<div class="sheet-ability-option sheet-ms sheet-os">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th"><div class="sheet-ability-name" data-i18="feature">Feature</div></div>
|
||
<div class="sheet-th"><div class="sheet-ability-type" data-i18="type">Type</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="description">Description</div>
|
||
</div>
|
||
<fieldset class="repeating_feature">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-ability-name sheet-text-left" title="@{$ID_name}" name="attr_name">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this feature" readonly>
|
||
</div>
|
||
<div class="sheet-td sheet-text-center">
|
||
<select class="sheet-ability-type" title="@{$ID_type}" name="attr_type">
|
||
<option value="advantage" data-i18n="advantage" selected>Advantage</option>
|
||
<option value="advantage" data-i18n="disadvantage">Disadvantage</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_description}" name="attr_description" value=""></div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Weapons -->
|
||
<div id="weapons" class="sheet-section sheet-anchor-adjust-x2 sheet-creature">
|
||
<h2><span data-i18n="weapons">Weapons</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Weapons">?</button></h2>
|
||
|
||
<input type="hidden" name="attr_weapon_buttons" value="">
|
||
|
||
<!-- Melee Weapons -->
|
||
<div class="sheet-bmargin">
|
||
<input type='hidden' class="sheet-deep-toggle" name='attr_reach_enabled' value="1">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"><span class="sheet-pictos sheet-help" data-i18n-title="include_in_combat_rolls">S</span></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-name" data-i18n="melee_weapon">Melee Weapon</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-damage" data-i18n="damage">Damage</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos sheet-help" data-i18n-title="damage_modifier">+</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-size" data-i18n="size">Size</div></div>
|
||
<div class="sheet-th"><div class="sheet-toggle sheet-weapon-reach" data-i18n="reach">Reach</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="notes">Notes</div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm sheet-help" data-i18n-title="armor_points" data-i18n="armor_points-a">AP</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="hit_points" data-i18n="hit_points-a">HP</div></div>
|
||
<div class="sheet-th sheet-major"><div class="sheet-number-width-sm" data-i18n="enc">ENC</div></div>
|
||
<div class="sheet-th sheet-major"><div class="sheet-equipment-location" data-i18n="location">Location</div></div>
|
||
</div>
|
||
<fieldset class="repeating_meleeweapon">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_favored}" name="attr_favored" value="1"><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-weapon-name sheet-text-left" title="@{$ID_name}" name="attr_name">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this weapon" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d8" title="%{$ID_damage}" name="roll_btn" value="@{rollval}">h</button></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-damage" title="@{$ID_damage}" name="attr_damage"></div>
|
||
<div class="sheet-td"><input type="checkbox" name="attr_damage_mod_toggle" title="@{$ID_damage_mod_toggle}" value="@{damage_mod}" checked><span class="sheet-checkico">+</span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-size" title="@{$ID_size}" name="attr_size"></div>
|
||
<div class="sheet-td sheet-toggle"><input type="text" class="sheet-weapon-reach" title="@{$ID_reach}" name="attr_reach"></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_notes}" name="attr_notes"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_ap}" name="attr_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_hp}" name="attr_hp" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_hp|max}" name="attr_hp_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td sheet-major"><input type="number" class="sheet-number-width-sm" title="@{$ID_enc}" name="attr_enc" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-major">
|
||
<select class="sheet-equipment-location sheet-text-center" title="@{$ID_location}" name="attr_location">
|
||
<option value="loadout" data-i18n="worn" selected>Worn</option>
|
||
<option value="pack" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div hidden>
|
||
<input type="text" name="attr_rollval" value="">
|
||
<button type="action" name="act_roll"></button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Ranged Weapons -->
|
||
<div>
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th"><div class="sheet-checkbox-width"><span class="sheet-pictos sheet-help" data-i18n-title="include_in_combat_rolls">S</span></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-name" data-i18n="ranged_weapon">Ranged Weapon</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-damage" data-i18n="damage">Damage</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos sheet-help" data-i18n-title="damage_modifier">+</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-size" data-i18n="force">Force</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-reach" data-i18n="range">Range</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width-xs" data-i18n-title="impale_size" data-i18n="impale_size-a">IS</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="ammunition" data-i18n="ammunition-a">Ammo</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="load">Load</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="notes">Notes</div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm sheet-help" data-i18n-title="armor_points" data-i18n="armor_points-a">AP</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="hit_points" data-i18n="hit_points-a">HP</div></div>
|
||
<div class="sheet-th sheet-major"><div class="sheet-number-width-sm" data-i18n="enc">ENC</div></div>
|
||
<div class="sheet-th sheet-major"><div class="sheet-equipment-location" data-i18n="location">Location</div></div>
|
||
</div>
|
||
<fieldset class="repeating_rangedweapon">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_favored}" name="attr_favored" value="1"><span class="sheet-checkico">S</span></div>
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-weapon-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this weapon" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d8" title="%{$ID_damage}" name="roll_btn" value="@{rollval}">h</button></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-damage" title="@{$ID_damage}" name="attr_damage" value=""></div>
|
||
<div class="sheet-td"><input type="checkbox" name="attr_damage_mod_toggle" title="@{$ID_damage_mod_toggle}" value="@{damage_mod}"><span class="sheet-checkico">+</span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-size" title="@{$ID_force}" name="attr_force" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-reach" title="@{$ID_range}" name="attr_range" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width-xs" title="@{$ID_impale_size}" name="attr_impale_size" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo}" name="attr_ammo" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo|max}" name="attr_ammo_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width" title="@{$ID_load}" name="attr_load" value=""></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_notes}" name="attr_notes" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_ap}" name="attr_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_hp}" name="attr_hp" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_hp|max}" name="attr_hp_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td sheet-major"><input type="number" class="sheet-number-width-sm" title="@{$ID_enc}" name="attr_enc" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-major">
|
||
<select class="sheet-equipment-location sheet-text-center" title="@{$ID_location}" name="attr_location">
|
||
<option value="loadout" data-i18n="worn" selected>Worn</option>
|
||
<option value="pack" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div hidden>
|
||
<input type="text" name="attr_rollval" value="">
|
||
<button type="action" name="act_roll"></button>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Armor -->
|
||
<div id="armor" class="sheet-section sheet-anchor-adjust-x2 sheet-creature">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow"><h2><span data-i18n="armor">Armor</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Armor">?</button></h2></div>
|
||
<div>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="worn_armor_enc">Worn Armor ENC</label>
|
||
<select class="sheet-auto-width sheet-rmargin" name="attr_half_effective_armor_enc">
|
||
<option value="0" selected>1/2</option>
|
||
<option value="1">1/4</option>
|
||
</select>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="armor_penalty">Armor Penalty</label>
|
||
<input type="number" class="sheet-number-width-sm" title="@{armor_penalty}" name="attr_armor_penalty" value="0" readonly>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th" data-i18n="hit_location">Hit Location</div>
|
||
<div class="sheet-th" data-i18n="type">Type</div>
|
||
<div class="sheet-th sheet-help" data-i18n-title="armor_points" data-i18n="ap">AP</div>
|
||
<div class="sheet-th" data-i18n="enc">ENC</div>
|
||
<div class="sheet-th sheet-full-width" data-i18n="notes">Notes</div>
|
||
<div class="sheet-th" data-i18n="location">Location</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location1_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location1_armor_type}" name="attr_location1_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location1_ap}" name="attr_location1_ap" value="0">/<input type="number" class="sheet-rval" title="@{location1_ap|max}" name="attr_location1_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location1_armor_enc}" step="any" name="attr_location1_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location1_armor_notes}" name="attr_location1_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location1_armor_equipped}" name="attr_location1_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location2_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location2_armor_type}" name="attr_location2_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location2_ap}" name="attr_location2_ap" value="0">/<input type="number" class="sheet-rval" title="@{location2_ap|max}" name="attr_location2_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location2_armor_enc}" step="any" name="attr_location2_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location2_armor_notes}" name="attr_location2_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location2_armor_equipped}" name="attr_location2_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location3_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location3_armor_type}" name="attr_location3_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location3_ap}" name="attr_location3_ap" value="0">/<input type="number" class="sheet-rval" title="@{location3_ap|max}" name="attr_location3_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location3_armor_enc}" step="any" name="attr_location3_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location3_armor_notes}" name="attr_location3_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location3_armor_equipped}" name="attr_location3_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location4_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location4_armor_type}" name="attr_location4_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location4_ap}" name="attr_location4_ap" value="0">/<input type="number" class="sheet-rval" title="@{location4_ap|max}" name="attr_location4_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location4_armor_enc}" step="any" name="attr_location4_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location4_armor_notes}" name="attr_location4_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location4_armor_equipped}" name="attr_location4_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location5_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location5_armor_type}" name="attr_location5_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location5_ap}" name="attr_location5_ap" value="0">/<input type="number" class="sheet-rval" title="@{location5_ap|max}" name="attr_location5_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location5_armor_enc}" step="any" name="attr_location5_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location5_armor_notes}" name="attr_location5_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location5_armor_equipped}" name="attr_location5_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location6_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location6_armor_type}" name="attr_location6_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location6_ap}" name="attr_location6_ap" value="0">/<input type="number" class="sheet-rval" title="@{location6_ap|max}" name="attr_location6_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location6_armor_enc}" step="any" name="attr_location6_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location6_armor_notes}" name="attr_location6_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location6_armor_equipped}" name="attr_location6_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location2to7_display" value="1">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location7_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location7_armor_type}" name="attr_location7_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location7_ap}" name="attr_location7_ap" value="0">/<input type="number" class="sheet-rval" title="@{location7_ap|max}" name="attr_location7_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location7_armor_enc}" step="any" name="attr_location7_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location7_armor_notes}" name="attr_location7_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location7_armor_equipped}" name="attr_location7_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location8_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location8_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location8_armor_type}" name="attr_location8_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location8_ap}" name="attr_location8_ap" value="0">/<input type="number" class="sheet-rval" title="@{location8_ap|max}" name="attr_location8_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location8_armor_enc}" step="any" name="attr_location8_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location8_armor_notes}" name="attr_location8_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location8_armor_equipped}" name="attr_location8_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location9_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location9_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location9_armor_type}" name="attr_location9_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location9_ap}" name="attr_location9_ap" value="0">/<input type="number" class="sheet-rval" title="@{location9_ap|max}" name="attr_location9_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location9_armor_enc}" step="any" name="attr_location9_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location9_armor_notes}" name="attr_location9_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location9_armor_equipped}" name="attr_location9_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location10_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location10_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location10_armor_type}" name="attr_location10_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location10_ap}" name="attr_location10_ap" value="0">/<input type="number" class="sheet-rval" title="@{location10_ap|max}" name="attr_location10_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location10_armor_enc}" step="any" name="attr_location10_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location10_armor_notes}" name="attr_location10_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location10_armor_equipped}" name="attr_location10_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location11_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location11_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location11_armor_type}" name="attr_location11_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location11_ap}" name="attr_location11_ap" value="0">/<input type="number" class="sheet-rval" title="@{location11_ap|max}" name="attr_location11_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location11_armor_enc}" step="any" name="attr_location11_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location11_armor_notes}" name="attr_location11_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location11_armor_equipped}" name="attr_location11_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_location12_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td sheet-text-center"><span name="attr_location12_name"></span></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{location12_armor_type}" name="attr_location12_armor_type" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-impval sheet-number-width sheet-flex">
|
||
<input type="number" class="sheet-lval" title="@{location12_ap}" name="attr_location12_ap" value="0">/<input type="number" class="sheet-rval" title="@{location12_ap|max}" name="attr_location12_ap_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{location12_armor_enc}" step="any" name="attr_location12_armor_enc" min="0" value="0"></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-text-center sheet-full-width" title="@{location12_armor_notes}" name="attr_location12_armor_notes" value=""></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-text-center sheet-auto-width" title="@{location12_armor_equipped}" name="attr_location12_armor_equipped">
|
||
<option value="1" data-i18n="worn" selected>Worn</option>
|
||
<option value="0" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Gear, ENC & Wealth -->
|
||
<div id="gear" class="sheet-flex sheet-gap sheet-anchor-adjust-x2 sheet-creature">
|
||
<!-- Gear -->
|
||
<div class="sheet-section sheet-half-width">
|
||
<h2><span data-i18n="gear">Gear</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Gear">?</button></h2>
|
||
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow"><span data-i18n="item">Item</span></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="enc">ENC</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n-title="quantity" title="Quantity">#</div></div>
|
||
<div class="sheet-th"><div class="sheet-equipment-location" data-i18n="location">Location</div></div>
|
||
<div class="sheet-th"><div class="sheet-checkbox-width sheet-pictos" data-i18n-title="details-tooltip">E</div></div>
|
||
</div>
|
||
<fieldset class="repeating_equipment">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-usrinput sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this item" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-button-width sheet-die sheet-pictos" title="%{$ID_effect}" name="roll_effect" value="@{roll_display}&{template:effect} {{name=@{name}}} {{character=@{character_name}}} {{traits=@{traits}}} {{description=@{description}}}">e</button></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_enc}" name="attr_enc" value="0" min="0" step="any"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_quantity}" name="attr_quantity" value="1" min="0" step="1"></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-equipment-location sheet-text-center" title="@{$ID_location}" name="attr_location">
|
||
<option value="loadout" data-i18n="worn" selected>Worn</option>
|
||
<option value="pack" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td"><input type="checkbox" title="@{$ID_details}" name="attr_details" value="1"><span class="sheet-checkico">E</span></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-toggle" name="attr_details" value="0">
|
||
<div class="sheet-toggle sheet-flex sheet-gap">
|
||
<div>
|
||
<div><label class="sheet-left" data-i18n="traits">Traits</label></div>
|
||
<textarea class="sheet-gear-note" name="attr_traits" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<div><label class="sheet-left" data-i18n="description">Description</label></div>
|
||
<textarea class="sheet-gear-note" name="attr_description" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Wealth & ENC -->
|
||
<div class="sheet-half-width">
|
||
<!-- Wealth -->
|
||
<div class="sheet-section sheet-full-width sheet-creature">
|
||
<h2><span data-i18n="wealth">Wealth</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Wealth">?</button></h2>
|
||
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex sheet-full-width">
|
||
<div class="sheet-th sheet-grow"><span data-i18n="currency">Currency</span></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="value">Value</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="enc">ENC</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n-title="quantity">#</div></div>
|
||
<div class="sheet-th"><div class="sheet-equipment-location" data-i18n="location">Location</div></div>
|
||
</div>
|
||
<fieldset class="repeating_currency">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this currency" readonly>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_value}" name="attr_value" value="1"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_enc}" name="attr_enc" value="0" min="0" step=".01"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" title="@{$ID_quantity}" name="attr_quantity" value="1" min="0"></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-equipment-location" title="@{$ID_location}" name="attr_location">
|
||
<option value="loadout" data-i18n="worn" selected>Worn</option>
|
||
<option value="pack" data-i18n="pack">Pack</option>
|
||
<option value="mount" data-i18n="transport">Transport</option>
|
||
<option value="camp" data-i18n="camp">Camp</option>
|
||
<option value="stash" data-i18n="stash">Stash</option>
|
||
<option value="homebase" data-i18n="homebase">Homebase</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="income">Income</label></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-full-width sheet-text-left" title="@{income}" name="attr_income" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="expenses">Expenses</label></div>
|
||
<div class="sheet-td sheet-full-width"><input type="text" class="sheet-full-width sheet-text-left" title="@{expenses}" name="attr_expenses" value=""></div>
|
||
</div>
|
||
</div>
|
||
|
||
<label class="sheet-left" data-i18n="other">Other</label>
|
||
<textarea class="sheet-wealth-notes" name="attr_wealth_other" value=""></textarea>
|
||
</div>
|
||
|
||
<!-- ENC -->
|
||
<div class="sheet-section sheet-full-width sheet-creature">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-grow"><h2 data-i18n="encumbrance">Encumbrance</h2></div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div>
|
||
<label class="sheet-left shet-rmargin" data-i18n="average_species_siz">Average Species SIZ</label>
|
||
<input type="number" class="sheet-number-width-sm sheet-text-center" data-i18n-title="@{avg_species_siz}" name="attr_avg_species_siz" value="13">
|
||
</div>
|
||
<div><input type='checkbox' data-i18n-title="pack_equipped" name='attr_pack_equipped' value="1" checked><span class="sheet-checkico">O</span></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th" data-i18n="temporary-a">Temp</div>
|
||
<div class="sheet-th" data-i18n="current">Current</div>
|
||
<div class="sheet-th" data-i18n="carrying_load">Carrying Load</div>
|
||
<div class="sheet-th" data-i18n="skills">Skills</div>
|
||
<div class="sheet-th" data-i18n="move">Move</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td"><input type="number" step="any" class="sheet-number-width" title="@{encumbrance_temp}" name="attr_encumbrance_temp" value="0"></div>
|
||
<div class="sheet-td"><input type="number" step="any" class="sheet-number-width sheet-value" title="@{encumbrance_current}" name="attr_encumbrance_current" value="0" readonly></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-full-width sheet-readonly sheet-text-center" title="@{encumbrance_load}" name="attr_encumbrance_load">
|
||
<option value="0" data-i18n="normal" selected>Normal</option>
|
||
<option value="1" data-i18n="medium">Medium</option>
|
||
<option value="2" data-i18n="strenuous">Strenuous</option>
|
||
<option value="3" data-i18n="impossible">Impossible</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-full-width sheet-readonly sheet-text-center" title="@{encumbrance_skills}" name="attr_encumbrance_skills">
|
||
<option value="0" data-i18n="standard" selected>Standard</option>
|
||
<option value="1" data-i18n="1_grade_harder">1 grade harder</option>
|
||
<option value="2" data-i18n="2_grades_harder">2 grades harder</option>
|
||
<option value="3" data-i18n="impossible">Impossible</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-full-width sheet-readonly sheet-text-center" title="@{movement_rate_enc}" name="attr_movement_rate_enc">
|
||
<option value="+0" data-i18n="normal" selected>Normal</option>
|
||
<option value="-2">-2</option>
|
||
<option value="*.5" data-i18n="halved">Halved</option>
|
||
<option value="*0" data-i18n="impossible">Impossible</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Background -->
|
||
<div id="character-background" class="sheet-section sheet-anchor-adjust-x2 sheet-major">
|
||
<h2><span data-i18n="background">Background</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Background">?</button></h2>
|
||
|
||
<div class="sheet-flex sheet-gap sheet-bmargin">
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="organizations">Organizations</label>
|
||
<textarea class="sheet-background-notes" title="@{cults_notes}" name="attr_cults_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="contacts">Contacts</label>
|
||
<textarea class="sheet-background-notes" title="@{contacts_notes}" name="attr_contacts_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-flex sheet-gap sheet-bmargin">
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="community">Community</label>
|
||
<textarea class="sheet-background-notes" title="@{community_notes}" name="attr_community_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="allies">Allies</label>
|
||
<textarea class="sheet-background-notes" title="@{allies_notes}" name="attr_allies_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-flex sheet-gap sheet-bmargin">
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="family">Family</label>
|
||
<textarea class="sheet-background-notes" title="@{family_notes}" name="attr_family_notes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-half-width">
|
||
<label class="sheet-left" data-i18n="enemies">Enemies</label>
|
||
<textarea class="sheet-background-notes" title="@{enemies_notes}" name="attr_enemies_notes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Notes -->
|
||
<div id="notes" class="sheet-section sheet-anchor-adjust-x2">
|
||
<h2><span data-i18n="notes">Notes</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Notes">?</button></h2>
|
||
|
||
<textarea class="sheet-character-notes" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
|
||
<!-- Fatigue Details -->
|
||
<div id="fatigue-details" class="sheet-overlay">
|
||
<div class="sheet-popup">
|
||
<a class="close" href="#">×</a>
|
||
<h1 data-i18n="fatigue">Fatigue</h1>
|
||
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="skills">Skills</label></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-full-width sheet-readonly sheet-text-right" name="attr_fatigue_skills">
|
||
<option value="0" data-i18n="standard" selected>Standard</option>
|
||
<option value="1" data-i18n="hard">Hard</option>
|
||
<option value="2" data-i18n="formidable">Formidable</option>
|
||
<option value="3" data-i18n="herculean">Herculean</option>
|
||
<option value="4" data-i18n="hopeless">Hopeless</option>
|
||
<option value="5" data-i18n="no_action_allowed">No Action Allowed</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="action_points">Action Points</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-right" title="@{action_points_fatigue}" name="attr_action_points_fatigue" value="0" readonly></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="initiative">Initiative</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-right" title="@{initiative_bonus_fatigue}" name="attr_initiative_bonus_fatigue" value="0" readonly></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="movement_rate">Movement Rate</label></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-full-width sheet-readonly sheet-text-right" name="attr_movement_rate_fatigue">
|
||
<option value="+0" selected>0</option>
|
||
<option value="-1">-1</option>
|
||
<option value="-2">-2</option>
|
||
<option value="*.5" i18n-data="halved">Halved</option>
|
||
<option value="*0" i18n-data="impossible">Impossible</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="recovery">Recovery</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-right" title="@{fatigue_recovery}" name="attr_fatigue_recovery" value="-"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<input type="hidden" name="attr_fatigue_max" value="9">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div style="width: 660px" class="sheet-ship">
|
||
<!-- Stat Table -->
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th sheet-text-left"><label class="sheet-left" data-i18n="name">Name</label></div>
|
||
<div class="sheet-th sheet-full-width"><input type="text" class="sheet-full-width" title="@{character_name}" name="attr_character_name"></div>
|
||
<div class="sheet-th sheet-text-left"><label class="sheet-left" data-i18n="condition">Condition</label></div>
|
||
<div class="sheet-th">
|
||
<select class="sheet-auto-width sheet-text-center sheet-inverted" title="@{ship_condition}" name="attr_ship_condition">
|
||
<option value="ship_shape" selected data-i18n="ship_shape">Ship Shape</option>
|
||
<option value="seaworthy" data-i18n="seaworthy">Seaworthy</option>
|
||
<option value="battered" data-i18n="battered">Battered</option>
|
||
<option value="swamped" data-i18n="swamped">Swamped</option>
|
||
<option value="sinking" data-i18n="sinking">Sinking</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="movement">Movement</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="text" class="sheet-full-width sheet-text-center" title="@{ship_movement}" name="attr_ship_movement" value=""></div>
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="speed">Speed</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width" title="@{ship_speed}" name="attr_ship_speed" value="-" readonly></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="crew">Crew</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="text" class="sheet-full-width sheet-text-center" title="@{ship_crew}" name="attr_ship_crew" value=""></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="dimensions">Dimensions</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="text" class="sheet-full-width sheet-text-center" title="@{ship_dimensions}" name="attr_ship_dimensions" value=""></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="capacity">Capacity</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="text" class="sheet-full-width sheet-text-center" title="@{ship_capacity}" name="attr_ship_capacity" value=""></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="size">Size</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width">
|
||
<select class="sheet-full-width sheet-text-center" title="@{ship_size}" name="attr_ship_size">
|
||
<option value="personal" selected data-i18n="personal">Personal</option>
|
||
<option value="small" data-i18n="small">Small</option>
|
||
<option value="medium" data-i18n="medium">Medium</option>
|
||
<option value="large" data-i18n="large">Large</option>
|
||
<option value="huge" data-i18n="huge">Huge</option>
|
||
<option value="enormous" data-i18n="enormous">Enormous</option>
|
||
<option value="colossal" data-i18n="colossal">Colossal</option>
|
||
<option value="beyond_colossal" data-i18n="beyond_colossal">Beyond Colossal</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="hull_type">Hull TYpe</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width">
|
||
<select class="sheet-full-width sheet-text-center" title="@{ship_hull}" name="attr_ship_hull" data-i18n-list="ship_hull-order">
|
||
<option value="utility" data-i18n-list-item="utility" selected data-i18n="utility">Utility</option>
|
||
<option value="galley" data-i18n-list-item="galley" data-i18n="galley">Galley</option>
|
||
<option value="transport" data-i18n-list-item="transport" data-i18n="transport">Transport</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="armor">Armor</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="number" class="sheet-full-width sheet-text-center" title="@{ship_ap}" name="attr_ship_ap" value="0" min="0"></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="hit_points">Hit Points</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width">
|
||
<div class="sheet-flex sheet-gap">
|
||
<input type="number" class="sheet-grow sheet-text-center" title="@{ship_hp}" name="attr_ship_hp" value="0"> / <input type="number" class="sheet-grow sheet-bold sheet-text-center" title="@{ship_hp|max}" name="attr_ship_hp_max" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><label class="sheet-left sheet-help" data-i18n-title="repair_modifier" data-i18n="repair_modifier-a">Repair Mod</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-center" title="@{ship_repair_mod}" name="attr_ship_repair_mod" value="-" readonly></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><button type="roll" class="sheet-label-left" title="%{unit_command}" name="roll_ship_seaworthiness" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{seaworthiness}}} {{ship_condition_skills=[[@{ship_condition_skills}]]}} {{roll=[[1d100]]}} {{original=@{ship_seaworthiness}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{ship_seaworthiness}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{ship_seaworthiness}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{ship_seaworthiness}*2)+@{penalty})]]}} {{easy=[[ceil((@{ship_seaworthiness}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{ship_seaworthiness}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{ship_seaworthiness}*1.5)+@{penalty})]]}} {{standard=[[@{ship_seaworthiness}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{ship_seaworthiness}+@{penalty})/10)]]}} {{standard_fumble=[[(@{ship_seaworthiness}+@{penalty})]]}} {{hard=[[ceil((@{ship_seaworthiness}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{ship_seaworthiness}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{ship_seaworthiness}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{ship_seaworthiness}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{ship_seaworthiness}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{ship_seaworthiness}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{ship_seaworthiness}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{ship_seaworthiness}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{ship_seaworthiness}*@{herculean_mod})+@{penalty})]]}}" data-i18n="seaworthiness">Seaworthiness</button></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width">
|
||
<div class="sheet-flex sheet-gap">
|
||
<input type="number" class="sheet-grow sheet-text-center" title="@{ship_seaworthiness}" name="attr_ship_seaworthiness" value="0" min="0">%
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="difficulty">Difficulty</label></div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-auto-width sheet-text-center sheet-readonly" name="attr_ship_condition_skills">
|
||
<option value="1" selected data-i18n="standard">Standard</option>
|
||
<option value="2" data-i18n="hard">Hard</option>
|
||
<option value="3" data-i18n="formidable">Formidable</option>
|
||
<option value="4" data-i18n="herculean">Herculean</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="range">Range</label></div>
|
||
<div class="sheet-td sheet-text-left sheet-full-width"><input type="number" class="sheet-full-width sheet-text-center" title="@{ship_range}" name="attr_ship_range" value="0" readonly></div>
|
||
<div class="sheet-td"></div>
|
||
<div class="sheet-td"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Armaments -->
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex sheet-tmargin">
|
||
<div class="sheet-th"><div class="sheet-weapon-name" data-i18n="armament">Armament</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-damage" data-i18n="damage">Damage</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-reach" data-i18n="range">Range</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="ammunition" data-i18n="ammunition-a">Ammo</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="load">Load</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="notes">Notes</div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm sheet-help" data-i18n-title="armor_points" data-i18n="armor_points-a">AP</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="hit_points" data-i18n="hit_points-a">HP</div></div>
|
||
</div>
|
||
<fieldset class="repeating_rangedweapon">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-weapon-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this weapon" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d8" title="%{$ID_damage}" name="roll_damage" value="@{roll_display}&{template:weapon} {{name=@{name}}} {{character=@{character_name}}} {{damage=[[@{damage}+@{damage_mod_toggle}]]}} {{force=@{force}}} {{range=@{range}}} {{impale_size=@{impale_size}}} {{notes=@{notes}}}">h</button></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-damage" title="@{$ID_damage}" name="attr_damage" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-reach" title="@{$ID_range}" name="attr_range" value=""></div>
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo}" name="attr_ammo" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo|max}" name="attr_ammo_max" step="1" min="0" value="0">
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width" title="@{$ID_load}" name="attr_load" value=""></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_notes}" name="attr_notes" value=""></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm" title="@{$ID_ap}" name="attr_ap" step="1" min="0" value="0"></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_hp}" name="attr_hp" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_hp|max}" name="attr_hp_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
<div hidden>
|
||
<input type="checkbox" name="attr_favored" value="1">
|
||
<input type="text" name="attr_force" value="">
|
||
<input type="text" name="attr_impale_size" value="">
|
||
<input type="checkbox" name="attr_damage_mod_toggle" title="@{$ID_damage_mod_toggle}" value="@{damage_mod}">
|
||
<input type="number" name="attr_enc" value="0">
|
||
<input type="text" name="attr_location" value="loadout">
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<!-- Notes -->
|
||
<textarea class="sheet-full-width" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
<div class="sheet-vehicle">
|
||
<input type="hidden" class="sheet-vehicle-type-control" name="attr_vehicle_type" value="disabled">
|
||
<div style="width: 660px;" class="sheet-vehicle-mythras">
|
||
<div class="sheet-flex sheet-gap sheet-bmargin">
|
||
<!--Vehicle Stats -->
|
||
<div class="sheet-flex-column sheet-grow">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow sheet-th"><input type="text" class="sheet-full-width" title="@{character_name}" name="attr_character_name" value=""></div>
|
||
<div class="sheet-th"><label class="sheet-left" data-i18n="type">Type</label></div>
|
||
<div class="sheet-th">
|
||
<select class="sheet-auto-width sheet-inverted sheet-text-center" name="attr_mythras_vehicle_type">
|
||
<option value="terrestrial" data-i18n="terrestrial" selected>Terrestrial</option>
|
||
<option value="spaceship" data-i18n="starship">Starship</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-flex sheet-grow">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="size">Size</label></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<select class="sheet-full-width sheet-text-center" title="@{vehicle_size}" name="attr_vehicle_size">
|
||
<option value="1" data-i18n="small" selected >Small</option>
|
||
<option value="2" data-i18n="medium">Medium</option>
|
||
<option value="3" data-i18n="large">Large</option>
|
||
<option value="4" data-i18n="huge">Huge</option>
|
||
<option value="5" data-i18n="enormous">Enormous</option>
|
||
<option value="6" data-i18n="colossal">Colossal</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex sheet-grow">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="speed">Speed</label></div>
|
||
<div class="sheet-td sheet-grow">
|
||
<select class="sheet-full-width sheet-text-center" title="@{vehicle_speed}" name="attr_vehicle_speed">
|
||
<option value="ponderous" data-i18n="ponderous" selected>Ponderous</option>
|
||
<option value="sluggish" data-i18n="sluggish">Sluggish</option>
|
||
<option value="slow" data-i18n="slow">Slow</option>
|
||
<option value="mediocre" data-i18n="mediocre">Mediocre</option>
|
||
<option value="gentle" data-i18n="gentle">Gentle</option>
|
||
<option value="moderate" data-i18n="moderate">Moderate</option>
|
||
<option value="rapid" data-i18n="rapid">Rapid</option>
|
||
<option value="fast" data-i18n="fast">Fast</option>
|
||
<option value="fleet" data-i18n="fleet">Fleet</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="traits">Traits</label></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{vehicle_traits}" name="attr_vehicle_traits" value=""></div>
|
||
</div>
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="hull">Hull</label></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width sheet-impval" title="@{vehicle_hull}" name="attr_vehicle_hull" value="0"></div>
|
||
</div>
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="structure">Structure</label></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_structure}" name="attr_vehicle_structure" value="0">/<input type="number" class="sheet-rval" title="@{vehicle_structure|max}" name="attr_vehicle_structure_max" value="0"></div></div>
|
||
</div>
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td"><label class="sheet-left" data-i18n="shields">Shields</label></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_shields}" name="attr_vehicle_shields" value="0">/<input type="number" class="sheet-rval" title="@{vehicle_shields|max}" name="attr_vehicle_shields_max" value="0"></div></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<textarea class="sheet-full-width sheet-full-height" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Systems -->
|
||
<div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"><button type="roll" class="sheet-link" title="%{hit_location}" name="roll_hit_location" value="@{hit_location_roll}" data-i18n="roll">Roll</button></div>
|
||
<div class="sheet-th" data-i18n="system">System</div>
|
||
<!-- Vehicle system roll values -->
|
||
<div hidden>
|
||
<input type="text" name="attr_vehicle_system_die" value="1d8">
|
||
<input type="text" name="attr_vehicle_system_roll" value="@{roll_display}&{template:system} {{name=^{system} (@{vehicle_system_die})}} {{character=@{character_name}}} {{roll=[[@{vehicle_system_die}]]}} {{hull=@{vehicle_hull}}} {{structure=@{vehicle_structure}}} {{structure_max=@{vehicle_structure|max}}} {{shields=@{vehicle_shields}}} {{shields_max=@{vehicle_shields|max}}} {{system1_name=@{vehicle_system1_name}}} {{system1_hits=@{vehicle_system1_hits}}} {{system1_hits_max=@{vehicle_system1_hits|max}}} {{system2_name=@{vehicle_system2_name}}} {{system2_hits=@{vehicle_system2_hits}}} {{system2_hits_max=@{vehicle_system2_hits|max}}} {{system3_name=@{vehicle_system3_name}}} {{system3_hits=@{vehicle_system3_hits}}} {{system3_hits_max=@{vehicle_system3_hits|max}}} {{system4_name=@{vehicle_system4_name}}} {{system4_hits=@{vehicle_system4_hits}}} {{system4_hits_max=@{vehicle_system4_hits|max}}} {{system5_name=@{vehicle_system5_name}}} {{system5_hits=@{vehicle_system5_hits}}} {{system5_hits_max=@{vehicle_system5_hits|max}}} {{system6_name=@{vehicle_system6_name}}} {{system6_hits=@{vehicle_system6_hits}}} {{system6_hits_max=@{vehicle_system6_hits|max}}} {{system7_name=@{vehicle_system7_name}}} {{system7_hits=@{vehicle_system7_hits}}} {{system7_hits_max=@{vehicle_system7_hits|max}}} {{system8_name=@{vehicle_system8_name}}} {{system8_hits=@{vehicle_system8_hits}}} {{system8_hits_max=@{vehicle_system8_hits|max}}} {{system9_name=@{vehicle_system9_name}}} {{system9_hits=@{vehicle_system9_hits}}} {{system9_hits_max=@{vehicle_system9_hits|max}}} {{system10_name=@{vehicle_system10_name}}} {{system10_hits=@{vehicle_system10_hits}}} {{system10_hits_max=@{vehicle_system10_hits|max}}}" disabled>
|
||
</div>
|
||
<div class="sheet-th sheet-help" data-i18n-title="modifier" data-i18n="modifier-a">Mod</div>
|
||
<div class="sheet-th" data-i18n="hits">Hits</div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">1</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system1_name}" name="attr_vehicle_system1_name" value="Cargo Compartment"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system1_hits_mod}" name="attr_vehicle_system1_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system1_hits}" name="attr_vehicle_system1_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system1_hits|max}" name="attr_vehicle_system1_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">2</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system2_name}" name="attr_vehicle_system2_name" value="Communications"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system2_hits_mod}" name="attr_vehicle_system2_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system2_hits}" name="attr_vehicle_system2_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system2_hits|max}" name="attr_vehicle_system2_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">3</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system3_name}" name="attr_vehicle_system3_name" value="Controls"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system3_hits_mod}" name="attr_vehicle_system3_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system3_hits}" name="attr_vehicle_system3_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system3_hits|max}" name="attr_vehicle_system3_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">4</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system4_name}" name="attr_vehicle_system4_name" value="Drive/Repulsorlift"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system4_hits_mod}" name="attr_vehicle_system4_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system4_hits}" name="attr_vehicle_system4_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system4_hits|max}" name="attr_vehicle_system4_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">5</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system5_name}" name="attr_vehicle_system5_name" value="Pilot/Passengers"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system5_hits_mod}" name="attr_vehicle_system5_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system5_hits}" name="attr_vehicle_system5_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system5_hits|max}" name="attr_vehicle_system5_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">6</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system6_name}" name="attr_vehicle_system6_name" value="Power Core"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system6_hits_mod}" name="attr_vehicle_system6_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system6_hits}" name="attr_vehicle_system6_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system6_hits|max}" name="attr_vehicle_system6_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">7</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system7_name}" name="attr_vehicle_system7_name" value="Sensors"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system7_hits_mod}" name="attr_vehicle_system7_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system7_hits}" name="attr_vehicle_system7_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system7_hits|max}" name="attr_vehicle_system7_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">8</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system8_name}" name="attr_vehicle_system8_name" value="Weapons"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system8_hits_mod}" name="attr_vehicle_system8_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system8_hits}" name="attr_vehicle_system8_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system8_hits|max}" name="attr_vehicle_system8_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_vehicle_starship_system_display" value="0">
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td">9</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system9_name}" name="attr_vehicle_system9_name" value="Sublight Drive"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system9_hits_mod}" name="attr_vehicle_system9_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system9_hits}" name="attr_vehicle_system9_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system9_hits|max}" name="attr_vehicle_system9_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
<div class="sheet-tr sheet-toggle">
|
||
<div class="sheet-td">10</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-text-center" title="@{vehicle_system10_name}" name="attr_vehicle_system10_name" value="Weapons"></div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width-sm sheet-dullval" title="@{vehicle_system10_hits_mod}" name="attr_vehicle_system10_hits_mod" value="0"></div>
|
||
<div class="sheet-td"><div class="sheet-impval sheet-number-width sheet-flex"><input type="number" class="sheet-lval" title="@{vehicle_system10_hits}" name="attr_vehicle_system10_hits" value="1">/<input type="number" class="sheet-rval" title="@{vehicle_system10_hits|max}" name="attr_vehicle_system10_hits_max" value="1" readonly></div></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Weapons -->
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th"><div class="sheet-weapon-name" data-i18n="weapon">Weapon</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-damage" data-i18n="damage">Damage</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-reach" data-i18n="range">Range</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="ammunition" data-i18n="ammunition-a">Ammo</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width" data-i18n="load">Load</div></div>
|
||
<div class="sheet-th sheet-grow" data-i18n="notes">Notes</div>
|
||
</div>
|
||
<fieldset class="repeating_rangedweapon">
|
||
<div class="sheet-opaque sheet-flex">
|
||
<div class="sheet-td sheet-hover-btn">
|
||
<input type="text" class="sheet-weapon-name sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this weapon" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d8" title="%{$ID_damage}" name="roll_damage" value="@{roll_display}&{template:weapon} {{name=@{name}}} {{character=@{character_name}}} {{damage=[[@{damage}+@{damage_mod_toggle}]]}} {{force=@{force}}} {{range=@{range}}} {{impale_size=@{impale_size}}} {{notes=@{notes}}}">h</button></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-damage" title="@{$ID_damage}" name="attr_damage"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-reach" title="@{$ID_range}" name="attr_range" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo}" name="attr_ammo" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo|max}" name="attr_ammo_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width" title="@{$ID_load}" name="attr_load"></div>
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width" title="@{$ID_notes}" name="attr_notes"></div>
|
||
</div>
|
||
</fieldset>
|
||
<div hidden>
|
||
<input type="checkbox" name="attr_favored" value="1">
|
||
<input type="text" name="attr_force" value="">
|
||
<input type="text" name="attr_impale_size" value="">
|
||
<input type="checkbox" name="attr_damage_mod_toggle" value="@{damage_mod}">
|
||
<input type="number" name="attr_ap" value="0">
|
||
<input type="number" name="attr_hp" value="0">
|
||
<input type="number" name="attr_hp_max" value="0">
|
||
<input type="number" name="attr_enc" value="0">
|
||
<input type="text" name="attr_location" value="loadout">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Frostbyte Style Vehicles -->
|
||
<div style="width: 860px" class="sheet-vehicle-frostbyte">
|
||
<input type="hidden" class="sheet-starship-toggle" name="attr_msvehicle_spaceship_toggle" value="0">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-half-width">
|
||
<!-- Vehicle Info -->
|
||
<div class="sheet-bmargin">
|
||
<!-- Name, Type & Size Rating -->
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow sheet-th"><input type="text" class="sheet-full-width sheet-text-left" title="@{character_name}" name="attr_character_name" value=""></div>
|
||
<div class="sheet-th"><label class="sheet-left" data-i18n="type">Type</label></div>
|
||
<div class="sheet-th">
|
||
<select class="sheet-auto-width sheet-text-center sheet-inverted" name="attr_msvehicle_type">
|
||
<!-- Ground Options -->
|
||
<option class="sheet-bold sheet-text-left" value="-" data-i18n="ground" disabled>Ground</option>
|
||
<option value="regular" data-i18n="regular" selected>Regular</option>
|
||
<option value="terrain" data-i18n="terrain">Terrain</option>
|
||
<option value="walker" data-i18n="walker">Walker</option>
|
||
<option value="burrower" data-i18n="burrower">Burrower</option>
|
||
<!-- Liquid Options -->
|
||
<option class="sheet-bold sheet-text-left" value="-" data-i18n="liquid" disabled>Liquid</option>
|
||
<option value="motor" data-i18n="surface_motor">Surface, Motor</option>
|
||
<option value="sail" data-i18n="surface_sail">Surface, Sail</option>
|
||
<option value="sub" data-i18n="sub">Sub</option>
|
||
<!-- Flight Options -->
|
||
<option class="sheet-bold sheet-text-left" value="-" data-i18n="flight" disabled>Flight</option>
|
||
<option value="wings" data-i18n="wings">Wings</option>
|
||
<option value="anti-grav" data-i18n="anti-grav">Anti-grav</option>
|
||
<option value="rotor_blades" data-i18n="rotor_blades">Rotor Blades</option>
|
||
<option value="hover_craft" data-i18n="hover_craft">Hover Craft</option>
|
||
<option value="gas_bag" data-i18n="gas_bag">Gas Bag</option>
|
||
<!-- Space Options -->
|
||
<option class="sheet-bold sheet-text-left" value="-" data-i18n="space" disabled>Space</option>
|
||
<option value="spaceship" data-i18n="starship">Starship</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-th">
|
||
<label class="sheet-checkbox">
|
||
<input type="checkbox" name="attr_fbvehicle_npc" value="1"><span style="border-color: whitesmoke">3</span>
|
||
<span data-i18n="non-player_character-a">NPC</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Stats -->
|
||
<div class="sheet-space-between sheet-gap">
|
||
<!-- Column 1 -->
|
||
<div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="speed">Speed</label></div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_speed}" name="attr_msvehicle_speed" value="0">
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="handling">Handling</label></div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_handling}" name="attr_msvehicle_handling" value="0">
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left">
|
||
<span data-i18n="size">Size</span>
|
||
<span class="sheet-starship">(<span class="sheet-help" data-i18n-title="size_rating" name="attr_msvehicle_size_rating"></span>)</span>
|
||
</label>
|
||
<input type="hidden" name="attr_msvehicle_size_rating" value="0">
|
||
</div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_size}" name="attr_msvehicle_size" value="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Column 2 -->
|
||
<div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="armor">Armor</label></div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_armor}" name="attr_msvehicle_armor" value="0">
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="shields">Shields</label></div>
|
||
<div class="sheet-impval sheet-number-width sheet-flex sheet-text-center"><input type="number" class="sheet-lval" title="@{msvehicle_shields}" name="attr_msvehicle_shields" value="0">/<input type="number" class="sheet-rval" title="@{msvehicle_shields|max}" name="attr_msvehicle_shields_max" value="0"></div>
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap sheet-starship">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="hyperdrive">Hyperdrive</label></div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_hyperspace}" name="attr_msvehicle_hyperspace" value="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Column 3 -->
|
||
<div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="hit_points">Hit Points</label></div>
|
||
<div class="sheet-impval sheet-number-width sheet-flex sheet-text-center"><input type="number" class="sheet-lval" title="@{msvehicle_hp}" name="attr_msvehicle_hp" value="0">/<input type="number" class="sheet-rval" title="@{msvehicle_hp|max}" name="attr_msvehicle_hp_max" value="0"></div>
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="recovery">Recovery</label></div>
|
||
<input type="number" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_recovery}" name="attr_msvehicle_recovery" value="0">
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="condition">Condition</label></div>
|
||
<input type="text" class="sheet-number-width sheet-impval sheet-text-center" title="@{msvehicle_condition}" name="attr_msvehicle_condition" value="-0%">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<input type="hidden" class="sheet-toggle" name="attr_fbvehicle_npc" value="0">
|
||
<div class="sheet-bmargin sheet-toggle">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow sheet-text-left" data-i18n="non-player_character-a">NPC</div>
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow">
|
||
<button type="roll" class="sheet-label-left" title="%{fbvehicle_gunnery}" name="roll_fbvehicle_gunnery" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{pilot}}} {{roll=[[1d100]]}} {{original=@{fbvehicle_gunnery}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fbvehicle_gunnery}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fbvehicle_gunnery}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fbvehicle_gunnery}*2)+@{penalty})]]}} {{easy=[[ceil((@{fbvehicle_gunnery}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fbvehicle_gunnery}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fbvehicle_gunnery}*1.5)+@{penalty})]]}} {{standard=[[@{fbvehicle_gunnery}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fbvehicle_gunnery}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fbvehicle_gunnery}+@{penalty})]]}} {{hard=[[ceil((@{fbvehicle_gunnery}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fbvehicle_gunnery}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fbvehicle_gunnery}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fbvehicle_gunnery}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fbvehicle_gunnery}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fbvehicle_gunnery}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fbvehicle_gunnery}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fbvehicle_gunnery}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fbvehicle_gunnery}*@{herculean_mod})+@{penalty})]]}}" data-i18n="gunnery">Gunnery</button>
|
||
</div>
|
||
<input type="number" class="sheet-impval sheet-number-width" title="@{fbvehicle_gunnery}" name="attr_fbvehicle_gunnery" value="0">%
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow">
|
||
<button type="roll" class="sheet-label-left" title="%{fbvehicle_pilot}" name="roll_fbvehicle_pilot" value="@{roll_display}&{template:skill} {{character=@{character_name}}} {{name=^{pilot}}} {{roll=[[1d100]]}} {{original=@{fbvehicle_pilot}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{fbvehicle_pilot}+@{augmentation})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{fbvehicle_pilot}*2)+@{penalty})/10)]]}} {{very_easy_fumble=[[((@{fbvehicle_pilot}*2)+@{penalty})]]}} {{easy=[[ceil((@{fbvehicle_pilot}+@{augmentation})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{fbvehicle_pilot}*1.5)+@{penalty})/10)]]}} {{easy_fumble=[[ceil((@{fbvehicle_pilot}*1.5)+@{penalty})]]}} {{standard=[[@{fbvehicle_pilot}+@{augmentation}+@{penalty}]]}} {{standard_crit=[[ceil((@{fbvehicle_pilot}+@{penalty})/10)]]}} {{standard_fumble=[[(@{fbvehicle_pilot}+@{penalty})]]}} {{hard=[[ceil((@{fbvehicle_pilot}+@{augmentation})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{fbvehicle_pilot}*.67)+@{penalty})/10)]]}} {{hard_fumble=[[ceil((@{fbvehicle_pilot}*.67)+@{penalty})]]}} {{formidable=[[ceil((@{fbvehicle_pilot}+@{augmentation})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{fbvehicle_pilot}*.5)+@{penalty})/10)]]}} {{formidable_fumble=[[ceil((@{fbvehicle_pilot}*.5)+@{penalty})]]}} {{herculean=[[ceil((@{fbvehicle_pilot}+@{augmentation})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{fbvehicle_pilot}*@{herculean_mod})+@{penalty})/10)]]}} {{herculean_fumble=[[ceil((@{fbvehicle_pilot}*@{herculean_mod})+@{penalty})]]}}" data-i18n="pilot">Pilot</button>
|
||
</div>
|
||
<input type="number" class="sheet-impval sheet-number-width" title="@{fbvehicle_pilot}" name="attr_fbvehicle_pilot" value="0">%
|
||
</div>
|
||
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="pilot_hit_points">Pilot Hit Points</label></div>
|
||
<div class="sheet-impval sheet-number-width sheet-flex sheet-text-center"><input type="number" class="sheet-lval" title="@{fbvehicle_pilot_hp}" name="attr_fbvehicle_pilot_hp" value="0">/<input type="number" class="sheet-rval" title="@{fbvehicle_pilot_hp|max}" name="attr_fbvehicle_pilot_hp_max" value="0"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Weapons -->
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow"><div data-i18n="weapon">Weapon</div></div>
|
||
<div class="sheet-th"><div class="sheet-button-width"></div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-damage" data-i18n="damage">Damage</div></div>
|
||
<div class="sheet-th"><div class="sheet-weapon-reach" data-i18n="range">Range</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width sheet-help" data-i18n-title="ammunition" data-i18n="ammunition-a">Ammo</div></div>
|
||
</div>
|
||
<fieldset class="repeating_rangedweapon">
|
||
<div class="sheet-opaque sheet-flex">
|
||
<div class="sheet-td sheet-grow sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this weapon" readonly>
|
||
</div>
|
||
<div class="sheet-td"><button type="roll" class="sheet-die sheet-d8" title="%{$ID_damage}" name="roll_damage" value="@{roll_display}&{template:weapon} {{name=@{name}}} {{character=@{character_name}}} {{damage=[[@{damage}+@{damage_mod_toggle}]]}} {{force=@{force}}} {{range=@{range}}} {{impale_size=@{impale_size}}} {{notes=@{notes}}}">h</button></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-damage" title="@{$ID_damage}" name="attr_damage"></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-weapon-reach" title="@{$ID_range}" name="attr_range" value=""></div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width sheet-text-center">
|
||
<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo}" name="attr_ammo" step="1" min="0" value="0">/<input type="number" class="sheet-number-width-xs" title="@{$ID_ammo|max}" name="attr_ammo_max" step="1" min="0" value="0">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<div hidden>
|
||
<input type="checkbox" name="attr_favored" value="1">
|
||
<input type="text" name="attr_force" value="">
|
||
<input type="text" name="attr_impale_size" value="">
|
||
<input type="checkbox" name="attr_damage_mod_toggle" value="@{damage_mod}">
|
||
<input type="number" name="attr_load" value="0">
|
||
<input type="number" name="attr_ap" value="0">
|
||
<input type="number" name="attr_hp" value="0">
|
||
<input type="number" name="attr_hp_max" value="0">
|
||
<input type="number" name="attr_enc" value="0">
|
||
<input type="text" name="attr_location" value="loadout">
|
||
<input type="text" name="attr_notes" value="">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Apps -->
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow"><div data-i18n="application">Application</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width"></div></div>
|
||
</div>
|
||
<fieldset class="repeating_msvehicleapp">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-grow"><input type="text" class="sheet-full-width sheet-text-left" title="@{$ID_name}" name="attr_name" value=""></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-number-width" title="@{$ID_points}" name="attr_points" value="+10%"></div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow" data-i18n="notes">Notes</div>
|
||
</div>
|
||
<textarea class="sheet-full-width" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
|
||
<!-- Modules & Attributes -->
|
||
<div class="sheet-half-width">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-grow sheet-text-left" data-i18n="attributes">Attributes</div>
|
||
</div>
|
||
<div class="sheet-bmargin">
|
||
<div class="sheet-starship sheet-space-between sheet-gap sheet-hl">
|
||
<label class="sheet-left" data-i18n="streamlined">Streamlined</label>
|
||
<div><input type="checkbox" title="@{msvehicle_streamlining}" name="attr_msvehicle_streamlining" value="1"><span>3</span></div>
|
||
</div>
|
||
<div class="sheet-space-between sheet-gap sheet-hl">
|
||
<label class="sheet-left" data-i18n="stealth">Stealth</label>
|
||
<input type="text" class="sheet-impval sheet-number-width" title="@{msvehicle_stealth}" name="attr_msvehicle_stealth" value="-0%">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-flex">
|
||
<div class="sheet-th sheet-starship sheet-text-center"><button type="roll" class="sheet-link sheet-number-width" title="%{hit_location}" name="roll_hit_location" value="@{hit_location_roll}">d100</button></div>
|
||
<div class="sheet-th sheet-grow"><div data-i18n="module">Module</div></div>
|
||
<div class="sheet-th"><div class="sheet-fb-module-type" data-i18n="type">Type</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm sheet-help" data-i18n-title="thrust_rating" data-i18n="thrust_rating-a">TR</div></div>
|
||
<div class="sheet-th sheet-starship"><div class="sheet-number-width sheet-help" data-i18n-title="hit_points" data-i18n="hit_points-a">HP</div></div>
|
||
<div class="sheet-th"><div class="sheet-number-width">#</div></div>
|
||
</div>
|
||
<!-- Frostbyte Vehicle hit location rolls -->
|
||
<div hidden>
|
||
<input type="text" name="attr_d100_hit_location_roll" value="@{roll_display}&{template:default} {{hitstyle=1}} {{name=^{hit_location} (d100)}} {{character=@{character_name}}} {{^{roll}=[[d100]]}}" disabled>
|
||
<input type="text" name="attr_d100_hit_location_low_roll" value="@{roll_display}&{template:default} {{hitstyle=1}} {{name=^{hit_location} (d50)}} {{character=@{character_name}}} {{^{roll}=[[d50]]}}" disabled>
|
||
<input type="text" name="attr_d100_hit_location_high_roll" value="@{roll_display}&{template:default} {{hitstyle=1}} {{name=^{hit_location} (d50+50)}} {{character=@{character_name}}} {{^{roll}=[[d50+50]]}}" disabled>
|
||
</div>
|
||
<div class="sheet-flex sheet-non-starship">
|
||
<div class="sheet-td sheet-grow">
|
||
<div class="sheet-full-width" data-i18n="movement_class">Movement Class</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-fb-module-type" data-i18n="other">Other</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width-sm"></div>
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" name="attr_fbvehicle_movement_class_count" value="0" readonly></div>
|
||
</div>
|
||
<fieldset class="repeating_fbvehiclemodule">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-td sheet-starship">
|
||
<input type="text" class="sheet-number-width" title="$ID_hitroll" name="attr_hitroll" value="">
|
||
</div>
|
||
<div class="sheet-td sheet-grow sheet-hover-btn">
|
||
<input type="text" class="sheet-full-width" title="@{$ID_name}" name="attr_name" value="">
|
||
<button type="roll" class="sheet-hover sheet-id" title="%{$ID_id}" name="roll_id" value="/w gm &{template:default} {{character=@{character_name}}} {{name=@{name}}} {{^{id}=@{id}}}">i</button>
|
||
<input type="hidden" name="attr_id" value="unset, please change any value in this module" readonly>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<select class="sheet-fb-module-type sheet-text-center" title="@{$ID_moduletype}" name="attr_moduletype" data-i18n-list="frostbyte_module_type-order">
|
||
<option value="other" data-i18n="other" selected>Other</option>
|
||
<option value="engine" data-i18n="engine" data-i18n-list-item="engine">Engine</option>
|
||
<option class="sheet-starship" value="hyperdrive" data-i18n="hyperdrive" data-i18n-list-item="hyperdrive">Hyperdrive</option>
|
||
<option value="maneuvering" data-i18n="maneuvering" data-i18n-list-item="maneuvering">Maneuvering</option>
|
||
</select>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-number-width-sm">
|
||
<input type="hidden" class="sheet-tr-type-control" name="attr_moduletype" value="other">
|
||
<input type="number" class="sheet-number-width-sm sheet-tr-type-show" title="@{$ID_rating}" name="attr_rating" value="0">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td sheet-starship">
|
||
<input type="number" class="sheet-impval sheet-number-width" title="@{$ID_hp}" name="attr_hp" value="0">
|
||
</div>
|
||
<div class="sheet-td"><input type="number" class="sheet-number-width" name="attr_count" value="0" step="any"></div>
|
||
</div>
|
||
</fieldset>
|
||
<div class="sheet-space-between sheet-gap">
|
||
<div class="sheet-grow"><label class="sheet-left" data-i18n="total">Total</label></div>
|
||
<input type="number" class="sheet-number-width" title="@{msvehicle_total_modules}" name="attr_msvehicle_total_modules" value="0" step="any" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-star-system">
|
||
<div class="sheet-flex sheet-gap">
|
||
<div style="min-width: 285px;" class="sheet-third-width">
|
||
<div class="sheet-table sheet-section">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="name">Name</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{character_name}" name="attr_character_name" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="subsector">Subsector</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_subsector}" name="attr_system_subsector" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="hex">Hex</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_hex}" name="attr_system_hex" value=""></div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-section">
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="star_type">Star Type</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_star}" name="attr_system_star" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="planets">Planets</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_planets}" name="attr_system_planets" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="habitable">Habitable</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_habitable}" name="attr_system_habitable" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="starports">Starports</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_starports}" name="attr_system_starports" value=""></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><label class="sheet-left" data-i18n="astroid_belt">Astroid Belt</label></div>
|
||
<div class="sheet-td"><input type="text" class="sheet-full-width sheet-text-left" title="@{system_astroid_belt}" name="attr_system_astroid_belt" value=""></div>
|
||
</div>
|
||
</div>
|
||
<label class="sheet-left" data-i18n="notes">Notes</label>
|
||
<textarea class="sheet-full-width" title="@{sheetnotes}" name="attr_sheetnotes" value=""></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<div class="sheet-section">
|
||
<h2 data-i18n="species">Species</h2>
|
||
<fieldset class="repeating_systemspecies">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="name">Name</label>
|
||
<input type="text" class="sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<textarea class="sheet-system-desc" title="@{sheet_description}" name="attr_description" value=""></textarea>
|
||
</fieldset>
|
||
</div>
|
||
<div class="sheet-section">
|
||
<h2 data-i18n="worlds">Worlds</h2>
|
||
<fieldset class="repeating_systemworld">
|
||
<label class="sheet-left sheet-rmargin" data-i18n="name">Name</label>
|
||
<input type="text" class="sheet-text-left" title="@{$ID_name}" name="attr_name" value="">
|
||
<textarea class="sheet-system-desc" title="@{sheet_description}" name="attr_description" value=""></textarea>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Popup Windows -->
|
||
<div id="help" class="sheet-overlay">
|
||
<div class="sheet-popup">
|
||
<a class="close" href="#">×</a>
|
||
<h1><span class=sheet-rmargin" data-i18n="help">Help</span> (v<span name="attr_version"></span>)</h1>
|
||
<input type="hidden" name="attr_version" value="2.7">
|
||
<!--<div class="sheet-warnmsg">
|
||
<p>If your sheet data failed to migrate from v2 to the new v3 sheet it is likely because of a bug discovered after launch. Clicking this button will attempt to redo that conversion now that patches have been deployed:</p>
|
||
<button type="action" name="act_redo-v3-upgrade">Redo v2 -> v3 Conversion</button>
|
||
</div>-->
|
||
<p data-i18n="help-paragraph">
|
||
Throughout the sheet you will find <span class="sheet-pictos">?</span> icons, like the one you clicked to open this pop-up. These will provide direct links to documentation covering that section of the sheet. In addition, the resources below may prove to be useful sources of information about the Mythras Roll20 sheet and/or Mythras in general.
|
||
</p>
|
||
<div class="sheet-flex sheet-gap">
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left" data-i18n="links"></label>
|
||
<ul>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://wiki.roll20.net/Mythras_Sheet" data-i18n="sheet_documentation">Sheet Documentation</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://wiki.roll20.net/Mythras" data-i18n="Mythras_Roll20_wiki_page">Mythras' Roll20 wiki page</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://github.com/Roll20/roll20-character-sheets/blob/master/Mythras/CHANGELOG.md" data-i18n="changelog">Changelog</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://github.com/DigitalPagan/Mythras-Roll20-Sheet/issues" data-i18n="report_a_bug">Report a Bug</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://app.roll20.net/users/103705" data-i18n="contact_sheet_author">Contact Sheet Author</button></li>
|
||
</ul>
|
||
</div>
|
||
<div class="sheet-grow">
|
||
<label class="sheet-left" data-i18n="communities"></label>
|
||
<ul>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://discord.gg/mythras-469341944888164352">Discord</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://www.tapatalk.com/groups/designmechanism/index.php" data-i18n="forums">Forums</button></li>
|
||
<li><button type="roll" class="sheet-link" value="/w gm https://www.reddit.com/r/Mythras/">Reddit</button></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="import" class="sheet-overlay">
|
||
<div class="sheet-popup">
|
||
<a class="close" href="#">×</a>
|
||
<h1><span data-i18n="import">Import</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Import">?</button></h1>
|
||
|
||
<div><label class="sheet-left sheet-rmargin" data-i18n="import_data">Import Data</label><span>#</span><input type="number" class="sheet-number-width-sm" title="@{import_character}" name="attr_import_character" value="1" min="1"></div>
|
||
<div><textarea class="sheet-full-width" name="attr_import_json_data" value=""></textarea></div>
|
||
<button type="action" name="act_import" class="sheet-full-width sheet-btn-style" data-i18n="import">Import</button>
|
||
|
||
<span style="color: red" name="attr_import_errors"></span>
|
||
</div>
|
||
</div>
|
||
<div id="configuration" class="sheet-overlay">
|
||
<div class="sheet-popup">
|
||
<a class="close" href="#">×</a>
|
||
<h1><span data-i18n="configuration">Configuration</span> <button type="roll" class="sheet-link sheet-link-ico" value="/w gm https://wiki.roll20.net/Mythras_Sheet#Configuration">?</button></h1>
|
||
|
||
<div class="sheet-bmargin">
|
||
<!-- Sheet Type -->
|
||
<input type="hidden" class="sheet-spirits-toggle" name="attr_spirits_enabled" value="1">
|
||
<div>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="sheet_type">Sheet Type</label>
|
||
<select data-i18n-list="sheet-type-order" title="@{sheet_type}" class="sheet-auto-width" name="attr_sheet_type">
|
||
<option value="battle_unit" data-i18n-list-item="battle_unit" data-i18n="battle_unit">Battle Unit</option>
|
||
<option value="creature" data-i18n-list-item="creature" data-i18n="creature">Creature</option>
|
||
<option value="pc" data-i18n-list-item="major_character" data-i18n="major_character" selected></option>
|
||
<option value="ship" data-i18n-list-item="ship" data-i18n="ship">Ship</option>
|
||
<option value="star_system" data-i18n-list-item="star_system" data-i18n="star_system">Star System</option>
|
||
<option value="spirit" class="sheet-spirits" data-i18n-list-item="spirit" data-i18n="spirit">Spirit</option>
|
||
<option value="vehicle" data-i18n-list-item="vehicle" data-i18n="vehicle">Vehicle></option>
|
||
</select>
|
||
</div>
|
||
|
||
<!-- Intellect -->
|
||
<div class="sheet-minor">
|
||
<label class="sheet-left sheet-rmargin" data-18n="intellect">Intellect</label>
|
||
<select class="sheet-auto-width" name="attr_int_type">
|
||
<option value="int-u" data-i18n="int-u" selected>INT</option>
|
||
<option value="ins-u" data-i18n="ins-u">INS</option>
|
||
</select>
|
||
</div>
|
||
|
||
<!-- Movement -->
|
||
<div class="sheet-minor">
|
||
<label class="sheet-left sheet-rmargin" data-18n="movement">Movement</label>
|
||
<select class="sheet-auto-width sheet-rmargin" name="attr_custom_movement_enabled">
|
||
<option data-i18n="standard" value="0" selected>Standard</option>
|
||
<option data-i18n="custom" value="1">Custom</option>
|
||
</select>
|
||
<input type="hidden" class="sheet-wide-toggle" name="attr_custom_movement_enabled" value="0">
|
||
<input type="text" class="sheet-toggle sheet-text-left" title="@{custom_movement}" name="attr_custom_movement" value="">
|
||
<span class="sheet-anti-toggle" data-i18n="species">Species</span>:
|
||
<input type="number" class="sheet-anti-toggle sheet-number-width-sm" title="@{movement_rate_species}" name="attr_movement_rate_species" value="6">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Campaign Settings -->
|
||
<div class="sheet-section">
|
||
<details>
|
||
<summary><h2 data-i18n="campaign_settings">Campaign Settings</h2></summary>
|
||
<div class="sheet-warnmsg">
|
||
<span data-i18n="settings-warning">These campaign settings are generally set by your GM and shouldn't be changed. They are provided here for visibility, and testing.</span>
|
||
</div>
|
||
|
||
<!-- Setting -->
|
||
<label class="sheet-left sheet-rmargin" data-18n="setting">Setting</label>
|
||
<select name="attr_setting_option" data-i18n-list="setting-order">
|
||
<option value="default" data-i18n="default" selected>Default</option>
|
||
<option value="after_the_vampire_wars" data-i18n-list-item="after_the_vampire_wars" data-i18n="after_the_vampire_wars">After the Vampire Wars</option>
|
||
<option value="classic_fantasy" data-i18n-list-item="classic_fantasy" data-i18n="classic_fantasy">Classic Fantasy</option>
|
||
<option value="destined" data-i18n-list-item="destined" data-i18n="destined">Destined</option>
|
||
<option value="fioracitta" data-i18n-list-item="fioracitta" data-i18n="fioracitta">Fioracitta</option>
|
||
<option value="luther_arkwright" data-i18n-list-item="luther_arkwright" data-i18n="luther_arkwright">Luther Arkwright</option>
|
||
<option value="lyonesse" data-i18n-list-item="lyonesse" data-i18n="lyonesse">Lyonesse</option>
|
||
<option value="m-space" data-i18n-list-item="m-space" data-i18n="m-space">M-Space</option>
|
||
<option value="monster_island" data-i18n-list-item="monster_island" data-i18n="monster_island">Monster Island</option>
|
||
<option value="mythic_babylon" data-i18n-list-item="mythic_babylon" data-i18n="mythic_babylon">Mythic Babylon</option>
|
||
<option value="mythic_britain" data-i18n-list-item="mythic_britain" data-i18n="mythic_britain">Mythic Britain</option>
|
||
<option value="mythic_constantinople" data-i18n-list-item="mythic_constantinople" data-i18n="mythic_constantinople">Mythic Constantinople</option>
|
||
<option value="mythic_rome" data-i18n-list-item="mythic_rome" data-i18n="mythic_rome">Mythic Rome</option>
|
||
<option value="mythras_imperative" data-i18n-list-item="mythras_imperative" data-i18n="mythras_imperative">Mythras Imperative</option>
|
||
<option value="odd_soot" data-i18n-list-item="add_soot" data-i18n="odd_soot">Odd Soot</option>
|
||
<option value="perceforest" data-i18n-list-item="perceforest" data-i18n="perceforest">Perceforest</option>
|
||
<option value="thennla" data-i18n-list-item="thennla" data-i18n="thennla">Thennla</option>
|
||
<option value="worlds_united" data-i18n-list-item="worlds_united" data-i18n="worlds_united">Worlds United</option>
|
||
</select>
|
||
<br>
|
||
|
||
<!-- Mechanical Systems -->
|
||
<h3 data-i18n="affiliations">Affiliations</h3>
|
||
<!-- Affiliations_enabled Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="affiliations">Affiliations</label>
|
||
<select name="attr_affiliations_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<h3 data-i18n="mechanical_systems">Mechanical Systems</h3>
|
||
<!-- Extended Conflict Resolution Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="extended_conflict_resolution">Extended Conflict Resolution</label>
|
||
<select name="attr_extended_conflict_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<!-- Simplified Combat Enabled Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="simplified_combat">Simplified Combat</label>
|
||
<select name="attr_simplified_combat_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<!-- Social Conflict Enabled Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="social_conflict">Social Conflict</label>
|
||
<select name="attr_social_conflict_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<!-- Special Effect List -->
|
||
<!--<label class="sheet-left sheet-rmargin" data-i18n="special_effects">Special Effects</label>
|
||
<select name="attr_special_effects_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="core" data-i18n="core">Core</option>
|
||
<option value="destined" data-i18n="destined">Destined</option>
|
||
<option value="imperative" data-i18n="mythras_imperative">Mythras Imperative</option>
|
||
<option value="lyonesse" data-i18n="lyonesse">Lyonesse</option>
|
||
</select>
|
||
<br> -->
|
||
<input type="hidden" name="attr_special_effects" value="core">
|
||
<!-- Spirits Enabled Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="spirits">Spirits</label>
|
||
<select name="attr_spirits_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<!-- Vehicles Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="vehicles">Vehicles</label>
|
||
<select name="attr_vehicle_type_option" data-i18n-list="vehicle_type-order">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="mythras" data-i18n="mythras">Mythras</option>
|
||
<option value="mspace" data-i18n="frostbyte">Frostbyte</option>
|
||
</select>
|
||
<br>
|
||
|
||
<!-- Attributes -->
|
||
<h3 data-i18n="attributes">Attributes</h3>
|
||
<!-- Action Points Calc Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="action_points">Action Points</label>
|
||
<select name="attr_action_points_calc_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="calculate" data-i18n="calculated">Calculated</option>
|
||
<option value="set_2">2</option>
|
||
<option value="set_3">3</option>
|
||
</select>
|
||
<input type="hidden" name="attr_action_points_calc" value="calculate">
|
||
<br>
|
||
<!-- Luck Points Rank Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="add_rank_to_luck">Add Rank to Luck</label>
|
||
<select name="attr_luck_points_rank_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<input type="hidden" name="attr_luck_points_rank" value="0">
|
||
<br>
|
||
<!-- Tenacity Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="tenacity">Tenacity</label>
|
||
<select name="attr_tenacity_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
|
||
<!-- Skills -->
|
||
<h3><span data-i18n="skills">Skills</span>/<span data-i18n="passions">Passions</span></h3>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="dependencies">Dependencies</label>
|
||
<select name="attr_dependencies_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
<!-- Herculan Modifier Option -->
|
||
<label class="sheet-left sheet-rmargin" data-i18n="herculean_modifier">Herculean Modifier</label>
|
||
<select name="attr_herculean_mod_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value=".1">1/10</option>
|
||
<option value=".2">1/5</option>
|
||
</select>
|
||
<input type="hidden" name="attr_herculean_mod" value=".1">
|
||
<br>
|
||
|
||
<!-- Abilities -->
|
||
<h3 data-i18n="abilities">Abilities</h3>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="ability_system">Ability System</label>
|
||
<select name="attr_ability_system_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="all" data-i18n="all">All</option>
|
||
<option value="core" data-i18n="core">Core</option>
|
||
<option value="after_the_vampire_wars" data-i18n="after_the_vampire_wars">After the Vampire Wars</option>
|
||
<option value="classic_fantasy" data-i18n="classic_fantasy">Classic Fantasy</option>
|
||
<option value="destined" data-i18n="destined">Destined</option>
|
||
<option value="luther_arkwright" data-i18n="luther_arkwright">Luther Arkwright</option>
|
||
<option value="lyonesse" data-i18n="lyonesse">Lyonesse</option>
|
||
<option value="mythic_babylon" data-i18n="mythic_babylon">Mythic Babylon</option>
|
||
<option value="mythic_britain" data-i18n="mythic_britain">Mythic Britain</option>
|
||
<option value="mythras_imperative" data-i18n="mythras_imperative">Mythras Imperative</option>
|
||
<option value="mythic_rome" data-i18n="mythic_rome">Mythic Rome</option>
|
||
<option value="m-space" data-i18n="m-space">M-Space</option>
|
||
<option value="odd_soot" data-i18n="odd_soot">Odd Soot</option>
|
||
<option value="thennla" data-i18n="thennla">Thennla</option>
|
||
<option value="worlds_united" data-i18n="worlds_united">Worlds United</option>
|
||
</select>
|
||
<br>
|
||
|
||
<!-- Weapons -->
|
||
<h3 data-i18n="weapons">Weapons</h3>
|
||
<label class="sheet-left sheet-rmargin" data-i18n="reach">Reach</label>
|
||
<select name="attr_reach_enabled_option">
|
||
<option value="default" data-i18n="setting_default" selected>Setting Default</option>
|
||
<option value="1" data-i18n="enabled">Enabled</option>
|
||
<option value="0" data-i18n="disabled">Disabled</option>
|
||
</select>
|
||
<br>
|
||
</details>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Roll Templates -->
|
||
<!-- Default Roll Template -->
|
||
<!-- @{roll_display}&{template:default} {{name=@{name}}} {{roll=[[1d8]]}} -->
|
||
<rolltemplate class="sheet-rolltemplate-default">
|
||
<div class="sheet-border {{#hitstyle}}hit-location{{/hitstyle}}{{#improvestyle}}improve{{/improvestyle}}{{#initstyle}}initiative{{/initstyle}}{{#dmgstyle}}damage{{/dmgstyle}}{{#effectstyle}}effect{{/effectstyle}}">
|
||
<div class="sheet-header {{#hitstyle}}hit-location{{/hitstyle}}{{#improvestyle}}improve{{/improvestyle}}{{#initstyle}}initiative{{/initstyle}}{{#dmgstyle}}damage{{/dmgstyle}}{{#effectstyle}}effect{{/effectstyle}}">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
</div>
|
||
{{#allprops() character name notes improvestyle initstyle dmgstyle effectstyle hitstyle}}
|
||
<div class="sheet-listitem">
|
||
<div class="sheet-key">{{key}}</div>
|
||
<div class="sheet-value">{{value}}</div>
|
||
</div>
|
||
{{/allprops() character name notes improvestyle initstyle dmgstyle effectstyle hitstyle}}
|
||
{{#notes}}
|
||
<div class="sheet-listitem">{{notes}}</div>
|
||
{{/notes}}
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Effect Roll Template -->
|
||
<!-- @{roll_display}&{template:effect} {{name=@{name}}} @{name_display} {{roll=[[1d100 + @{int}]]}} {{improvement=[[1d4+1+@{fumbled}]]}} {{skill=[[@{skill_total}]]}} -->
|
||
<rolltemplate class="sheet-rolltemplate-effect">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
{{#tradition_id}}
|
||
<div class="sheet-skills">
|
||
{{#skill1_name}}
|
||
[{{skill1_name}} {{skill1_total}}%](~{{character_id}}|{{tradition_id}}_skill1)
|
||
{{/skill1_name}}
|
||
{{#skill2_name}}
|
||
[{{skill2_name}} {{skill2_total}}%](~{{character_id}}|{{tradition_id}}_skill2)
|
||
{{/skill2_name}}
|
||
</div>
|
||
{{/tradition_id}}
|
||
</div>
|
||
|
||
<div class="sheet-traits">
|
||
<div>{{traits}}</div>
|
||
<div>{{advanced_traits}}</div>
|
||
</div>
|
||
|
||
{{#description}}
|
||
<hr>
|
||
<div class="sheet-description">
|
||
{{description}}
|
||
</div>
|
||
{{/description}}
|
||
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Hit Table Roll Template -->
|
||
<!-- @{roll_display}&{template:hit-location} {{name=@{name}}} @{name_display} {{roll=[[1d8]]}} -->
|
||
<rolltemplate class="sheet-rolltemplate-hit-location">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th sheet-full-width"><span data-i18n="location">Location</span></div>
|
||
<div class="sheet-th sheet-pictos-three sheet-help"><div class="sheet-checkbox-width" data-i18n-title="passive_block_size" title="Passive Block Size">b</div></div>
|
||
<div class="sheet-th sheet-pictos sheet-help"><div class="sheet-checkbox-width" data-i18n-title="armor_points" title="Armor Points">U</div></div>
|
||
<div class="sheet-th sheet-help"><div class="sheet-number-width-sm" data-i18n-title="hit_points" title="Hit Points" data-i18n="hit_points-a">HP</div></div>
|
||
</div>
|
||
{{#roll}}
|
||
<div class="sheet-tr">
|
||
{{#rollBetween() roll loc1_start loc1_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc1_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc1_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc1_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc1_hp}}/{{loc1_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc1_start loc1_end}}
|
||
{{#rollBetween() roll loc2_start loc2_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc2_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc2_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc2_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc2_hp}}/{{loc2_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc2_start loc2_end}}
|
||
{{#rollBetween() roll loc3_start loc3_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc3_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc3_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc3_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc3_hp}}/{{loc3_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc3_start loc3_end}}
|
||
{{#rollBetween() roll loc4_start loc4_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc4_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc4_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc4_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc4_hp}}/{{loc4_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc4_start loc4_end}}
|
||
{{#rollBetween() roll loc5_start loc5_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc5_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc5_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc5_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc5_hp}}/{{loc5_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc5_start loc5_end}}
|
||
{{#rollBetween() roll loc6_start loc6_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc6_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc6_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc6_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc6_hp}}/{{loc6_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc6_start loc6_end}}
|
||
{{#rollBetween() roll loc7_start loc7_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc7_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc7_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc7_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc7_hp}}/{{loc7_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc7_start loc7_end}}
|
||
{{#rollBetween() roll loc8_start loc8_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc8_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc8_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc8_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc8_hp}}/{{loc8_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc8_start loc8_end}}
|
||
{{#rollBetween() roll loc9_start loc9_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc9_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc9_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc9_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc9_hp}}/{{loc9_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc9_start loc9_end}}
|
||
{{#rollBetween() roll loc10_start loc10_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc10_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc10_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc10_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc10_hp}}/{{loc10_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc10_start loc10_end}}
|
||
{{#rollBetween() roll loc11_start loc11_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc11_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc11_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc11_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc11_hp}}/{{loc11_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc11_start loc11_end}}
|
||
{{#rollBetween() roll loc12_start loc12_end}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{loc12_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc12_block}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-checkbox-width">{{loc12_ap}}</div></div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{loc12_hp}}/{{loc12_hp_max}}</div></div>
|
||
{{/rollBetween() roll loc12_start loc12_end}}
|
||
</div>
|
||
{{/roll}}
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Improvement Roll Template -->
|
||
<!-- @{roll_display}&{template:improvement} {{name=@{name}}} @{name_display} {{roll=[[1d100 + @{int}]]}} {{improvement=[[1d4+1+@{fumbled}]]}} {{skill=[[@{skill_total}]]}} -->
|
||
<rolltemplate class="sheet-rolltemplate-improvement">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}} {{skill}}%</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">{{roll}}</div>
|
||
<div class="sheet-td">
|
||
{{#^rollLess() roll skill}}
|
||
<span data-i18n="success">Success</span>
|
||
{{/^rollLess() roll skill}}
|
||
{{#rollLess() roll skill}}
|
||
<span data-i18n="fail">Fail</span>
|
||
{{/rollLess() roll skill}}
|
||
</div>
|
||
<div class="sheet-td">
|
||
{{#^rollLess() roll skill}}
|
||
+{{improvement}}%
|
||
{{/^rollLess() roll skill}}
|
||
{{#rollLess() roll skill}}
|
||
+1%
|
||
{{/rollLess() roll skill}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Resolution Pool Roll Template -->
|
||
<rolltemplate class="sheet-rolltemplate-resolution_pool">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-text-left"><span class="sheet-bold" data-i18n="confidence">Confidence</span>:</div>
|
||
<div class="sheet-td">{{confidence}}</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th sheet-full-width"><span data-i18n="pool">Pool</span></div>
|
||
<div class="sheet-th sheet-help"><div class="sheet-number-width-sm" data-i18n-title="current" title="Current" data-i18n="current-a">Curr</div></div>
|
||
</div>
|
||
{{#roll}}
|
||
<div class="sheet-tr">
|
||
{{#rollBetween() roll 1 4}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} (<span data-i18n="composure">Composure</span>)</div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{composure}}/{{composure_max}}</div></div>
|
||
{{/rollBetween() roll 1 4}}
|
||
{{#rollBetween() roll 5 8}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} (<span data-i18n="integrity">Integrity</span>)</div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{integrity}}/{{integrity_max}}</div></div>
|
||
{{/rollBetween() roll 5 8}}
|
||
{{#rollBetween() roll 9 12}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} (<span data-i18n="resolve">Resolve</span>)</div>
|
||
<div class="sheet-td"><div class=sheet-number-width-sm">{{resolve_hp}}/{{resolve_max}}</div></div>
|
||
{{/rollBetween() roll 9 12}}
|
||
</div>
|
||
{{/roll}}
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Skill Roll Template -->
|
||
<!-- @{roll_display}&{template:skill} {{name=@{name}}} @{name_display} {{roll=[[1d100]]}} {{fatigue_skills=[[@{fatigue_skills}]]}} {{encumbered=[[@{encumbered}]]}} {{encumbrance_skills=[[@{encumbrance_skills}]]}} {{original=@{total}}} {{difficulty=[[@{difficulty}]]}} {{augmentation=[[@{augmentation}]]}} {{penalty=[[@{penalty}]]}} {{very_easy=[[((@{total}+@{augment})*2)+@{penalty}]]}} {{very_easy_crit=[[ceil(((@{total}*2)+@{penalty})/10)]]}} {{easy=[[ceil((@{total}+@{augment})*1.5)+@{penalty}]]}} {{easy_crit=[[ceil(((@{total}*1.5)+@{penalty})/10)]]}} {{standard=[[@{total}+@{augment}+@{penalty}]]}} {{standard_crit=[[ceil((@{total}+@{penalty})/10)]]}} {{hard=[[ceil((@{total}+@{augment})*.67)+@{penalty}]]}} {{hard_crit=[[ceil(((@{total}*.67)+@{penalty})/10)]]}} {{formidable=[[ceil((@{total}+@{augment})*.5)+@{penalty}]]}} {{formidable_crit=[[ceil(((@{total}*.5)+@{penalty})/10)]]}} {{herculean=[[ceil((@{total}+@{augment})*@{herculean_mod})+@{penalty}]]}} {{herculean_crit=[[ceil(((@{total}*@{herculean_mod})+@{penalty})/10)]]}} {{notes=@{notes}}} -->
|
||
<rolltemplate class="sheet-rolltemplate-skill">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}} {{original}}%</div>
|
||
</div>
|
||
|
||
{{#rollGreater() fatigue_skills 0}}
|
||
{{#rollTotal() fatigue_skills 1}}<div class="sheet-hard-notice"><span data-i18n="hard">Hard</span>, <span data-i18n="due_to_fatigue">due to fatigue</span></div>{{/rollTotal() fatigue_skills 1}}
|
||
{{#rollTotal() fatigue_skills 2}}<div class="sheet-formidable-notice"><span data-i18n="formidable">Formidable</span>, <span data-i18n="due_to_fatigue">due to fatigue</span></div>{{/rollTotal() fatigue_skills 2}}
|
||
{{#rollTotal() fatigue_skills 3}}<div class="sheet-herculean-notice"><span data-i18n="herculean">Herculean</span>, <span data-i18n="due_to_fatigue">due to fatigue</span></div>{{/rollTotal() fatigue_skills 3}}
|
||
{{#rollTotal() fatigue_skills 4}}<div class="sheet-hopeless-notice"><span data-i18n="hopeless">Hopeless</span>, <span data-i18n="due_to_fatigue">due to fatigue</span></div>{{/rollTotal() fatigue_skills 4}}
|
||
{{#rollTotal() fatigue_skills 5}}<div class="sheet-hopeless-notice"><span data-i18n="no_action_allowed">No action allowed</span>, <span data-i18n="due_to_fatigue">due to fatigue</span></div>{{/rollTotal() fatigue_skills 5}}
|
||
{{/rollGreater() fatigue_skills 0}}
|
||
|
||
{{#rollTotal() encumbered 1}}
|
||
{{#rollTotal() encumbrance_skills 1}}<div class="sheet-hard-notice"><span data-i18n="1_grade_harder">1 grade harder</span>, <span data-i18n="due_to_enc">due to ENC</span></div>{{/rollTotal() encumbrance_skills 1}}
|
||
{{#rollTotal() encumbrance_skills 2}}<div class="sheet-formidable-notice"><span data-i18n="2_grades_harder">2 grades harder</span>, <span data-i18n="due_to_enc">due to ENC</span></div>{{/rollTotal() encumbrance_skills 2}}
|
||
{{#rollTotal() encumbrance_skills 3}}<div class="sheet-hopeless-notice"><span data-i18n="impossible">Impossible</span>, <span data-i18n="due_to_enc">due to ENC</span></div>{{/rollTotal() encumbrance_skills 3}}
|
||
{{/rollTotal() encumbered 1}}
|
||
|
||
{{#ship_condition_skills}}
|
||
{{#rollTotal() ship_condition_skills 2}}<div class="sheet-hard-notice"><span data-i18n="hard">Hard</span>, <span data-i18n="due_to_ship_condition">due to ship condition</span></div>{{/rollTotal() ship_condition_skills 2}}
|
||
{{#rollTotal() ship_condition_skills 3}}<div class="sheet-formidable-notice"><span data-i18n="formidable">Formidable</span>, <span data-i18n="due_to_ship_condition">due to ship condition</span></div>{{/rollTotal() ship_condition_skills 3}}
|
||
{{#rollTotal() ship_condition_skills 4}}<div class="sheet-herculean-notice"><span data-i18n="herculean">Herculean</span>, <span data-i18n="due_to_ship_condition">due to ship condition</span></div>{{/rollTotal() ship_condition_skills 4}}
|
||
{{/ship_condition_skills }}
|
||
|
||
{{#^rollTotal() augmentation 0}}
|
||
<div class="sheet-listitem">
|
||
<div class="sheet-key"><span data-i18n="augmentation">Augmentation</span>:</div>
|
||
<div class="sheet-value">{{augmentation}}</div>
|
||
</div>
|
||
{{/^rollTotal() augmentation 0}}
|
||
{{#^rollTotal() penalty 0}}
|
||
<div class="sheet-listitem">
|
||
<div class="sheet-key"><span data-i18n="101+_penalty">101+ Penalty</span>:</div>
|
||
<div class="sheet-value">{{penalty}}</div>
|
||
</div>
|
||
{{/^rollTotal() penalty 0}}
|
||
|
||
<!-- Skill Result table start -->
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th" data-i18n="difficulty">Difficulty</div>
|
||
<div class="sheet-th">
|
||
<div style="margin: 0 2px 0; padding: 0 5px 0;">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">%</div>
|
||
<div class="sheet-grow sheet-pictos sheet-help" data-i18n-title="critical">S</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-th" data-i18n="result">Result</div>
|
||
</div>
|
||
|
||
|
||
{{#rollTotal() difficulty 0}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy sheet-left" data-i18n="very_easy">Very Easy</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{very_easy}}</div>
|
||
<div class="sheet-grow">{{very_easy_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() very_easy_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() very_easy_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() very_easy_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() very_easy_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll very_easy}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll very_easy}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll very_easy}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll very_easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll very_easy_crit}}
|
||
{{/^rollGreater() roll very_easy}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll very_easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll very_easy_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy" data-i18n="easy">Easy</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{easy}}</div>
|
||
<div class="sheet-grow">{{easy_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() easy_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() easy_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() easy_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() easy_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll easy}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll easy}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll easy}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll easy_crit}}
|
||
{{/^rollGreater() roll easy}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll easy_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-tr sheet-bold">
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard" data-i18n="standard">Standard</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{standard}}</div>
|
||
<div class="sheet-grow">{{standard_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() standard_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() standard_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() standard_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() standard_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll standard}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll standard}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll standard}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll standard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll standard_crit}}
|
||
{{/^rollGreater() roll standard}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll standard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll standard_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard" data-i18n="hard">Hard</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{hard}}</div>
|
||
<div class="sheet-grow">{{hard_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() hard_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() hard_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() hard_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() hard_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll hard}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll hard}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll hard}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll hard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll hard_crit}}
|
||
{{/^rollGreater() roll hard}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll hard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll hard_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable" data-i18n="formidable">Formidable</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{formidable}}</div>
|
||
<div class="sheet-grow">{{formidable_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() formidable_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() formidable_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() formidable_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() formidable_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll formidable}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll formidable}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll formidable}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll formidable_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll formidable_crit}}
|
||
{{/^rollGreater() roll formidable}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll formidable_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll formidable_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean" data-i18n="herculean">Herculean</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{herculean}}</div>
|
||
<div class="sheet-grow">{{herculean_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() herculean_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() herculean_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() herculean_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() herculean_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll herculean}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll herculean}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll herculean}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll herculean_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll herculean_crit}}
|
||
{{/^rollGreater() roll herculean}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll herculean_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll herculean_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 0}}
|
||
|
||
{{#rollTotal() difficulty 1}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy" data-i18n="very_easy">Very Easy</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{very_easy}}</div>
|
||
<div class="sheet-grow">{{very_easy_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-very-easy">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() very_easy_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() very_easy_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() very_easy_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() very_easy_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll very_easy}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll very_easy}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll very_easy}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll very_easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll very_easy_crit}}
|
||
{{/^rollGreater() roll very_easy}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll very_easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll very_easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll very_easy_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 1}}
|
||
|
||
{{#rollTotal() difficulty 2}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy" data-i18n="easy">Easy</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{easy}}</div>
|
||
<div class="sheet-grow">{{easy_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-easy">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() easy_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() easy_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() easy_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() easy_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll easy}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll easy}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll easy}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll easy_crit}}
|
||
{{/^rollGreater() roll easy}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll easy_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll easy_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll easy_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 2}}
|
||
|
||
{{#rollTotal() difficulty 3}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard" data-i18n="standard">Standard</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{standard}}</div>
|
||
<div class="sheet-grow">{{standard_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-standard">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() standard_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() standard_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() standard_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() standard_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll standard}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll standard}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll standard}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll standard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll standard_crit}}
|
||
{{/^rollGreater() roll standard}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll standard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll standard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll standard_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 3}}
|
||
|
||
{{#rollTotal() difficulty 4}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard" data-i18n="hard">Hard</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{hard}}</div>
|
||
<div class="sheet-grow">{{hard_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-hard">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() hard_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() hard_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() hard_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() hard_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll hard}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll hard}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll hard}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll hard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll hard_crit}}
|
||
{{/^rollGreater() roll hard}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll hard_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll hard_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll hard_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 4}}
|
||
|
||
{{#rollTotal() difficulty 5}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable" data-i18n="formidable">Formidable</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{formidable}}</div>
|
||
<div class="sheet-grow">{{formidable_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-formidable">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() formidable_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() formidable_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() formidable_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() formidable_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll formidable}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll formidable}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll formidable}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll formidable_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll formidable_crit}}
|
||
{{/^rollGreater() roll formidable}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll formidable_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll formidable_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll formidable_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 5}}
|
||
|
||
{{#rollTotal() difficulty 6}}
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean" data-i18n="herculean">Herculean</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean">
|
||
<div class="sheet-flex">
|
||
<div class="sheet-grow">{{herculean}}</div>
|
||
<div class="sheet-grow">{{herculean_crit}}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-td">
|
||
<div class="sheet-herculean">
|
||
<!-- 95+ Auto Fail -->
|
||
{{#rollGreater() roll 95}}
|
||
<!-- score > 100 -->
|
||
{{#rollGreater() herculean_fumble 100}}
|
||
<!-- roll = 100 (fumble) -->
|
||
{{#rollTotal() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollTotal() roll 100}}
|
||
<!-- roll < 100 (fail) -->
|
||
{{#rollLess() roll 100}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 100}}
|
||
{{/rollGreater() herculean_fumble 100}}
|
||
<!-- score <= 100 -->
|
||
{{#rollLess() herculean_fumble 101}}
|
||
<!-- roll 99 to 100 (fumble) -->
|
||
{{#rollGreater() roll 98}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fumble">!</span>
|
||
{{/rollGreater() roll 98}}
|
||
<!-- roll < 99 (fail) -->
|
||
{{#rollLess() roll 99}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollLess() roll 99}}
|
||
{{/rollLess() herculean_fumble 101}}
|
||
{{/rollGreater() roll 95}}
|
||
<!-- 6 to 95 Normal Logic -->
|
||
{{#rollBetween() roll 6 95}}
|
||
<!-- roll > total (fail) -->
|
||
{{#rollGreater() roll herculean}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="fail">*</span>
|
||
{{/rollGreater() roll herculean}}
|
||
<!-- roll <= total -->
|
||
{{#^rollGreater() roll herculean}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll herculean_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll herculean_crit}}
|
||
{{/^rollGreater() roll herculean}}
|
||
{{/rollBetween() roll 6 95}}
|
||
<!-- 5- Auto Fail -->
|
||
{{#rollLess() roll 6}}
|
||
<!-- roll > crit (success) -->
|
||
{{#rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="success">3</span>
|
||
{{/rollGreater() roll herculean_crit}}
|
||
<!-- roll <= crit (crit) -->
|
||
{{#^rollGreater() roll herculean_crit}}
|
||
{{roll}} <span class="sheet-result" data-i18n-title="critical">S</span>
|
||
{{/^rollGreater() roll herculean_crit}}
|
||
{{/rollLess() roll 6}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{/rollTotal() difficulty 6}}
|
||
<!-- Skill result table end -->
|
||
</div>
|
||
|
||
{{#notes}}
|
||
<div class="sheet-listitem">{{notes}}</div>
|
||
{{/notes}}
|
||
|
||
{{#combatstyle}}
|
||
<div class="sheet-special-header" data-i18n="combat">Combat</div>
|
||
<!--<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="special_effects">Special Effects</span>:</div>
|
||
<div>
|
||
[<span data-i18n="offensive">Offensive</span>](~{{character_id}}|offensive_combat_se_menu)
|
||
[<span data-i18n="defensive">Defensive</span>](~{{character_id}}|defensive_combat_se_menu)
|
||
</div>
|
||
</div>-->
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="hit_location">Hit Location</span>:</div>
|
||
<div>
|
||
[<span data-i18n="low">Low</span>](~target|hit_location_low)
|
||
[<span data-i18n="standard">Standard</span>](~target|hit_location)
|
||
[<span data-i18n="high">High</span>](~target|hit_location_high)
|
||
</div>
|
||
</div>
|
||
{{#weapon_buttons}}
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="weapons">Weapons</span>:</div>
|
||
<div>{{weapon_buttons}}</div>
|
||
</div>
|
||
{{/weapon_buttons}}
|
||
{{/combatstyle}}
|
||
|
||
{{#spiritcombat}}
|
||
<div class="sheet-special-header" data-i18n="spirit_combat">Spirit Combat</div>
|
||
<!--<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="special_effects">Special Effects</span>:</div>
|
||
<div>
|
||
[<span data-i18n="offensive">Offensive</span>](~{{character_id}}|offensive_spirit_se_menu)
|
||
[<span data-i18n="defensive">Defensive</span>](~{{character_id}}|defensive_spirit_se_menu)
|
||
</div>
|
||
</div>-->
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="damage">Damage</span>:</div>
|
||
<div>[<span data-i18n="spirit_damage">Spirit Damage</span>](~{{character_id}}|spirit_damage)</div>
|
||
</div>
|
||
{{/spiritcombat}}
|
||
|
||
{{#socialoffense}}
|
||
<div class="sheet-special-header" data-i18n="social_conflict">Social Conflict</div>
|
||
<!--<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="special_effects">Special Effects</span>:</div>
|
||
<div>[<span data-i18n="offensive">Offensive</span>](~{{character_id}}|offensive_social_se_menu)</div>
|
||
</div>-->
|
||
<div class="sheet-space-between">
|
||
[<span data-i18n="resolution_pool">Resolution Pool</span>](~{{character_id}}|resolution_pool)
|
||
[<span data-i18n="social_damage">Social Damage</span>](~{{character_id}}|social_damage)
|
||
</div>
|
||
{{/socialoffense}}
|
||
|
||
{{#socialdefense}}
|
||
<!--<div class="sheet-special-header" data-i18n="social_conflict">Social Conflict</div>
|
||
<div class="sheet-space-between">
|
||
<div class="sheet-bold"><span data-i18n="special_effects">Special Effects</span>:</div>
|
||
<div>[<span data-i18n="defensive">Defensive</span>](~{{character_id}}|defensive_social_se_menu)</div>
|
||
</div>-->
|
||
{{/socialdefense}}
|
||
</div>
|
||
</rolltemplate>
|
||
|
||
|
||
<!-- System Roll Template -->
|
||
<!-- @{roll_display}&{template:system} {{name=^{system} (@{vehicle_system_die})}} {{character=@{character_name}}} {{hull=@{vehicle_hull}}} {{structure=@{vehicle_structure}}} {{structure_max=@{vehicle_structure_max}}} {{shields=@{vehicle_shields}}} {{shields_max=@{vehicle_shields_max}}} {{roll=[[@{vehicle_system_die}]]}} {{system1_name=@{system1_name}}} {{system1_hits=@{system1_hits}}} {{system1_hits_max=@{system1_hits|max}}} {{system2_name=@{system2_name}}} {{system2_hits=@{system2_hits}}} {{system2_hits_max=@{system2_hits|max}}} {{system3_name=@{system3_name}}} {{system3_hits=@{system3_hits}}} {{system3_hits_max=@{system3_hits|max}}} {{system4_name=@{system4_name}}} {{system4_hits=@{system4_hits}}} {{system4_hits_max=@{system4_hits|max}}} {{system5_name=@{system5_name}}} {{system5_hits=@{system5_hits}}} {{system5_hits_max=@{system5_hits|max}}} {{system6_name=@{system6_name}}} {{system6_hits=@{system6_hits}}} {{system6_hits_max=@{system6_hits|max}}} {{system7_name=@{system7_name}}} {{system7_hits=@{system7_hits}}} {{system7_hits_max=@{system7_hits|max}}} {{system8_name=@{system8_name}}} {{system8_hits=@{system8_hits}}} {{system8_hits_max=@{system8_hits|max}}} {{system9_name=@{system9_name}}} {{system9_hits=@{system9_hits}}} {{system9_hits_max=@{system9_hits|max}}} {{system10_name=@{system10_name}}} {{system10_hits=@{system10_hits}}} {{system10_hits_max=@{system10_hits|max}}} -->
|
||
<rolltemplate class="sheet-rolltemplate-system">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"><span data-i18n="hull">Hull</span></div>
|
||
<div class="sheet-th"><span data-i18n="structure">Structure</span></div>
|
||
<div class="sheet-th"><span data-i18n="shields">Shields</span></div>
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td">{{hull}}</div>
|
||
<div class="sheet-td">{{structure}}/{{structure_max}}</div>
|
||
<div class="sheet-td">{{shields}}/{{shields_max}}</div>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th sheet-full-width"><span data-i18n="location">Location</span></div>
|
||
<div class="sheet-th"><div class="sheet-number-width-sm" data-i18n="hits">Hits</div></div>
|
||
</div>
|
||
{{#roll}}
|
||
<div class="sheet-tr">
|
||
{{#rollTotal() roll 1}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system1_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system1_hits}}/{{system1_hits_max}}</div></div>
|
||
{{/rollTotal() roll 1}}
|
||
{{#rollTotal() roll 2}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system2_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system2_hits}}/{{system2_hits_max}}</div></div>
|
||
{{/rollTotal() roll 2}}
|
||
{{#rollTotal() roll 3}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system3_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system3_hits}}/{{system3_hits_max}}</div></div>
|
||
{{/rollTotal() roll 3}}
|
||
{{#rollTotal() roll 4}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system4_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system4_hits}}/{{system4_hits_max}}</div></div>
|
||
{{/rollTotal() roll 4}}
|
||
{{#rollTotal() roll 5}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system5_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system5_hits}}/{{system5_hits_max}}</div></div>
|
||
{{/rollTotal() roll 5}}
|
||
{{#rollTotal() roll 6}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system6_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system6_hits}}/{{system6_hits_max}}</div></div>
|
||
{{/rollTotal() roll 6}}
|
||
{{#rollTotal() roll 7}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system7_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system7_hits}}/{{system7_hits_max}}</div></div>
|
||
{{/rollTotal() roll 7}}
|
||
{{#rollTotal() roll 8}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system8_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system8_hits}}/{{system8_hits_max}}</div></div>
|
||
{{/rollTotal() roll 8}}
|
||
{{#rollTotal() roll 9}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system9_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system9_hits}}/{{system9_hits_max}}</div></div>
|
||
{{/rollTotal() roll 9}}
|
||
{{#rollTotal() roll 10}}
|
||
<div class="sheet-td sheet-full-width">{{roll}} ({{system10_name}})</div>
|
||
<div class="sheet-td"><div class=sheet-number-width">{{system10_hits}}/{{system10_hits_max}}</div></div>
|
||
{{/rollTotal() roll 10}}
|
||
</div>
|
||
{{/roll}}
|
||
</div>
|
||
</div>
|
||
</rolltemplate>
|
||
<!-- Improvement Roll Template -->
|
||
<!-- @{roll_display}&{template:weapon} {{name=@{name}}} {{character=@{character_name}}} {{damage=[[@{damage}+@{damage_mod_toggle}]]}} {{size=@{size}}} {{reach=@{reach}}} {{force=@{force}}} {{range=@{range}}} {{impale_size=@{impale_size}}} {{notes=@{notes}}} -->
|
||
<rolltemplate class="sheet-rolltemplate-weapon">
|
||
<div class="sheet-border">
|
||
<div class="sheet-header">
|
||
<div class="sheet-character">{{character}}</div>
|
||
<div class="sheet-name">{{name}}</div>
|
||
</div>
|
||
<div class="sheet-table">
|
||
<div class="sheet-tr">
|
||
<div class="sheet-th"><span data-i18n="damage">Damage</span></div>
|
||
{{#size}}
|
||
<div class="sheet-th"><span data-i18n="size">Size</span></div>
|
||
{{/size}}
|
||
{{#force}}
|
||
<div class="sheet-th"><span data-i18n="force">Force</span></div>
|
||
{{/force}}
|
||
{{#reach}}
|
||
<div class="sheet-th"><span data-i18n="reach">Reach</span></div>
|
||
{{/reach}}
|
||
{{#range}}
|
||
<div class="sheet-th"><span data-i18n="range">Range</span></div>
|
||
{{/range}}
|
||
{{#impale_size}}
|
||
<div data-i18n-title="impale_size" class="sheet-th sheet-help"><span data-i18n="impale_size-a">IS</span></div>
|
||
{{/impale_size}}
|
||
</div>
|
||
<div class="sheet-tr">
|
||
<div class="sheet-td sheet-bold">{{damage}}</div>
|
||
{{#size}}
|
||
<div class="sheet-td">{{size}}</div>
|
||
{{/size}}
|
||
{{#force}}
|
||
<div class="sheet-td">{{force}}</div>
|
||
{{/force}}
|
||
{{#reach}}
|
||
<div class="sheet-td">{{reach}}</div>
|
||
{{/reach}}
|
||
{{#range}}
|
||
<div class="sheet-td">{{range}}</div>
|
||
{{/range}}
|
||
{{#impale_size}}
|
||
<div class="sheet-td">{{impale_size}}</div>
|
||
{{/impale_size}}
|
||
</div>
|
||
</div>
|
||
|
||
{{#notes}}
|
||
<div>{{notes}}</div>
|
||
{{/notes}}
|
||
</div>
|
||
</rolltemplate><script type="text/worker">
|
||
const debug=1
|
||
|
||
/* Campaign Options */
|
||
const campaignSettings = ["ability_system", "action_points_calc", "affiliations_enabled", "dependencies_enabled", "extended_conflict_enabled", "herculean_mod", "luck_points_rank", "reach_enabled", "simplified_combat_enabled", "social_conflict_enabled", "special_effects", "spirits_enabled", "tenacity_enabled", "vehicle_type"];
|
||
const campaginSettingDefaults = {
|
||
"default": {
|
||
"ability_system": "core",
|
||
"action_points_calc": "calculate",
|
||
"affiliations_enabled": 0,
|
||
"dependencies_enabled": 0,
|
||
"extended_conflict_enabled": 0,
|
||
"herculean_mod": ".1",
|
||
"luck_points_rank": 0,
|
||
"reach_enabled": 1,
|
||
"simplified_combat_enabled": 0,
|
||
"shaping_traits": "^{combine}: @{shaped_combine}\n^{duration}: @{shaped_duration}\n^{magnitude}: @{shaped_magnitude}\n^{range}: @{shaped_range}\n^{targets}: @{shaped_targets}",
|
||
"spirits_enabled": 1,
|
||
"standard_skills": ['athletics','boating','brawn','conceal','customs','dance','deceit','drive','endurance','evade','first_aid','influence','insight','locale','native_tongue','perception','ride','sing','spectral_combat','stealth','swim','unarmed','willpower'],
|
||
"social_conflict_enabled": 1,
|
||
"special_effects": "core",
|
||
"tenacity_enabled": 0,
|
||
"traditions_enabled": 1,
|
||
"vehicle_type": "mythras"
|
||
},
|
||
"after_the_vampire_wars": {
|
||
"ability_system": "after_the_vampire_wars",
|
||
"shaping_traits": "^{combine}: @{shaped_combine}\n^{duration}: @{shaped_duration} | ^{extended}: @{extended_duration}\n^{magnitude}: @{shaped_magnitude}\n^{range}: @{shaped_range} | ^{sympathetic}: @{sympathetic_range}\n^{targets}: @{shaped_targets}",
|
||
"tenacity_enabled": 1
|
||
},
|
||
"classic_fantasy": {
|
||
"ability_system": "classic_fantasy",
|
||
"luck_points_rank": 1
|
||
},
|
||
"destined": {
|
||
"ability_system": "destined",
|
||
"spirits_enabled": 0,
|
||
"special_effects": "destined",
|
||
"standard_skills": ['athletics','brawn','conceal','deceit','drive','endurance','evade','first_aid','influence','insight','perception','research','spectral_combat','stealth','streetwise','unarmed','willpower']
|
||
},
|
||
"fioracitta": {},
|
||
"luther_arkwright": {
|
||
"ability_system": "luther_arkwright",
|
||
"dependencies_enabled": 1,
|
||
"spirits_enabled": 0,
|
||
"standard_skills": ['athletics','brawn','conceal','customs','dance','deceit','endurance','evade','first_aid','home_parallel','influence','insight','native_tongue','perception','ride','sing','spectral_combat','stealth','swim','unarmed','willpower'],
|
||
"tenacity_enabled": 1
|
||
},
|
||
"lyonesse": {
|
||
"ability_system": "lyonesse",
|
||
"special_effects": "lyonesse",
|
||
"standard_skills": ['athletics','boating','brawn','common_tongue','conceal','customs','dance','deceit','drive','eloquence','endurance','evade','first_aid','folk_lore','influence','insight','perception','ride','sing','spectral_combat','stealth','swim','unarmed','willpower']
|
||
},
|
||
"m-space": {
|
||
"ability_system": "m-space",
|
||
"action_points_calc": "set_2",
|
||
"extended_conflict_enabled": 1,
|
||
"herculean_mod": ".2",
|
||
"reach_enabled": 0,
|
||
"special_effects": "imperative",
|
||
"spirits_enabled": 0,
|
||
"vehicle_type": "mspace"
|
||
},
|
||
"monster_island": {},
|
||
"mythic_babylon": {
|
||
"ability_system": "mythic_babylon",
|
||
"shaping_traits": " ",
|
||
"standard_skills": ['athletics','boating','brawn','commerce','conceal','customs','dance','deceit','drive','endurance','evade','first_aid','gaming','influence','insight','locale','native_tongue','perception','purity','ride','sing','spectral_combat','stealth','swim','unarmed','willpower']
|
||
},
|
||
"mythic_britain": {
|
||
"ability_system": "mythic_britain",
|
||
"standard_skills": ['athletics','boating','brawn','conceal','customs','dance','deceit','drive','endurance','evade','first_aid','influence','insight','locale','native_tongue','perception','ride','sing','spectral_combat','stealth','superstition','swim','unarmed','willpower']
|
||
},
|
||
"mythic_constantinople": {
|
||
"affiliations_enabled": 1
|
||
},
|
||
"mythras_imperative": {
|
||
"ability_system": "mythra_imperative",
|
||
"action_points_calc": "set_2",
|
||
"herculean_mod": ".2",
|
||
"reach_enabled": 0,
|
||
"special_effects": "imperative",
|
||
"spirits_enabled": 0
|
||
},
|
||
"mythic_rome": {
|
||
"ability_system": "mythic_rome",
|
||
"spirits_enabled": 0,
|
||
"standard_skills": ['athletics','boating','brawn','conceal','customs','dance','deceit','drive','endurance','evade','first_aid','influence','insight','locale','native_tongue','perception','ride','status','sing','spectral_combat','stealth','swim','unarmed','willpower']
|
||
},
|
||
"odd_soot": {
|
||
"ability_system": "odd_soot",
|
||
"action_points_calc": "set_2",
|
||
"extended_conflict_enabled": 1,
|
||
"herculean_mod": ".2",
|
||
"reach_enabled": 0,
|
||
"special_effects": "imperative",
|
||
"spirits_enabled": 0,
|
||
"vehicle_type": "mspace"
|
||
},
|
||
"perceforest": {
|
||
"shaping_traits": "^{combine}: @{shaped_combine}\n^{duration}: @{shaped_duration}\n^{magnitude}: @{shaped_magnitude}\n^{range}: @{shaped_range}\n^{targets}: @{shaped_targets}\n^{wonders}: @{shaped_wonders}"
|
||
},
|
||
"thennla": {
|
||
"ability_system": "thennla",
|
||
},
|
||
"worlds_united": {
|
||
"ability_system": "worlds_united",
|
||
"tenacity_enabled": 1,
|
||
"spirits_enabled": 0
|
||
}
|
||
}
|
||
/**
|
||
* Will either return the campaignSettingOption if overridden, otherwise will get the setting default value
|
||
* @param campaignSetting the variable name of the campaign setting
|
||
* @param campaignSettingOption the value of the campaign setting option variable
|
||
* @param setting the selected campaign setting
|
||
* @returns {*} object of new calculated attributes
|
||
*/
|
||
function calcCampaignSetting(campaignSetting, campaignSettingOption, setting) {
|
||
if (campaignSettingOption === 'default') {
|
||
if ((setting in campaginSettingDefaults) && (campaignSetting in campaginSettingDefaults[setting])) {
|
||
return {[`${campaignSetting}`]: campaginSettingDefaults[setting][campaignSetting]};
|
||
} else {
|
||
return {[`${campaignSetting}`]: campaginSettingDefaults['default'][campaignSetting]};
|
||
}
|
||
} else {
|
||
return {[`${campaignSetting}`]: campaignSettingOption};
|
||
}
|
||
}
|
||
/* Trigger setting change */
|
||
on(`change:setting_option`, function(event) {
|
||
/* Get an array of option values to get */
|
||
const campaignSettingOptions = campaignSettings.map(function(campaignSetting){
|
||
return `${campaignSetting}_option`;
|
||
})
|
||
getAttrs(campaignSettingOptions, function(v) {
|
||
let newAttrs = {};
|
||
campaignSettings.forEach(campaignSetting => { /* Gather all setting values per new setting */
|
||
newAttrs = {...newAttrs,
|
||
...calcCampaignSetting(campaignSetting, v[`${campaignSetting}_option`], event.newValue)
|
||
}
|
||
});
|
||
/* Set the default shaping traits per setting */
|
||
if (event.newValue in campaginSettingDefaults && 'shaping_traits' in campaginSettingDefaults[event.newValue]) {
|
||
newAttrs['shaping_traits'] = campaginSettingDefaults[event.newValue]['shaping_traits'];
|
||
} else {
|
||
newAttrs['shaping_traits'] = campaginSettingDefaults['default']['shaping_traits'];
|
||
}
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
/* Trigger for all the individual campaign setting option values */
|
||
campaignSettings.forEach(campaignSetting => {
|
||
on(`change:${campaignSetting}_option`, function(event) {
|
||
getAttrs(['setting_option'], function(v) {
|
||
setAttrs(calcCampaignSetting(`${campaignSetting}`, event.newValue, v['setting_option']));
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Sheet Type Triggers */
|
||
on("change:sheet_type change:vehicle_type", function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
if (event.sourceAttribute === 'sheet_type') {
|
||
getAttrs(['pow', 'cha', 'sheet_type', 'vehicle_type'].concat(spiritDamageGetAttrs), function(v) {
|
||
let newAttrs = {};
|
||
|
||
/* Set hit table rolls */
|
||
if (v['sheet_type'] === 'pc' || v['sheet_type'] === 'creature') {
|
||
newAttrs['hit_location_roll'] = '@{creature_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{creature_hit_location_low_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{creature_hit_location_high_roll}';
|
||
} else if (v['sheet_type'] === 'vehicle' && v['vehicle_type'] === 'mythras') {
|
||
newAttrs['hit_location_roll'] = '@{vehicle_system_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{vehicle_system_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{vehicle_system_roll}';
|
||
} else if (v['sheet_type'] === 'vehicle' && v['vehicle_type'] === 'mspace') {
|
||
newAttrs['hit_location_roll'] = '@{d100_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{d100_hit_location_low_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{d100_hit_location_hight_roll';
|
||
} else {
|
||
newAttrs['hit_location_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{none_hit_location_roll}';
|
||
}
|
||
|
||
/* Set standard skills posessed to sheet_type defaults and set default attribute_mode */
|
||
if (event.newValue === "pc") {
|
||
newAttrs['attribute_mode'] = 'physical';
|
||
stdSkillIds.forEach(skillId => {
|
||
newAttrs[`${skillId}_possessed`] = 1;
|
||
});
|
||
} else if (event.newValue === "creature" || event.newValue === "spirit") {
|
||
stdSkillIds.forEach(skillId => {
|
||
newAttrs[`${skillId}_possessed`] = 0;
|
||
});
|
||
if (event.newValue === "creature") {
|
||
newAttrs['attribute_mode'] = 'physical';
|
||
newAttrs['athletics_possessed'] = 1;
|
||
newAttrs['brawn_possessed'] = 1;
|
||
newAttrs['endurance_possessed'] = 1;
|
||
newAttrs['evade_possessed'] = 1;
|
||
newAttrs['perception_possessed'] = 1;
|
||
newAttrs['willpower_possessed'] = 1;
|
||
} else {
|
||
newAttrs['attribute_mode'] = 'spiritual';
|
||
newAttrs['spectral_combat_possessed'] = 1;
|
||
newAttrs['willpower_possessed'] = 1;
|
||
}
|
||
}
|
||
|
||
/* Set default spirit combat skill */
|
||
const pow = parseInt(v['pow']) || 0;
|
||
if (event.newValue === "pc" || event.newValue === "creature") {
|
||
newAttrs['willpower'] = pow * 2;
|
||
newAttrs['willpower_other'] = 0;
|
||
newAttrs['willpower_notes'] = '';
|
||
newAttrs['spirit_combat_skill_id'] = 'willpower';
|
||
newAttrs['spirit_combat_skill_name'] = getTranslationByKey('willpower');
|
||
newAttrs['spirit_combat_skill_total'] = pow * 2;
|
||
newAttrs['spirit_combat_skill_notes'] = '';
|
||
} else if (event.newValue === "spirit") {
|
||
const cha = parseInt(v['cha']) || 0;
|
||
newAttrs['willpower'] = pow * 2 + 50;
|
||
newAttrs['willpower_other'] = 50;
|
||
newAttrs['willpower_notes'] = '';
|
||
newAttrs['spirit_combat_skill_id'] = 'spectral_combat';
|
||
newAttrs['spirit_combat_skill_name'] = getTranslationByKey('spectral_combat');
|
||
newAttrs['spirit_combat_skill_total'] = pow + cha + 50;
|
||
newAttrs['spirit_combat_skill_notes'] = '';
|
||
}
|
||
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcSpiritDamage({...v, ...newAttrs})
|
||
});
|
||
});
|
||
}
|
||
});
|
||
|
||
/* Option Bar Action Buttons */
|
||
on('clicked:reset-augmentation', function(event) {
|
||
setAttrs({set_augmentation: 0});
|
||
});
|
||
on('clicked:reset-penalty', function(event) {
|
||
setAttrs({set_penalty: 0});
|
||
});
|
||
|
||
/* Utility Functions */
|
||
function getSectionIDsOrdered(sectionName, callback) {
|
||
'use strict';
|
||
getAttrs([`_reporder_${sectionName}`], function (v) {
|
||
getSectionIDs(sectionName, function (idArray) {
|
||
let reporderArray = v[`_reporder_${sectionName}`] ? v[`_reporder_${sectionName}`].toLowerCase().split(',') : [],
|
||
ids = [...new Set(reporderArray.filter(x => idArray.includes(x)).concat(idArray))];
|
||
callback(ids);
|
||
});
|
||
});
|
||
}
|
||
|
||
function damageModTable(step) {
|
||
const stepAbs = Math.abs(step);
|
||
const die_steps = [0, '1d2','1d4','1d6','1d8'];
|
||
const d10s = Math.floor(stepAbs/5);
|
||
const damageModd10s = Math.floor((stepAbs-1)/5);
|
||
const notd10s = stepAbs % 5; // % calculates remainder after division.
|
||
const notDamageModd10s = (stepAbs-1) % 5; // % calculates remainder after division.
|
||
let mod;
|
||
if (stepAbs <= 5) {
|
||
mod = (d10s ? `${d10s}d10` : '') + (d10s && notd10s ? '+' : '') + (notd10s ? die_steps[notd10s] : (d10s ? '' : 0));
|
||
} else if (stepAbs === 6) {
|
||
mod = '1d12';
|
||
} else if (stepAbs === 7) {
|
||
mod = '2d6';
|
||
} else if (stepAbs === 8) {
|
||
mod = '1d8+1d6';
|
||
} else if (stepAbs === 9) {
|
||
mod = '2d8';
|
||
} else if (stepAbs === 10) {
|
||
mod = '1d10+1d8';
|
||
} else {
|
||
mod = (damageModd10s ? `${damageModd10s}d10` : '') + (damageModd10s && notDamageModd10s ? '+' : '') + (notDamageModd10s ? die_steps[notDamageModd10s] : (damageModd10s ? '' : 0));
|
||
}
|
||
|
||
if (step >= 0) {
|
||
return mod;
|
||
} else {
|
||
return '-' + mod;
|
||
}
|
||
}
|
||
|
||
/* The damage table differs slightly from the damageModTable because damage mod has an extra step of 1d12. */
|
||
function damageTable(step) {
|
||
const stepAbs = Math.abs(step);
|
||
const die_steps = [0, '1d2','1d4','1d6','1d8'];
|
||
const d10s = Math.floor(stepAbs/5);
|
||
const notd10s = stepAbs % 5; // % calculates remainder after division.
|
||
let mod;
|
||
if (stepAbs === 6) {
|
||
mod = '2d6';
|
||
} else if (stepAbs === 7) {
|
||
mod = '1d8+1d6';
|
||
} else if (stepAbs === 8) {
|
||
mod = '2d8';
|
||
} else if (stepAbs === 9) {
|
||
mod = '1d10+1d8';
|
||
} else {
|
||
mod = (d10s ? `${d10s}d10` : '') + (d10s && notd10s ? '+' : '') + (notd10s ? die_steps[notd10s] : (d10s ? '' : 0));
|
||
}
|
||
|
||
if (step >= 0) {
|
||
return mod;
|
||
} else {
|
||
return '-' + mod;
|
||
}
|
||
}
|
||
|
||
/* Type Specific Scripts */
|
||
on('change:unit_strength', function(event) {
|
||
getAttrs(['unit_strength', 'unit_frontage'], function (v) {
|
||
const strength = parseInt(v['unit_strength']) || 0;
|
||
const frontage = parseInt(v['unit_frontage']) || 0;
|
||
setAttrs({
|
||
"unit_depth": Math.floor(strength / frontage)
|
||
});
|
||
});
|
||
});
|
||
|
||
on('change:unit_frontage change:unit_type_multiplier', function(event) {
|
||
getAttrs(['unit_strength', 'unit_frontage', 'unit_type_multiplier'], function (v) {
|
||
const strength = parseInt(v['unit_strength']) || 0;
|
||
const frontage = parseInt(v['unit_frontage']) || 0;
|
||
const newDamageStep = Math.ceil((frontage) / 15);
|
||
setAttrs({
|
||
"unit_depth": Math.floor(strength / frontage),
|
||
"unit_damage": damageModTable(newDamageStep)
|
||
});
|
||
});
|
||
});
|
||
|
||
function upgradeBattleUnit3Dot0() {
|
||
getAttrs(['unit_notes', 'unit_strength', 'unit_frontage', 'unit_type_multiplier', "unit_command_penalty", "unit_command", "unit_morale_penalty", "unit_morale", "unit_competency", "unit_competency_penalty"], function (v) {
|
||
let newAttrs = {
|
||
'version': '3.0',
|
||
'sheet_type': 'battle_unit',
|
||
'hit_location_roll': '@{none_hit_location_roll}',
|
||
'hit_location_low_roll': '@{none_hit_location_roll}',
|
||
'hit_location_high_roll': '@{none_hit_location_roll}'
|
||
};
|
||
|
||
const strength = parseInt(v['unit_strength']) || 0;
|
||
const frontage = parseInt(v['unit_frontage']) || 0;
|
||
const newDamageStep = Math.ceil((frontage) / 15);
|
||
newAttrs["unit_depth"] = Math.floor(strength / frontage);
|
||
newAttrs["unit_damage"] = damageModTable(newDamageStep);
|
||
|
||
const command = parseInt(v['unit_command']) || 0;
|
||
const command_penalty = parseInt(v['unit_command_penalty']) || 0;
|
||
newAttrs["unit_command"] = command - command_penalty;
|
||
const competency = parseInt(v['unit_competency']) || 0;
|
||
const competency_penalty = parseInt(v['unit_competency_penalty']) || 0;
|
||
newAttrs["unit_competency"] = competency - competency_penalty;
|
||
const morale = parseInt(v['unit_morale']) || 0;
|
||
const morale_penalty = parseInt(v['unit_morale_penalty']) || 0;
|
||
newAttrs["unit_morale"] = morale - morale_penalty;
|
||
|
||
/* Convert Notes */
|
||
if (v['unit_notes']) {
|
||
newAttrs['sheet_notes'] = v['unit_notes'];
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
}
|
||
/* Characteristics */
|
||
const characteristicAttrs = ['str', 'con', 'siz', 'dex', 'int', 'pow', 'cha'];
|
||
characteristicAttrs.forEach(char => {
|
||
on(`change:${char}_base change:${char}`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
let repeatingIds = {}
|
||
getSectionIDs("repeating_meleeweapon", function(meleeWeaponIds) {
|
||
repeatingIds['meleeWeaponIds'] = meleeWeaponIds;
|
||
getSectionIDs("repeating_rangedweapon", function(rangedWeaponIds) {
|
||
repeatingIds['rangedWeaponIds'] = rangedWeaponIds;
|
||
getSectionIDs("repeating_equipment", function(gearIds) {
|
||
repeatingIds['gearIds'] = gearIds;
|
||
getSectionIDs("repeating_currency", function(currencyIds) {
|
||
repeatingIds['currencyIds'] = currencyIds;
|
||
getSectionIDs("repeating_combatstyle", function(combatStyleIds) {
|
||
getSectionIDs("repeating_professionalskill", function(proSkillIds) {
|
||
getSectionIDs("repeating_foobar", function(skilledAbilityIds) {
|
||
let combatStyleGetAttrs = [];
|
||
combatStyleIds.forEach(id => {
|
||
combatStyleGetAttrs.push(`repeating_combatstyle_${id}_total`,
|
||
`repeating_combatstyle_${id}_other`, `repeating_combatstyle_${id}_notes`,
|
||
`repeating_combatstyle_${id}_name`, `repeating_combatstyle_${id}_char1`,
|
||
`repeating_combatstyle_${id}_char2`);
|
||
});
|
||
|
||
let proSkillGetAttrs = [];
|
||
proSkillIds.forEach(id => {
|
||
proSkillGetAttrs.push(`repeating_professionalskill_${id}_total`,
|
||
`repeating_professionalskill_${id}_other`, `repeating_professionalskill_${id}_notes`,
|
||
`repeating_professionalskill_${id}_name`, `repeating_professionalskill_${id}_char1`,
|
||
`repeating_professionalskill_${id}_char2`);
|
||
});
|
||
|
||
let skilledAbilityGetAttrs = [];
|
||
skilledAbilityIds.forEach(id => {
|
||
skilledAbilityGetAttrs.push(`repeating_skilledability_${id}_total`,
|
||
`repeating_skilledability_${id}_other`, `repeating_skilledability_${id}_name`,
|
||
`repeating_skilledability_${id}_char1`, `repeating_skilledability_${id}_char2`);
|
||
});
|
||
|
||
let stdSkillGetAttrs = [];
|
||
stdSkillIds.forEach(id => {
|
||
stdSkillGetAttrs.push(`${id}`, `${id}_other`, `${id}_notes`);
|
||
});
|
||
|
||
getAttrs([`${char}_base`, `${char}_temp`, `${char}_pool`, 'social_defense_id'].concat(characteristicAttrs,
|
||
encGetAttrs(repeatingIds), actionPointGetAttrs, confidenceGetAttrs, damageModGetAttrs, expModGetAttrs,
|
||
healingRateGetAttrs, initGetAttrs, luckPointsGetAttrs, magicPointsGetAttrs, tenacityGetAttrs, hpGetAttrs,
|
||
moveRateGetAttrs, spiritIntensityGetAttrs, composureGetAttrs, integrityGetAttrs, resolveGetAttrs,
|
||
spiritDamageGetAttrs, socialDamageGetAttrs, stdSkillGetAttrs, combatStyleGetAttrs, proSkillGetAttrs,
|
||
skilledAbilityGetAttrs
|
||
), function(v) {
|
||
let newAttrs = {};
|
||
const baseCharVal = parseInt(v[`${char}_base`]) || 0;
|
||
const tempCharVal = parseInt(v[`${char}_temp`]) || 0;
|
||
const currCharVal = parseInt(v[`${char}`]) || 0;
|
||
const currPoolVal = parseInt(v[`${char}_pool`]) || 0;
|
||
|
||
if (event.sourceAttribute === `${char}`) {
|
||
newAttrs[`${char}_temp`] = currCharVal - baseCharVal;
|
||
const diffVal = newAttrs[`${char}_temp`] - tempCharVal;
|
||
newAttrs[`${char}_pool`] = currPoolVal + diffVal;
|
||
} else if (event.sourceAttribute === `${char}_base`) {
|
||
newAttrs[`${char}`] = baseCharVal + tempCharVal;
|
||
const diffVal = newAttrs[`${char}`] - currCharVal;
|
||
newAttrs[`${char}_pool`] = currPoolVal + diffVal;
|
||
v[`${char}`] = baseCharVal + tempCharVal; /* override the old value from getAttr, so we can base other calculations on the new value */
|
||
}
|
||
|
||
stdSkillIds.forEach(skillId => {
|
||
newAttrs = {...newAttrs, ...calcStdSkill(skillId, v, event.sourceAttribute)};
|
||
});
|
||
combatStyleIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...calcProSkill(`repeating_combatstyle_${id}`, v, event.sourceAttribute)};
|
||
});
|
||
proSkillIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...calcProSkill(`repeating_professionalskill_${id}`, v, event.sourceAttribute)};
|
||
});
|
||
skilledAbilityIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...calcSkilledAbility(`repeating_skilledability_${id}`, v, event.sourceAttribute)};
|
||
});
|
||
|
||
newAttrs = {...newAttrs, ...calcEncAndArmorPenalty(repeatingIds, v)};
|
||
/* Update v with new values need for attribute calculations */
|
||
v = {...v, ...newAttrs};
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcActionPoints(v),
|
||
...calcConfidence(v),
|
||
...calcDamageMod(v),
|
||
...calcExpMod(v),
|
||
...calcHealingRate(v),
|
||
...calcInitiativeBonus(v),
|
||
...calcLuckPoints(v),
|
||
...calcMagicPoints(v),
|
||
...calcMoveRate(v),
|
||
...calcSpiritIntensity(v),
|
||
...calcTenacity(v),
|
||
...calcAllHP(v),
|
||
...calcComposure(v),
|
||
...calcIntegrity(v),
|
||
...calcResolve(v)
|
||
/* No need for the social and spirit damage here since it would have been done via skills */
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
/* Action Points */
|
||
const actionPointGetAttrs = ['dex', 'int', 'pow', 'action_points_other', 'action_points_temp', 'action_points_calc', 'action_points', 'action_points_max', 'fatigue', 'attribute_mode']
|
||
function calcActionPoints(v) {
|
||
let newAttrs = {};
|
||
const int = parseInt(v['int']) || 0;
|
||
const action_points_other = parseInt(v['action_points_other']) || 0;
|
||
const action_points_temp = parseInt(v['action_points_temp']) || 0;
|
||
const action_points_max = parseInt(v['action_points_max']) || 0;
|
||
const action_points = parseInt(v['action_points']) || 0;
|
||
const fatigueMod = parseInt(fatigueTable[v['fatigue']]['action_points']) || 0;
|
||
|
||
let action_points_base;
|
||
if (v['action_points_calc'] === "set_2") {
|
||
newAttrs['action_points_max'] = 2 + action_points_other + action_points_temp;
|
||
} else if (v['action_points_calc'] === "set_3") {
|
||
newAttrs['action_points_max'] = 3 + action_points_other + action_points_temp;
|
||
} else {
|
||
if (v['attribute_mode'] === 'physical') {
|
||
const dex = parseInt(v['dex']) || 0;
|
||
newAttrs['action_points_max'] = Math.ceil((int + dex) / 12) + action_points_other + action_points_temp + fatigueMod;
|
||
} else if (v['attribute_mode'] === 'spiritual') {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
newAttrs['action_points_max'] = Math.ceil((int + pow) / 12) + action_points_other + action_points_temp; /* I assume fatigue doesn't affect spirit */
|
||
} else {
|
||
newAttrs['action_points_max'] = 3 + action_points_temp + fatigueMod;
|
||
}
|
||
}
|
||
|
||
const diffVal = newAttrs['action_points_max'] - action_points_max;
|
||
newAttrs['action_points'] = action_points + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:action_points_other change:action_points_temp', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(actionPointGetAttrs, function(v) {
|
||
setAttrs(calcActionPoints(v));
|
||
});
|
||
});
|
||
on('change:action_points_calc', function(event) {
|
||
/* Don't exit on sheetworker cause humans will modify the option not the setting itself */
|
||
getAttrs(actionPointGetAttrs, function(v) {
|
||
setAttrs({
|
||
...calcActionPoints(v)
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Confidence */
|
||
const confidenceGetAttrs = ['confidence_other', 'confidence_temp', 'willpower']
|
||
function calcConfidence(v) {
|
||
let newAttrs = {};
|
||
const confidenceOther = parseInt(v['confidence_other']) || 0;
|
||
const confidenceTemp = parseInt(v['confidence_temp']) || 0;
|
||
const willpower = parseInt(v['willpower']) || 0;
|
||
const confidenceBase = Math.floor(willpower/20) + confidenceOther;
|
||
newAttrs['confidence'] = confidenceBase + confidenceTemp;
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:confidence_other change:confidence_temp', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(confidenceGetAttrs, function(v) {
|
||
setAttrs(calcConfidence(v));
|
||
});
|
||
});
|
||
|
||
/* Social Damage */
|
||
const socialDamageGetAttrs = ['social_offense_id', 'social_offense_total', 'social_damage_other', 'social_damage_temp'];
|
||
/**
|
||
* Calculate the social damage value
|
||
* @param v attrs needed for calc; socialDamageGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcSocialDamage(v) {
|
||
let newAttrs = {};
|
||
let socialOffenseSkill = parseInt(v['social_offense_total']) || 0;
|
||
const socialDamageOther = parseInt(v['social_damage_other']) || 0;
|
||
const socialDamageTemp = parseInt(v['social_damage_temp']) || 0;
|
||
const newSocialDamageStep = Math.ceil(socialOffenseSkill/20) + socialDamageOther + socialDamageTemp;
|
||
newAttrs['social_damage'] = damageTable(newSocialDamageStep);
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:social_damage_other change:social_damage_temp', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(socialDamageGetAttrs, function(v) {
|
||
setAttrs(calcSocialDamage(v));
|
||
});
|
||
});
|
||
|
||
/* Spirit Damage */
|
||
const spiritDamageGetAttrs = ['spirit_combat_skill_id', 'spirit_combat_skill_total', 'spirit_damage_other', 'spirit_damage_temp'];
|
||
/**
|
||
* Calculate the spirt damage value
|
||
* @param v attrs needed for calc; spiritDamageGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcSpiritDamage(v) {
|
||
let newAttrs = {};
|
||
let spiritCombatSkill = parseInt(v['spirit_combat_skill_total']) || 0;
|
||
if (v['spirit_combat_skill_id'] === 'willpower') {
|
||
spiritCombatSkill = Math.ceil(spiritCombatSkill/2);
|
||
}
|
||
const spiritDamageOther = parseInt(v['spirit_damage_other']) || 0;
|
||
const spiritDamageTemp = parseInt(v['spirit_damage_temp']) || 0;
|
||
const newSpiritDamageStep = Math.ceil(spiritCombatSkill/20) + spiritDamageOther + spiritDamageTemp;
|
||
newAttrs['spirit_damage'] = damageTable(newSpiritDamageStep);
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:spirit_damage_other change:spirit_damage_temp', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(spiritDamageGetAttrs, function(v) {
|
||
setAttrs(calcSpiritDamage(v));
|
||
});
|
||
});
|
||
|
||
/* Damage Modifier */
|
||
const damageModGetAttrs = ['str', 'siz', 'con', 'pow', 'damage_mod_calc', 'damage_mod_temp', 'damage_mod_other'];
|
||
/**
|
||
* Calculate the damage modifier
|
||
* @param v attrs needed for calc; damageModGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcDamageMod(v) {
|
||
let damage_mod_table_value;
|
||
let str = parseInt(v['str']) || 0;
|
||
const siz = parseInt(v['siz']) || 0;
|
||
/* Special condition for elemental that have no SIZ, if 0 use str * 2 */
|
||
if (siz === 0) {
|
||
str = str * 2;
|
||
}
|
||
const damageModOther = parseInt(v['damage_mod_other']) || 0;
|
||
const damageModTemp = parseInt(v['damage_mod_temp']) || 0;
|
||
if (v['damage_mod_calc'] === '1') {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
damage_mod_table_value = str + siz + pow;
|
||
} else if (v['damage_mod_calc'] === '2') {
|
||
const con = parseInt(v['con']) || 0;
|
||
damage_mod_table_value = str + siz + con;
|
||
} else {
|
||
damage_mod_table_value = str + siz;
|
||
}
|
||
|
||
var damage_mod_step = 0;
|
||
|
||
if (damage_mod_table_value < 51) {
|
||
damage_mod_step = Math.ceil(damage_mod_table_value / 5) - 5 + damageModOther + damageModTemp;
|
||
} else {
|
||
damage_mod_step = Math.ceil((damage_mod_table_value - 50) / 10) + 5 + damageModOther + damageModTemp;
|
||
}
|
||
|
||
return {
|
||
damage_mod: damageModTable(damage_mod_step)
|
||
};
|
||
}
|
||
on('change:damage_mod_other change:damage_mod_temp change:damage_mod_calc', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(damageModGetAttrs, function(v) {
|
||
setAttrs(calcDamageMod(v));
|
||
});
|
||
});
|
||
|
||
/* Experience Modifier */
|
||
const expModGetAttrs = ['cha', 'int', 'experience_mod_calc', 'experience_mod_other', 'experience_mod_temp'];
|
||
/**
|
||
* Calculate Experience Modifier
|
||
* @param v attributes needed for calc, expModGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcExpMod(v) {
|
||
let newAttrs = {};
|
||
const expModOther = parseInt(v['experience_mod_other']) || 0;
|
||
const expModTemp = parseInt(v['experience_mod_temp']) || 0;
|
||
if(v['experience_mod_calc'] === '1') {
|
||
const int = parseInt(v['int']) || 0;
|
||
newAttrs['experience_mod'] = Math.ceil(int/6)-2 + expModOther + expModTemp;
|
||
} else {
|
||
const cha = parseInt(v['cha']) || 0;
|
||
newAttrs['experience_mod'] = Math.ceil(cha/6)-2 + expModOther + expModTemp;
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:experience_mod_other change:experience_mod_temp change:experience_mod_calc', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(expModGetAttrs, function(v) {
|
||
setAttrs(calcExpMod(v));
|
||
});
|
||
});
|
||
|
||
/* Healing Rate */
|
||
const healingRateGetAttrs = ['con', 'pow', 'healing_rate_calc', 'healing_rate_other', 'healing_rate_temp', 'healing_rate_double'];
|
||
/**
|
||
* Calculate Healing Rate
|
||
* @param v attributes needed for calc, healingRateGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcHealingRate(v) {
|
||
let base_multiplier;
|
||
let newAttrs = {};
|
||
const con = parseInt(v['con']) || 0;
|
||
const healingRateOther = parseInt(v['healing_rate_other']) || 0;
|
||
const healingRateTemp = parseInt(v['healing_rate_temp']) || 0;
|
||
if (v['healing_rate_double'] === '1') {
|
||
base_multiplier = 2;
|
||
} else {
|
||
base_multiplier = 1;
|
||
}
|
||
|
||
if (v['healing_rate_calc'] === '1') {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
newAttrs['healing_rate'] = (Math.ceil(Math.ceil(con+(pow/2))/6) * base_multiplier) + healingRateOther + healingRateTemp;
|
||
} else {
|
||
newAttrs['healing_rate'] = (Math.ceil(con/6) * base_multiplier) + healingRateOther + healingRateTemp;
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:healing_rate_other change:healing_rate_temp change:healing_rate_calc change:healing_rate_double', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(healingRateGetAttrs, function(v) {
|
||
setAttrs(calcHealingRate(v));
|
||
});
|
||
});
|
||
|
||
/* Initiative */
|
||
const initGetAttrs=['int', 'dex', 'cha', 'initiative_bonus_other', 'initiative_bonus_temp',
|
||
'armor_penalty', 'fatigue', 'athletics', 'initiative_add_one_tenth_athletics', 'attribute_mode']
|
||
/**
|
||
* Calculate Initiative Bonus
|
||
* @param v attrs needed for calculation, initGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcInitiativeBonus(v) {
|
||
let newAttrs = {};
|
||
const int = parseInt(v['int']) || 0;
|
||
const initOther = parseInt(v['initiative_bonus_other']) || 0;
|
||
const initTemp = parseInt(v['initiative_bonus_temp']) || 0;
|
||
const fatiguePenalty = parseInt(fatigueTable[v['fatigue']]['initiative']) || 0;
|
||
if (v['attribute_mode'] === 'physical') {
|
||
const dex = parseInt(v['dex']) || 0;
|
||
const armor_penalty = parseInt(v['armor_penalty']) || 0;
|
||
let athletics_bonus = 0;
|
||
if (v['initiative_add_one_tenth_athletics'] === '1') {
|
||
const athletics = parseInt(v['athletics']) || 0;
|
||
athletics_bonus = Math.ceil(athletics/10);
|
||
}
|
||
newAttrs['initiative_bonus'] = Math.ceil((int + dex) / 2) + initOther + initTemp + athletics_bonus + fatiguePenalty + armor_penalty;
|
||
} else { /* Social and spirit initiative are the same */
|
||
const cha = parseInt(v['cha']) || 0;
|
||
newAttrs['initiative_bonus'] = Math.ceil((int + cha) / 2) + initOther + initTemp;
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:initiative_bonus_other change:initiative_bonus_temp change:initiative_add_one_tenth_athletics', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(initGetAttrs, function(v) {
|
||
setAttrs(calcInitiativeBonus(v));
|
||
});
|
||
});
|
||
|
||
/* Luck Points */
|
||
const luckPointsGetAttrs=['pow', 'cha', 'luck_points_calc', 'luck_points_other', 'luck_points_temp', 'luck_points_rank', 'rank', 'luck_points', 'luck_points_max']
|
||
/**
|
||
* Calculate Luck Points
|
||
* @param v attrs needed for calculation, luckPointsGetAttrs
|
||
* @param sourceAttribute the attr the triggered the change
|
||
* @returns {}
|
||
*/
|
||
function calcLuckPoints(v) {
|
||
let newAttrs = {};
|
||
const pow = parseInt(v['pow']) || 0;
|
||
const rank = parseInt(v['rank']) || 0;
|
||
const luckPointsRank = parseInt(v['luck_points_rank']) || 0;
|
||
const luckPointsOther = parseInt(v['luck_points_other']) || 0;
|
||
const luckPointsTemp = parseInt(v['luck_points_temp']) || 0;
|
||
const luckPointsMax = parseInt(v['luck_points_max']) || 0;
|
||
const luckPointsCurr = parseInt(v['luck_points']) || 0;
|
||
if (v['luck_points_calc'] === '1') {
|
||
const cha = parseInt(v['cha']) || 0;
|
||
newAttrs['luck_points_max'] = Math.ceil(Math.ceil(cha+(pow/2))/6) + luckPointsOther + luckPointsTemp + (luckPointsRank * rank);
|
||
} else {
|
||
newAttrs['luck_points_max'] = Math.ceil(pow/6) + luckPointsOther + luckPointsTemp + (luckPointsRank * rank);
|
||
}
|
||
|
||
const diffVal = newAttrs['luck_points_max'] - luckPointsMax;
|
||
newAttrs['luck_points'] = luckPointsCurr + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:luck_points_other change:luck_points_temp change:luck_points_calc change:rank', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(luckPointsGetAttrs, function(v) {
|
||
setAttrs(calcLuckPoints(v));
|
||
});
|
||
});
|
||
on('change:luck_points_rank', function(event) {
|
||
/* Don't exit on sheetworker cause humans will modify the option not the setting itself */
|
||
getAttrs(luckPointsGetAttrs, function(v) {
|
||
setAttrs(calcLuckPoints(v));
|
||
});
|
||
});
|
||
|
||
/* Magic Points */
|
||
const magicPointsGetAttrs = ['pow', 'magic_points_other', 'magic_points_temp', 'magic_points', 'magic_points_max'];
|
||
/**
|
||
* Calculate Magic points
|
||
* @param v attrs needed for calculation, magicPointsGetAttrs
|
||
* @param sourceAttribute the attr the triggered the change
|
||
* @returns {}
|
||
*/
|
||
function calcMagicPoints(v) {
|
||
let newAttrs = {};
|
||
const pow = parseInt(v['pow']) || 0;
|
||
const magicPointsOther = parseInt(v['magic_points_other']) || 0;
|
||
const magicPointsTemp = parseInt(v['magic_points_temp']) || 0;
|
||
const magicPointsCurr = parseInt(v['magic_points']) || 0;
|
||
const magicPointsMax = parseInt(v['magic_points_max']) || 0;
|
||
newAttrs['magic_points_max'] = pow + magicPointsOther + magicPointsTemp;
|
||
|
||
const diffVal = newAttrs['magic_points_max'] - magicPointsMax;
|
||
newAttrs['magic_points'] = magicPointsCurr + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:magic_points_other change:magic_points_temp change:magic_points_max', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(magicPointsGetAttrs, function(v) {
|
||
setAttrs(calcMagicPoints(v));
|
||
});
|
||
});
|
||
|
||
/* Movement Rate */
|
||
const moveRateGetAttrs = ['movement_rate_species', 'movement_rate_other', 'movement_rate_temp', 'fatigue', 'encumbrance_load', 'athletics'];
|
||
/**
|
||
*
|
||
* @param value
|
||
* @param modifier
|
||
* @returns {number|*}
|
||
*/
|
||
function applyMovementMod(value, modifier) {
|
||
if (modifier === '-1') {
|
||
return value - 1;
|
||
} else if (modifier === '-2') {
|
||
return value - 2;
|
||
} else if (modifier === '*.5') {
|
||
return Math.ceil(value / 2);
|
||
} else if (modifier === '*0') {
|
||
return 0;
|
||
} else {
|
||
return value;
|
||
}
|
||
}
|
||
/**
|
||
* Calculate movement rate and other movement derived values
|
||
* @param v attrs needed for calculation, moveRateGetAttrs
|
||
* @returns {}
|
||
*/
|
||
function calcMoveRate(v) {
|
||
let newAttrs = {};
|
||
const moveRateSpecies = parseInt(v['movement_rate_species']) || 0;
|
||
const moveRateOther = parseInt(v['movement_rate_other']) || 0;
|
||
const moveRateTemp = parseInt(v['movement_rate_temp']) || 0;
|
||
const core_value = moveRateSpecies + moveRateOther + moveRateTemp;
|
||
const moveAfterFatigue = applyMovementMod(core_value, fatigueTable[v['fatigue']]['movement'] || "+0");
|
||
newAttrs['movement_rate'] = applyMovementMod(moveAfterFatigue, loadTable[v['encumbrance_load']]['movement'] || "+0");
|
||
|
||
return newAttrs;
|
||
}
|
||
on('change:movement_rate_species change:movement_rate_other change:movement_rate_temp', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(moveRateGetAttrs, function(v) {
|
||
setAttrs(calcMoveRate(v));
|
||
});
|
||
});
|
||
|
||
/* Spirit Intensity */
|
||
const spiritIntensityGetAttrs = ['pow']
|
||
function calcSpiritIntensity(v) {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
return {'spirit_intensity': Math.floor(pow/6)};
|
||
}
|
||
|
||
/* Tenacity Points */
|
||
const tenacityGetAttrs = ['pow', 'tenacity_other', 'tenacity_temp', 'tenacity', 'tenacity_max', 'tenacity_dependencies', 'apply_dependencies_penalty'];
|
||
/**
|
||
* Calculate Tenacity points
|
||
* @param v attrs needed for calculation, tenacityPointsGetAttrs
|
||
* @param sourceAttribute the attr the triggered the change
|
||
* @returns {}
|
||
*/
|
||
function calcTenacity(v) {
|
||
let newAttrs = {};
|
||
const pow = parseInt(v['pow']) || 0;
|
||
const tenacityOther = parseInt(v['tenacity_other']) || 0;
|
||
const tenacityTemp = parseInt(v['tenacity_temp']) || 0;
|
||
const tenacityCurr = parseInt(v['tenacity']) || 0;
|
||
const tenacityMax = parseInt(v['tenacity_max']) || 0;
|
||
let tenacityDeps = 0;
|
||
if (v['apply_dependencies_penalty'] === '1') {
|
||
tenacityDeps = parseInt(v['tenacity_dependencies']) || 0;
|
||
}
|
||
newAttrs['tenacity_max'] = pow + tenacityOther + tenacityTemp + tenacityDeps;
|
||
|
||
const diffVal = newAttrs['tenacity_max'] - tenacityMax;
|
||
newAttrs['tenacity'] = tenacityCurr + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:tenacity_other change:tenacity_temp change:apply_dependencies_penalty', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(tenacityGetAttrs, function(v) {
|
||
setAttrs(calcTenacity(v));
|
||
});
|
||
});
|
||
|
||
/* Hit Locations */
|
||
const hitLocationTable = {
|
||
custom1: {
|
||
location2to7_display: 0, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
custom7: {
|
||
location2to7_display: 1, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
custom8: {
|
||
location2to7_display: 1, location8_display: 1, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
custom9: {
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
custom10: {
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 0, location12_display: 0
|
||
},
|
||
custom11: {
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 0
|
||
},
|
||
custom: {
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 1
|
||
},
|
||
rabble: {
|
||
location1_table_start: 1, location1_table_end: 20, location1_name: getTranslationByKey('hit_points'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 0, location2_table_end: 0, location2_name: " ", location2_hp_max_base_mod: '-',
|
||
location3_table_start: 0, location3_table_end: 0, location3_name: " ", location3_hp_max_base_mod: '-',
|
||
location4_table_start: 0, location4_table_end: 0, location4_name: " ", location4_hp_max_base_mod: '-',
|
||
location5_table_start: 0, location5_table_end: 0, location5_name: " ", location5_hp_max_base_mod: '-',
|
||
location6_table_start: 0, location6_table_end: 0, location6_name: " ", location6_hp_max_base_mod: '-',
|
||
location7_table_start: 0, location7_table_end: 0, location7_name: " ", location7_hp_max_base_mod: '-',
|
||
location8_table_start: 0, location8_table_end: 0, location8_name: " ", location8_hp_max_base_mod: '-',
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 0, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
simplified: {
|
||
location1_table_start: 1, location1_table_end: 20, location1_name: getTranslationByKey('hit_points'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 0, location2_table_end: 0, location2_name: " ", location2_hp_max_base_mod: '-',
|
||
location3_table_start: 0, location3_table_end: 0, location3_name: " ", location3_hp_max_base_mod: '-',
|
||
location4_table_start: 0, location4_table_end: 0, location4_name: " ", location4_hp_max_base_mod: '-',
|
||
location5_table_start: 0, location5_table_end: 0, location5_name: " ", location5_hp_max_base_mod: '-',
|
||
location6_table_start: 0, location6_table_end: 0, location6_name: " ", location6_hp_max_base_mod: '-',
|
||
location7_table_start: 0, location7_table_end: 0, location7_name: " ", location7_hp_max_base_mod: '-',
|
||
location8_table_start: 0, location8_table_end: 0, location8_name: " ", location8_hp_max_base_mod: '-',
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 0, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
arachnid: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: -1,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 5, location3_table_end: 6, location3_name: getTranslationByKey('mid_right_leg'), location3_hp_max_base_mod: -1,
|
||
location4_table_start: 7, location4_table_end: 8, location4_name: getTranslationByKey('mid_left_leg'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 9, location5_table_end: 10, location5_name: getTranslationByKey('fore_right_leg'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 11, location6_table_end: 12, location6_name: getTranslationByKey('fore_left_leg'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 13, location7_table_end: 14, location7_name: getTranslationByKey('abdomen'), location7_hp_max_base_mod: 2,
|
||
location8_table_start: 15, location8_table_end: 16, location8_name: getTranslationByKey('front_right_leg'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 17, location9_table_end: 18, location9_name: getTranslationByKey('front_left_leg'), location9_hp_max_base_mod: -1,
|
||
location10_table_start: 19, location10_table_end: 20, location10_name: getTranslationByKey('cephalothorax'), location10_hp_max_base_mod: 1,
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: "", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: "", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 0, location12_display: 0
|
||
},
|
||
humanoid: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 6, location2_name: getTranslationByKey('left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 7, location3_table_end: 9, location3_name: getTranslationByKey('abdomen'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 10, location4_table_end: 12, location4_name: getTranslationByKey('chest'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 13, location5_table_end: 15, location5_name: getTranslationByKey('right_arm'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 16, location6_table_end: 18, location6_name: getTranslationByKey('left_arm'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 19, location7_table_end: 20, location7_name: getTranslationByKey('head'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 0, location8_table_end: 0, location8_name: " ", location8_hp_max_base_mod: '-',
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
centaurid: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 6, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 7, location3_table_end: 8, location3_name: getTranslationByKey('hindquarters'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 9, location4_table_end: 10, location4_name: getTranslationByKey('forequarters'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 11, location5_table_end: 12, location5_name: getTranslationByKey('front_right_leg'), location5_hp_max_base_mod: 0,
|
||
location6_table_start: 13, location6_table_end: 14, location6_name: getTranslationByKey('front_left_leg'), location6_hp_max_base_mod: 0,
|
||
location7_table_start: 15, location7_table_end: 16, location7_name: getTranslationByKey('chest'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 17, location8_table_end: 17, location8_name: getTranslationByKey('right_arm'), location8_hp_max_base_mod: -4,
|
||
location9_table_start: 18, location9_table_end: 18, location9_name: getTranslationByKey('left_arm'), location9_hp_max_base_mod: -4,
|
||
location10_table_start: 19, location10_table_end: 20, location10_name: getTranslationByKey('head'), location10_hp_max_base_mod: -3,
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 0, location12_display: 0
|
||
},
|
||
decapoda: {
|
||
location1_table_start: 1, location1_table_end: 1, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: -1,
|
||
location2_table_start: 2, location2_table_end: 2, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 3, location3_table_end: 3, location3_name: getTranslationByKey('mid_right_leg'), location3_hp_max_base_mod: -1,
|
||
location4_table_start: 4, location4_table_end: 4, location4_name: getTranslationByKey('mid_left_leg'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 5, location5_table_end: 5, location5_name: getTranslationByKey('fore_right_leg'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 6, location6_table_end: 6, location6_name: getTranslationByKey('fore_left_leg'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 7, location7_table_end: 7, location7_name: getTranslationByKey('front_right_leg'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 8, location8_table_end: 8, location8_name: getTranslationByKey('front_left_leg'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 9, location9_table_end: 10, location9_name: getTranslationByKey('abdomen'), location9_hp_max_base_mod: 1,
|
||
location10_table_start: 11, location10_table_end: 16, location10_name: getTranslationByKey('cephalothorax'), location10_hp_max_base_mod: 2,
|
||
location11_table_start: 17, location11_table_end: 18, location11_name: getTranslationByKey('right_pincer'), location11_hp_max_base_mod: 2,
|
||
location12_table_start: 19, location12_table_end: 20, location12_name: getTranslationByKey('left_pincer'), location12_hp_max_base_mod: 0,
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 1
|
||
},
|
||
decapodiform: {
|
||
location1_table_start: 1, location1_table_end: 1, location1_name: getTranslationByKey('tentacle_1'), location1_hp_max_base_mod: -1,
|
||
location2_table_start: 2, location2_table_end: 2, location2_name: getTranslationByKey('tentacle_2'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 3, location3_table_end: 3, location3_name: getTranslationByKey('tentacle_3'), location3_hp_max_base_mod: -1,
|
||
location4_table_start: 4, location4_table_end: 4, location4_name: getTranslationByKey('tentacle_4'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 5, location5_table_end: 5, location5_name: getTranslationByKey('tentacle_5'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 6, location6_table_end: 6, location6_name: getTranslationByKey('tentacle_6'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 7, location7_table_end: 7, location7_name: getTranslationByKey('tentacle_7'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 8, location8_table_end: 8, location8_name: getTranslationByKey('tentacle_8'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 9, location9_table_end: 11, location9_name: getTranslationByKey('long_tentacle_1'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 12, location10_table_end: 14, location10_name: getTranslationByKey('long_tentacle_2'), location10_hp_max_base_mod: 0,
|
||
location11_table_start: 15, location11_table_end: 17, location11_name: getTranslationByKey('body'), location11_hp_max_base_mod: 2,
|
||
location12_table_start: 18, location12_table_end: 20, location12_name: getTranslationByKey('head'), location12_hp_max_base_mod: 1,
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 1
|
||
},
|
||
dorsal_finned_aquatic: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('tail'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 6, location2_name: getTranslationByKey('dorsal_fin'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 7, location3_table_end: 10, location3_name: getTranslationByKey('hindquarters'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 11, location4_table_end: 14, location4_name: getTranslationByKey('forequarters'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 15, location5_table_end: 16, location5_name: getTranslationByKey('right_fin'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 17, location6_table_end: 18, location6_name: getTranslationByKey('left_fin'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 19, location7_table_end: 20, location7_name: getTranslationByKey('head'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 0, location8_table_end: 0, location8_name: " ", location8_hp_max_base_mod: '-',
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
draconic: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('tail'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('rear_right_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 5, location3_table_end: 6, location3_name: getTranslationByKey('rear_left_leg'), location3_hp_max_base_mod: 0,
|
||
location4_table_start: 7, location4_table_end: 8, location4_name: getTranslationByKey('hindquarters'), location4_hp_max_base_mod: 1,
|
||
location5_table_start: 9, location5_table_end: 10, location5_name: getTranslationByKey('right_wing'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 11, location6_table_end: 12, location6_name: getTranslationByKey('left_wing'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 13, location7_table_end: 14, location7_name: getTranslationByKey('forequarters'), location7_hp_max_base_mod: 2,
|
||
location8_table_start: 15, location8_table_end: 16, location8_name: getTranslationByKey('front_right_leg'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 17, location9_table_end: 18, location9_name: getTranslationByKey('front_left_leg'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 19, location10_table_end: 20, location10_name: getTranslationByKey('head'), location10_hp_max_base_mod: 0,
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 0, location12_display: 0
|
||
},
|
||
insect: {
|
||
location1_table_start: 1, location1_table_end: 1, location1_name: getTranslationByKey('right_rear_leg'), location1_hp_max_base_mod: -1,
|
||
location2_table_start: 2, location2_table_end: 2, location2_name: getTranslationByKey('left_rear_leg'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 3, location3_table_end: 3, location3_name: getTranslationByKey('mid_right_leg'), location3_hp_max_base_mod: -1,
|
||
location4_table_start: 4, location4_table_end: 4, location4_name: getTranslationByKey('mid_left_leg'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 5, location5_table_end: 9, location5_name: getTranslationByKey('abdomen'), location5_hp_max_base_mod: 1,
|
||
location6_table_start: 10, location6_table_end: 13, location6_name: getTranslationByKey('thorax'), location6_hp_max_base_mod: 2,
|
||
location7_table_start: 14, location7_table_end: 14, location7_name: getTranslationByKey('front_right_leg'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 15, location8_table_end: 15, location8_name: getTranslationByKey('front_left_leg'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 16, location9_table_end: 20, location9_name: getTranslationByKey('head'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
octopodiform: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('tentacle_1'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('tentacle_2'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 5, location3_table_end: 6, location3_name: getTranslationByKey('tentacle_3'), location3_hp_max_base_mod: 0,
|
||
location4_table_start: 7, location4_table_end: 8, location4_name: getTranslationByKey('tentacle_4'), location4_hp_max_base_mod: 0,
|
||
location5_table_start: 9, location5_table_end: 10, location5_name: getTranslationByKey('tentacle_5'), location5_hp_max_base_mod: 0,
|
||
location6_table_start: 11, location6_table_end: 12, location6_name: getTranslationByKey('tentacle_6'), location6_hp_max_base_mod: 0,
|
||
location7_table_start: 13, location7_table_end: 14, location7_name: getTranslationByKey('tentacle_7'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 15, location8_table_end: 16, location8_name: getTranslationByKey('tentacle_8'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 17, location9_table_end: 18, location9_name: getTranslationByKey('body'), location9_hp_max_base_mod: 1,
|
||
location10_table_start: 19, location10_table_end: 20, location10_name: getTranslationByKey('head'), location10_hp_max_base_mod: 2,
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 0, location12_display: 0
|
||
},
|
||
pachyderm: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 5, location3_table_end: 8, location3_name: getTranslationByKey('hindquarters'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 9, location4_table_end: 12, location4_name: getTranslationByKey('forequarters'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 13, location5_table_end: 14, location5_name: getTranslationByKey('front_right_leg'), location5_hp_max_base_mod: 0,
|
||
location6_table_start: 15, location6_table_end: 16, location6_name: getTranslationByKey('front_left_leg'), location6_hp_max_base_mod: 0,
|
||
location7_table_start: 17, location7_table_end: 17, location7_name: getTranslationByKey('trunk'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 18, location8_table_end: 20, location8_name: getTranslationByKey('head'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
quadruped: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 5, location3_table_end: 7, location3_name: getTranslationByKey('hindquarters'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 8, location4_table_end: 10, location4_name: getTranslationByKey('forequarters'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 11, location5_table_end: 13, location5_name: getTranslationByKey('front_right_leg'), location5_hp_max_base_mod: 0,
|
||
location6_table_start: 14, location6_table_end: 16, location6_name: getTranslationByKey('front_left_leg'), location6_hp_max_base_mod: 0,
|
||
location7_table_start: 17, location7_table_end: 20, location7_name: getTranslationByKey('head'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 0, location8_table_end: 0, location8_name: " ", location8_hp_max_base_mod: '-',
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 0, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
serpentine: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('tail_tip'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 5, location2_name: getTranslationByKey('mid_end-length'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 6, location3_table_end: 7, location3_name: getTranslationByKey('fore_end-length'), location3_hp_max_base_mod: 0,
|
||
location4_table_start: 8, location4_table_end: 9, location4_name: getTranslationByKey('rear_mid-length'), location4_hp_max_base_mod: 1,
|
||
location5_table_start: 10, location5_table_end: 12, location5_name: getTranslationByKey('mid_mid-length'), location5_hp_max_base_mod: 1,
|
||
location6_table_start: 13, location6_table_end: 14, location6_name: getTranslationByKey('fore_mid-length'), location6_hp_max_base_mod: 1,
|
||
location7_table_start: 15, location7_table_end: 16, location7_name: getTranslationByKey('rear_fore-length'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 17, location8_table_end: 18, location8_name: getTranslationByKey('mid_fore-length'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 19, location9_table_end: 20, location9_name: getTranslationByKey('head'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
tailed_arachnid: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('tail'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 3, location2_name: getTranslationByKey('rear_right_leg'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 4, location3_table_end: 4, location3_name: getTranslationByKey('rear_left_leg'), location3_hp_max_base_mod: -1,
|
||
location4_table_start: 5, location4_table_end: 5, location4_name: getTranslationByKey('mid_right_leg'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 6, location5_table_end: 6, location5_name: getTranslationByKey('mid_left_leg'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 7, location6_table_end: 7, location6_name: getTranslationByKey('fore_right_leg'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 8, location7_table_end: 8, location7_name: getTranslationByKey('fore_left_leg'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 9, location8_table_end: 12, location8_name: getTranslationByKey('thorax'), location8_hp_max_base_mod: 1,
|
||
location9_table_start: 13, location9_table_end: 15, location9_name: getTranslationByKey('right_pincer'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 16, location10_table_end: 18, location10_name: getTranslationByKey('left_pincer'), location10_hp_max_base_mod: 0,
|
||
location11_table_start: 19, location11_table_end: 20, location11_name: getTranslationByKey('cephalothorax'), location11_hp_max_base_mod: 2,
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 0
|
||
},
|
||
tailed_biped: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('tail'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 5, location2_name: getTranslationByKey('right_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 6, location3_table_end: 7, location3_name: getTranslationByKey('left_leg'), location3_hp_max_base_mod: 0,
|
||
location4_table_start: 8, location4_table_end: 10, location4_name: getTranslationByKey('abdomen'), location4_hp_max_base_mod: 1,
|
||
location5_table_start: 11, location5_table_end: 14, location5_name: getTranslationByKey('chest'), location5_hp_max_base_mod: 2,
|
||
location6_table_start: 15, location6_table_end: 16, location6_name: getTranslationByKey('right_arm'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 17, location7_table_end: 18, location7_name: getTranslationByKey('left_arm'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 19, location8_table_end: 20, location8_name: getTranslationByKey('head'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
tailed_quadruped: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('tail'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 5, location2_name: getTranslationByKey('rear_right_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 6, location3_table_end: 7, location3_name: getTranslationByKey('rear_left_leg'), location3_hp_max_base_mod: 0,
|
||
location4_table_start: 8, location4_table_end: 10, location4_name: getTranslationByKey('hindquarters'), location4_hp_max_base_mod: 1,
|
||
location5_table_start: 11, location5_table_end: 14, location5_name: getTranslationByKey('forequarters'), location5_hp_max_base_mod: 2,
|
||
location6_table_start: 15, location6_table_end: 16, location6_name: getTranslationByKey('front_right_leg'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 17, location7_table_end: 18, location7_name: getTranslationByKey('front_left_leg'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 19, location8_table_end: 20, location8_name: getTranslationByKey('head'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 0, location9_table_end: 0, location9_name: " ", location9_hp_max_base_mod: '-',
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 0, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
winged_biped: {
|
||
location1_table_start: 1, location1_table_end: 3, location1_name: getTranslationByKey('right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 4, location2_table_end: 6, location2_name: getTranslationByKey('left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 7, location3_table_end: 9, location3_name: getTranslationByKey('abdomen'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 10, location4_table_end: 10, location4_name: getTranslationByKey('chest'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 11, location5_table_end: 12, location5_name: getTranslationByKey('right_wing'), location5_hp_max_base_mod: 0,
|
||
location6_table_start: 13, location6_table_end: 14, location6_name: getTranslationByKey('left_wing'), location6_hp_max_base_mod: 0,
|
||
location7_table_start: 15, location7_table_end: 16, location7_name: getTranslationByKey('right_arm'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 17, location8_table_end: 18, location8_name: getTranslationByKey('left_arm'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 19, location9_table_end: 20, location9_name: getTranslationByKey('head'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 0, location11_display: 0, location12_display: 0
|
||
},
|
||
winged_insect: {
|
||
location1_table_start: 1, location1_table_end: 1, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: -1,
|
||
location2_table_start: 2, location2_table_end: 2, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: -1,
|
||
location3_table_start: 3, location3_table_end: 4, location3_name: getTranslationByKey('metathorax'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 5, location4_table_end: 5, location4_name: getTranslationByKey('mid_right_leg'), location4_hp_max_base_mod: -1,
|
||
location5_table_start: 6, location5_table_end: 6, location5_name: getTranslationByKey('mid_left_leg'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 7, location6_table_end: 10, location6_name: getTranslationByKey('prothorax'), location6_hp_max_base_mod: 2,
|
||
location7_table_start: 11, location7_table_end: 12, location7_name: getTranslationByKey('right_wing'), location7_hp_max_base_mod: -1,
|
||
location8_table_start: 13, location8_table_end: 14, location8_name: getTranslationByKey('left_wing'), location8_hp_max_base_mod: -1,
|
||
location9_table_start: 15, location9_table_end: 16, location9_name: getTranslationByKey('front_right_leg'), location9_hp_max_base_mod: -1,
|
||
location10_table_start: 17, location10_table_end: 18, location10_name: getTranslationByKey('front_left_leg'), location10_hp_max_base_mod: -1,
|
||
location11_table_start: 19, location11_table_end: 20, location11_name: getTranslationByKey('head'), location11_hp_max_base_mod: 0,
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location1to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 1, location11_display: 1, location12_display: 0
|
||
},
|
||
winged_quadruped: {
|
||
location1_table_start: 1, location1_table_end: 2, location1_name: getTranslationByKey('rear_right_leg'), location1_hp_max_base_mod: 0,
|
||
location2_table_start: 3, location2_table_end: 4, location2_name: getTranslationByKey('rear_left_leg'), location2_hp_max_base_mod: 0,
|
||
location3_table_start: 5, location3_table_end: 7, location3_name: getTranslationByKey('hindquarters'), location3_hp_max_base_mod: 1,
|
||
location4_table_start: 8, location4_table_end: 10, location4_name: getTranslationByKey('forequarters'), location4_hp_max_base_mod: 2,
|
||
location5_table_start: 11, location5_table_end: 12, location5_name: getTranslationByKey('right_wing'), location5_hp_max_base_mod: -1,
|
||
location6_table_start: 13, location6_table_end: 14, location6_name: getTranslationByKey('left_wing'), location6_hp_max_base_mod: -1,
|
||
location7_table_start: 15, location7_table_end: 16, location7_name: getTranslationByKey('front_right_leg'), location7_hp_max_base_mod: 0,
|
||
location8_table_start: 17, location8_table_end: 18, location8_name: getTranslationByKey('front_left_leg'), location8_hp_max_base_mod: 0,
|
||
location9_table_start: 19, location9_table_end: 20, location9_name: getTranslationByKey('head'), location9_hp_max_base_mod: 0,
|
||
location10_table_start: 0, location10_table_end: 0, location10_name: " ", location10_hp_max_base_mod: '-',
|
||
location11_table_start: 0, location11_table_end: 0, location11_name: " ", location11_hp_max_base_mod: '-',
|
||
location12_table_start: 0, location12_table_end: 0, location12_name: " ", location12_hp_max_base_mod: '-',
|
||
location2to7_display: 1, location8_display: 1, location9_display: 1, location10_display: 0, location11_display: 0, location12_display: 0
|
||
}
|
||
}
|
||
const hpGetAttrs = ['siz', 'con', 'str', 'pow', 'hp_calc', 'simplified_combat_enabled',
|
||
`location1_hp_max_base_mod`, `location1_hp_max_other`, `location1_hp`, `location1_hp_max`,
|
||
`location2_hp_max_base_mod`, `location2_hp_max_other`, `location2_hp`, `location2_hp_max`,
|
||
`location3_hp_max_base_mod`, `location3_hp_max_other`, `location3_hp`, `location3_hp_max`,
|
||
`location4_hp_max_base_mod`, `location4_hp_max_other`, `location4_hp`, `location4_hp_max`,
|
||
`location5_hp_max_base_mod`, `location5_hp_max_other`, `location5_hp`, `location5_hp_max`,
|
||
`location6_hp_max_base_mod`, `location6_hp_max_other`, `location6_hp`, `location6_hp_max`,
|
||
`location7_hp_max_base_mod`, `location7_hp_max_other`, `location7_hp`, `location7_hp_max`,
|
||
`location8_hp_max_base_mod`, `location8_hp_max_other`, `location8_hp`, `location8_hp_max`,
|
||
`location9_hp_max_base_mod`, `location9_hp_max_other`, `location9_hp`, `location9_hp_max`,
|
||
`location10_hp_max_base_mod`, `location10_hp_max_other`, `location10_hp`, `location10_hp_max`,
|
||
`location11_hp_max_base_mod`, `location11_hp_max_other`, `location11_hp`, `location11_hp_max`,
|
||
`location12_hp_max_base_mod`, `location12_hp_max_other`, `location12_hp`, `location12_hp_max`
|
||
]
|
||
/**
|
||
* Find and return the root HP value which will need further modification per location
|
||
* @param v attrs needed, ['siz', 'con', 'pow', 'str', 'simplified_combat_enabled', 'hp_calc']
|
||
* @returns {number}
|
||
*/
|
||
function calcRootHP(v) {
|
||
let denominator = 5;
|
||
const siz = parseInt(v['siz']) || 0;
|
||
const con = parseInt(v['con']) || 0;
|
||
if (v['simplified_combat_enabled'] === '1') {
|
||
denominator = 2;
|
||
}
|
||
|
||
if (v['hp_calc'] === '1') {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
return Math.ceil((con + siz + pow)/denominator);
|
||
} else if (v['hp_calc'] === '2') {
|
||
const str = parseInt(v['str']) || 0;
|
||
return Math.ceil((con + siz + str)/denominator);
|
||
} else {
|
||
return Math.ceil((con + siz)/denominator);
|
||
}
|
||
}
|
||
/**
|
||
*
|
||
* @param num the location to calculate
|
||
* @param v attrs needed, ['siz', 'con', 'str', 'pow', `location${num}_hp_max_base_mod`, `location${num}_hp_max_other`, `location${num}_hp`, `location${num}_hp_max`, 'hp_calc', 'simplified_combat_enabled']
|
||
*/
|
||
function calcLocationHP(num, v) {
|
||
const rootHP = calcRootHP(v);
|
||
const hpBaseMod = parseInt(v[`location${num}_hp_max_base_mod`]) || 0;
|
||
const hpOther = parseInt(v[`location${num}_hp_max_other`]) || 0;
|
||
const hpCurr = parseInt(v[`location${num}_hp`]) || 0;
|
||
const hpMaxCurr = parseInt(v[`location${num}_hp_max`]) || 0;
|
||
const newMax = rootHP + hpBaseMod + hpOther;
|
||
const diff = hpCurr - hpMaxCurr;
|
||
return {[`location${num}_hp`]: newMax + diff, [`location${num}_hp_max`]: newMax};
|
||
}
|
||
/**
|
||
* Calc HP for all locations
|
||
* @param v attrs neede, hpGetAttrs
|
||
*/
|
||
function calcAllHP(v) {
|
||
return {
|
||
...calcLocationHP('1', v),
|
||
...calcLocationHP('2', v),
|
||
...calcLocationHP('3', v),
|
||
...calcLocationHP('4', v),
|
||
...calcLocationHP('5', v),
|
||
...calcLocationHP('6', v),
|
||
...calcLocationHP('7', v),
|
||
...calcLocationHP('8', v),
|
||
...calcLocationHP('9', v),
|
||
...calcLocationHP('10', v),
|
||
...calcLocationHP('11', v),
|
||
...calcLocationHP('12', v)
|
||
}
|
||
}
|
||
/* Locational Hit Points */
|
||
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'].forEach(num => {
|
||
on(`change:location${num}_hp_max_base_mod change:location${num}_hp_max_other`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(['siz', 'con', 'str', 'pow', `location${num}_hp_max_base_mod`, `location${num}_hp_max_other`,
|
||
`location${num}_hp`, `location${num}_hp_max`, 'hp_calc', 'simplified_combat_enabled'], function(v) {
|
||
if (debug) {console.log(`Setting attrs for location ${num} hp trigger`);}
|
||
setAttrs( calcLocationHP(num, v) );
|
||
});
|
||
});
|
||
});
|
||
on(`change:hit_locations change:simplified_combat_enabled`, function(event) {
|
||
/* don't prevent sheet workers cause they will set simplified_combat_enabled */
|
||
getAttrs(['hit_locations'].concat(hpGetAttrs), function(v) {
|
||
let newAttrs = hitLocationTable[v['hit_locations']];
|
||
/* When simplified combat enabled we set hit locations to the special hidden simplified value */
|
||
if (v['simplified_combat_enabled'] === '1') {
|
||
newAttrs = hitLocationTable['simplified'];
|
||
}
|
||
/* merge the newAttrs with the ones we acquired to calculation all HP again */
|
||
v = {...v, ...newAttrs}
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcAllHP(v)
|
||
});
|
||
});
|
||
});
|
||
on('change:hp_calc', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(hpGetAttrs, function(v) {
|
||
setAttrs({...calcAllHP(v)});
|
||
});
|
||
});
|
||
|
||
/* Composure */
|
||
const composureGetAttrs = ['composure', 'composure_other', 'composure_max', 'pow']
|
||
function calcComposure(v) {
|
||
const pow = parseInt(v['pow']) || 0;
|
||
const composureOther = parseInt(v['composure_other']) || 0;
|
||
const composureMax = parseInt(v['composure_max']) || 0;
|
||
const composureCurr = parseInt(v['composure']) || 0;
|
||
const newMax = Math.ceil(pow/3) + composureOther;
|
||
const diff = composureCurr - composureMax;
|
||
return {['composure']: newMax + diff, composure_max: newMax};
|
||
}
|
||
on('change:composure_other', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(composureGetAttrs, function(v) {
|
||
setAttrs(calcComposure(v));
|
||
});
|
||
});
|
||
|
||
/* Integrity */
|
||
const integrityGetAttrs = ['integrity', 'integrity_other', 'integrity_max', 'cha']
|
||
function calcIntegrity(v) {
|
||
let newAttrs = {};
|
||
const cha = parseInt(v['cha']) || 0;
|
||
const integrityOther = parseInt(v['integrity_other']) || 0;
|
||
const integrityMax = parseInt(v['integrity_max']) || 0;
|
||
const integrityCurr = parseInt(v['integrity']) || 0;
|
||
newAttrs['integrity_max'] = Math.ceil(cha/3) + integrityOther;
|
||
const diffVal = newAttrs['integrity_max'] - integrityMax;
|
||
newAttrs['integrity'] = integrityCurr + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:integrity_other', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(integrityGetAttrs, function(v) {
|
||
setAttrs(calcIntegrity(v));
|
||
});
|
||
});
|
||
|
||
/* Resolve */
|
||
const resolveGetAttrs = ['resolve', 'resolve_other', 'resolve_max', 'int']
|
||
function calcResolve(v) {
|
||
let newAttrs = {};
|
||
const int = parseInt(v['int']) || 0;
|
||
const resolveOther = parseInt(v['resolve_other']) || 0;
|
||
const resolveMax = parseInt(v['resolve_max']) || 0;
|
||
const resolveCurr = parseInt(v['resolve']) || 0;
|
||
newAttrs['resolve_max'] = Math.ceil(int/3) + resolveOther;
|
||
const diffVal = newAttrs['resolve_max'] - resolveMax;
|
||
newAttrs['resolve'] = resolveCurr + diffVal;
|
||
return newAttrs;
|
||
}
|
||
on('change:resolve_other', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(resolveGetAttrs, function(v) {
|
||
setAttrs(calcResolve(v));
|
||
});
|
||
});
|
||
|
||
/* Attribute Mode */
|
||
on('change:attribute_mode', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
getAttrs(actionPointGetAttrs.concat(initGetAttrs), function(v) {
|
||
setAttrs({
|
||
...calcActionPoints(v),
|
||
...calcInitiativeBonus(v),
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Fatigue */
|
||
const fatigueTable = {
|
||
/* fresh */ '9': { "skills": '0', "action_points": '0', "initiative": '0', "movement": "+0", "recovery": "-"},
|
||
/* winded */ '8': { "skills": '1', "action_points": '0', "initiative": '0', "movement": '+0', "recovery": .25},
|
||
/* tired */ '7': { "skills": '1', "action_points": '0', "initiative": '0', "movement": '-1', "recovery": 3},
|
||
/* wearied */ '6': { "skills": '2', "action_points": '0', "initiative": '-2', "movement": '-2', "recovery": 6},
|
||
/* exhausted */ '5': { "skills": '2', "action_points": '-1', "initiative": '-4', "movement": '*.5', "recovery": 12},
|
||
/* debilitated */ '4': { "skills": '3', "action_points": '-2', "initiative": '-6', "movement": '*.5', "recovery": 18},
|
||
/* incapacitated */ '3': { "skills": '3', "action_points": '-3', "initiative": '-8', "movement": '*0', "recovery": 24},
|
||
/* semi-conscious */ '2': { "skills": '4', "action_points": '-99', "initiative": '-99', "movement": '*0', "recovery": 36},
|
||
/* comatose */ '1': { "skills": '5', "action_points": '-99', "initiative": '-99', "movement": '*0', "recovery": 48},
|
||
/* dead */ '0': { "skills": '5', "action_points": '-99', "initiative": '-99', "movement": '*0', "recovery": '-'}
|
||
};
|
||
/**
|
||
* Calculated the fatigue recovery time
|
||
* @param v attributes needed for calc, ['fatigue', 'healing_rate']
|
||
* @returns {} with fatigue_recovery
|
||
*/
|
||
function calcFatigueRecovery(v) {
|
||
let recoveryString = '';
|
||
const healing_rate = parseInt(v['healing_rate']) || 2;
|
||
if (fatigueTable[v['fatigue']]['recovery'] !== '-') {
|
||
let recovery = parseFloat((fatigueTable[v['fatigue']]['recovery'] / healing_rate));
|
||
|
||
/* Get the minutes portion */
|
||
let recoveryFraction = recovery % 1;
|
||
let recoveryMinutes = Math.round(recoveryFraction * 60);
|
||
/* Get the hours portion */
|
||
let recoveryHours = Math.floor(recovery);
|
||
|
||
if (recoveryHours !== 0) {
|
||
let hourUnit = getTranslationByKey('hours-l');
|
||
if (recoveryHours === 1) {
|
||
hourUnit = getTranslationByKey('hour-l');
|
||
}
|
||
recoveryString = recoveryHours + ' ' + hourUnit;
|
||
}
|
||
|
||
if (recoveryMinutes !== 0) {
|
||
let minUnit = getTranslationByKey('minutes-l');
|
||
if (recoveryMinutes === 1) {
|
||
minUnit = getTranslationByKey('minute-l');
|
||
}
|
||
|
||
if (recoveryString === '') {
|
||
recoveryString = recoveryMinutes + ' ' + minUnit;
|
||
} else {
|
||
recoveryString = recoveryString + " " + recoveryMinutes + ' ' + minUnit;
|
||
}
|
||
}
|
||
return {fatigue_recovery: recoveryString};
|
||
} else {
|
||
return {fatigue_recovery: fatigueTable[v['fatigue']]['recovery']};
|
||
}
|
||
}
|
||
/**
|
||
* Sets the fatigue modifier values and recovery rate
|
||
* @param v character attributes needed for calculation, ['fatigue', 'healing_rate']
|
||
* @returns {*&{initiative_bonus_fatigue: *, movement_rate_fatigue: *, fatigue_skills: *, action_points_fatigue: *}}
|
||
*/
|
||
function calcFatigue(v) {
|
||
return {
|
||
fatigue_skills: fatigueTable[v['fatigue']]['skills'],
|
||
action_points_fatigue: fatigueTable[v['fatigue']]['action_points'],
|
||
initiative_bonus_fatigue: fatigueTable[v['fatigue']]['initiative'],
|
||
movement_rate_fatigue: fatigueTable[v['fatigue']]['movement'],
|
||
...calcFatigueRecovery(v)
|
||
};
|
||
}
|
||
on('change:fatigue', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs(['fatigue', 'healing_rate'].concat(actionPointGetAttrs, initGetAttrs, moveRateGetAttrs), function(v) {
|
||
setAttrs({
|
||
...calcFatigue(v),
|
||
...calcActionPoints(v),
|
||
...calcInitiativeBonus(v),
|
||
...calcMoveRate(v)
|
||
});
|
||
});
|
||
});
|
||
/* Skills */
|
||
/* Standard Skills */
|
||
const stdSkillChars = {
|
||
/* standard skill chrs */
|
||
'athletics': ['str', 'dex'],
|
||
'brawn': ['str', 'siz'],
|
||
'boating': ['str', 'con'],
|
||
'commerce': ['int', 'cha'],
|
||
'common_tongue': ['int', 'cha'],
|
||
'conceal': ['dex', 'pow'],
|
||
'customs': ['int', 'int'],
|
||
'dance': ['dex', 'cha'],
|
||
'deceit': ['int', 'cha'],
|
||
'drive': ['dex', 'pow'],
|
||
'eloquence': ['cha', 'cha'],
|
||
'endurance': ['con', 'con'],
|
||
'evade': ['dex', 'dex'],
|
||
'first_aid': ['dex', 'int'],
|
||
'folk_lore': ['int', 'int'],
|
||
'gaming': ['int', 'pow'],
|
||
'home_parallel': ['int', 'int'],
|
||
'influence': ['cha', 'cha'],
|
||
'insight': ['int', 'pow'],
|
||
'locale': ['int', 'int'],
|
||
'native_tongue': ['int', 'cha'],
|
||
'perception': ['int', 'pow'],
|
||
'purity': ['pow', 'cha'],
|
||
'ride': ['dex', 'pow'],
|
||
'research': ['int', 'pow'],
|
||
'sing': ['pow', 'cha'],
|
||
'spectral_combat': ['pow', 'cha'],
|
||
'status': [0, 0],
|
||
'stealth': ['dex', 'int'],
|
||
'streetwise': ['pow', 'cha'],
|
||
'superstition': ['21-int', 'pow'],
|
||
'swim': ['str', 'con'],
|
||
'unarmed': ['str', 'dex'],
|
||
'willpower': ['pow', 'pow']
|
||
}
|
||
const stdSkillIds = Object.keys(stdSkillChars);
|
||
function calcStdSkill(skillId, v, sourceAttribute) {
|
||
let newAttrs = {};
|
||
const int = parseInt(v['int']) || 0;
|
||
v['21-int'] = 21 - int;
|
||
const char1 = parseInt(v[stdSkillChars[`${skillId}`][0]]) || 0;
|
||
const char2 = parseInt(v[stdSkillChars[`${skillId}`][1]]) || 0;
|
||
|
||
if (sourceAttribute === skillId) {
|
||
const skill = parseInt(v[`${skillId}`]) || 0;
|
||
newAttrs[`${skillId}_other`] = skill - char1 - char2;
|
||
} else {
|
||
const skillOther = parseInt(v[`${skillId}_other`]) || 0;
|
||
newAttrs[`${skillId}`] = char1 + char2 + skillOther;
|
||
/* for spirit and social skills we set the new value in v so those calcs may use the new value */
|
||
v[`${skillId}`] = newAttrs[`${skillId}`];
|
||
}
|
||
|
||
let newInitAttrs = {};
|
||
let newMoveAttrs = {};
|
||
if ('athletics' === skillId) {
|
||
if (v['initiative_add_one_tenth_athletics'] === '1') {
|
||
newInitAttrs = calcInitiativeBonus(v);
|
||
}
|
||
newMoveAttrs = calcMoveRate(v);
|
||
}
|
||
|
||
let newSpiritDamageAttrs = {};
|
||
if (v['spirit_combat_skill_id'] === skillId) {
|
||
newAttrs['spirit_combat_skill_name'] = getTranslationByKey(skillId);
|
||
newAttrs['spirit_combat_skill_total'] = v[`${skillId}`];
|
||
newAttrs['spirit_combat_skill_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSpiritDamageAttrs = calcSpiritDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
let newSocialDamageAttrs = {};
|
||
if (v['social_offense_id'] === skillId) {
|
||
newAttrs['social_offense_name'] = getTranslationByKey(skillId);
|
||
newAttrs['social_offense_total'] = v[`${skillId}`];
|
||
newAttrs['social_offense_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSocialDamageAttrs = calcSocialDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
if (v['social_defense_id'] === skillId) {
|
||
newAttrs['social_defense_name'] = getTranslationByKey(skillId);
|
||
newAttrs['social_defense_total'] = v[`${skillId}`];
|
||
newAttrs['social_defense_notes'] = v[`${skillId}_notes`];
|
||
}
|
||
|
||
return {
|
||
...newAttrs,
|
||
...newInitAttrs,
|
||
...newMoveAttrs,
|
||
...newSpiritDamageAttrs,
|
||
...newSocialDamageAttrs
|
||
}
|
||
}
|
||
stdSkillIds.forEach(skillId => {
|
||
on(`change:${skillId} change:${skillId}_notes`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs([`${skillId}`, `${skillId}_other`, `${skillId}_notes`, 'social_defense_id'].concat(characteristicAttrs,
|
||
initGetAttrs, moveRateGetAttrs, spiritDamageGetAttrs, socialDamageGetAttrs), function(v) {
|
||
setAttrs(calcStdSkill(`${skillId}`, v, event.sourceAttribute));
|
||
});
|
||
});
|
||
});
|
||
/* Standard Skill Action Buttons */
|
||
stdSkillIds.forEach(skillId => {
|
||
on(`clicked:${skillId}-augment`, function(event) {
|
||
getAttrs([`${skillId}`], function(v) {
|
||
const skillValue = parseInt(v[`${skillId}`]) || 0;
|
||
const augmentValue = Math.ceil(skillValue / 5);
|
||
|
||
setAttrs({
|
||
augmentation: "@{set_augmentation}",
|
||
set_augmentation: augmentValue
|
||
});
|
||
});
|
||
});
|
||
on(`clicked:${skillId}-set-social-offense`, function(event) {
|
||
getAttrs([`${skillId}`, `${skillId}_notes`].concat(socialDamageGetAttrs), function(v) {
|
||
const newAttrs = {
|
||
social_offense_id: skillId,
|
||
social_offense_name: getTranslationByKey(skillId),
|
||
social_offense_total: v[skillId],
|
||
social_offense_notes: v[`${skillId}_notes`]
|
||
};
|
||
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcSocialDamage({...v, ...newAttrs})
|
||
});
|
||
});
|
||
});
|
||
on(`clicked:${skillId}-set-social-defense`, function(event) {
|
||
getAttrs([`${skillId}`, `${skillId}_notes`], function(v) {
|
||
const newAttrs = {
|
||
social_defense_id: skillId,
|
||
social_defense_name: getTranslationByKey(skillId),
|
||
social_defense_total: v[skillId],
|
||
social_defense_notes: v[`${skillId}_notes`]
|
||
};
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
});
|
||
on(`clicked:willpower-set-spirit-combat`, function(event) {
|
||
getAttrs(['willpower', 'willpower_notes'].concat(spiritDamageGetAttrs), function(v) {
|
||
const newAttrs = {
|
||
spirit_combat_skill_id: 'willpower',
|
||
spirit_combat_skill_name: getTranslationByKey('willpower'),
|
||
spirit_combat_skill_total: v['willpower'],
|
||
spirit_combat_skill_notes: v['willpower_notes']
|
||
};
|
||
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcSpiritDamage({...v, ...newAttrs})
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Professional Skills, Combat Styles & Passions */
|
||
const nonSpecialtyProSkillChars = {
|
||
'acting': ['cha', 'cha'],
|
||
'acrobatics': ['str', 'dex'],
|
||
'arcane_casting': ['int', 'pow'],
|
||
'arcane_knowledge': ['int', 'int'],
|
||
'artifice': ['int', 'dex'],
|
||
'astrogation': ['int', 'int'],
|
||
'bureaucracy': ['int', 'int'],
|
||
'channel': ['int', 'pow'],
|
||
'command': ['int', 'cha'],
|
||
'commerce': ['int', 'cha'],
|
||
'comms': ['int', 'int'],
|
||
'computers': ['int', 'int'],
|
||
'courtesy': ['int', 'cha'],
|
||
'cursing': ['cha', 'pow'],
|
||
'demolitions': ['int', 'pow'],
|
||
'disguise': ['int', 'cha'],
|
||
'divination': ['int', 'pow'],
|
||
'electronics': ['dex', 'int'],
|
||
'engineering': ['int', 'int'],
|
||
'exhort': ['int', 'cha'],
|
||
'fata': ['pow', 'cha'],
|
||
'folk_magic': ['pow', 'cha'],
|
||
'forgery': ['int', 'pow'],
|
||
'gambling': ['int', 'pow'],
|
||
'gnosis': ['int', 'pow'],
|
||
'healing': ['int', 'pow'],
|
||
'law': ['int', 'cha'],
|
||
'linguistics': ['int', 'cha'],
|
||
'lockpicking': ['dex', 'dex'],
|
||
'lycanthropy': ['con', 'pow'],
|
||
'mechanisms': ['dex', 'int'],
|
||
'meditation': ['con', 'int'],
|
||
'medicine': ['int', 'pow'],
|
||
'navigation': ['int', 'pow'],
|
||
'necromancy': ['int', 'cha'],
|
||
'oratory': ['pow', 'cha'],
|
||
'pharmacy': ['int', 'int'],
|
||
'pilot': ['dex', 'int'],
|
||
'probabilities': ['int', 'int'],
|
||
'politics': ['int', 'cha'],
|
||
'research': ['int', 'pow'],
|
||
'rhetoric': ['pow', 'cha'],
|
||
'seamanship': ['int', 'con'],
|
||
'seduction': ['int', 'cha'],
|
||
'sensors': ['int', 'pow'],
|
||
'shape_shifting': ['con', 'pow'],
|
||
'shaping': ['int', 'pow'],
|
||
'sleight': ['dex', 'cha'],
|
||
'streetwise': ['pow', 'cha'],
|
||
'survival': ['pow', 'con'],
|
||
'teach': ['int', 'cha'],
|
||
'theology': ['pow', 'pow'],
|
||
'track': ['int', 'con'],
|
||
'trance': ['pow', 'con']
|
||
}
|
||
const allNonSpecialtyProSkillIds = Object.keys(nonSpecialtyProSkillChars);
|
||
const specialtyProSkillChars = {
|
||
'art': ['pow', 'cha'],
|
||
'binding': ['pow', 'cha'],
|
||
'craft': ['dex', 'int'],
|
||
'culture': ['int', 'int'],
|
||
'devotion': ['pow', 'cha'],
|
||
'invocation': ['int', 'int'],
|
||
'knowledge': ['int', 'int'],
|
||
'language': ['int', 'cha'],
|
||
'literacy': ['int', 'int'],
|
||
'lore': ['int', 'int'],
|
||
'musicianship': ['dex', 'cha'],
|
||
'mysticism': ['con', 'pow'],
|
||
'path': ['con', 'pow'],
|
||
'pilot': ['dex', 'int'],
|
||
'rites': ['pow', 'cha'],
|
||
'science': ['int', 'int']
|
||
}
|
||
const allSpecialtyProSkillIds = Object.keys(specialtyProSkillChars);
|
||
/**
|
||
* Will read the base char value selected for a skill and parse it into a value
|
||
* @param charOption the char value still in autocalc format for historical compatibility
|
||
* @param v the got attributes needed, characteristicAttrs
|
||
* @returns {number|number|number}
|
||
*/
|
||
function parseBaseChar(charOption, v) {
|
||
if (charOption === '@{str}') {
|
||
return parseInt(v['str']) || 0;
|
||
} else if (charOption === '@{con}') {
|
||
return parseInt(v['con']) || 0;
|
||
} else if (charOption === '@{siz}') {
|
||
return parseInt(v['siz']) || 0;
|
||
} else if (charOption === '@{dex}') {
|
||
return parseInt(v['dex']) || 0;
|
||
} else if (charOption === '@{int}') {
|
||
return parseInt(v['int']) || 0;
|
||
} else if (charOption === '@{pow}') {
|
||
return parseInt(v['pow']) || 0;
|
||
} else if (charOption === '@{cha}') {
|
||
return parseInt(v['cha']) || 0;
|
||
} else {
|
||
return 0;
|
||
}
|
||
}
|
||
function calcProSkill(skillId, v, sourceAttribute) {
|
||
let newAttrs = {};
|
||
/* If a str or dex skill then it is affected by encumbrance */
|
||
if (v[`${skillId}_char1`] === '@{str}' || v[`${skillId}_char1`] === '@{dex}' ||
|
||
v[`${skillId}_char2`] === '@{str}' || v[`${skillId}_char2`] === '@{dex}') {
|
||
newAttrs[`${skillId}_encumbered`] = 1;
|
||
} else {
|
||
newAttrs[`${skillId}_encumbered`] = 0;
|
||
}
|
||
const char1 = parseBaseChar(v[`${skillId}_char1`], v);
|
||
const char2 = parseBaseChar(v[`${skillId}_char2`], v);
|
||
if (sourceAttribute === `${skillId}_total`) {
|
||
const skill = parseInt(v[`${skillId}_total`]) || 0;
|
||
newAttrs[`${skillId}_other`] = skill - char1 - char2;
|
||
} else {
|
||
const skillOther = parseInt(v[`${skillId}_other`]) || 0;
|
||
newAttrs[`${skillId}_total`] = char1 + char2 + skillOther;
|
||
/* for spirit and social skills we set the new value in v so those calcs may use the new value */
|
||
v[`${skillId}_total`] = newAttrs[`${skillId}_total`];
|
||
}
|
||
|
||
let newSpiritDamageAttrs = {};
|
||
/* We loose case as we copy skillIds into the spirit/social associated fields, so we need to normalize the checks */
|
||
if (v['spirit_combat_skill_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['spirit_combat_skill_name'] = v[`${skillId}_name`];
|
||
newAttrs['spirit_combat_skill_total'] = v[`${skillId}_total`];
|
||
newAttrs['spirit_combat_skill_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSpiritDamageAttrs = calcSpiritDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
let newSocialDamageAttrs = {};
|
||
if (v['social_offense_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['social_offense_name'] = v[`${skillId}_name`];
|
||
newAttrs['social_offense_total'] = v[`${skillId}_total`];
|
||
newAttrs['social_offense_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSocialDamageAttrs = calcSocialDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
if (v['social_defense_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['social_defense_name'] = v[`${skillId}_name`];
|
||
newAttrs['social_defense_total'] = v[`${skillId}_total`];
|
||
newAttrs['social_defense_notes'] = v[`${skillId}_notes`];
|
||
}
|
||
|
||
return {
|
||
...newAttrs,
|
||
...newSpiritDamageAttrs,
|
||
...newSocialDamageAttrs
|
||
}
|
||
}
|
||
on('change:repeating_standardskill:total change:repeating_standardskill:notes change:repeating_standardskill:name change:repeating_standardskill:char1 change:repeating_standardskill:char2 change:repeating_professionalskill:total change:repeating_professionalskill:notes change:repeating_professionalskill:name change:repeating_professionalskill:char1 change:repeating_professionalskill:char2 change:repeating_combatstyle:total change:repeating_combatstyle:notes change:repeating_combatstyle:name change:repeating_combatstyle:char1 change:repeating_combatstyle:char2', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_total`, `repeating_${type}_${id}_other`, `repeating_${type}_${id}_notes`, `repeating_${type}_${id}_name`,
|
||
`repeating_${type}_${id}_char1`, `repeating_${type}_${id}_char2`, 'social_defense_id'].concat(
|
||
characteristicAttrs, spiritDamageGetAttrs, socialDamageGetAttrs), function(v) {
|
||
setAttrs(calcProSkill(`repeating_${type}_${id}`, v, event.sourceAttribute));
|
||
});
|
||
});
|
||
function calcPassion(skillId, v) {
|
||
let newAttrs = {};
|
||
let newSpiritDamageAttrs = {};
|
||
/* We loose case as we copy skillIds into the spirit/social associated fields, so we need to normalize the checks */
|
||
if (v['spirit_combat_skill_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['spirit_combat_skill_name'] = v[`${skillId}_name`];
|
||
newAttrs['spirit_combat_skill_total'] = v[`${skillId}_total`];
|
||
newAttrs['spirit_combat_skill_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSpiritDamageAttrs = calcSpiritDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
let newSocialDamageAttrs = {};
|
||
if (v['social_offense_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['social_offense_name'] = v[`${skillId}_name`];
|
||
newAttrs['social_offense_total'] = v[`${skillId}_total`];
|
||
newAttrs['social_offense_notes'] = v[`${skillId}_notes`];
|
||
|
||
newSocialDamageAttrs = calcSocialDamage({...v, ...newAttrs});
|
||
}
|
||
|
||
if (v['social_defense_id'].toLowerCase() === skillId.toLowerCase()) {
|
||
newAttrs['social_defense_name'] = v[`${skillId}_name`];
|
||
newAttrs['social_defense_total'] = v[`${skillId}_total`];
|
||
newAttrs['social_defense_notes'] = v[`${skillId}_notes`];
|
||
}
|
||
|
||
return {
|
||
...newAttrs,
|
||
...newSpiritDamageAttrs,
|
||
...newSocialDamageAttrs
|
||
}
|
||
}
|
||
on('change:repeating_passion:total change:repeating_passion:notes change:repeating_passion:name', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_passion_${id}_total`, `repeating_passion_${id}_notes`, `repeating_passion_${id}_name`,
|
||
'social_defense_id'].concat(spiritDamageGetAttrs, socialDamageGetAttrs), function(v) {
|
||
setAttrs(calcPassion(`repeating_passion_${id}`, v));
|
||
});
|
||
});
|
||
on('clicked:repeating_standardskill:augment clicked:repeating_combatstyle:augment clicked:repeating_professionalskill:augment clicked:repeating_affiliation:augment clicked:repeating_passion:augment clicked:repeating_dependency:augment clicked:repeating_peculiarity:augment', function(event) {
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_total`], function(v) {
|
||
const skillValue = parseInt(v[`repeating_${type}_${id}_total`]) || 0;
|
||
const augmentValue = Math.ceil(skillValue / 5);
|
||
|
||
setAttrs({
|
||
augmentation: "@{set_augmentation}",
|
||
set_augmentation: augmentValue
|
||
});
|
||
});
|
||
});
|
||
on('clicked:repeating_standardskill:set-social-offense clicked:repeating_professionalskill:set-social-offense clicked:repeating_passion:set-social-offense', function(event) {
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_name`, `repeating_${type}_${id}_total`, `repeating_${type}_${id}_notes`].concat(socialDamageGetAttrs), function(v) {
|
||
const newAttrs = {
|
||
social_offense_id: `repeating_${type}_${id}`,
|
||
social_offense_name: v[`repeating_${type}_${id}_name`],
|
||
social_offense_total: v[`repeating_${type}_${id}_total`],
|
||
social_offense_notes: v[`repeating_${type}_${id}_notes`],
|
||
};
|
||
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcSocialDamage({...v, ...newAttrs})
|
||
});
|
||
});
|
||
});
|
||
on('clicked:repeating_standardskill:set-social-defense clicked:repeating_professionalskill:set-social-defense clicked:repeating_passion:set-social-defense', function(event) {
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_name`, `repeating_${type}_${id}_total`, `repeating_${type}_${id}_notes`], function(v) {
|
||
const newAttrs = {
|
||
social_defense_id: `repeating_${type}_${id}`,
|
||
social_defense_name: v[`repeating_${type}_${id}_name`],
|
||
social_defense_total: v[`repeating_${type}_${id}_total`],
|
||
social_defense_notes: v[`repeating_${type}_${id}_notes`]
|
||
};
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
on(`clicked:repeating_standardskill:set-spirit-combat clicked:repeating_professionalskill:set-spirit-combat clicked:repeating_passion:set-spirit-combat`, function(event) {
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_name`, `repeating_${type}_${id}_total`,
|
||
`repeating_${type}_${id}_notes`].concat(spiritDamageGetAttrs), function(v) {
|
||
const newAttrs = {
|
||
spirit_combat_skill_id: `repeating_${type}_${id}`,
|
||
spirit_combat_skill_name: v[`repeating_${type}_${id}_name`],
|
||
spirit_combat_skill_total: v[`repeating_${type}_${id}_total`],
|
||
spirit_combat_skill_notes: v[`repeating_${type}_${id}_notes`]
|
||
};
|
||
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcSpiritDamage({...v, ...newAttrs})
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Dependency Penalty to Tenacity */
|
||
on(`change:repeating_dependency:total remove:repeating_dependency`, function(event) {
|
||
getSectionIDs("repeating_dependency", function(dependencyIds) {
|
||
let fetchAttrs = [];
|
||
dependencyIds.forEach(id => {
|
||
fetchAttrs.push(`repeating_dependency_${id}_total`);
|
||
});
|
||
getAttrs(fetchAttrs.concat(tenacityGetAttrs), function(v) {
|
||
let newAttrs = {tenacity_dependencies: 0};
|
||
dependencyIds.forEach(id => {
|
||
const depTotal = parseInt(v[`repeating_dependency_${id}_total`]) || 0;
|
||
const depPenalty = Math.floor(depTotal/20);
|
||
newAttrs['tenacity_dependencies'] = newAttrs['tenacity_dependencies'] - depPenalty;
|
||
});
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcTenacity({...v, ...newAttrs})
|
||
});
|
||
});
|
||
});
|
||
});
|
||
/* Weapons */
|
||
/* When a favored weapon is selected it is added to the weapons_buttons attr which is how we add it to combat rolls */
|
||
on("change:repeating_meleeweapon:favored change:repeating_rangedweapon:favored change:_reporder:meleeweapon change:_reporder:rangedweapon remove:repeating_meleeweapon remove:repeating_rangedweapon", function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
|
||
getSectionIDs("repeating_meleeweapon", function(meleeIds) {
|
||
getSectionIDs("repeating_rangedweapon", function(rangedIds) {
|
||
let meleeGetAttrs = [];
|
||
meleeIds.forEach(id => {
|
||
meleeGetAttrs.push(`repeating_meleeweapon_${id}_name`, `repeating_meleeweapon_${id}_favored`);
|
||
});
|
||
|
||
let rangedGetAttrs = [];
|
||
rangedIds.forEach(id => {
|
||
rangedGetAttrs.push(`repeating_rangedweapon_${id}_name`, `repeating_rangedweapon_${id}_favored`);
|
||
});
|
||
|
||
getAttrs(['character_id'].concat(rangedGetAttrs, meleeGetAttrs), function(v) {
|
||
let weaponButtons = ""
|
||
meleeIds.forEach(id => {
|
||
if (v[`repeating_meleeweapon_${id}_favored`] === '1') {
|
||
const name = v[`repeating_meleeweapon_${id}_name`];
|
||
weaponButtons = weaponButtons + ` [${name}](~${v['character_id']}|repeating_meleeweapon_${id}_roll)`;
|
||
}
|
||
});
|
||
rangedIds.forEach(id => {
|
||
if (v[`repeating_rangedweapon_${id}_favored`] === '1') {
|
||
const name = v[`repeating_rangedweapon_${id}_name`];
|
||
weaponButtons = weaponButtons + ` [${name}](~${v['character_id']}|repeating_rangedweapon_${id}_roll)`;
|
||
}
|
||
});
|
||
setAttrs({weapon_buttons: weaponButtons});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Set the id and rollval for weapons anytime they are updated. */
|
||
on("change:repeating_meleeweapon change:repeating_rangedweapon", function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
|
||
getAttrs(['character_id'], function(v) {
|
||
let newAttrs = {};
|
||
|
||
newAttrs[`repeating_${type}_${id}_id`] = `repeating_${type}_${id}`;
|
||
newAttrs[`repeating_${type}_${id}_rollval`] = `%{${v['character_id']}|repeating_${type}_${id}_roll}`;
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
|
||
on('clicked:repeating_meleeweapon:roll clicked:repeating_rangedweapon:roll', (event) => {
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
|
||
getAttrs([`repeating_${type}_${id}_name`, `repeating_${type}_${id}_damage`, `repeating_${type}_${id}_damage_mod_toggle`,
|
||
`repeating_${type}_${id}_size`, `repeating_${type}_${id}_reach`, `repeating_${type}_${id}_notes`,
|
||
`repeating_${type}_${id}_force`, `repeating_${type}_${id}_range`, `repeating_${type}_${id}_impale_size`,
|
||
'damage_mod', 'roll_display', 'character_name'], function(v) {
|
||
|
||
const roll_display = (v['roll_display'] === '/w gm') ? "/w gm ":"";
|
||
const roll_name = v[`repeating_${type}_${id}_name`] || "";
|
||
const character_name = v[`character_name`] || "";
|
||
const damage = v[`repeating_${type}_${id}_damage`];
|
||
let damage_mod = 0;
|
||
if (v[`repeating_${type}_${id}_damage_mod_toggle`] === '@{damage_mod}') {
|
||
damage_mod = v['damage_mod'];
|
||
}
|
||
const size = v[`repeating_${type}_${id}_size`] || "";
|
||
const reach = v[`repeating_${type}_${id}_reach`] || "";
|
||
const force = v[`repeating_${type}_${id}_force`] || "";
|
||
const range = v[`repeating_${type}_${id}_range`] || "";
|
||
const impale_size = v[`repeating_${type}_${id}_impale_size`] || "";
|
||
const notes = v[`repeating_${type}_${id}_notes`] || "";
|
||
|
||
let roll_string = `${roll_display}&{template:weapon} \{\{name=${roll_name}\}\} \{\{character=${character_name}\}\} \{\{damage=[[${damage}+${damage_mod}]]\}\} \{\{notes=${notes}\}\}`;
|
||
if (type === 'meleeweapon') {
|
||
roll_string = roll_string + ` \{\{size=${size}\}\} \{\{reach=${reach}\}\}`;
|
||
} else if (type === 'rangedweapon') {
|
||
roll_string = roll_string + ` \{\{force=${force}\}\} \{\{range=${range}\}\} \{\{impale_size=${impale_size}\}\}`;
|
||
}
|
||
|
||
startRoll(roll_string, (results) => {
|
||
finishRoll(
|
||
results.rollId,
|
||
{}
|
||
);
|
||
});
|
||
});
|
||
});
|
||
/* Traditions */
|
||
on(`change:repeating_tradition:skill1_id change:repeating_tradition:skill2_id`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return {};}
|
||
const traditionId = event.sourceAttribute.split('_')[2];
|
||
const traditionSkill = event.sourceAttribute.split('_')[3];
|
||
const skillId = event.newValue;
|
||
|
||
let newAttrs = {};
|
||
if (!event.newValue) { /* If unset */
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_name`] = '';
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_total`] = '0';
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_notes`] = '';
|
||
} else if (skillId.startsWith("repeating_")) { /* Repeating skills */
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_name`] = `@{${skillId}_name}`;
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_total`] = `@{${skillId}_total}`;
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_notes`] = `@{${skillId}_notes}`;
|
||
} else { /* Standard Skills */
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_name`] = getTranslationByKey(skillId);
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_total`] = `@{${skillId}}`;
|
||
newAttrs[`repeating_tradition_${traditionId}_${traditionSkill}_notes`] = `@{${skillId}_notes}`;
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
|
||
/* Abilities */
|
||
on('change:ability_filter_favored change:ability_filter_type change:ability_filter_rank', function(event) {
|
||
getSectionIDs("repeating_ability", function(abilityIds) {
|
||
let abilityGetAttrs = [];
|
||
abilityIds.forEach(id => {
|
||
abilityGetAttrs.push(`repeating_ability_${id}_favored`, `repeating_ability_${id}_type`, `repeating_ability_${id}_rank`);
|
||
});
|
||
|
||
getAttrs(['ability_filter_favored', 'ability_filter_type', 'ability_filter_rank'].concat(abilityGetAttrs), function(v) {
|
||
let newAttrs = {}
|
||
abilityIds.forEach(id => {
|
||
if ((v['ability_filter_favored'] === v[`repeating_ability_${id}_favored`] || v['ability_filter_favored'] === '0')
|
||
&& (v['ability_filter_type'] === v[`repeating_ability_${id}_type`] || v['ability_filter_type'] === 'all')
|
||
&& (v['ability_filter_rank'] === v[`repeating_ability_${id}_rank`] || v['ability_filter_rank'] === 'all')
|
||
) {
|
||
newAttrs[`repeating_ability_${id}_show`] = 1;
|
||
} else {
|
||
newAttrs[`repeating_ability_${id}_show`] = 0;
|
||
}
|
||
});
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
});
|
||
on('change:repeating_ability:type', function(event) {
|
||
if (event.sourceType === "sheetworker") {return {};}
|
||
const abilityId = event.sourceAttribute.split('_')[2];
|
||
|
||
getAttrs(['shaping_traits', 'sheet_type', 'ability_filter_favored', 'ability_filter_type', 'ability_filter_rank', `repeating_ability_${abilityId}_favored`, `repeating_ability_${abilityId}_type`,`repeating_ability_${abilityId}_rank`], function(v) {
|
||
let newAttrs = {}
|
||
/* Advanced Traits */
|
||
if (event.newValue === 'mysticism' || event.newValue === 'arcane_magic' || event.newValue === 'divine_magic') {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '^{intensity}: @{dynamic_intensity}';
|
||
} else if (event.newValue === 'sorcery') {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '@{shaping_traits}';
|
||
} else if (event.newValue === 'sandestin_magic') {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '^{area}: @{sandestin_area}\n^{combine}: @{sandestin_combine}\n^{fortune}: @{sandestin_fortune}\n^{services}: @{sandestin_services}\n^{swiftness}: @{sandestin_swiftness}\n^{terms}: @{sandestin_terms}';
|
||
} else if (event.newValue === 'assabian_alchemy') {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '^{combine}: @{shaped_combine}\n^{conditions}: @{shaped_conditions}\n^{doses}: @{shaped_doses}\n^{magnitude}: @{shaped_magnitude}\n^{shelf_life}: @{shaped_shelf_life}';
|
||
} else if (event.newValue === 'ability' && v['sheet_type'] === 'spirit') {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '^{spirit_intensity}: @{spirit_intensity}';
|
||
} else {
|
||
newAttrs[`repeating_ability_${abilityId}_advanced_traits`] = '';
|
||
}
|
||
|
||
/* Traited */
|
||
if (event.newValue === 'ability' || event.newValue === 'gift' || event.newValue === 'limitation' || event.newValue === 'other' || event.newValue === 'trait') {
|
||
newAttrs[`repeating_ability_${abilityId}_traited`] = 0;
|
||
newAttrs[`repeating_ability_${abilityId}_traits`] = '';
|
||
newAttrs[`repeating_ability_${abilityId}_tradition_id`] = '';
|
||
newAttrs[`repeating_ability_${abilityId}_skill1_name`] = '';
|
||
newAttrs[`repeating_ability_${abilityId}_skill1_total`] = '';
|
||
newAttrs[`repeating_ability_${abilityId}_skill2_name`] = '';
|
||
newAttrs[`repeating_ability_${abilityId}_skill2_total`] = '';
|
||
} else {
|
||
newAttrs[`repeating_ability_${abilityId}_traited`] = 1;
|
||
}
|
||
|
||
/* Filter */
|
||
if ((v['ability_filter_favored'] === v[`repeating_ability_${abilityId}_favored`] || v['ability_filter_favored'] === '0')
|
||
&& (v['ability_filter_type'] === v[`repeating_ability_${abilityId}_type`] || v['ability_filter_type'] === 'all')
|
||
&& (v['ability_filter_rank'] === v[`repeating_ability_${abilityId}_rank`] || v['ability_filter_rank'] === 'all')
|
||
) {
|
||
newAttrs[`repeating_ability_${abilityId}_show`] = 1;
|
||
} else {
|
||
newAttrs[`repeating_ability_${abilityId}_show`] = 0;
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
on('change:repeating_ability:favored change:repeating_ability:rank', function(event) {
|
||
const abilityId = event.sourceAttribute.split('_')[2];
|
||
getAttrs(['ability_filter_favored', 'ability_filter_type', 'ability_filter_rank', `repeating_ability_${abilityId}_favored`, `repeating_ability_${abilityId}_type`,`repeating_ability_${abilityId}_rank`], function(v) {
|
||
/* Filter */
|
||
if ((v['ability_filter_favored'] === v[`repeating_ability_${abilityId}_favored`] || v['ability_filter_favored'] === '0')
|
||
&& (v['ability_filter_type'] === v[`repeating_ability_${abilityId}_type`] || v['ability_filter_type'] === 'all')
|
||
&& (v['ability_filter_rank'] === v[`repeating_ability_${abilityId}_rank`] || v['ability_filter_rank'] === 'all')
|
||
) {
|
||
setAttrs({[`repeating_ability_${abilityId}_show`]: 1});
|
||
} else {
|
||
setAttrs({[`repeating_ability_${abilityId}_show`]: 0});
|
||
}
|
||
});
|
||
});
|
||
on('change:repeating_ability:traits', function(event) {
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
if (event.newValue === undefined || event.newValue === '') {
|
||
setAttrs({[`repeating_ability_${id}_summary`]: ""});
|
||
} else {
|
||
setAttrs({[`repeating_ability_${id}_summary`]: event.newValue.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g, ",\xa0")});
|
||
}
|
||
});
|
||
on('change:repeating_ability:tradition_id', function(event) {
|
||
const abilityId = event.sourceAttribute.split('_')[2];
|
||
const traditionId = event.newValue;
|
||
|
||
if (event.newValue === undefined || event.newValue === '') {
|
||
setAttrs({
|
||
[`repeating_ability_${abilityId}_skill1_name`]: '',
|
||
[`repeating_ability_${abilityId}_skill1_total`]: '',
|
||
[`repeating_ability_${abilityId}_skill2_name`]: '',
|
||
[`repeating_ability_${abilityId}_skill2_total`]: ''
|
||
});
|
||
} else {
|
||
setAttrs({
|
||
[`repeating_ability_${abilityId}_skill1_name`]: `@{${traditionId}_skill1_name}`,
|
||
[`repeating_ability_${abilityId}_skill1_total`]: `@{${traditionId}_skill1_total}`,
|
||
[`repeating_ability_${abilityId}_skill2_name`]: `@{${traditionId}_skill2_name}`,
|
||
[`repeating_ability_${abilityId}_skill2_total`]: `@{${traditionId}_skill2_total}`
|
||
});
|
||
}
|
||
|
||
});
|
||
|
||
/* Allied Spirits */
|
||
on('change:repeating_fetish:fetish_pow change:repeating_fetish:fetish_cha', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
const spiritId = 'repeating_fetish_' + event.sourceAttribute.split('_')[2];
|
||
|
||
getAttrs([`${spiritId}_fetish_pow`, `${spiritId}_fetish_cha`], function(v) {
|
||
const pow = parseInt(v[`${spiritId}_fetish_pow`]) || 0;
|
||
const cha = parseInt(v[`${spiritId}_fetish_cha`]) || 0;
|
||
const spiritDamageSteps = Math.ceil((pow + cha + 50)/20);
|
||
setAttrs({
|
||
[`${spiritId}_fetish_spirit_damage`]: damageTable(spiritDamageSteps)
|
||
})
|
||
});
|
||
});
|
||
|
||
/* SKilled Abilities */
|
||
function calcSkilledAbility(skillId, v, sourceAttribute) {
|
||
let newAttrs = {};
|
||
const char1 = parseBaseChar(v[`${skillId}_char1`], v);
|
||
const char2 = parseBaseChar(v[`${skillId}_char2`], v);
|
||
if (sourceAttribute === `${skillId}_total`) {
|
||
const skill = parseInt(v[`${skillId}_total`]) || 0;
|
||
newAttrs[`${skillId}_other`] = skill - char1 - char2;
|
||
} else {
|
||
const skillOther = parseInt(v[`${skillId}_other`]) || 0;
|
||
newAttrs[`${skillId}_total`] = char1 + char2 + skillOther;
|
||
/* for spirit and social skills we set the new value in v so those calcs may use the new value */
|
||
v[`${skillId}_total`] = newAttrs[`${skillId}_total`];
|
||
}
|
||
|
||
return {
|
||
...newAttrs
|
||
}
|
||
}
|
||
on('change:repeating_skilledability:total change:repeating_skilledability:name change:repeating_skilledability:char1 change:repeating_skilledability:char2', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
getAttrs([`repeating_${type}_${id}_total`, `repeating_${type}_${id}_other`, `repeating_${type}_${id}_name`,
|
||
`repeating_${type}_${id}_char1`, `repeating_${type}_${id}_char2`].concat(characteristicAttrs), function(v) {
|
||
setAttrs(calcSkilledAbility(`repeating_${type}_${id}`, v, event.sourceAttribute));
|
||
});
|
||
});
|
||
on('change:repeating_skilledability:traits', function(event) {
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
if (event.newValue === undefined || event.newValue === '') {
|
||
setAttrs({[`repeating_skilledability_${id}_summary`]: ""});
|
||
} else {
|
||
setAttrs({[`repeating_skilledability_${id}_summary`]: event.newValue.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g, ",\xa0")});
|
||
}
|
||
});
|
||
/* Encumbrance */
|
||
const loadTable = {
|
||
/* Old Default */ 'Normal': {"skills": '0', "movement": '+0'},
|
||
/* Normal */ '0': {"skills": '0', "movement": '+0'},
|
||
/* Burdened */ '1': {"skills": '1', "movement": '-2'},
|
||
/* Overloaded */ '2': {"skills": '2', "movement": '*.5'},
|
||
/* Max */ '3': {"skills": '3', "movement": '*0'}
|
||
}
|
||
/**
|
||
* Will return an object of all the attrs needed to perform enc calculations along with the repeating IDs of equipment
|
||
* repeatingIds object containing the repeatingIds of meleeweapon rangedweapon equipment and currency
|
||
* return []
|
||
*/
|
||
function encGetAttrs(repeatingIds) {
|
||
let repeatingGetAttrs = [];
|
||
repeatingIds['meleeWeaponIds'].forEach(meleeWeaponId => {
|
||
repeatingGetAttrs.push(`repeating_meleeweapon_${meleeWeaponId}_enc`, `repeating_meleeweapon_${meleeWeaponId}_location`);
|
||
});
|
||
repeatingIds['rangedWeaponIds'].forEach(rangedWeaponId => {
|
||
repeatingGetAttrs.push(`repeating_rangedweapon_${rangedWeaponId}_enc`, `repeating_rangedweapon_${rangedWeaponId}_location`);
|
||
});
|
||
repeatingIds['gearIds'].forEach(gearId => {
|
||
repeatingGetAttrs.push(`repeating_equipment_${gearId}_enc`, `repeating_equipment_${gearId}_quantity`, `repeating_equipment_${gearId}_location`);
|
||
});
|
||
repeatingIds['currencyIds'].forEach(currencyId => {
|
||
repeatingGetAttrs.push(`repeating_currency_${currencyId}_enc`, `repeating_currency_${currencyId}_quantity`, `repeating_currency_${currencyId}_location`);
|
||
});
|
||
|
||
return ['str', 'pack_equipped', 'half_effective_armor_enc', 'avg_species_siz', 'encumbrance_temp',
|
||
'location1_armor_enc', 'location1_armor_equipped',
|
||
'location2_armor_enc', 'location2_armor_equipped',
|
||
'location3_armor_enc', 'location3_armor_equipped',
|
||
'location4_armor_enc', 'location4_armor_equipped',
|
||
'location5_armor_enc', 'location5_armor_equipped',
|
||
'location6_armor_enc', 'location6_armor_equipped',
|
||
'location7_armor_enc', 'location7_armor_equipped',
|
||
'location8_armor_enc', 'location8_armor_equipped',
|
||
'location9_armor_enc', 'location9_armor_equipped',
|
||
'location10_armor_enc', 'location10_armor_equipped',
|
||
'location11_armor_enc', 'location11_armor_equipped',
|
||
'location12_armor_enc', 'location12_armor_equipped'].concat(repeatingGetAttrs);
|
||
}
|
||
function calcEncAndArmorPenalty(repeatingIds, v) {
|
||
let newAttrs = {};
|
||
|
||
/* Calculate Armor Enc */
|
||
let wornArmorEnc = 0;
|
||
let packArmorEnc = 0;
|
||
let effectiveWornArmorEnc;
|
||
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'].forEach(location => {
|
||
const locationEnc = parseFloat(v[`location${location}_armor_enc`]) || 0;
|
||
if (v[`location${location}_armor_equipped`] === '1') {
|
||
wornArmorEnc = wornArmorEnc + locationEnc;
|
||
} else if (v[`location${location}_armor_equipped`] === '0') {
|
||
packArmorEnc = packArmorEnc + locationEnc;
|
||
}
|
||
});
|
||
if (v['half_effective_armor_enc'] === '1') {
|
||
effectiveWornArmorEnc = Math.ceil(wornArmorEnc/4);
|
||
} else {
|
||
effectiveWornArmorEnc = Math.ceil(wornArmorEnc/2);
|
||
}
|
||
newAttrs['armor_penalty'] = 0 - Math.ceil(wornArmorEnc/5);
|
||
let wornEnc = effectiveWornArmorEnc;
|
||
let packEnc = packArmorEnc;
|
||
|
||
/* Add up all the rest of the ENC */
|
||
repeatingIds['meleeWeaponIds'].forEach(meleeWeaponId => {
|
||
const weaponEnc = parseFloat(v[`repeating_meleeweapon_${meleeWeaponId}_enc`]) || 0;
|
||
if (v[`repeating_meleeweapon_${meleeWeaponId}_location`] === 'loadout') {
|
||
wornEnc = wornEnc + weaponEnc;
|
||
} else if (v[`repeating_meleeweapon_${meleeWeaponId}_location`] === 'pack') {
|
||
packEnc = packEnc + weaponEnc;
|
||
}
|
||
});
|
||
repeatingIds['rangedWeaponIds'].forEach(rangedWeaponId => {
|
||
const weaponEnc = parseFloat(v[`repeating_rangedweapon_${rangedWeaponId}_enc`]) || 0;
|
||
if (v[`repeating_rangedweapon_${rangedWeaponId}_location`] === 'loadout') {
|
||
wornEnc = wornEnc + weaponEnc;
|
||
} else if (v[`repeating_rangedweapon_${rangedWeaponId}_location`] === 'pack') {
|
||
packEnc = packEnc + weaponEnc;
|
||
}
|
||
});
|
||
repeatingIds['gearIds'].forEach(gearId => {
|
||
const gearEnc = parseFloat(v[`repeating_equipment_${gearId}_enc`]) || 0;
|
||
const gearQty = parseInt(v[`repeating_equipment_${gearId}_quantity`]) || 0;
|
||
if (v[`repeating_equipment_${gearId}_location`] === 'loadout') {
|
||
wornEnc = wornEnc + (gearEnc * gearQty);
|
||
} else if (v[`repeating_equipment_${gearId}_location`] === 'pack') {
|
||
packEnc = packEnc + (gearEnc * gearQty);
|
||
}
|
||
});
|
||
repeatingIds['currencyIds'].forEach(currencyId => {
|
||
const currencyEnc = parseFloat(v[`repeating_currency_${currencyId}_enc`]) || 0;
|
||
const currencyQty = parseInt(v[`repeating_currency_${currencyId}_quantity`]) || 0;
|
||
if (v[`repeating_currency_${currencyId}_location`] === 'loadout') {
|
||
wornEnc = wornEnc + (currencyEnc * currencyQty);
|
||
} else if (v[`repeating_currency_${currencyId}_location`] === 'pack') {
|
||
packEnc = packEnc + (currencyEnc * currencyQty);
|
||
}
|
||
});
|
||
|
||
/* Find the total enc to apply for effect with avg species siz factored in */
|
||
let enc = 0;
|
||
const avgSpeciesSiz = parseInt(v['avg_species_siz']) || 0;
|
||
const encTemp = parseInt(v['encumbrance_temp']) || 0;
|
||
if (v['pack_equipped'] === '1') {
|
||
enc = Math.ceil((wornEnc + packEnc + encTemp) * (avgSpeciesSiz/13));
|
||
} else {
|
||
enc = Math.ceil((wornEnc + encTemp) * (avgSpeciesSiz/13));
|
||
}
|
||
newAttrs['encumbrance_current'] = enc.toFixed(2);
|
||
|
||
/* Set load and related effects */
|
||
const str = parseInt(v['str']) || 0;
|
||
if (enc >= (str * 4)) {
|
||
newAttrs['encumbrance_load'] = '3';
|
||
newAttrs['encumbrance_skills'] = loadTable['3']['skills'];
|
||
newAttrs['movement_rate_enc'] = loadTable['3']['movement'];
|
||
} else if (enc > (str * 3)) {
|
||
newAttrs['encumbrance_load'] = '2';
|
||
newAttrs['encumbrance_skills'] = loadTable['2']['skills'];
|
||
newAttrs['movement_rate_enc'] = loadTable['2']['movement'];
|
||
} else if (enc > (str * 2)) {
|
||
newAttrs['encumbrance_load'] = '1';
|
||
newAttrs['encumbrance_skills'] = loadTable['1']['skills'];
|
||
newAttrs['movement_rate_enc'] = loadTable['1']['movement'];
|
||
} else {
|
||
newAttrs['encumbrance_load'] = '0';
|
||
newAttrs['encumbrance_skills'] = loadTable['0']['skills'];
|
||
newAttrs['movement_rate_enc'] = loadTable['0']['movement'];
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
on("change:location1_armor_enc change:location1_armor_equipped change:location2_armor_enc change:location2_armor_equipped change:location3_armor_enc change:location3_armor_equipped change:location4_armor_enc change:location4_armor_equipped change:location5_armor_enc change:location5_armor_equipped change:location6_armor_enc change:location6_armor_equipped change:location7_armor_enc change:location7_armor_equipped change:location8_armor_enc change:location8_armor_equipped change:location9_armor_enc change:location9_armor_equipped change:location10_armor_enc change:location10_armor_equipped change:location11_armor_enc change:location11_armor_equipped change:location12_armor_enc change:location12_armor_equipped change:half_effective_armor_enc change:pack_equipped change:avg_species_siz change:encumbrance_temp change:repeating_meleeweapon:enc change:repeating_meleeweapon:location change:repeating_rangedweapon:enc change:repeating_rangedweapon:location change:repeating_equipment:enc change:repeating_equipment:location change:repeating_equipment:quantity change:repeating_currency:enc change:repeating_currency:location change:repeating_currency:quantity remove:repeating_meleeweapon remove:repeating_rangedweapon remove:repeating_equipment remove:repeating_currency", function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
let repeatingIds = {}
|
||
getSectionIDs("repeating_meleeweapon", function(meleeWeaponIds) {
|
||
repeatingIds['meleeWeaponIds'] = meleeWeaponIds;
|
||
getSectionIDs("repeating_rangedweapon", function(rangedWeaponIds) {
|
||
repeatingIds['rangedWeaponIds'] = rangedWeaponIds;
|
||
getSectionIDs("repeating_equipment", function(gearIds) {
|
||
repeatingIds['gearIds'] = gearIds;
|
||
getSectionIDs("repeating_currency", function(currencyIds) {
|
||
repeatingIds['currencyIds'] = currencyIds;
|
||
getAttrs(encGetAttrs(repeatingIds).concat(initGetAttrs, moveRateGetAttrs), function(v) {
|
||
let newAttrs = calcEncAndArmorPenalty(repeatingIds, v);
|
||
/* Update v with new values need for attribute calculations */
|
||
v = {...v, ...newAttrs};
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcInitiativeBonus(v),
|
||
...calcMoveRate(v)
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Repeating IDs */
|
||
on("change:repeating_standardskill change:repeating_combatstyle change:repeating_professionalskill change:repeating_affiliation change:repeating_passion change:repeating_dependency change:repeating_peculiarity change:repeating_equipment change:repeating_currency change:repeating_tradition change:repeating_ability change:repeating_skilledability change:repeating_feature", function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
const type = event.sourceAttribute.split('_')[1];
|
||
const id = event.sourceAttribute.split('_')[2];
|
||
|
||
/* seems we can get change that aren't for a particular item this checks to ensure we have an id to parse */
|
||
if (id.startsWith("-")) {
|
||
setAttrs({[`repeating_${type}_${id}_id`]: `repeating_${type}_${id}`});
|
||
}
|
||
});
|
||
/* Character Import */
|
||
const cultRankMap = {
|
||
'common': 1,
|
||
'lay member': 1,
|
||
'follower': 1,
|
||
'dedicated': 2,
|
||
'initiate': 2,
|
||
'spirit worshipper': 2,
|
||
'proven': 3,
|
||
'acolyte': 3,
|
||
'shaman': 3,
|
||
'overseer': 4,
|
||
'priest': 4,
|
||
'high shaman': 4,
|
||
'leader': 5,
|
||
'high priest': 5,
|
||
'spirit lord': 5
|
||
};
|
||
const megMagicSkillIds = ['binding', 'devotion', 'exhort', 'folk_magic', 'invocation', 'meditation', 'path', 'shaping', 'trance'];
|
||
/**
|
||
* Imports JSON data from the Mythras Encounter Generator or other sources which use the same data format
|
||
*/
|
||
on("clicked:import", function() {
|
||
getAttrs(['import_json_data', 'import_character', 'character_id', 'setting_option', 'simplified_combat_enabled', 'action_points_calc', 'shaping_traits'], function(v) {
|
||
try {
|
||
const jsonData = JSON.parse(v['import_json_data']);
|
||
const import_character = parseInt(v['import_character']);
|
||
/* Check if the requested import character is out of range */
|
||
if (import_character > jsonData.length) {
|
||
setAttrs({
|
||
import_errors: "Error: The import data contains " + jsonData.length + " character(s) but you requested number " + import_character + "."
|
||
});
|
||
return;
|
||
}
|
||
const characterData = jsonData[parseInt(v['import_character']) - 1];
|
||
|
||
/* We assume defaults and fill in what the import doesn't provide */
|
||
let newAttrs = {
|
||
rank: 0,
|
||
str_base: 0, str: 0,
|
||
con_base: 0, con: 0,
|
||
siz_base: 0, siz: 0,
|
||
dex_base: 0, dex: 0,
|
||
int_base: 0, int: 0,
|
||
pow_base: 0, pow: 0,
|
||
cha_base: 0, cha: 0,
|
||
fatigue: 9,
|
||
action_points_other: 0, action_points_temp: 0, action_points_calc: v['action_points_calc'],
|
||
confidence_other: 0, confidence_temp: 0,
|
||
damage_mod_other: 0, damage_mod_temp: 0, damage_mod_calc: "0",
|
||
experience_mod_other: 0, experience_mod_temp: 0, experience_mod_calc: "0",
|
||
healing_rate_calc: "0", healing_rate_other: 0, healing_rate_temp: 0, healing_rate_double: "0",
|
||
initiative_bonus_other: 0, initiative_bonus_temp: 0, initiative_add_one_tenth_athletics: "0",
|
||
luck_points_other: 0, luck_points_temp: 0, luck_points_calc: "0",
|
||
magic_points_other: 0, magic_points_temp: 0,
|
||
movement_rate_other: 0, movement_rate_temp: 0,
|
||
composure_other: 0, composure: 4, composure_max: 4,
|
||
integrity_other: 0, integrity: 4, integrity_max: 4,
|
||
resolve_other: 0, resolve: 5, resolve_max: 5,
|
||
simplified_combat_enabled: v['simplified_combat_enabled'], hp_calc: "1"
|
||
};
|
||
|
||
/* Import Info */
|
||
if (debug) {console.log('Importing Info');}
|
||
newAttrs['character_name'] = characterData['name'];
|
||
|
||
if (characterData["cults"]) {
|
||
if (characterData["cults"][0] !== []) {
|
||
if (characterData["cults"][0]) {
|
||
let cults = "";
|
||
for (let i=0; i < characterData["cults"].length; i++) {
|
||
cults = cults + " * " + characterData["cults"][i] + "\r\n";
|
||
}
|
||
newAttrs['cult_notes'] = cults;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (characterData["cult_rank"]) {
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs['rank'] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
}
|
||
|
||
if (characterData["notes"]) {
|
||
newAttrs['sheet_notes'] = characterData["notes"];
|
||
}
|
||
|
||
/* Import Characteristics */
|
||
if (debug) {
|
||
console.log("Importing Characteristics");
|
||
}
|
||
characterData["stats"].forEach(stat => {
|
||
const charKey = Object.keys(stat)[0];
|
||
const char = charKey.toLowerCase();
|
||
newAttrs[`${char}_base`] = stat[charKey];
|
||
newAttrs[`${char}`] = stat[charKey];
|
||
});
|
||
|
||
if (debug) {
|
||
console.log("Determining Import Sheet type");
|
||
}
|
||
/* Detect Sheet Character Type, Species, and name */
|
||
/* Elementals have str and dex but no siz and con, so we determine spirit by str and dex only */
|
||
if (newAttrs['str_base'] === 0 && newAttrs['dex_base'] === 0) {
|
||
newAttrs['sheet_type'] = 'spirit';
|
||
newAttrs['attribute_mode'] = 'spiritual';
|
||
newAttrs['hit_location_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{none_hit_location_roll}';
|
||
} else {
|
||
newAttrs['sheet_type'] = 'creature';
|
||
newAttrs['attribute_mode'] = 'physical';
|
||
newAttrs['hit_location_roll'] = '@{creature_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{creature_hit_location_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{creature_hit_location_roll}';
|
||
}
|
||
|
||
/* Import Attributes, most are calculated at the end */
|
||
if (debug) {console.log("Importing attributes");}
|
||
|
||
if (characterData["attributes"]["movement"]) {
|
||
const moveInt = parseInt(characterData["attributes"]["movement"]);
|
||
if (Number.isInteger(moveInt) && moveInt > 0) {
|
||
newAttrs['movement_rate_species'] = moveInt;
|
||
newAttrs['movement_rate'] = moveInt;
|
||
} else {
|
||
newAttrs['custom_movement_enabled'] = '1';
|
||
newAttrs['custom_movement'] = characterData["attributes"]["movement"];
|
||
}
|
||
}
|
||
|
||
if (characterData["attributes"]["strike_rank"] && characterData["attributes"]["strike_rank"].includes("-")) {
|
||
/* if a penalty is present set the modifier for initiative later */
|
||
const armorPenalty = parseInt(characterData["attributes"]["strike_rank"].split("-")[1].replace(')','')) || 0;
|
||
newAttrs['armor_penalty'] = -armorPenalty;
|
||
}
|
||
|
||
/* Import Hit Locations */
|
||
console.log("Importing Hit Locations");
|
||
/* Import Hit Locations */
|
||
if (newAttrs['simplified_combat_enabled'] === '1') {
|
||
newAttrs['hit_locations'] = "simplified";
|
||
const simpleHp = Math.ceil((newAttrs['con'] + newAttrs['con']) / 2);
|
||
newAttrs['location1_hp_max'] = simpleHp;
|
||
newAttrs['location1_hp'] = simpleHp;
|
||
newAttrs['location1_hp_max_base_mod'] = 0;
|
||
newAttrs['location1_hp_max_other'] = 0;
|
||
let apTotal = 0;
|
||
characterData["hit_locations"].forEach(location => {
|
||
let locationAP = location['ap'];
|
||
apTotal = apTotal + locationAP;
|
||
});
|
||
/* Get the average ap value as a rough conversion to simplified combat */
|
||
newAttrs['location1_ap'] = Math.round(apTotal / characterData["hit_locations"].length);
|
||
newAttrs['location1_ap_max'] = Math.round(apTotal / characterData["hit_locations"].length);
|
||
} else {
|
||
/* Determine number of hit locations and set custom form to proper amount */
|
||
if (characterData["hit_locations"].length === 12) {
|
||
newAttrs['hit_locations'] = "custom";
|
||
} else {
|
||
newAttrs['hit_locations'] = "custom" + characterData["hit_locations"].length;
|
||
}
|
||
|
||
/* Calc rootHp for import */
|
||
const rootHp = calcRootHP(newAttrs);
|
||
|
||
for (let i=0; i < characterData["hit_locations"].length; i++) {
|
||
let location = i + 1;
|
||
|
||
let table = characterData["hit_locations"][i]["range"].split("-");
|
||
newAttrs[`location${location}_table_start`] = parseInt(table[0]);
|
||
if (!table[1]) {
|
||
newAttrs[`location${location}_table_end`] = parseInt(table[0]);
|
||
} else {
|
||
newAttrs[`location${location}_table_end`] = parseInt(table[1]);
|
||
}
|
||
|
||
newAttrs[`location${location}_name`] = characterData["hit_locations"][i]["name"];
|
||
|
||
const locationAP = characterData["hit_locations"][i]['ap'];
|
||
newAttrs[`location${location}_ap`] = locationAP;
|
||
newAttrs[`location${location}_ap_max`] = locationAP;
|
||
const newLocHP = parseInt(characterData["hit_locations"][i]["hp"]);
|
||
newAttrs[`location${location}_hp_max_base_mod`] = newLocHP - rootHp;
|
||
newAttrs[`location${location}_hp_max_other`] = 0;
|
||
newAttrs[`location${location}_hp_max`] = newLocHP;
|
||
newAttrs[`location${location}_hp`] = newLocHP;
|
||
}
|
||
}
|
||
|
||
/* Import Combat Styles and Weapons */
|
||
console.log("Importing Combat Styles and Weapons");
|
||
if (characterData["combat_styles"]) {
|
||
let weaponButtons = "";
|
||
characterData["combat_styles"].forEach(combat_style => {
|
||
const combatstyleid = generateRowID();
|
||
const base_combatstyle = newAttrs['str'] + newAttrs['dex'];
|
||
newAttrs["repeating_combatstyle_" + combatstyleid + "_id"] = `repeating_combatstyle_${combatstyleid}`;
|
||
newAttrs["repeating_combatstyle_" + combatstyleid + "_name"] = combat_style["name"];
|
||
newAttrs["repeating_combatstyle_" + combatstyleid + "_other"] = combat_style["value"] - base_combatstyle;
|
||
newAttrs["repeating_combatstyle_" + combatstyleid + "_total"] = combat_style["value"]
|
||
newAttrs["repeating_combatstyle_" + combatstyleid + "_details"] = 0;
|
||
|
||
combat_style["weapons"].forEach(weapon => {
|
||
const weaponid = generateRowID();
|
||
|
||
if (weapon["type"] === "ranged") {
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_id"] = `repeating_rangedweapon_${weaponid}`;
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_rollval"] = `%{${v['character_id']}|repeating_rangedweapon_${weaponid}_roll}`;
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_name"] = weapon["name"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_force"] = weapon["size"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_impale_size"] = weapon["size"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_range"] = weapon["range"];
|
||
if (weapon["add_damage_modifier"] === true) {
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_damage_mod_toggle"] = "@{damage_mod}";
|
||
} else {
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_damage_mod_toggle"] = 0;
|
||
}
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_damage"] = weapon["damage"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_ap"] = weapon["ap"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_hp"] = weapon["hp"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_hp_max"] = weapon["hp"];
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_notes"] = weapon["effects"];
|
||
// Must set favored as string
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_favored"] = '1';
|
||
if(newAttrs['type'] !== 'character') {
|
||
newAttrs["repeating_rangedweapon_" + weaponid + "_details"] = 0;
|
||
}
|
||
weaponButtons = weaponButtons + ` [${weapon["name"]}](~@{character_id}|repeating_rangedweapon_${weaponid}_damage)`;
|
||
} else {
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_id"] = `repeating_meleeweapon_${weaponid}`;
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_rollval"] = `%{${v['character_id']}|repeating_meleeweapon_${weaponid}_roll}`;
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_name"] = weapon["name"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_size"] = weapon["size"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_reach"] = weapon["reach"];
|
||
if (weapon["add_damage_modifier"] === true) {
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_damage_mod_toggle"] = "@{damage_mod}";
|
||
} else {
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_damage_mod_toggle"] = 0;
|
||
}
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_damage"] = weapon["damage"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_ap"] = weapon["ap"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_hp"] = weapon["hp"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_hp_max"] = weapon["hp"];
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_notes"] = weapon["effects"];
|
||
// Must set favored as string
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_favored"] = '1';
|
||
if(newAttrs['type'] !== 'character') {
|
||
newAttrs["repeating_meleeweapon_" + weaponid + "_details"] = 0;
|
||
}
|
||
weaponButtons = weaponButtons + ` [${weapon["name"]}](~@{character_id}|repeating_meleeweapon_${weaponid}_damage)`;
|
||
}
|
||
});
|
||
});
|
||
newAttrs['weapon_buttons'] = weaponButtons;
|
||
}
|
||
|
||
console.log("Importing skills");
|
||
/* Import Skills */
|
||
|
||
/* Collect standard skills list for the setting */
|
||
let settingStdSkills;
|
||
if (campaginSettingDefaults[v['setting_option']] && campaginSettingDefaults[v['setting_option']]['standard_skills']) {
|
||
settingStdSkills = campaginSettingDefaults[v['setting_option']]['standard_skills'];
|
||
} else {
|
||
settingStdSkills = campaginSettingDefaults['default']['standard_skills'];
|
||
}
|
||
/* Set all standard skills to not possessed by default */
|
||
settingStdSkills.forEach(skillid => {
|
||
newAttrs[`${skillid}_possessed`] = "0";
|
||
});
|
||
|
||
let magicSkillIds = {};
|
||
if (characterData["skills"]) {
|
||
characterData["skills"].forEach(skill => {
|
||
const skillKey = Object.keys(skill)[0];
|
||
const skillValue = skill[skillKey];
|
||
const skillSearchableKey = skillKey.replace(/ /g,"_").toLowerCase();
|
||
|
||
/* See if this is a standard skill per the setting */
|
||
if (settingStdSkills.includes(skillSearchableKey)) {
|
||
if (debug) {console.log(`Importing ${skillSearchableKey} as standard skill`)};
|
||
const char1 = newAttrs[stdSkillChars[skillSearchableKey][0]];
|
||
const char2 = newAttrs[stdSkillChars[skillSearchableKey][1]];
|
||
newAttrs[`${skillSearchableKey}_other`] = skillValue - char1 - char2;
|
||
newAttrs[`${skillSearchableKey}`] = skillValue;
|
||
newAttrs[`${skillSearchableKey}_possessed`] = "1";
|
||
} else if (allNonSpecialtyProSkillIds.includes(skillSearchableKey)) {
|
||
/* Import known professional skills as such */
|
||
const skillid = generateRowID();
|
||
const char1name = nonSpecialtyProSkillChars[skillSearchableKey][0];
|
||
const char1 = newAttrs[char1name];
|
||
const char2name = nonSpecialtyProSkillChars[skillSearchableKey][1];
|
||
const char2 = newAttrs[char2name];
|
||
|
||
if (megMagicSkillIds.includes(skillSearchableKey)) {
|
||
magicSkillIds[skillSearchableKey] = {
|
||
id: `repeating_professionalskill_${skillid}`,
|
||
name: skillKey,
|
||
value: skillValue
|
||
};
|
||
}
|
||
|
||
newAttrs[`repeating_professionalskill_${skillid}_id`] = `repeating_professionalskill_${skillid}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_professionalskill_${skillid}_char1`] = `@{${char1name}}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_char2`] = `@{${char2name}}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_other`] = skillValue - char1 - char2;
|
||
newAttrs[`repeating_professionalskill_${skillid}_total`] = skillValue;
|
||
} else if (skillSearchableKey.startsWith('passion')) {
|
||
const skillid = generateRowID();
|
||
newAttrs[`repeating_passion_${skillid}_id`] =`repeating_passion_${skillid}`;
|
||
newAttrs[`repeating_passion_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_passion_${skillid}_total`] = skillValue;
|
||
} else if (skillSearchableKey.startsWith('dependency')) {
|
||
const skillid = generateRowID();
|
||
newAttrs[`repeating_dependency_${skillid}_id`] = `repeating_dependency_${skillid}`;
|
||
newAttrs[`repeating_dependency_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_dependency_${skillid}_total`] = skillValue;
|
||
} else if (skillSearchableKey.startsWith('peculiarity')) {
|
||
const skillid = generateRowID();
|
||
newAttrs[`repeating_peculiarity_${skillid}_id`] = `repeating_peculiarity_${skillid}`;
|
||
newAttrs[`repeating_peculiarity_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_peculiarity_${skillid}_total`] = skillValue;
|
||
} else {
|
||
const skillid = generateRowID();
|
||
|
||
// Try to identify it as a known specialty skill, else treat as unknown skill
|
||
let knownSpecialtySkill = false;
|
||
allSpecialtyProSkillIds.find(specialtyId => {
|
||
if (skillSearchableKey.startsWith(specialtyId)) {
|
||
const char1name = specialtyProSkillChars[specialtyId][0];
|
||
const char1 = newAttrs[char1name];
|
||
const char2name = specialtyProSkillChars[specialtyId][1];
|
||
const char2 = newAttrs[char2name];
|
||
|
||
if (megMagicSkillIds.includes(skillSearchableKey)) {
|
||
magicSkillIds[skillSearchableKey] = {
|
||
id: `repeating_professionalskill_${skillid}`,
|
||
name: skillKey,
|
||
value: skillValue
|
||
};
|
||
}
|
||
|
||
newAttrs[`repeating_professionalskill_${skillid}_id`] = `repeating_professionalskill_${skillid}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_professionalskill_${skillid}_char1`] = `@{${char1name}}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_char2`] = `@{${char2name}}`;
|
||
newAttrs[`repeating_professionalskill_${skillid}_other`] = skillValue - char1 - char2;
|
||
newAttrs[`repeating_professionalskill_${skillid}_total`] = skillValue;
|
||
|
||
knownSpecialtySkill = true;
|
||
return true;
|
||
}
|
||
return false;
|
||
});
|
||
|
||
if(!knownSpecialtySkill) {
|
||
newAttrs[`repeating_passion_${skillid}_id`] = `repeating_passion_${skillid}`;
|
||
newAttrs[`repeating_passion_${skillid}_name`] = skillKey;
|
||
newAttrs[`repeating_passion_${skillid}_total`] = skillValue;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
/* Set default social skills */
|
||
newAttrs['social_offense_name'] = getTranslationByKey('influence');
|
||
newAttrs['social_offense_id'] = 'influence';
|
||
newAttrs['social_offense_notes'] = '';
|
||
if (newAttrs['influence']) {
|
||
newAttrs['social_offense_total'] = newAttrs['influence'];
|
||
} else {
|
||
newAttrs['social_offense_total'] = newAttrs['cha'] * 2;
|
||
}
|
||
|
||
newAttrs['social_defense_name'] = getTranslationByKey('deceit');
|
||
newAttrs['social_defense_id'] = 'deceit';
|
||
newAttrs['social_defense_notes'] = '';
|
||
if (newAttrs['deceit']) {
|
||
newAttrs['social_defense_total'] = newAttrs['deceit'];
|
||
} else {
|
||
newAttrs['social_defense_total'] = newAttrs['cha'] + newAttrs['int'];
|
||
}
|
||
|
||
/* Set default spirit combat skill */
|
||
if (newAttrs['sheet_type'] === 'spirit') {
|
||
/* Make sure a willpower value exists for confidence calculations */
|
||
if (!newAttrs['willpower']) {
|
||
newAttrs['willpower'] = newAttrs['pow'] + newAttrs['pow'] + 50;
|
||
newAttrs['willpower_other'] = 50;
|
||
newAttrs['willpower_possessed'] = "1";
|
||
}
|
||
/* Make sure a spectral_combat value exists */
|
||
if (!newAttrs['spectral_combat']) {
|
||
newAttrs['spectral_combat'] = newAttrs['pow'] + newAttrs['cha'] + 50;
|
||
newAttrs['spectral_combat_possessed'] = "1";
|
||
}
|
||
/* If spirit has binding skill select higher of the two as spirit combat skill */
|
||
if (magicSkillIds['binding'] && magicSkillIds['binding']['value'] >= newAttrs['spectral_combat']) {
|
||
newAttrs['spirit_combat_skill_id'] = magicSkillIds['binding']['id'];
|
||
newAttrs['spirit_combat_skill_name'] = magicSkillIds['binding']['name'];
|
||
newAttrs['spirit_combat_skill_total'] = magicSkillIds['binding']['value'];
|
||
} else {
|
||
newAttrs['spirit_combat_skill_id'] = 'spectral_combat';
|
||
newAttrs['spirit_combat_skill_name'] = getTranslationByKey("spectral_combat");
|
||
newAttrs['spirit_combat_skill_total'] = newAttrs['spectral_combat'];
|
||
}
|
||
newAttrs['spirit_combat_skill_notes'] = '';
|
||
} else {
|
||
/* Make sure a willpower value exists */
|
||
if (!newAttrs['willpower']) {
|
||
newAttrs['willpower'] = newAttrs['pow'] + newAttrs['pow'];
|
||
newAttrs['willpower_other'] = 0;
|
||
newAttrs['willpower_possessed'] = "1";
|
||
}
|
||
/* If spirit has binding skill select higher of the two as spirit combat skill */
|
||
if (magicSkillIds['binding'] && magicSkillIds['binding']['value'] >= (Math.ceil(newAttrs['willpower']/2))) {
|
||
newAttrs['spirit_combat_skill_id'] = magicSkillIds['binding']['id'];
|
||
newAttrs['spirit_combat_skill_name'] = magicSkillIds['binding']['name'];
|
||
newAttrs['spirit_combat_skill_total'] = magicSkillIds['binding']['value'];
|
||
} else {
|
||
newAttrs['spirit_combat_skill_id'] = 'willpower';
|
||
newAttrs['spirit_combat_skill_name'] = getTranslationByKey("willpower");
|
||
newAttrs['spirit_combat_skill_total'] = newAttrs['willpower'];
|
||
}
|
||
newAttrs['spirit_combat_skill_notes'] = '';
|
||
}
|
||
|
||
console.log("Importing Folk Magic");
|
||
/* Import Folk Magic */
|
||
const folkMagicTraditionId = 'repeating_tradition_' + generateRowID();
|
||
if (magicSkillIds.hasOwnProperty('folk_magic')) {
|
||
newAttrs[`${folkMagicTraditionId}_name`] = getTranslationByKey('folk_magic');
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs[`${folkMagicTraditionId}_tradition_rank`] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
newAttrs[`${folkMagicTraditionId}_id`] = folkMagicTraditionId;
|
||
newAttrs[`${folkMagicTraditionId}_skill1_id`] = magicSkillIds['folk_magic']['id'];
|
||
newAttrs[`${folkMagicTraditionId}_skill1_name`] = `@{${magicSkillIds['folk_magic']['id']}_name}`;
|
||
newAttrs[`${folkMagicTraditionId}_skill1_total`] = `@{${magicSkillIds['folk_magic']['id']}_total}`;
|
||
newAttrs[`${folkMagicTraditionId}_skill1_notes`] = `@{${magicSkillIds['folk_magic']['id']}_notes}`;
|
||
newAttrs[`${folkMagicTraditionId}_details`] = 0;
|
||
}
|
||
|
||
if (typeof characterData["folk_spells"] !== 'undefined') {
|
||
characterData["folk_spells"].forEach(spellName => {
|
||
const spellId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${spellId}_id`] = spellId;
|
||
newAttrs[`${spellId}_name`] = spellName;
|
||
newAttrs[`${spellId}_type`] = 'folk_magic';
|
||
newAttrs[`${spellId}_tradition_id`] = folkMagicTraditionId;
|
||
newAttrs[`${spellId}_details`] = 0;
|
||
});
|
||
}
|
||
|
||
console.log("Importing Animism");
|
||
/* Import Animism */
|
||
const animismTraditionId = 'repeating_tradition_' + generateRowID();
|
||
if (magicSkillIds.hasOwnProperty('binding') && magicSkillIds.hasOwnProperty('trance')) {
|
||
newAttrs[`${animismTraditionId}_name`] = getTranslationByKey('animism');
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs[`${animismTraditionId}_tradition_rank`] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
newAttrs[`${animismTraditionId}_id`] = animismTraditionId;
|
||
|
||
newAttrs[`${animismTraditionId}_skill1_id`] = magicSkillIds['binding']['id'];
|
||
newAttrs[`${animismTraditionId}_skill1_name`] = `@{${magicSkillIds['binding']['id']}_name}`;
|
||
newAttrs[`${animismTraditionId}_skill1_total`] = `@{${magicSkillIds['binding']['id']}_total}`;
|
||
newAttrs[`${animismTraditionId}_skill1_notes`] = `@{${magicSkillIds['binding']['id']}_notes}`;
|
||
|
||
newAttrs[`${animismTraditionId}_skill2_id`] = magicSkillIds['trance']['id'];
|
||
newAttrs[`${animismTraditionId}_skill2_name`] = `@{${magicSkillIds['trance']['id']}_name}`;
|
||
newAttrs[`${animismTraditionId}_skill2_total`] =`@{${magicSkillIds['trance']['id']}_total}`;
|
||
newAttrs[`${animismTraditionId}_skill2_notes`] = `@{${magicSkillIds['trance']['id']}_notes}`;
|
||
newAttrs[`${animismTraditionId}_details`] = 0;
|
||
|
||
}
|
||
|
||
/* Import Spirits */
|
||
if (characterData["spirits"]) {
|
||
characterData["spirits"].forEach(spirit => {
|
||
const spiritid = generateRowID();
|
||
|
||
newAttrs[`repeating_fetish_${spiritid}_name`] = spirit['name'];
|
||
newAttrs[`repeating_fetish_${spiritid}_details`] = "0";
|
||
|
||
for (let j=0; j < spirit["stats"].length; j++) {
|
||
const spiritstat = spirit["stats"][j];
|
||
const spiritstatKey = Object.keys(spiritstat)[0];
|
||
const spiritstatValue = spiritstat[spiritstatKey];
|
||
|
||
if ( spiritstatKey === "INT" ) {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_int"] = spiritstatValue;
|
||
} else if ( spiritstatKey === "INS" ) {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_int"] = spiritstatValue;
|
||
} else if ( spiritstatKey === "POW" ) {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_pow"] = spiritstatValue;
|
||
} else if ( spiritstatKey === "CHA" ) {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_cha"] = spiritstatValue;
|
||
}
|
||
}
|
||
|
||
//Import spirit attributes
|
||
if (spirit["attributes"]["magic_points"]) {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_magic_points"] = spirit["attributes"]["magic_points"];
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_tenacity"] = spirit["attributes"]["magic_points"];
|
||
}
|
||
|
||
//Import spirit abilities
|
||
if (spirit["features"]) {
|
||
let spiritabilities = "";
|
||
for (j=0; j < spirit["features"].length; j++) {
|
||
spiritabilities = spiritabilities + " * " + spirit["features"][j] + "\r\n";
|
||
}
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_spirit_abilities"] = spiritabilities;
|
||
}
|
||
|
||
//Import spirit skills
|
||
if (spirit["skills"]) {
|
||
let spirit_other_skills = "";
|
||
for (let j=0; j < spirit["skills"].length; j++) {
|
||
const spiritskill = spirit["skills"][j];
|
||
const spiritskillKey = Object.keys(spiritskill)[0];
|
||
const spiritskillValue = spiritskill[spiritskillKey];
|
||
|
||
if (spiritskillKey.toLowerCase() === "spectral combat" || spiritskillKey.toLowerCase() === "willpower") {
|
||
// Do nothing these are auto calculated by the spirit characteristics
|
||
} else if (spiritskillKey.toLowerCase() === "folk magic") {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_folk_magic"] = spiritskillValue;
|
||
} else if (spiritskillKey.toLowerCase() === "shaping") {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_shaping"] = spiritskillValue;
|
||
} else if (spiritskillKey.toLowerCase() === "invocation") {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_invocation"] = spiritskillValue;
|
||
} else if (spiritskillKey.toLowerCase() === "exhort") {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_exhort"] = spiritskillValue;
|
||
} else if (spiritskillKey.toLowerCase() === "devotion") {
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_devotion"] = spiritskillValue;
|
||
} else {
|
||
spirit_other_skills = spirit_other_skills + spiritskillKey + " " + spiritskillValue + "%, "
|
||
}
|
||
}
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_other_skills"] = spirit_other_skills;
|
||
}
|
||
|
||
//Import spirit spells
|
||
let spiritspells = "";
|
||
if (spirit["folk_spells"]) {
|
||
let spirit_folk_spells = "";
|
||
for (let j=0; j < spirit["folk_spells"].length; j++) {
|
||
spirit_folk_spells = spirit_folk_spells + spirit["folk_spells"][j] + ", ";
|
||
}
|
||
if (spirit_folk_spells !== "") {
|
||
spiritspells = spiritspells + "Folk Magic: " + spirit_folk_spells + "\r\n";
|
||
}
|
||
}
|
||
|
||
if (spirit["sorcery_spells"]) {
|
||
let spirit_sorcery_spells = "";
|
||
for (let j=0; j < spirit["sorcery_spells"].length; j++) {
|
||
spirit_sorcery_spells = spirit_sorcery_spells + spirit["sorcery_spells"][j] + ", ";
|
||
}
|
||
if (spirit_sorcery_spells !== "") {
|
||
spiritspells = spiritspells + "Sorcery: " + spirit_sorcery_spells + "\r\n";
|
||
}
|
||
}
|
||
|
||
if (spirit["theism_spells"]) {
|
||
let spirit_theism_spells = "";
|
||
for (let j=0; j < spirit["theism_spells"].length; j++) {
|
||
spirit_theism_spells = spirit_theism_spells + spirit["theism_spells"][j] + ", ";
|
||
}
|
||
if (spirit_theism_spells !== "") {
|
||
spiritspells = spiritspells + "Theism: " + spirit_theism_spells + "\r\n";
|
||
}
|
||
}
|
||
newAttrs["repeating_fetish_" + spiritid + "_fetish_powers"] = spiritspells;
|
||
});
|
||
}
|
||
|
||
console.log("Importing Mysticism");
|
||
/* Import Mysticism */
|
||
const mysticismTraditionId = 'repeating_tradition_' + generateRowID();
|
||
if (magicSkillIds.hasOwnProperty('meditation') && magicSkillIds.hasOwnProperty('path')) {
|
||
newAttrs[`${mysticismTraditionId}_name`] = getTranslationByKey('mysticism');
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs[`${mysticismTraditionId}_tradition_rank`] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
newAttrs[`${mysticismTraditionId}_id`] = mysticismTraditionId;
|
||
newAttrs[`${mysticismTraditionId}_skill1_id`] = magicSkillIds['path']['id'];
|
||
newAttrs[`${mysticismTraditionId}_skill1_name`] = `@{${magicSkillIds['path']['id']}_name}`;
|
||
newAttrs[`${mysticismTraditionId}_skill1_total`] = `@{${magicSkillIds['path']['id']}_total}`;
|
||
newAttrs[`${mysticismTraditionId}_skill1_notes`] = `@{${magicSkillIds['path']['id']}_notes}`;
|
||
|
||
newAttrs[`${mysticismTraditionId}_skill2_id`] = magicSkillIds['meditation']['id'];
|
||
newAttrs[`${mysticismTraditionId}_skill2_name`] = `@{${magicSkillIds['meditation']['id']}_name}`;
|
||
newAttrs[`${mysticismTraditionId}_skill2_total`] =`@{${magicSkillIds['meditation']['id']}_total}`;
|
||
newAttrs[`${mysticismTraditionId}_skill2_notes`] = `@{${magicSkillIds['meditation']['id']}_notes}`;
|
||
|
||
newAttrs[`${mysticismTraditionId}_details`] = 0;
|
||
}
|
||
|
||
|
||
if (typeof characterData["mysticism_spells"] !== 'undefined') {
|
||
characterData["mysticism_spells"].forEach(talentName => {
|
||
const talentId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${talentId}_id`] = talentId;
|
||
newAttrs[`${talentId}_name`] = talentName;
|
||
newAttrs[`${talentId}_type`] = 'mysticism';
|
||
newAttrs[`${talentId}_tradition_id`] = mysticismTraditionId;
|
||
newAttrs[`${talentId}_details`] = 0;
|
||
newAttrs[`${talentId}_advanced_traits`] = '^{intensity}: @{dynamic_intensity}';
|
||
});
|
||
}
|
||
|
||
console.log("Importing Sorcery");
|
||
/* Import Sorcery */
|
||
const sorceryTraditionId = 'repeating_tradition_' + generateRowID();
|
||
if (magicSkillIds.hasOwnProperty('invocation') && magicSkillIds.hasOwnProperty('shaping')) {
|
||
newAttrs[`${sorceryTraditionId}_name`] = getTranslationByKey('sorcery');
|
||
newAttrs[`${sorceryTraditionId}_type`] = "sorcery";
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs[`${sorceryTraditionId}_tradition_rank`] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
newAttrs[`${sorceryTraditionId}_id`] = sorceryTraditionId;
|
||
|
||
newAttrs[`${sorceryTraditionId}_skill1_id`] = magicSkillIds['invocation']['id'];
|
||
newAttrs[`${sorceryTraditionId}_skill1_name`] = `@{${magicSkillIds['invocation']['id']}_name}`;
|
||
newAttrs[`${sorceryTraditionId}_skill1_total`] = `@{${magicSkillIds['invocation']['id']}_total}`;
|
||
newAttrs[`${sorceryTraditionId}_skill1_notes`] = `@{${magicSkillIds['invocation']['id']}_notes}`;
|
||
|
||
newAttrs[`${sorceryTraditionId}_skill2_id`] = magicSkillIds['shaping']['id'];
|
||
newAttrs[`${sorceryTraditionId}_skill2_name`] = `@{${magicSkillIds['shaping']['id']}_name}`;
|
||
newAttrs[`${sorceryTraditionId}_skill2_total`] =`@{${magicSkillIds['shaping']['id']}_total}`;
|
||
newAttrs[`${sorceryTraditionId}_skill2_notes`] = `@{${magicSkillIds['shaping']['id']}_notes}`;
|
||
|
||
newAttrs[`${sorceryTraditionId}_details`] = 0;
|
||
}
|
||
|
||
if (typeof characterData["sorcery_spells"] !== 'undefined') {
|
||
characterData["sorcery_spells"].forEach(spellName => {
|
||
const spellId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${spellId}_id`] = spellId;
|
||
newAttrs[`${spellId}_name`] = spellName;
|
||
newAttrs[`${spellId}_type`] = 'sorcery';
|
||
newAttrs[`${spellId}_tradition_id`] = sorceryTraditionId;
|
||
newAttrs[`${spellId}_advanced_traits`] = v['shaping_traits'];
|
||
newAttrs[`${spellId}_details`] = 0;
|
||
});
|
||
}
|
||
|
||
console.log("Importing Theism");
|
||
/* Import Theism */
|
||
const theismTraditionId = 'repeating_tradition_' + generateRowID();
|
||
if (magicSkillIds.hasOwnProperty('exhort') && magicSkillIds.hasOwnProperty('devotion')) {
|
||
newAttrs[`${theismTraditionId}_name`] = getTranslationByKey('theism');
|
||
newAttrs[`${theismTraditionId}_type`] = "theism";
|
||
if (characterData["cult_rank"].toLowerCase() in cultRankMap) {
|
||
newAttrs[`${theismTraditionId}_tradition_rank`] = cultRankMap[characterData["cult_rank"].toLowerCase()];
|
||
}
|
||
if (characterData['attributes']['devotional_pool']) {
|
||
newAttrs[`${theismTraditionId}_pool`] = characterData['attributes']['devotional_pool'];
|
||
if (characterData['attributes']['devotional_pool'] >= newAttrs['pow']) {
|
||
newAttrs[`${theismTraditionId}_pool_limit`] = '@{pow}';
|
||
} else if (characterData['attributes']['devotional_pool'] >= Math.ceil(newAttrs['pow']*.75)) {
|
||
newAttrs[`${theismTraditionId}_pool_limit`] = 'ceil(@{pow}*.75)';
|
||
} else if (characterData['attributes']['devotional_pool'] >= Math.ceil(newAttrs['pow']*.5)) {
|
||
newAttrs[`${theismTraditionId}_pool_limit`] = 'ceil(@{pow}*.5))';
|
||
} else if (characterData['attributes']['devotional_pool'] >= Math.ceil(newAttrs['pow']*.25)) {
|
||
newAttrs[`${theismTraditionId}_pool_limit`] = 'ceil(@{pow}*.25)';
|
||
}
|
||
}
|
||
newAttrs[`${theismTraditionId}_id`] = theismTraditionId;
|
||
|
||
newAttrs[`${theismTraditionId}_skill1_id`] = magicSkillIds['exhort']['id'];
|
||
newAttrs[`${theismTraditionId}_skill1_name`] = `@{${magicSkillIds['exhort']['id']}_name}`;
|
||
newAttrs[`${theismTraditionId}_skill1_total`] = `@{${magicSkillIds['exhort']['id']}_total}`;
|
||
newAttrs[`${theismTraditionId}_skill1_notes`] = `@{${magicSkillIds['exhort']['id']}_notes}`;
|
||
|
||
newAttrs[`${theismTraditionId}_skill2_id`] = magicSkillIds['devotion']['id'];
|
||
newAttrs[`${theismTraditionId}_skill2_name`] = `@{${magicSkillIds['devotion']['id']}_name}`;
|
||
newAttrs[`${theismTraditionId}_skill2_total`] =`@{${magicSkillIds['devotion']['id']}_total}`;
|
||
newAttrs[`${theismTraditionId}_skill2_notes`] = `@{${magicSkillIds['devotion']['id']}_notes}`;
|
||
|
||
newAttrs[`${theismTraditionId}_details`] = 0;
|
||
}
|
||
|
||
if (typeof characterData["theism_spells"] !== 'undefined') {
|
||
characterData["theism_spells"].forEach(miracleName => {
|
||
const miracleId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${miracleId}_id`] = miracleId;
|
||
newAttrs[`${miracleId}_name`] = miracleName;
|
||
newAttrs[`${miracleId}_type`] = 'theism';
|
||
newAttrs[`${miracleId}_tradition_id`] = theismTraditionId;
|
||
newAttrs[`${miracleId}_details`] = 0;
|
||
});
|
||
}
|
||
|
||
/* Import Features */
|
||
/* Example template to work from https://mythras.skoll.xyz/generate_enemies_json/?id=6206&amount=1 */
|
||
let notes = "";
|
||
if (characterData['features']) {
|
||
characterData['features'].forEach(feature => {
|
||
const featureArray = feature.split(/:(.*)/s);
|
||
const featureType = featureArray[0];
|
||
const featureTypeLower = featureType.toLowerCase();
|
||
if (featureTypeLower.includes("ability") || featureTypeLower.includes("abilities") || featureTypeLower.includes("spirit") ||
|
||
featureTypeLower.includes("poison") || featureTypeLower.includes("venom") || featureTypeLower.includes("breath weapon") ||
|
||
featureTypeLower.includes("chaotic feature") || featureTypeLower.includes("disease") || featureTypeLower.includes("curse")) {
|
||
const featureId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${featureId}_id`] = featureId;
|
||
newAttrs[`${featureId}_type`] = "ability";
|
||
if (newAttrs["sheet_type"] === 'spirit') {
|
||
newAttrs[`${featureId}_advanced_traits`] = "^{spirit_intensity}: @{spirit_intensity}";
|
||
}
|
||
/* Try to find a name */
|
||
if (featureArray[1].includes('***')) {
|
||
const regex = /.*\*\*\*(.*)\*\*\*.*/;
|
||
let potentailName = regex.exec(featureArray[1]);
|
||
if (potentailName) {
|
||
newAttrs[`${featureId}_name`] = potentailName[1];
|
||
} else {
|
||
newAttrs[`${featureId}_name`] = featureType;
|
||
}
|
||
} else if (featureArray[1].includes(' - ')) {
|
||
newAttrs[`${featureId}_name`] = featureArray[1].split(' - ')[0];
|
||
} else if (featureArray[1].includes(':')) {
|
||
newAttrs[`${featureId}_name`] = featureArray[1].split(':')[0];
|
||
} else {
|
||
newAttrs[`${featureId}_name`] = featureType;
|
||
}
|
||
if (featureArray[1].length > 80) {
|
||
newAttrs[`${featureId}_summary`] = featureArray[1].slice(0, 79) + "...";
|
||
} else {
|
||
newAttrs[`${featureId}_summary`] = featureArray[1];
|
||
}
|
||
newAttrs[`${featureId}_description`] = featureArray[1];
|
||
newAttrs[`${featureId}_details`] = "0";
|
||
} else if (featureTypeLower.includes("gift")) {
|
||
const featureId = 'repeating_ability_' + generateRowID();
|
||
newAttrs[`${featureId}_id`] = featureId;
|
||
newAttrs[`${featureId}_type`] = "gift";
|
||
|
||
/* Try to find a name */
|
||
if (featureArray[1].includes('***')) {
|
||
const regex = /.*\*\*\*(.*)\*\*\*.*/;
|
||
let potentailName = regex.exec(featureArray[1]);
|
||
if (potentailName) {
|
||
newAttrs[`${featureId}_name`] = potentailName[1];
|
||
} else {
|
||
newAttrs[`${featureId}_name`] = featureType;
|
||
}
|
||
} else if (featureArray[1].includes(' - ')) {
|
||
newAttrs[`${featureId}_name`] = featureArray[1].split(' - ')[0];
|
||
} else if (featureArray[1].includes(':')) {
|
||
newAttrs[`${featureId}_name`] = featureArray[1].split(':')[0];
|
||
} else {
|
||
newAttrs[`${featureId}_name`] = featureType;
|
||
}
|
||
if (featureArray[1].length > 80) {
|
||
newAttrs[`${featureId}_summary`] = featureArray[1].slice(0, 79) + "...";
|
||
} else {
|
||
newAttrs[`${featureId}_summary`] = featureArray[1];
|
||
}
|
||
newAttrs[`${featureId}_description`] = featureArray[1];
|
||
newAttrs[`${featureId}_details`] = "0";
|
||
} else {
|
||
notes = notes + feature + "\r\n";
|
||
}
|
||
});
|
||
}
|
||
|
||
/* Set notes */
|
||
if (characterData['notes']) {
|
||
newAttrs['sheet_notes'] = notes + characterData['notes'];
|
||
} else {
|
||
newAttrs['sheet_notes'] = notes;
|
||
}
|
||
|
||
|
||
/* Clear the import data */
|
||
newAttrs['import_json_data'] = '';
|
||
newAttrs['import_errors'] = '';
|
||
|
||
if (debug) {console.log(newAttrs);}
|
||
setAttrs({
|
||
...newAttrs,
|
||
...calcActionPoints(newAttrs),
|
||
...calcConfidence(newAttrs),
|
||
...calcDamageMod(newAttrs),
|
||
...calcExpMod(newAttrs),
|
||
...calcHealingRate(newAttrs),
|
||
...calcInitiativeBonus(newAttrs),
|
||
...calcLuckPoints(newAttrs),
|
||
...calcMagicPoints(newAttrs),
|
||
...calcSocialDamage(newAttrs),
|
||
...calcSpiritDamage(newAttrs),
|
||
...calcSpiritIntensity(newAttrs),
|
||
...calcTenacity(newAttrs),
|
||
...calcComposure(newAttrs),
|
||
...calcIntegrity(newAttrs),
|
||
...calcResolve(newAttrs)
|
||
});
|
||
} catch (error) {
|
||
setAttrs({import_errors: error});
|
||
}
|
||
});
|
||
});
|
||
/* Character Versioning */
|
||
|
||
/* Helper Functions */
|
||
function convertSkillToV3(id, v) {
|
||
let newAttrs = {};
|
||
let total;
|
||
if (id.startsWith('repeating_')) {
|
||
total = parseInt(v[`${id}_total`]) || 0;
|
||
} else {
|
||
total = parseInt(v[`${id}`]) || 0;
|
||
}
|
||
const aug = parseInt(v[`${id}_temp`]) || 0;
|
||
const penalty = parseInt(v[`${id}_penalty`]) || 0;
|
||
const xp = parseInt(v[`${id}_experience`]) || 0;
|
||
const other = parseInt(v[`${id}_other`]) || 0;
|
||
newAttrs[`${id}_other`] = xp + other;
|
||
if (id.startsWith('repeating_')) {
|
||
newAttrs[`${id}_total`] = total - penalty - aug;
|
||
} else {
|
||
newAttrs[`${id}`] = total - penalty - aug;
|
||
}
|
||
newAttrs[`${id}_id`] = id;
|
||
|
||
return newAttrs;
|
||
}
|
||
|
||
function convertPassionToV3(id, v) {
|
||
let newAttrs = {};
|
||
const total = parseInt(v[`${id}_total`]) || 0;
|
||
const aug = parseInt(v[`${id}_temp`]) || 0;
|
||
const penalty = parseInt(v[`${id}_penalty`]) || 0;
|
||
newAttrs[`${id}_total`] = total - penalty - aug;
|
||
newAttrs[`${id}_id`] = id;
|
||
|
||
return newAttrs;
|
||
}
|
||
|
||
function convertSkillToProSkill(oldSkillId, char1, char2, proSkillId, v) {
|
||
let newAttrs = {};
|
||
|
||
if (oldSkillId.startsWith('repeating_') || (v[oldSkillId] && v[oldSkillId] !== '0')) {
|
||
let total;
|
||
if (oldSkillId.startsWith('repeating_')) {
|
||
total = parseInt(v[`${oldSkillId}_total`]) || 0;
|
||
} else {
|
||
total = parseInt(v[oldSkillId]) || 0;
|
||
}
|
||
const aug = parseInt(v[`${oldSkillId}_temp`]) || 0;
|
||
const penalty = parseInt(v[`${oldSkillId}_penalty`]) || 0;
|
||
const xp = parseInt(v[`${oldSkillId}_experience`]) || 0;
|
||
const other = parseInt(v[`${oldSkillId}_other`]) || 0;
|
||
if (oldSkillId.startsWith('repeating_')) {
|
||
newAttrs[`${proSkillId}_name`] = !v[`${oldSkillId}_name`] ? "?" : v[`${oldSkillId}_name`];
|
||
} else {
|
||
newAttrs[`${proSkillId}_name`] = getTranslationByKey(oldSkillId);
|
||
}
|
||
newAttrs[`${proSkillId}_id`] = proSkillId;
|
||
newAttrs[`${proSkillId}_fumbled`] = !v[`${oldSkillId}_fumbled`] ? "0" : v[`${oldSkillId}_fumbled`];
|
||
newAttrs[`${proSkillId}_trained`] = !v[`${oldSkillId}_trained`] ? "0" : v[`${oldSkillId}_trained`];
|
||
if (char1 === '@{str}' || char1 === '@{dex}' || char2 === '@{str}' || char2 === '@{dex}') {
|
||
newAttrs[`${proSkillId}_encumbered`] = 1;
|
||
}
|
||
newAttrs[`${proSkillId}_notes`] = !v[`${oldSkillId}_notes`] ? '' : v[`${oldSkillId}_notes`];
|
||
newAttrs[`${proSkillId}_char1`] = char1;
|
||
newAttrs[`${proSkillId}_char2`] = char2;
|
||
newAttrs[`${proSkillId}_other`] = xp + other;
|
||
newAttrs[`${proSkillId}_total`] = total - penalty - aug;
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
|
||
function createNewTradition(traditionName, skill1Id, skill2Id) {
|
||
const traditionId = 'repeating_tradition_' + generateRowID();
|
||
let newAttrs = {};
|
||
|
||
newAttrs[`${traditionId}_name`] = traditionName;
|
||
newAttrs[`${traditionId}_id`] = traditionId;
|
||
newAttrs[`${traditionId}_details`] = "0";
|
||
newAttrs[`${traditionId}_skill1_id`] = skill1Id;
|
||
newAttrs[`${traditionId}_skill1_name`] = `@{${skill1Id}_name}`;
|
||
newAttrs[`${traditionId}_skill1_total`] = `@{${skill1Id}_total}`;
|
||
newAttrs[`${traditionId}_skill1_notes`] = `@{${skill1Id}_notes}`;
|
||
|
||
if (skill2Id !== null) {
|
||
newAttrs[`${traditionId}_skill2_id`] = skill2Id;
|
||
newAttrs[`${traditionId}_skill2_name`] = `@{${skill2Id}_name}`;
|
||
newAttrs[`${traditionId}_skill2_total`] = `@{${skill2Id}_total}`;
|
||
newAttrs[`${traditionId}_skill2_notes`] = `@{${skill2Id}_notes}`;
|
||
}
|
||
|
||
return newAttrs;
|
||
}
|
||
|
||
const v3TraitTranslations = {
|
||
"^{brawn-u}": getTranslationByKey('brawn'),
|
||
"^{endurance-u}": getTranslationByKey('endurance'),
|
||
"^{evade-u}": getTranslationByKey('evade'),
|
||
"^{special-u}": getTranslationByKey('special'),
|
||
"^{willpower-u}": getTranslationByKey('willpower'),
|
||
}
|
||
|
||
/**
|
||
* Make the changes needs to get a character sheet updated from 2.7 to 3.0
|
||
*/
|
||
function upgradeCharacter3Dot0() {
|
||
if (debug) {console.log("Upgrading character to 3.0");}
|
||
|
||
/* Collect all the repeating Ids we will need */
|
||
getSectionIDs("repeating_combatstyle", function(combatStyleIds) {
|
||
getSectionIDs("repeating_language", function(languageIds) {
|
||
getSectionIDs("repeating_affiliation", function(affiliationIds) {
|
||
getSectionIDs("repeating_professionalskill", function(professionalSkillIds) {
|
||
getSectionIDs("repeating_passion", function(passionIds) {
|
||
getSectionIDs("repeating_dependency", function(dependencyIds) {
|
||
getSectionIDs("repeating_peculiarity", function(peculiarityIds) {
|
||
getSectionIDs("repeating_path", function(pathIds) {
|
||
getSectionIDs("repeating_invocation", function(invocationIds) {
|
||
getSectionIDs("repeating_devotion", function(devotionIds) {
|
||
getSectionIDs("repeating_folkspell", function(folkSpellIds) {
|
||
getSectionIDs("repeating_practicedtalent", function(practicedTalentIds) {
|
||
getSectionIDs("repeating_sorceryspell", function(sorcerySpellIds) {
|
||
getSectionIDs("repeating_miracle", function(miracleIds) {
|
||
getSectionIDs("repeating_magicspell", function(magicSpellIds) {
|
||
getSectionIDs("repeating_psionicpower", function(psionicPowerIds) {
|
||
getSectionIDs("repeating_arcanemagicrank0spell", function(arcanemagicrank0spellIds) {
|
||
getSectionIDs("repeating_arcanemagicrank1spell", function(arcanemagicrank1spellIds) {
|
||
getSectionIDs("repeating_arcanemagicrank2spell", function(arcanemagicrank2spellIds) {
|
||
getSectionIDs("repeating_arcanemagicrank3spell", function(arcanemagicrank3spellIds) {
|
||
getSectionIDs("repeating_arcanemagicrank4spell", function(arcanemagicrank4spellIds) {
|
||
getSectionIDs("repeating_arcanemagicrank5spell", function(arcanemagicrank5spellIds) {
|
||
getSectionIDs("repeating_divinemagicrank1spell", function(divinemagicrank1spellIds) {
|
||
getSectionIDs("repeating_divinemagicrank2spell", function(divinemagicrank2spellIds) {
|
||
getSectionIDs("repeating_divinemagicrank3spell", function(divinemagicrank3spellIds) {
|
||
getSectionIDs("repeating_divinemagicrank4spell", function(divinemagicrank4spellIds) {
|
||
getSectionIDs("repeating_divinemagicrank5spell", function(divinemagicrank5spellIds) {
|
||
getSectionIDs("repeating_superpower", function(superpowerIds) {
|
||
getSectionIDs("repeating_superpowerboost", function(superpowerboostIds) {
|
||
getSectionIDs("repeating_superpowerlimit", function(superpowerlimitIds) {
|
||
getSectionIDs("repeating_faepower", function(faepowerIds) {
|
||
getSectionIDs("repeating_alchemicaltradition", function(alchemicaltraditionIds) {
|
||
getSectionIDs("repeating_alchemicalformula", function(alchemicalformulaIds) {
|
||
getSectionIDs("repeating_artificespell", function(artificespellIds) {
|
||
getSectionIDs("repeating_discipline", function(disciplineIds) {
|
||
getSectionIDs("repeating_psionictalent", function(psionictalentIds) {
|
||
getSectionIDs("repeating_trait", function(traitIds) {
|
||
getSectionIDs("repeating_worksong", function(worksongIds) {
|
||
|
||
let worksongGetAttrs = [];
|
||
worksongIds.forEach(id => {
|
||
worksongGetAttrs.push(`repeating_worksong_${id}_name`, `repeating_worksong_${id}_description`);
|
||
});
|
||
|
||
let traitGetAttrs = [];
|
||
traitIds.forEach(id => {
|
||
traitGetAttrs.push(`repeating_trait_${id}_trait`);
|
||
});
|
||
|
||
let psionictalentGetAttrs = [];
|
||
psionictalentIds.forEach(id => {
|
||
psionictalentGetAttrs.push(`repeating_psionictalent_${id}_name`, `repeating_psionictalent_${id}_duration`, `repeating_psionictalent_${id}_range`, `repeating_psionictalent_${id}_resist`, `repeating_psionictalent_${id}_cost`, `repeating_psionictalent_${id}_area`, `repeating_psionictalent_${id}_damage`, `repeating_psionictalent_${id}_description`);
|
||
});
|
||
|
||
let disciplineGetAttrs = [];
|
||
disciplineIds.forEach(id => {
|
||
disciplineGetAttrs.push(`repeating_discipline_${id}_name`, `repeating_discipline_${id}_fumbled`, `repeating_discipline_${id}_trained`, `repeating_discipline_${id}_temp`, `repeating_discipline_${id}_penalty`, `repeating_discipline_${id}_experience`, `repeating_discipline_${id}_other`, `repeating_discipline_${id}_total`, `repeating_discipline_${id}_notes`);
|
||
});
|
||
|
||
let artificespellGetAttrs = [];
|
||
artificespellIds.forEach(id => {
|
||
artificespellGetAttrs.push(`repeating_artificespell_${id}_name`, `repeating_artificespell_${id}_description`, `repeating_artificespell_${id}_memorized`);
|
||
});
|
||
|
||
let alchemicalformulaGetAttrs = [];
|
||
alchemicalformulaIds.forEach(id => {
|
||
alchemicalformulaGetAttrs.push(`repeating_alchemicalformula_${id}_name`, `repeating_alchemicalformula_${id}_description`, `repeating_alchemicalformula_${id}_formulatype`, `repeating_alchemicalformula_${id}_duration`, `repeating_alchemicalformula_${id}_resist`);
|
||
});
|
||
|
||
let alchemicaltraditionGetAttrs = [];
|
||
alchemicaltraditionIds.forEach(id => {
|
||
alchemicaltraditionGetAttrs.push(`repeating_alchemicaltradition_${id}_name`, `repeating_alchemicaltradition_${id}_fumbled`, `repeating_alchemicaltradition_${id}_trained`, `repeating_alchemicaltradition_${id}_temp`, `repeating_alchemicaltradition_${id}_penalty`, `repeating_alchemicaltradition_${id}_experience`, `repeating_alchemicaltradition_${id}_other`, `repeating_alchemicaltradition_${id}_total`, `repeating_alchemicaltradition_${id}_notes`);
|
||
});
|
||
|
||
let faepowerGetAttrs = [];
|
||
faepowerIds.forEach(id => {
|
||
faepowerGetAttrs.push(`repeating_faepower_${id}_name`, `repeating_faepower_${id}_duration`, `repeating_faepower_${id}_range`, `repeating_faepower_${id}_resist`, `repeating_faepower_${id}_cost`, `repeating_faepower_${id}_description`);
|
||
});
|
||
|
||
let superpowerGetAttrs = [];
|
||
superpowerIds.forEach(id => {
|
||
superpowerGetAttrs.push(`repeating_superpower_${id}_name`, `repeating_superpower_${id}_activation`, `repeating_superpower_${id}_description`);
|
||
});
|
||
|
||
let superpowerboostGetAttrs = [];
|
||
superpowerboostIds.forEach(id => {
|
||
superpowerboostGetAttrs.push(`repeating_superpowerboost_${id}_name`, `repeating_superpowerboost_${id}_cost`, `repeating_superpowerboost_${id}_description`);
|
||
});
|
||
|
||
let superpowerlimitGetAttrs = [];
|
||
superpowerlimitIds.forEach(id => {
|
||
superpowerlimitGetAttrs.push(`repeating_superpowerlimit_${id}_description`, );
|
||
});
|
||
|
||
let divinemagicrank1spellGetAttrs = [];
|
||
divinemagicrank1spellIds.forEach(id => {
|
||
divinemagicrank1spellGetAttrs.push(`repeating_divinemagicrank1spell_${id}_name`, `repeating_divinemagicrank1spell_${id}_description`, `repeating_divinemagicrank1spell_${id}_reversible`, `repeating_divinemagicrank1spell_${id}_mp_cost`, `repeating_divinemagicrank1spell_${id}_xp_cost`, `repeating_divinemagicrank1spell_${id}_area`, `repeating_divinemagicrank1spell_${id}_time`, `repeating_divinemagicrank1spell_${id}_time_unit`, `repeating_divinemagicrank1spell_${id}_duration`, `repeating_divinemagicrank1spell_${id}_range`, `repeating_divinemagicrank1spell_${id}_resist`, `repeating_divinemagicrank1spell_${id}_school`, `repeating_divinemagicrank1spell_${id}_memorized`);
|
||
});
|
||
let divinemagicrank2spellGetAttrs = [];
|
||
divinemagicrank2spellIds.forEach(id => {
|
||
divinemagicrank2spellGetAttrs.push(`repeating_divinemagicrank2spell_${id}_name`, `repeating_divinemagicrank2spell_${id}_description`, `repeating_divinemagicrank2spell_${id}_reversible`, `repeating_divinemagicrank2spell_${id}_mp_cost`, `repeating_divinemagicrank2spell_${id}_xp_cost`, `repeating_divinemagicrank2spell_${id}_area`, `repeating_divinemagicrank2spell_${id}_time`, `repeating_divinemagicrank2spell_${id}_time_unit`, `repeating_divinemagicrank2spell_${id}_duration`, `repeating_divinemagicrank2spell_${id}_range`, `repeating_divinemagicrank2spell_${id}_resist`, `repeating_divinemagicrank2spell_${id}_school`, `repeating_divinemagicrank2spell_${id}_memorized`);
|
||
});
|
||
let divinemagicrank3spellGetAttrs = [];
|
||
divinemagicrank3spellIds.forEach(id => {
|
||
divinemagicrank3spellGetAttrs.push(`repeating_divinemagicrank3spell_${id}_name`, `repeating_divinemagicrank3spell_${id}_description`, `repeating_divinemagicrank3spell_${id}_reversible`, `repeating_divinemagicrank3spell_${id}_mp_cost`, `repeating_divinemagicrank3spell_${id}_xp_cost`, `repeating_divinemagicrank3spell_${id}_area`, `repeating_divinemagicrank3spell_${id}_time`, `repeating_divinemagicrank3spell_${id}_time_unit`, `repeating_divinemagicrank3spell_${id}_duration`, `repeating_divinemagicrank3spell_${id}_range`, `repeating_divinemagicrank3spell_${id}_resist`, `repeating_divinemagicrank3spell_${id}_school`, `repeating_divinemagicrank3spell_${id}_memorized`);
|
||
});
|
||
let divinemagicrank4spellGetAttrs = [];
|
||
divinemagicrank4spellIds.forEach(id => {
|
||
divinemagicrank4spellGetAttrs.push(`repeating_divinemagicrank4spell_${id}_name`, `repeating_divinemagicrank4spell_${id}_description`, `repeating_divinemagicrank4spell_${id}_reversible`, `repeating_divinemagicrank4spell_${id}_mp_cost`, `repeating_divinemagicrank4spell_${id}_xp_cost`, `repeating_divinemagicrank4spell_${id}_area`, `repeating_divinemagicrank4spell_${id}_time`, `repeating_divinemagicrank4spell_${id}_time_unit`, `repeating_divinemagicrank4spell_${id}_duration`, `repeating_divinemagicrank4spell_${id}_range`, `repeating_divinemagicrank4spell_${id}_resist`, `repeating_divinemagicrank4spell_${id}_school`, `repeating_divinemagicrank4spell_${id}_memorized`);
|
||
});
|
||
let divinemagicrank5spellGetAttrs = [];
|
||
divinemagicrank5spellIds.forEach(id => {
|
||
divinemagicrank5spellGetAttrs.push(`repeating_divinemagicrank5spell_${id}_name`, `repeating_divinemagicrank5spell_${id}_description`, `repeating_divinemagicrank5spell_${id}_reversible`, `repeating_divinemagicrank5spell_${id}_mp_cost`, `repeating_divinemagicrank5spell_${id}_xp_cost`, `repeating_divinemagicrank5spell_${id}_area`, `repeating_divinemagicrank5spell_${id}_time`, `repeating_divinemagicrank5spell_${id}_time_unit`, `repeating_divinemagicrank5spell_${id}_duration`, `repeating_divinemagicrank5spell_${id}_range`, `repeating_divinemagicrank5spell_${id}_resist`, `repeating_divinemagicrank5spell_${id}_school`, `repeating_divinemagicrank5spell_${id}_memorized`);
|
||
});
|
||
let arcanemagicrank0spellGetAttrs = [];
|
||
arcanemagicrank0spellIds.forEach(id => {
|
||
arcanemagicrank0spellGetAttrs.push(`repeating_arcanemagicrank0spell_${id}_name`, `repeating_arcanemagicrank0spell_${id}_description`, `repeating_arcanemagicrank0spell_${id}_reversible`, `repeating_arcanemagicrank0spell_${id}_cost`, `repeating_arcanemagicrank0spell_${id}_area`, `repeating_arcanemagicrank0spell_${id}_time`, `repeating_arcanemagicrank0spell_${id}_duration`, `repeating_arcanemagicrank0spell_${id}_range`, `repeating_arcanemagicrank0spell_${id}_resist`);
|
||
});
|
||
let arcanemagicrank1spellGetAttrs = [];
|
||
arcanemagicrank1spellIds.forEach(id => {
|
||
arcanemagicrank1spellGetAttrs.push(`repeating_arcanemagicrank1spell_${id}_name`, `repeating_arcanemagicrank1spell_${id}_description`, `repeating_arcanemagicrank1spell_${id}_reversible`, `repeating_arcanemagicrank1spell_${id}_mp_cost`, `repeating_arcanemagicrank1spell_${id}_xp_cost`, `repeating_arcanemagicrank1spell_${id}_area`, `repeating_arcanemagicrank1spell_${id}_time`, `repeating_arcanemagicrank1spell_${id}_time_unit`, `repeating_arcanemagicrank1spell_${id}_duration`, `repeating_arcanemagicrank1spell_${id}_range`, `repeating_arcanemagicrank1spell_${id}_resist`, `repeating_arcanemagicrank1spell_${id}_school`, `repeating_arcanemagicrank1spell_${id}_memorized`);
|
||
});
|
||
let arcanemagicrank2spellGetAttrs = [];
|
||
arcanemagicrank2spellIds.forEach(id => {
|
||
arcanemagicrank2spellGetAttrs.push(`repeating_arcanemagicrank2spell_${id}_name`, `repeating_arcanemagicrank2spell_${id}_description`, `repeating_arcanemagicrank2spell_${id}_reversible`, `repeating_arcanemagicrank2spell_${id}_mp_cost`, `repeating_arcanemagicrank2spell_${id}_xp_cost`, `repeating_arcanemagicrank2spell_${id}_area`, `repeating_arcanemagicrank2spell_${id}_time`, `repeating_arcanemagicrank2spell_${id}_time_unit`, `repeating_arcanemagicrank2spell_${id}_duration`, `repeating_arcanemagicrank2spell_${id}_range`, `repeating_arcanemagicrank2spell_${id}_resist`, `repeating_arcanemagicrank2spell_${id}_school`, `repeating_arcanemagicrank2spell_${id}_memorized`);
|
||
});
|
||
let arcanemagicrank3spellGetAttrs = [];
|
||
arcanemagicrank3spellIds.forEach(id => {
|
||
arcanemagicrank3spellGetAttrs.push(`repeating_arcanemagicrank3spell_${id}_name`, `repeating_arcanemagicrank3spell_${id}_description`, `repeating_arcanemagicrank3spell_${id}_reversible`, `repeating_arcanemagicrank3spell_${id}_mp_cost`, `repeating_arcanemagicrank3spell_${id}_xp_cost`, `repeating_arcanemagicrank3spell_${id}_area`, `repeating_arcanemagicrank3spell_${id}_time`, `repeating_arcanemagicrank3spell_${id}_time_unit`, `repeating_arcanemagicrank3spell_${id}_duration`, `repeating_arcanemagicrank3spell_${id}_range`, `repeating_arcanemagicrank3spell_${id}_resist`, `repeating_arcanemagicrank3spell_${id}_school`, `repeating_arcanemagicrank3spell_${id}_memorized`);
|
||
});
|
||
let arcanemagicrank4spellGetAttrs = [];
|
||
arcanemagicrank4spellIds.forEach(id => {
|
||
arcanemagicrank4spellGetAttrs.push(`repeating_arcanemagicrank4spell_${id}_name`, `repeating_arcanemagicrank4spell_${id}_description`, `repeating_arcanemagicrank4spell_${id}_reversible`, `repeating_arcanemagicrank4spell_${id}_mp_cost`, `repeating_arcanemagicrank4spell_${id}_xp_cost`, `repeating_arcanemagicrank4spell_${id}_area`, `repeating_arcanemagicrank4spell_${id}_time`, `repeating_arcanemagicrank4spell_${id}_time_unit`, `repeating_arcanemagicrank4spell_${id}_duration`, `repeating_arcanemagicrank4spell_${id}_range`, `repeating_arcanemagicrank4spell_${id}_resist`, `repeating_arcanemagicrank4spell_${id}_school`, `repeating_arcanemagicrank4spell_${id}_memorized`);
|
||
});
|
||
let arcanemagicrank5spellGetAttrs = [];
|
||
arcanemagicrank5spellIds.forEach(id => {
|
||
arcanemagicrank5spellGetAttrs.push(`repeating_arcanemagicrank5spell_${id}_name`, `repeating_arcanemagicrank5spell_${id}_description`, `repeating_arcanemagicrank5spell_${id}_reversible`, `repeating_arcanemagicrank5spell_${id}_mp_cost`, `repeating_arcanemagicrank5spell_${id}_xp_cost`, `repeating_arcanemagicrank5spell_${id}_area`, `repeating_arcanemagicrank5spell_${id}_time`, `repeating_arcanemagicrank5spell_${id}_time_unit`, `repeating_arcanemagicrank5spell_${id}_duration`, `repeating_arcanemagicrank5spell_${id}_range`, `repeating_arcanemagicrank5spell_${id}_resist`, `repeating_arcanemagicrank5spell_${id}_school`, `repeating_arcanemagicrank5spell_${id}_memorized`);
|
||
});
|
||
|
||
let psionicPowerGetAttrs = [];
|
||
psionicPowerIds.forEach(id => {
|
||
psionicPowerGetAttrs.push(`repeating_psionicpower_${id}_name`, `repeating_psionicpower_${id}_fumbled`, `repeating_psionicpower_${id}_trained`, `repeating_psionicpower_${id}_temp`, `repeating_psionicpower_${id}_penalty`, `repeating_psionicpower_${id}_other`, `repeating_psionicpower_${id}_experience`, `repeating_psionicpower_${id}_total`, `repeating_psionicpower_${id}_description`);
|
||
});
|
||
|
||
let magicSpellGetAttrs = [];
|
||
magicSpellIds.forEach(id => {
|
||
magicSpellGetAttrs.push(`repeating_magicspell_${id}_name`, `repeating_magicspell_${id}_fumbled`, `repeating_magicspell_${id}_trained`, `repeating_magicspell_${id}_temp`, `repeating_magicspell_${id}_penalty`, `repeating_magicspell_${id}_other`, `repeating_magicspell_${id}_experience`, `repeating_magicspell_${id}_total`, `repeating_magicspell_${id}_description`, `repeating_magicspell_${id}_cost`, `repeating_magicspell_${id}_range`, `repeating_magicspell_${id}_duration`);
|
||
});
|
||
|
||
let combatStyleGetAttrs = [];
|
||
combatStyleIds.forEach(combatStyleId => {
|
||
combatStyleGetAttrs.push(`repeating_combatstyle_${combatStyleId}_total`, `repeating_combatstyle_${combatStyleId}_penalty`, `repeating_combatstyle_${combatStyleId}_temp`, `repeating_combatstyle_${combatStyleId}_traits`, `repeating_combatstyle_${combatStyleId}_weapons`, `repeating_combatstyle_${combatStyleId}_notes`);
|
||
});
|
||
|
||
let languageGetAttrs = [];
|
||
languageIds.forEach(languageId => {
|
||
languageGetAttrs.push(`repeating_language_${languageId}_name`, `repeating_language_${languageId}_fumbled`, `repeating_language_${languageId}_trained`, `repeating_language_${languageId}_temp`, `repeating_language_${languageId}_penalty`, `repeating_language_${languageId}_experience`, `repeating_language_${languageId}_other`, `repeating_language_${languageId}_total`, `repeating_language_${languageId}_notes`);
|
||
});
|
||
|
||
let affiliationGetAttrs = [];
|
||
affiliationIds.forEach(affiliationId => {
|
||
affiliationGetAttrs.push(`repeating_affiliation_${affiliationId}_temp`, `repeating_affiliation_${affiliationId}_experience`, `repeating_affiliation_${affiliationId}_other`, `repeating_affiliation_${affiliationId}_penalty`, `repeating_affiliation_${affiliationId}_total`);
|
||
});
|
||
|
||
let professionalSkillGetAttrs = [];
|
||
professionalSkillIds.forEach(professionalSkillId => {
|
||
professionalSkillGetAttrs.push(`repeating_professionalskill_${professionalSkillId}_temp`, `repeating_professionalskill_${professionalSkillId}_penalty`, `repeating_professionalskill_${professionalSkillId}_experience`,`repeating_professionalskill_${professionalSkillId}_other`, `repeating_professionalskill_${professionalSkillId}_total`);
|
||
});
|
||
|
||
let passionGetAttrs = [];
|
||
passionIds.forEach(id => {
|
||
passionGetAttrs.push(`repeating_passion_${id}_temp`, `repeating_passion_${id}_penalty`, `repeating_passion_${id}_total`);
|
||
});
|
||
|
||
let dependencyGetAttrs = [];
|
||
dependencyIds.forEach(id => {
|
||
dependencyGetAttrs.push(`repeating_dependency_${id}_temp`, `repeating_dependency_${id}_penalty`, `repeating_dependency_${id}_total`);
|
||
});
|
||
|
||
let peculiarityGetAttrs = [];
|
||
peculiarityIds.forEach(id => {
|
||
peculiarityGetAttrs.push(`repeating_peculiarity_${id}_temp`, `repeating_peculiarity_${id}_penalty`, `repeating_peculiarity_${id}_total`);
|
||
});
|
||
|
||
const v2ShapingComponents = ['duration_component', 'magnitude_component', 'range_component', 'targets_component', 'ablation_component', 'focus_component', 'fortune_component', 'precision_component', 'swiftness_subquery'];
|
||
|
||
const v2StandardSkillIds = ['athletics', 'boating', 'brawn', 'conceal', 'customs', 'dance', 'deceit', 'drive', 'endurance', 'evade', 'first_aid', 'home_parallel', 'influence', 'insight', 'locale', 'native_tongue', 'perception', 'ride', 'sing', 'status', 'stealth', 'superstition', 'swim', 'unarmed', 'willpower'];
|
||
let staticSkillGetAttrs = [];
|
||
v2StandardSkillIds.forEach(id => {
|
||
staticSkillGetAttrs.push(`${id}_temp`, `${id}_penalty`, `${id}_experience`, `${id}_other`, `${id}`);
|
||
});
|
||
staticSkillGetAttrs.push(`linguistics_fumbled`, `linguistics_trained`, `linguistics_temp`, `linguistics_penalty`, `linguistics_experience`, `linguistics_other`, `linguistics`, `linguistics_notes`, "known_languages");
|
||
|
||
/* Magic skill fetch attrs */
|
||
const v2StaticMagicSkillIds = ['folk_magic', 'trance', 'binding', 'meditation', 'shaping', 'exhort', 'cursing', 'divination', 'necromancy', 'pharmacy', 'shape_shifting', 'theology', 'arcane_knowledge', 'arcane_casting', 'channel', 'piety', 'fata', 'artifice', 'gnosis', 'craft_alchemy'];
|
||
let staticMagicSkillGetAttrs = [];
|
||
v2StaticMagicSkillIds.forEach(id => {
|
||
staticMagicSkillGetAttrs.push(`${id}_fumbled`, `${id}_trained`, `${id}_temp`, `${id}_penalty`, `${id}_experience`, `${id}_other`, `${id}`, `${id}_notes`);
|
||
});
|
||
let folkSpellGetAttrs = [];
|
||
folkSpellIds.forEach(id => {
|
||
folkSpellGetAttrs.push(`repeating_folkspell_${id}_name`, `repeating_folkspell_${id}_description`, `repeating_folkspell_${id}_concentration`, `repeating_folkspell_${id}_resist`, `repeating_folkspell_${id}_duration`, `repeating_folkspell_${id}_range`);
|
||
});
|
||
|
||
let pathGetAttrs = [];
|
||
pathIds.forEach(id => {
|
||
pathGetAttrs.push(`repeating_path_${id}_name`, `repeating_path_${id}_fumbled`, `repeating_path_${id}_trained`, `repeating_path_${id}_temp`, `repeating_path_${id}_penalty`, `repeating_path_${id}_experience`, `repeating_path_${id}_other`, `repeating_path_${id}_total`, `repeating_path_${id}_notes`);
|
||
});
|
||
let practicedTalentGetAttrs = [];
|
||
practicedTalentIds.forEach(id => {
|
||
practicedTalentGetAttrs.push(`repeating_practicedtalent_${id}_name`, `repeating_practicedtalent_${id}_description`);
|
||
});
|
||
|
||
let invocationGetAttrs = [];
|
||
invocationIds.forEach(id => {
|
||
invocationGetAttrs.push(`repeating_invocation_${id}_name`, `repeating_invocation_${id}_fumbled`, `repeating_invocation_${id}_trained`, `repeating_invocation_${id}_temp`, `repeating_invocation_${id}_penalty`, `repeating_invocation_${id}_experience`, `repeating_invocation_${id}_other`, `repeating_invocation_${id}_total`, `repeating_invocation_${id}_notes`);
|
||
});
|
||
let sorcerySpellGetAttrs = [];
|
||
sorcerySpellIds.forEach(id => {
|
||
sorcerySpellGetAttrs.push(`repeating_sorceryspell_${id}_memorized`, `repeating_sorceryspell_${id}_name`, `repeating_sorceryspell_${id}_description`, `repeating_sorceryspell_${id}_concentration`, `repeating_sorceryspell_${id}_resist`);
|
||
});
|
||
|
||
let devotionGetAttrs = [];
|
||
devotionIds.forEach(id => {
|
||
devotionGetAttrs.push(`repeating_devotion_${id}_name`, `repeating_devotion_${id}_fumbled`, `repeating_devotion_${id}_trained`, `repeating_devotion_${id}_temp`, `repeating_devotion_${id}_penalty`, `repeating_devotion_${id}_experience`, `repeating_devotion_${id}_other`, `repeating_devotion_${id}_total`, `repeating_devotion_${id}_notes`, `repeating_devotion_${id}_rank_devotion_pool_limit`, `repeating_devotion_${id}_devotional_pool`);
|
||
});
|
||
let miracleGetAttrs = [];
|
||
miracleIds.forEach(id => {
|
||
miracleGetAttrs.push(`repeating_miracle_${id}_name`, `repeating_miracle_${id}_description`, `repeating_miracle_${id}_miracle_rank`, `repeating_miracle_${id}_damage`, `repeating_miracle_${id}_resist`, `repeating_miracle_${id}_area`, `repeating_miracle_${id}_duration`, `repeating_miracle_${id}_range`);
|
||
});
|
||
|
||
let charGetAttrs = [];
|
||
characteristicAttrs.forEach(char => {
|
||
charGetAttrs.push(`${char}`, `${char}_temp`);
|
||
});
|
||
|
||
/* Fetch attrs */
|
||
getAttrs(charGetAttrs.concat(hpGetAttrs, combatStyleGetAttrs, languageGetAttrs, staticSkillGetAttrs, affiliationGetAttrs,
|
||
professionalSkillGetAttrs, passionGetAttrs, dependencyGetAttrs, peculiarityGetAttrs, staticMagicSkillGetAttrs,
|
||
pathGetAttrs, invocationGetAttrs, devotionGetAttrs, practicedTalentGetAttrs, sorcerySpellGetAttrs, v2ShapingComponents,
|
||
folkSpellGetAttrs, miracleGetAttrs, magicSpellGetAttrs, psionicPowerGetAttrs, arcanemagicrank0spellGetAttrs,
|
||
arcanemagicrank1spellGetAttrs, arcanemagicrank2spellGetAttrs, arcanemagicrank3spellGetAttrs, arcanemagicrank4spellGetAttrs, arcanemagicrank5spellGetAttrs,
|
||
divinemagicrank1spellGetAttrs, divinemagicrank2spellGetAttrs, divinemagicrank3spellGetAttrs, divinemagicrank4spellGetAttrs, divinemagicrank5spellGetAttrs,
|
||
superpowerGetAttrs, superpowerboostGetAttrs, superpowerlimitGetAttrs, faepowerGetAttrs, alchemicaltraditionGetAttrs, alchemicalformulaGetAttrs,
|
||
artificespellGetAttrs, psionictalentGetAttrs, disciplineGetAttrs, traitGetAttrs, worksongGetAttrs,
|
||
['spirit', 'action_points_other', 'action_points_add_one', 'notes', "location2_display", "income_day", "setting_option",
|
||
"income_month", "income_season", "income_year", "type", "prana_points_temp", "prana_points", "prana_points_max",
|
||
"prana_points_other", "power_points_temp", "power_points", "power_points_max", "power_points_other", "linguistics_enabled"
|
||
]), function (v) {
|
||
let newAttrs = {'version': '3.0'};
|
||
|
||
/* Set the ability system */
|
||
if ((v['setting_option'] in campaginSettingDefaults) && ('ability_system' in campaginSettingDefaults[v['setting_option']])) {
|
||
newAttrs['ability_system'] = campaginSettingDefaults[v['setting_option']]['ability_system'];
|
||
} else {
|
||
newAttrs['ability_system'] = campaginSettingDefaults['default']['ability_system'];
|
||
}
|
||
|
||
/* If a spirit set the attribute mode to spiritual and sheet type to spirit */
|
||
if (v['spirit'] === '1') {
|
||
newAttrs['sheet_type'] = 'spirit';
|
||
newAttrs['attribute_mode'] = 'spiritual'; /* init and ap will already be spirit calc so no need to force it */
|
||
newAttrs['hit_location_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{none_hit_location_roll}';
|
||
}
|
||
|
||
/* Convert Characteristics base values */
|
||
characteristicAttrs.forEach(char => {
|
||
const charCurr = parseInt(v[`${char}`]) || 0;
|
||
const charTemp = parseInt(v[`${char}_temp`]) || 0;
|
||
newAttrs[`${char}_base`] = charCurr - charTemp;
|
||
});
|
||
|
||
/* Convert action_points_add_one to just +1 in other */
|
||
if (v['action_points_add_one'] === '1') {
|
||
const actionPointsOther = parseInt(v['action_points_other']) || 0;
|
||
newAttrs['action_points_other'] = actionPointsOther + 1;
|
||
}
|
||
|
||
/* Relabel magic points to magic points */
|
||
if (v['setting_option'] === 'luther_arkwright') {
|
||
newAttrs['magic_points_other'] = parseInt(v['prana_points_other']) || 0 ;
|
||
newAttrs['magic_points_temp'] = parseInt(v['prana_points_temp']) || 0;
|
||
newAttrs['magic_points'] = parseInt(v['prana_points']) || 0;
|
||
newAttrs['magic_points_max'] = parseInt(v['prana_points_max']) || 0;
|
||
} else if (v['setting_option'] === 'm-space' || v['setting_option'] === 'agony_and_ecstasy') {
|
||
newAttrs['magic_points_other'] = parseInt(v['power_points_other']) || 0;
|
||
newAttrs['magic_points_temp'] = parseInt(v['power_points_temp']) || 0;
|
||
newAttrs['magic_points'] = parseInt(v['power_points']) || 0;
|
||
newAttrs['magic_points_max'] = parseInt(v['power_points_max']) || 0;
|
||
}
|
||
|
||
/* Convert Hit Locations Display*/
|
||
if (v['location2_display'] === '1') {
|
||
newAttrs['location2to7_display'] = '1';
|
||
}
|
||
/* Convert HP for simplified combat */
|
||
let newHpAttrs = {}
|
||
if (v['simplified_combat_enabled'] === '1') {
|
||
newHpAttrs = {
|
||
...hitLocationTable['simplified'],
|
||
...calcLocationHP('1', {...v, ...hitLocationTable['simplified']})
|
||
};
|
||
}
|
||
|
||
/* Move style traits/weapons into notes value */
|
||
combatStyleIds.forEach(combatStyleId => {
|
||
const total = parseInt(v[`repeating_combatstyle_${combatStyleId}_total`]) || 0;
|
||
const aug = parseInt(v[`repeating_combatstyle_${combatStyleId}_temp`]) || 0;
|
||
const penalty = parseInt(v[`repeating_combatstyle_${combatStyleId}_penalty`]) || 0;
|
||
newAttrs[`repeating_combatstyle_${combatStyleId}_total`] = total - penalty - aug;
|
||
newAttrs[`repeating_combatstyle_${combatStyleId}_id`] = `repeating_combatstyle_${combatStyleId}`;
|
||
let csTraits = !v[`repeating_combatstyle_${combatStyleId}_traits`] ? '' : v[`repeating_combatstyle_${combatStyleId}_traits`];
|
||
let csWeapons = !v[`repeating_combatstyle_${combatStyleId}_weapons`] ? '' : v[`repeating_combatstyle_${combatStyleId}_weapons`];
|
||
if (csTraits !== '' && csWeapons !== '') {
|
||
newAttrs[`repeating_combatstyle_${combatStyleId}_notes`] =
|
||
getTranslationByKey('traits') + ": " + v[`repeating_combatstyle_${combatStyleId}_traits`] + "\r\n" +
|
||
getTranslationByKey('weapons') + ": " + v[`repeating_combatstyle_${combatStyleId}_weapons`] + "\r\n" +
|
||
v[`repeating_combatstyle_${combatStyleId}_notes`];
|
||
} else if (csTraits !== '' && csWeapons === '') {
|
||
newAttrs[`repeating_combatstyle_${combatStyleId}_notes`] = getTranslationByKey('traits') + ": " + v[`repeating_combatstyle_${combatStyleId}_traits`] + "\r\n" + v[`repeating_combatstyle_${combatStyleId}_notes`];
|
||
} else if (csTraits === '' && csWeapons !== '') {
|
||
newAttrs[`repeating_combatstyle_${combatStyleId}_notes`] = getTranslationByKey('weapons') + ": " + v[`repeating_combatstyle_${combatStyleId}_weapons`] + "\r\n" + v[`repeating_combatstyle_${combatStyleId}_notes`];
|
||
}
|
||
});
|
||
|
||
/* Move languages to professional skills */
|
||
if (debug) {console.log("Converting languages");}
|
||
if (v['linguistics_enabled'] === "1" && v['linguistics'] !== "0") {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('linguistics', '@{int}', '@{cha}', skillId, v)};
|
||
newAttrs[`${skillId}_notes`] = !v['known_languages'] ? '' : v['known_languages'];
|
||
} else {
|
||
languageIds.forEach(languageId => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_language_${languageId}`, '@{int}', '@{cha}', skillId, v)};
|
||
});
|
||
}
|
||
|
||
/* Migration affiliations */
|
||
if (debug) {console.log("Converting Affiliations");}
|
||
affiliationIds.forEach(affiliationId => {
|
||
newAttrs = {...newAttrs, ...convertSkillToV3(`repeating_affiliation_${affiliationId}`, v)};
|
||
});
|
||
|
||
/* Migration proSkills */
|
||
if (debug) {console.log("Converting Professional Skills");}
|
||
professionalSkillIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertSkillToV3(`repeating_professionalskill_${id}`, v)};
|
||
});
|
||
|
||
/* Migration passions */
|
||
if (debug) {console.log("Converting passions");}
|
||
passionIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertPassionToV3(`repeating_passion_${id}`, v)};
|
||
});
|
||
|
||
/* Migration dependencies */
|
||
if (debug) {console.log("Converting dependencies");}
|
||
dependencyIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertPassionToV3(`repeating_dependency_${id}`, v)};
|
||
});
|
||
|
||
/* Migration peculiarity */
|
||
if (debug) {console.log("Converting peculiatities");}
|
||
peculiarityIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertPassionToV3(`repeating_peculiarity_${id}`, v)};
|
||
});
|
||
|
||
/* Convert standard skill values */
|
||
if (debug) {console.log("Converting standard skills");}
|
||
v2StandardSkillIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertSkillToV3(id, v)};
|
||
});
|
||
|
||
/* Magic skills conversion */
|
||
/* Folk Magic */
|
||
if (debug) {console.log("Converting Folk Magic");}
|
||
if (debug) {console.log("Converting Folk Magic Skill");}
|
||
const folkMagicId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('folk_magic', '@{pow}', '@{cha}', folkMagicId, v)};
|
||
if (debug) {console.log("Converting Folk Magic Tradition");}
|
||
if (v['folk_magic'] && v['folk_magic'] !== '0') {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('folk_magic'), folkMagicId, null)};
|
||
}
|
||
if (debug) {console.log("Converting Folk Magic Spells");}
|
||
folkSpellIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_folkspell_${id}_name`] ? '' : v[`repeating_folkspell_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'folk_magic';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
let traits = [];
|
||
if (v[`repeating_folkspell_${id}_concentration`] === "1") {
|
||
traits.push(getTranslationByKey('concentration'));
|
||
}
|
||
switch(v[`repeating_folkspell_${id}_resist`]) {
|
||
case "^{brawn-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('brawn') + ')'); break;
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('endurance') + ')'); break;
|
||
case "^{evade-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('evade') + ')'); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('willpower') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
switch(v[`repeating_folkspell_${id}_duration`]) {
|
||
case "^{instant-u}": traits.push(getTranslationByKey('instant')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
switch(v[`repeating_folkspell_${id}_range`]) {
|
||
case "^{touch-u}": traits.push(getTranslationByKey('touch')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('range') + '(' + getTranslationByKey('special') + ')'); break;
|
||
default: traits.push(getTranslationByKey('ranged'));
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_folkspell_${id}_description`] ? '' : v[`repeating_folkspell_${id}_description`];
|
||
});
|
||
|
||
/* Work Songs */
|
||
worksongIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_worksong_${id}_name`] ? '' : v[`repeating_worksong_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'work_song';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_worksong_${id}_description`] ? '' : v[`repeating_worksong_${id}_description`];
|
||
});
|
||
|
||
/* Animism */
|
||
if (debug) {console.log("Converting Animism");}
|
||
const tranceId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('trance', '@{con}', '@{pow}', tranceId, v)};
|
||
const bindingId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('binding', '@{pow}', '@{cha}', bindingId, v)};
|
||
|
||
if ((v['trance'] && v['trance'] !== '0') && (v['binding'] && v['binding'] !== '0')) {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('animism'), tranceId, bindingId)};
|
||
}
|
||
|
||
/* Mysticism */
|
||
if (debug) {console.log("Converting Mysticism");}
|
||
const meditationId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('meditation', '@{int}', '@{con}', meditationId, v)};
|
||
|
||
pathIds.forEach(id => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_path_${id}`, '@{pow}', '@{con}', skillId, v)};
|
||
|
||
const pathName = !v[`repeating_path_${id}_name`] ? "0" : v[`repeating_path_${id}_name`];
|
||
newAttrs = {...newAttrs, ...createNewTradition(pathName, meditationId, skillId)};
|
||
});
|
||
practicedTalentIds.forEach(id => {
|
||
const talentId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${talentId}_name`] = !v[`repeating_practicedtalent_${id}_name`] ? '' : v[`repeating_practicedtalent_${id}_name`];
|
||
newAttrs[`${talentId}_id`] = talentId;
|
||
newAttrs[`${talentId}_type`] = 'mysticism';
|
||
newAttrs[`${talentId}_traited`] = '1';
|
||
newAttrs[`${talentId}_details`] = '0';
|
||
newAttrs[`${talentId}_advanced_traits`] = '^{intensity}: @{dynamic_intensity}';
|
||
newAttrs[`${talentId}_description`] = !v[`repeating_practicedtalent_${id}_description`] ? '' : v[`repeating_practicedtalent_${id}_description`];
|
||
});
|
||
|
||
/* Sorcery */
|
||
if (debug) {console.log("Converting Sorcery");}
|
||
const shapingId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('shaping', '@{int}', '@{pow}', shapingId, v)};
|
||
invocationIds.forEach(id => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_invocation_${id}`, '@{int}', '@{int}', skillId, v)};
|
||
|
||
const traditionName = !v[`repeating_invocation_${id}_name`] ? "0" : v[`repeating_invocation_${id}_name`];
|
||
newAttrs = {...newAttrs, ...createNewTradition(traditionName, shapingId, skillId)};
|
||
});
|
||
|
||
let shaping_traits = ['^{combine}: @{shaped_combine}'];
|
||
if (!v['duration_component'] || v['duration_component'] === '@{duration_standard_query}') {
|
||
shaping_traits.push('^{duration}: @{shaped_duration}');
|
||
}
|
||
if (!v['magnitude_component'] || v['magnitude_component'] === '@{magnitude_query}') {
|
||
shaping_traits.push('^{magnitude}: @{shaped_magnitude}');
|
||
}
|
||
if (!v['range_component'] || v['range_component'] === '@{range_query}') {
|
||
shaping_traits.push('^{range}: @{shaped_range}');
|
||
}
|
||
if (!v['targets_component'] || v['targets_component'] === '@{targets_query}') {
|
||
shaping_traits.push('^{targets}: @{shaped_targets}');
|
||
}
|
||
if (v['ablation_component'] === '@{ablation_query}') {
|
||
shaping_traits.push('^{ablation}: @{shaped_ablation}');
|
||
}
|
||
if (v['focus_component'] === '@{focus_query}') {
|
||
shaping_traits.push('^{focus}: @{shaped_focus}');
|
||
}
|
||
if (v['fortune_component'] === '@{fortune_query}') {
|
||
shaping_traits.push('^{fortune}: @{shaped_fortune}');
|
||
}
|
||
if (v['precision_component'] === '@{precision_query}') {
|
||
shaping_traits.push('^{precision}: @{shaped_precision}');
|
||
}
|
||
if (v['swiftness_subquery'] === '@{swiftness_query}') {
|
||
shaping_traits.push('^{swiftness}: @{shaped_swiftness}');
|
||
}
|
||
newAttrs['shaping_traits'] = shaping_traits.join('\r\n');
|
||
|
||
sorcerySpellIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_sorceryspell_${id}_name`] ? '' : v[`repeating_sorceryspell_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'sorcery';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
if (v[`repeating_sorceryspell_${id}_memorized`] !== "1") {
|
||
newAttrs[`${abilityId}_favored`] = "0";
|
||
}
|
||
let traits = [];
|
||
if (v[`repeating_sorceryspell_${id}_concentration`] === "1") {
|
||
traits.push(getTranslationByKey('concentration'));
|
||
}
|
||
switch(v[`repeating_sorceryspell_${id}_resist`]) {
|
||
case "^{brawn-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('brawn') + ')'); break;
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('endurance') + ')'); break;
|
||
case "^{evade-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('evade') + ')'); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('willpower') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_advanced_traits`] = '@{shaping_traits}';
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_sorceryspell_${id}_description`] ? '' : v[`repeating_sorceryspell_${id}_description`];
|
||
});
|
||
|
||
/* Theism */
|
||
if (debug) {console.log("Converting Theism");}
|
||
const exhortId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('exhort', '@{int}', '@{cha}', exhortId, v)};
|
||
devotionIds.forEach(id => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_devotion_${id}`, '@{pow}', '@{cha}', skillId, v)};
|
||
|
||
/* We don't use the creteNewTradition func here because of the devotion poolextras */
|
||
const traditionId = "repeating_tradition_" + generateRowID();
|
||
newAttrs[`${traditionId}_name`] = !v[`repeating_devotion_${id}_name`] ? "0" : v[`repeating_devotion_${id}_name`];
|
||
newAttrs[`${traditionId}_id`] = traditionId;
|
||
newAttrs[`${traditionId}_details`] = "0";
|
||
newAttrs[`${traditionId}_skill1_id`] = exhortId;
|
||
newAttrs[`${traditionId}_skill1_name`] = `@{${exhortId}_name}`;
|
||
newAttrs[`${traditionId}_skill1_total`] = `@{${exhortId}_total}`;
|
||
newAttrs[`${traditionId}_skill1_notes`] = `@{${exhortId}_notes}`;
|
||
newAttrs[`${traditionId}_skill2_id`] = skillId;
|
||
newAttrs[`${traditionId}_skill2_name`] = `@{${skillId}_name}`;
|
||
newAttrs[`${traditionId}_skill2_total`] = `@{${skillId}_total}`;
|
||
newAttrs[`${traditionId}_skill2_notes`] = `@{${skillId}_notes}`;
|
||
newAttrs[`${traditionId}_pool_limit`] = !v[`repeating_devotion_${id}_rank_devotion_pool_limit`] ? "0" : v[`repeating_devotion_${id}_rank_devotion_pool_limit`];
|
||
newAttrs[`${traditionId}_pool`] = !v[`repeating_devotion_${id}_devotional_pool`] ? "0" : v[`repeating_devotion_${id}_devotional_pool`];
|
||
if (v[`repeating_devotion_${id}_rank_devotion_pool_limit`] === 'ceil(@{pow}*.25)') {
|
||
newAttrs[`${traditionId}_tradition_rank`] = 2;
|
||
} else if (v[`repeating_devotion_${id}_rank_devotion_pool_limit`] === 'ceil(@{pow}*.5)') {
|
||
newAttrs[`${traditionId}_tradition_rank`] = 3;
|
||
} else if (v[`repeating_devotion_${id}_rank_devotion_pool_limit`] === 'ceil(@{pow}*.75)') {
|
||
newAttrs[`${traditionId}_tradition_rank`] = 4;
|
||
} else if (v[`repeating_devotion_${id}_rank_devotion_pool_limit`] === '@{pow}') {
|
||
newAttrs[`${traditionId}_tradition_rank`] = 5;
|
||
}
|
||
});
|
||
miracleIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_miracle_${id}_name`] ? '' : v[`repeating_miracle_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'theism';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
let traits = [];
|
||
if (!v[`repeating_miracle_${id}_miracle_rank`] || v[`repeating_miracle_${id}_miracle_rank`] === "1") {
|
||
traits.push(getTranslationByKey('rank') + '(' + getTranslationByKey('initiate') + ')');
|
||
} else if (v[`repeating_miracle_${id}_miracle_rank`] === "2") {
|
||
traits.push(getTranslationByKey('rank') + '(' + getTranslationByKey('acolyte') + ')');
|
||
} else if (v[`repeating_miracle_${id}_miracle_rank`] === "3") {
|
||
traits.push(getTranslationByKey('rank') + '(' + getTranslationByKey('priest') + ')');
|
||
}
|
||
switch(v[`repeating_miracle_${id}_resist`]) {
|
||
case "^{brawn-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('brawn') + ')'); break;
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('endurance') + ')'); break;
|
||
case "^{evade-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('evade') + ')'); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('willpower') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
if (v[`repeating_miracle_${id}_damage`] && v[`repeating_miracle_${id}_damage`] !== "0") {
|
||
newAttrs[`${abilityId}_advanced_traits`] = '^{damage}: [' + v[`repeating_miracle_${id}_damage`] + '](`/r ' + v[`repeating_miracle_${id}_damage`] + ')';
|
||
}
|
||
switch(v[`repeating_miracle_${id}_area`]) {
|
||
case "[[@{intensity_magnitude}]] ^{metres-u}": traits.push(getTranslationByKey('area') + '(' + getTranslationByKey('meters') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{decametres-u}": traits.push(getTranslationByKey('area') + '(10 X ' + getTranslationByKey('meters') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{kilometres-u}": traits.push(getTranslationByKey('area') + '(' + getTranslationByKey('kilometers') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('area') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
switch(v[`repeating_miracle_${id}_duration`]) {
|
||
case "^{instant-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('instant') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{minutes-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('minutes') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{hours-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('hours') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{days-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('days') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{months-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('months') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('duration') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
switch(v[`repeating_miracle_${id}_range`]) {
|
||
case "^{touch-u}": traits.push(getTranslationByKey('range') + '(' + getTranslationByKey('touch') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{metres-u}": traits.push(getTranslationByKey('range') + '(' + getTranslationByKey('meters') + ')'); break;
|
||
case "[[@{intensity_magnitude}]] ^{decametres-u}": traits.push(getTranslationByKey('range') + '(10 X ' + getTranslationByKey('meters') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('range') + '(' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_miracle_${id}_description`] ? '' : v[`repeating_miracle_${id}_description`];
|
||
});
|
||
|
||
/* M-Space psionics conversion */
|
||
if (debug) {console.log("Converting M-Space Psionics");}
|
||
psionicPowerIds.forEach(id => {
|
||
const abilityId = 'repeating_skilledability_' + generateRowID();
|
||
const total = parseInt(v[`repeating_psionicpower_${id}_total`]) || 0;
|
||
const temp = parseInt(v[`repeating_psionicpower_${id}_temp`]) || 0;
|
||
const penalty = parseInt(v[`repeating_psionicpower_${id}_temp`]) || 0;
|
||
const xp = parseInt(v[`repeating_psionicpower_${id}_experience`]) || 0;
|
||
const other = parseInt(v[`repeating_psionicpower_${id}_other`]) || 0;
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_psionicpower_${id}_name`] ? '' : v[`repeating_psionicpower_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_psionicpower_${id}_description`] ? '' : v[`repeating_psionicpower_${id}_description`];
|
||
newAttrs[`${abilityId}_summary`] = !v[`repeating_psionicpower_${id}_description`] ? '' : v[`repeating_psionicpower_${id}_description`];
|
||
newAttrs[`${abilityId}_fumbled`] = !v[`repeating_psionicpower_${id}_fumbled`] ? "0" : v[`repeating_psionicpower_${id}_fumbled`];
|
||
newAttrs[`${abilityId}_trained`] = !v[`repeating_psionicpower_${id}_trained`] ? "0" : v[`repeating_psionicpower_${id}_trained`];
|
||
newAttrs[`${abilityId}_char1`] = '@{pow}';
|
||
newAttrs[`${abilityId}_char2`] = '@{pow}';
|
||
newAttrs[`${abilityId}_other`] = xp + other;
|
||
newAttrs[`${abilityId}_total`] = total - penalty - temp;
|
||
});
|
||
|
||
/* Odd Soot Magic Conversion */
|
||
if (debug) {console.log("Converting Odd Soot Magic");}
|
||
magicSpellIds.forEach(id => {
|
||
const abilityId = 'repeating_skilledability_' + generateRowID();
|
||
const total = parseInt(v[`repeating_magicspell_${id}_total`]) || 0;
|
||
const temp = parseInt(v[`repeating_magicspell_${id}_temp`]) || 0;
|
||
const penalty = parseInt(v[`repeating_magicspell_${id}_temp`]) || 0;
|
||
const xp = parseInt(v[`repeating_magicspell_${id}_experience`]) || 0;
|
||
const other = parseInt(v[`repeating_magicspell_${id}_other`]) || 0;
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_magicspell_${id}_name`] ? '' : v[`repeating_magicspell_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_magicspell_${id}_description`] ? '' : v[`repeating_magicspell_${id}_description`];
|
||
newAttrs[`${abilityId}_summary`] = !v[`repeating_magicspell_${id}_description`] ? '' : v[`repeating_magicspell_${id}_description`];
|
||
newAttrs[`${abilityId}_fumbled`] = !v[`repeating_magicspell_${id}_fumbled`] ? "0" : v[`repeating_magicspell_${id}_fumbled`];
|
||
newAttrs[`${abilityId}_trained`] = !v[`repeating_magicspell_${id}_trained`] ? "0" : v[`repeating_magicspell_${id}_trained`];
|
||
newAttrs[`${abilityId}_char1`] = '@{pow}';
|
||
newAttrs[`${abilityId}_char2`] = '@{pow}';
|
||
newAttrs[`${abilityId}_other`] = xp + other;
|
||
newAttrs[`${abilityId}_total`] = total - penalty - temp;
|
||
let traits = [];
|
||
if (v[`repeating_magicspell_${id}_cost`]) {
|
||
traits.push(getTranslationByKey("cost") + ": " + v[`repeating_magicspell_${id}_cost`]);
|
||
}
|
||
if (v[`repeating_magicspell_${id}_duration`]) {
|
||
traits.push(getTranslationByKey("duration") + ": " + v[`repeating_magicspell_${id}_duration`]);
|
||
}
|
||
if (v[`repeating_magicspell_${id}_range`]) {
|
||
traits.push(getTranslationByKey("range") + ": " + v[`repeating_magicspell_${id}_range`]);
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join("\r\n");
|
||
});
|
||
|
||
/* Roman Magic skills */
|
||
if (debug) {console.log("Converting Roman Magic");}
|
||
const cursingId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('cursing', '@{pow}', '@{cha}', cursingId, v)};
|
||
const divinationId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('divination', '@{pow}', '@{int}', divinationId, v)};
|
||
const necromancyId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('necromancy', '@{int}', '@{cha}', necromancyId, v)};
|
||
const pharmacyId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('pharmacy', '@{int}', '@{int}', pharmacyId, v)};
|
||
const shiftingId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('shifting', '@{con}', '@{pow}', shiftingId, v)};
|
||
const theologyId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('theology', '@{pow}', '@{pow}', theologyId, v)};
|
||
|
||
/* Classic Fantasy Helper Functions */
|
||
function convertClassicFantasyAbility(id, abilityRank, abilityType, v) {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`${id}_name`] ? '' : v[`${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = `${abilityType}_magic`;
|
||
newAttrs[`${abilityId}_rank`] = abilityRank;
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
if (v[`${id}_memorized`] === "1") {
|
||
newAttrs[`${abilityId}_favored`] = '1';
|
||
}
|
||
|
||
let traits = [];
|
||
if (v[`${id}_school`]) {
|
||
traits.push('(' + v[`${id}_school`] + ')');
|
||
}
|
||
if (v[`${id}_reversible`]) {
|
||
traits.push(getTranslationByKey('reversible'));
|
||
}
|
||
let cost = '';
|
||
switch(v[`${id}_mp_cost`]) {
|
||
case `[[1+@{${abilityType}_rank_${abilityRank}_cost_reduction}]]`: cost = '1 ' + getTranslationByKey('magic_points-a'); break;
|
||
case `[[(1*?{Intensity|1})+@{${abilityType}_rank_${abilityRank}_cost_reduction}]]`: cost = '1/+1 ' + getTranslationByKey('magic_points-a'); break;
|
||
case `[[3+@{${abilityType}_rank_${abilityRank}_cost_reduction}]]`: cost = '3 ' + getTranslationByKey('magic_points-a'); break;
|
||
case `[[(3+(?{Intensity|1}-1))+@{${abilityType}_rank_${abilityRank}_cost_reduction}]]`: cost = '3/+1 ' + getTranslationByKey('magic_points-a'); break;
|
||
case `[[(3*?{Intensity|1})+@{${abilityType}_rank_${abilityRank}_cost_reduction}]]`: cost = '3/+3 ' + getTranslationByKey('magic_points-a'); break;
|
||
default: cost = '1';
|
||
}
|
||
const xpCost = parseInt(v[`${id}_xp_cost`]) || 0;
|
||
if (xpCost !== 0) {cost = cost + ` + ${xpCost} ` + getTranslationByKey('experience-a');}
|
||
traits.push(getTranslationByKey('cost') + ': ' + cost);
|
||
if (v[`${id}_area`]) {
|
||
traits.push(getTranslationByKey('area') + ': ' + v[`${id}_area`]);
|
||
}
|
||
const time = parseInt(v[`${id}_time`]) || 1;
|
||
if (v[`${id}_time_unit`]) {
|
||
traits.push(getTranslationByKey('casting_time') + ': ' + time + ' ' + v[`${id}_time_unit`]);
|
||
} else {
|
||
traits.push(getTranslationByKey('casting_time') + ': ' + time + ' ' + getTranslationByKey('actions'));
|
||
}
|
||
if (v[`${id}_duration`]) {
|
||
traits.push(getTranslationByKey('duration') + ': ' + v[`${id}_duration`]);
|
||
}
|
||
if (v[`${id}_range`]) {
|
||
traits.push(getTranslationByKey('range') + ': ' + v[`${id}_range`]);
|
||
}
|
||
if (v[`${id}_resist`]) {
|
||
traits.push(getTranslationByKey('resist') + ': ' + v[`${id}_resist`]);
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_advanced_traits`] = '^{intensity}: @{dynamic_intensity}';
|
||
newAttrs[`${abilityId}_description`] = !v[`${id}_description`] ? '' : v[`${id}_description`];
|
||
}
|
||
|
||
/* Arcane magic Conversion */
|
||
if (debug) {console.log("Converting Arcane Magic");}
|
||
const arcaneCastingId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('arcane_casting', '@{int}', '@{pow}', arcaneCastingId, v)};
|
||
const arcaneKnowledgeId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('arcane_knowledge', '@{int}', '@{int}', arcaneKnowledgeId, v)};
|
||
if ((v['arcane_casting'] && v['arcane_casting'] !== '0') && (v['arcane_knowledge'] && v['arcane_knowledge'] !== '0')) {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('arcane_magic'), arcaneCastingId, arcaneKnowledgeId)};
|
||
}
|
||
arcanemagicrank0spellIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_arcanemagicrank0spell_${id}_name`] ? '' : v[`repeating_arcanemagicrank0spell_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'arcane_magic';
|
||
newAttrs[`${abilityId}_rank`] = '0';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
let traits = ['(' + getTranslationByKey('cantrip') + ')'];
|
||
if (v[`repeating_arcanemagicrank0spell_${id}_reversible`]) {
|
||
traits.push(getTranslationByKey('reversible'));
|
||
}
|
||
traits.push(getTranslationByKey('cost') + ': 1');
|
||
if (v[`repeating_arcanemagicrank0spell_${id}_area`]) {
|
||
traits.push(getTranslationByKey('area') + ': ' + v[`repeating_arcanemagicrank0spell_${id}_area`]);
|
||
}
|
||
traits.push(getTranslationByKey('casting_time') + ': 1 ' + getTranslationByKey('action'));
|
||
if (v[`repeating_arcanemagicrank0spell_${id}_duration`]) {
|
||
traits.push(getTranslationByKey('duration') + ': ' + v[`repeating_arcanemagicrank0spell_${id}_duration`]);
|
||
}
|
||
if (v[`repeating_arcanemagicrank0spell_${id}_range`] === '^{touch-u}') {
|
||
traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('touch'));
|
||
} else if (v[`repeating_arcanemagicrank0spell_${id}_range`] === '[[@{pow}*1.5]] ^{metres-u}') {
|
||
traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('pow-u') + ' X 1.5 ' + getTranslationByKey('meters'));
|
||
}
|
||
if (v[`repeating_arcanemagicrank0spell_${id}_resist`]) {
|
||
traits.push(getTranslationByKey('resist') + ': ' + v[`repeating_arcanemagicrank0spell_${id}_resist`]);
|
||
}
|
||
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_arcanemagicrank0spell_${id}_description`] ? '' : v[`repeating_arcanemagicrank0spell_${id}_description`];
|
||
});
|
||
arcanemagicrank1spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_arcanemagicrank1spell_${id}`, '1', 'arcane', v); });
|
||
arcanemagicrank2spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_arcanemagicrank2spell_${id}`, '2', 'arcane', v); });
|
||
arcanemagicrank3spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_arcanemagicrank3spell_${id}`, '3', 'arcane', v); });
|
||
arcanemagicrank4spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_arcanemagicrank4spell_${id}`, '4', 'arcane', v); });
|
||
arcanemagicrank5spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_arcanemagicrank5spell_${id}`, '5', 'arcane', v); });
|
||
|
||
/* Divine magic Conversion */
|
||
if (debug) {console.log("Converting Arcane Magic");}
|
||
const channelId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('channel', '@{int}', '@{cha}', channelId, v)};
|
||
const pietyId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('piety', '@{cha}', '@{pow}', pietyId, v)};
|
||
if ((v['channel'] && v['channel'] !== '0') && (v['piety'] && v['piety'] !== '0')) {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('divine_magic'), channelId, pietyId)};
|
||
}
|
||
divinemagicrank1spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_divinemagicrank1spell_${id}`, '1', 'divine', v); });
|
||
divinemagicrank2spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_divinemagicrank2spell_${id}`, '2', 'divine', v); });
|
||
divinemagicrank3spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_divinemagicrank3spell_${id}`, '3', 'divine', v); });
|
||
divinemagicrank4spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_divinemagicrank4spell_${id}`, '4', 'divine', v); });
|
||
divinemagicrank5spellIds.forEach(id => { convertClassicFantasyAbility(`repeating_divinemagicrank5spell_${id}`, '5', 'divine', v); });
|
||
|
||
/* Superpower conversions */
|
||
if (debug) {console.log("Converting super powers");}
|
||
superpowerIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_superpower_${id}_name`] ? '?' : v[`repeating_superpower_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'superpower';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
if (v[`repeating_superpower_${id}_activation`]) {
|
||
newAttrs[`${abilityId}_traits`] = getTranslationByKey('activation_cost') + ': ' + v[`repeating_superpower_${id}_activation`];
|
||
newAttrs[`${abilityId}_summary`] = getTranslationByKey('activation_cost') + ': ' + v[`repeating_superpower_${id}_activation`];
|
||
}
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_superpower_${id}_description`] ? '' : v[`repeating_superpower_${id}_description`];
|
||
});
|
||
if (debug) {console.log("Converting super power boosts");}
|
||
superpowerboostIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_superpowerboost_${id}_name`] ? '?' : v[`repeating_superpowerboost_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'superpower';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
if (v[`repeating_superpowerboost_${id}_cost`]) {
|
||
newAttrs[`${abilityId}_traits`] = getTranslationByKey('cost') + ': ' + v[`repeating_superpowerboost_${id}_cost`];
|
||
newAttrs[`${abilityId}_summary`] = getTranslationByKey('cost') + ': ' + v[`repeating_superpowerboost_${id}_cost`];
|
||
}
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_superpowerboost_${id}_description`] ? '' : v[`repeating_superpowerboost_${id}_description`];
|
||
});
|
||
if (debug) {console.log("Converting limitation");}
|
||
superpowerlimitIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = '?';
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'limitation';
|
||
newAttrs[`${abilityId}_traited`] = '0';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
newAttrs[`${abilityId}_summary`] = !v[`repeating_superpowerlimit_${id}_description`] ? '' : v[`repeating_superpowerlimit_${id}_description`];
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_superpowerlimit_${id}_description`] ? '' : v[`repeating_superpowerlimit_${id}_description`];
|
||
});
|
||
|
||
/* Fae Powers Conversion */
|
||
if (debug) {console.log("Converting Fae Powers");}
|
||
const fataId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('fata', '@{pow}', '@{cha}', fataId, v)};
|
||
if (v['fata'] && v['fata'] !== '0') {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('fae_powers'), fataId, null)};
|
||
}
|
||
faepowerIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_faepower_${id}_name`] ? '?' : v[`repeating_faepower_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'fae_power';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
let traits = [];
|
||
switch(v[`repeating_faepower_${id}_range`]) {
|
||
case "^{touch-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('touch')); break;
|
||
case "[[@{pow}]] ^{metres-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('pow-u') + ' ' + getTranslationByKey('meters')); break;
|
||
case "[[(@{pow}*10)]] ^{metres-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('pow-u') + ' x 10 ' + getTranslationByKey('meters')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('special')); break;
|
||
}
|
||
switch(v[`repeating_faepower_${id}_duration`]) {
|
||
case "^{one-minute-u}": traits.push(getTranslationByKey('duration') + ': 1 ' + getTranslationByKey('minute')); break;
|
||
case "[[@{fata_intensity}]] ^{minutes-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('intensity') + ' x ' + getTranslationByKey('minutes')); break;
|
||
case "[[@{fata_intensity}*5]] ^{minutes-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('intensity') + ' x 5 ' + getTranslationByKey('minutes')); break;
|
||
case "[[@{fata_intensity}*10]] ^{minutes-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('intensity') + ' x 10 ' + getTranslationByKey('minutes')); break;
|
||
case "[[@{fata_intensity}]] ^{hours-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('intensity') + ' x ' + getTranslationByKey('hours')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('special')); break;
|
||
}
|
||
if (v[`repeating_faepower_${id}_cost`]) {
|
||
traits.push(getTranslationByKey('cost') + ': ' + v[`repeating_miracle_${id}_cost`]);
|
||
} else {
|
||
traits.push(getTranslationByKey('cost') + ': 1 ' + getTranslationByKey('magic_point'));
|
||
}
|
||
switch(v[`repeating_faepower_${id}_resist`]) {
|
||
case "^{brawn-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('brawn')); break;
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('endurance')); break;
|
||
case "^{evade-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('evade')); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('willpower')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('special')); break;
|
||
default: traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('none'));
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_faepower_${id}_description`] ? '' : v[`repeating_faepower_${id}_description`];
|
||
});
|
||
|
||
/* Alchemy conversion */
|
||
if (debug) {console.log("Converting Alchemy");}
|
||
const craftAlchemyId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('craft_alchemy', '@{dex}', '@{int}', craftAlchemyId, v)};
|
||
alchemicaltraditionIds.forEach(id => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_alchemicaltradition_${id}`, '@{int}', '@{int}', skillId, v)};
|
||
|
||
const traditionName = !v[`repeating_alchemicaltradition_${id}_name`] ? "?" : v[`repeating_alchemicaltradition_${id}_name`];
|
||
newAttrs = {...newAttrs, ...createNewTradition(traditionName, craftAlchemyId, skillId)};
|
||
});
|
||
alchemicalformulaIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_alchemicalformula_${id}_name`] ? '?' : v[`repeating_alchemicalformula_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'alchemy';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
let traits = [];
|
||
if (v[`repeating_alchemicalformula_${id}_formulatype`] === '.5') {
|
||
traits.push(getTranslationByKey('mundane'));
|
||
}
|
||
switch(v[`repeating_alchemicalformula_${id}_duration`]) {
|
||
case "^{instant-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('instant') + ')'); break;
|
||
case "[[(@{intensity}*@{formulatype})]] ^{minutes-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('minutes') + ')'); break;
|
||
case "[[(@{intensity}*@{formulatype})]] ^{hours-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('hours') + ')'); break;
|
||
case "[[(@{intensity}*@{formulatype})]] ^{days-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('days') + ')'); break;
|
||
case "[[(@{intensity}*@{formulatype})]] ^{months-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('months') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('duration') + ' (' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
switch(v[`repeating_alchemicalformula_${id}_resist`]) {
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + ' (' + getTranslationByKey('endurance') + ')'); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + ' (' + getTranslationByKey('willpower') + ')'); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + ' (' + getTranslationByKey('special') + ')'); break;
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_alchemicalformula_${id}_description`] ? '' : v[`repeating_alchemicalformula_${id}_description`];
|
||
});
|
||
|
||
|
||
/* Artifice conversion */
|
||
if (debug) {console.log("Converting Artifice");}
|
||
const artificeId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('artifice', '@{int}', '@{dex}', artificeId, v)};
|
||
const gnosisId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill('gnosis', '@{int}', '@{pow}', gnosisId, v)};
|
||
if (v['artifice'] && v['artifice'] !== '0') {
|
||
newAttrs = {...newAttrs, ...createNewTradition(getTranslationByKey('artifice'), artificeId, gnosisId)};
|
||
}
|
||
artificespellIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_artificespell_${id}_name`] ? '?' : v[`repeating_artificespell_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'sorcery';
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
if (v[`repeating_artificespell_${id}_memorized`] === '0') {
|
||
newAttrs[`${abilityId}_favored`] = '0';
|
||
}
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_alchemicalformula_${id}_description`] ? '' : v[`repeating_alchemicalformula_${id}_description`];
|
||
});
|
||
|
||
/* Psychic Powers/psionics conversion */
|
||
if (debug) {console.log("Converting Psychic Powers");}
|
||
disciplineIds.forEach(id => {
|
||
const skillId = 'repeating_professionalskill_' + generateRowID();
|
||
newAttrs = {...newAttrs, ...convertSkillToProSkill(`repeating_discipline_${id}`, '@{pow}', '@{pow}', skillId, v)};
|
||
|
||
const traditionName = !v[`repeating_discipline_${id}_name`] ? "?" : v[`repeating_discipline_${id}_name`];
|
||
newAttrs = {...newAttrs, ...createNewTradition(traditionName, skillId, null)};
|
||
});
|
||
psionictalentIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = !v[`repeating_psionictalent_${id}_name`] ? '?' : v[`repeating_psionictalent_${id}_name`];
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
if (v['setting_option'] === 'luther_arkwright' || v['setting_option'] === 'classic_fantasy') {
|
||
newAttrs[`${abilityId}_type`] = 'psionics';
|
||
} else {
|
||
newAttrs[`${abilityId}_type`] = 'psychic_power';
|
||
}
|
||
newAttrs[`${abilityId}_traited`] = '1';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
|
||
let traits = [];
|
||
switch(v[`repeating_psionictalent_${id}_range`]) {
|
||
case "^{self-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('personal')); break;
|
||
case "[[@{pow}]] ^{metres-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('short')); break;
|
||
case "^{line-of-sight-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('medium')); break;
|
||
case "^{same-paralell-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('long')); break;
|
||
case "^{any-paralell-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('multiversal')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('range') + ': ' + getTranslationByKey('special')); break;
|
||
}
|
||
switch(v[`repeating_psionictalent_${id}_duration`]) {
|
||
case "^{instant-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('instantaneous')); break;
|
||
case "^{focus-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('focus')); break;
|
||
case "^{lasting-u}": traits.push(getTranslationByKey('duration') + ': ' + getTranslationByKey('lasting')); break;
|
||
}
|
||
if (v[`repeating_psionictalent_${id}_area`]) {
|
||
traits.push(getTranslationByKey('area') + ': ' + v[`repeating_miracle_${id}_area`]);
|
||
}
|
||
if (v[`repeating_psionictalent_${id}_cost`]) {
|
||
traits.push(getTranslationByKey('cost') + ': ' + v[`repeating_miracle_${id}_cost`]);
|
||
} else {
|
||
traits.push(getTranslationByKey('cost') + ': 1');
|
||
}
|
||
switch(v[`repeating_psionictalent_${id}_resist`]) {
|
||
case "^{brawn-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('brawn')); break;
|
||
case "^{endurance-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('endurance')); break;
|
||
case "^{evade-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('evade')); break;
|
||
case "^{willpower-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('willpower')); break;
|
||
case "^{special-u}": traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('special')); break;
|
||
default: traits.push(getTranslationByKey('resist') + ': ' + getTranslationByKey('none'));
|
||
}
|
||
if (v[`repeating_psionictalent_${id}_damage`]) {
|
||
newAttrs[`${abilityId}_advanced_traits`] = '^{damage}: [' + v[`repeating_psionictalent_${id}_damage`] + '](`/r ' + v[`repeating_psionictalent_${id}_damage`] + ')';
|
||
}
|
||
newAttrs[`${abilityId}_traits`] = traits.join('\r\n');
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_psionictalent_${id}_description`] ? '' : v[`repeating_psionictalent_${id}_description`];
|
||
});
|
||
|
||
/* Traits Conversion */
|
||
traitIds.forEach(id => {
|
||
const abilityId = "repeating_ability_" + generateRowID();
|
||
newAttrs[`${abilityId}_name`] = '?';
|
||
newAttrs[`${abilityId}_id`] = abilityId;
|
||
newAttrs[`${abilityId}_type`] = 'ability';
|
||
newAttrs[`${abilityId}_traited`] = '0';
|
||
newAttrs[`${abilityId}_details`] = '0';
|
||
newAttrs[`${abilityId}_summary`] = !v[`repeating_trait_${id}_trait`] ? '' : v[`repeating_trait_${id}_trait`];
|
||
newAttrs[`${abilityId}_description`] = !v[`repeating_trait_${id}_trait`] ? '' : v[`repeating_trait_${id}_trait`];
|
||
});
|
||
|
||
/* Convert income */
|
||
let newIncome = "";
|
||
const incomeDay = parseFloat(v['income_day']) || 0;
|
||
const incomeMonth = parseFloat(v['income_month']) || 0;
|
||
const incomeSeason = parseFloat(v['income_season']) || 0;
|
||
const incomeYear = parseFloat(v['income_year']) || 0;
|
||
if (v['income_day']) {
|
||
newIncome = newIncome + getTranslationByKey('day') + ':' + incomeDay.toFixed(2) + ' ';
|
||
}
|
||
if (v['income_month']) {
|
||
newIncome = newIncome + getTranslationByKey('month') + ':' + incomeMonth.toFixed(2) + ' ';
|
||
}
|
||
if (v['income_season']) {
|
||
newIncome = newIncome + getTranslationByKey('season') + ':' + incomeSeason.toFixed(2) + ' ';
|
||
}
|
||
if (v['income_year']) {
|
||
newIncome = newIncome + getTranslationByKey('year') + ':' + incomeYear.toFixed(2);
|
||
}
|
||
newAttrs['income'] = newIncome;
|
||
|
||
/* Convert Notes */
|
||
if (v['notes']) {
|
||
newAttrs['sheet_notes'] = v['notes'];
|
||
}
|
||
|
||
/* Delete json import data due to size and not needing it anymore, v3 does this for us after import */
|
||
newAttrs['encounter_generator_json'] = '';
|
||
|
||
if (debug) {console.log(newAttrs);}
|
||
setAttrs({
|
||
...newAttrs,
|
||
...newHpAttrs
|
||
});
|
||
});
|
||
/* Get IDs end */
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Make the changes needs to get a character sheet updated from 3.0 to 3.1
|
||
*/
|
||
function upgradeCharacter3Dot1() {
|
||
if (debug) {
|
||
console.log("Upgrading character to 3.1");
|
||
}
|
||
|
||
getSectionIDs("repeating_standardskill", function(customstdskillIds) {
|
||
let customstdskillGetAttrs = [];
|
||
customstdskillIds.forEach(id => {
|
||
customstdskillGetAttrs.push(`repeating_standardskill_${id}_name`, `repeating_standardskill_${id}_fumbled`, `repeating_standardskill_${id}_trained`, `repeating_standardskill_${id}_temp`, `repeating_standardskill_${id}_penalty`, `repeating_standardskill_${id}_experience`, `repeating_standardskill_${id}_other`, `repeating_standardskill_${id}_total`, `repeating_standardskill_${id}_notes`, `repeating_standardskill_${id}_char1`, `repeating_standardskill_${id}_char2`);
|
||
});
|
||
|
||
/* Fetch attrs */
|
||
getAttrs(customstdskillGetAttrs.concat(['sheet_notes']), function (v) {
|
||
let newAttrs = {'version': '3.1'};
|
||
|
||
/* Migration custom standard skills */
|
||
if (debug) {console.log("Converting Custom Standard Skills");}
|
||
customstdskillIds.forEach(id => {
|
||
newAttrs = {...newAttrs, ...convertSkillToV3(`repeating_standardskill_${id}`, v)};
|
||
});
|
||
|
||
/* Move shet_notes to sheetnotes to avoid conflicts with repating items using _notes */
|
||
if (v['sheet_notes']) {
|
||
newAttrs['sheetnotes'] = v['sheet_notes'];
|
||
newAttrs['sheet_notes'] = "";
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Make the changes needs to get a character sheet updated from 3.1+ to 3.4
|
||
*/
|
||
function upgradeCharacter3Dot4() {
|
||
console.log("Upgrading character to 3.4");
|
||
|
||
getSectionIDs("repeating_meleeweapon", function(meleeIds) {
|
||
getSectionIDs("repeating_rangedweapon", function(rangedIds) {
|
||
|
||
let meleeGetAttrs = [];
|
||
meleeIds.forEach(id => {
|
||
meleeGetAttrs.push(`repeating_meleeweapon_${id}_name`, `repeating_meleeweapon_${id}_favored`);
|
||
});
|
||
|
||
let rangedGetAttrs = [];
|
||
rangedIds.forEach(id => {
|
||
rangedGetAttrs.push(`repeating_rangedweapon_${id}_name`, `repeating_rangedweapon_${id}_favored`);
|
||
});
|
||
|
||
getAttrs(['character_id'].concat(rangedGetAttrs, meleeGetAttrs), function(v) {
|
||
let newAttrs = {'version': '3.4'};
|
||
|
||
let weaponButtons = ""
|
||
meleeIds.forEach(id => {
|
||
if (v[`repeating_meleeweapon_${id}_favored`] === '1') {
|
||
const name = v[`repeating_meleeweapon_${id}_name`];
|
||
weaponButtons = weaponButtons + ` [${name}](~${v['character_id']}|repeating_meleeweapon_${id}_roll)`;
|
||
console.log(`Upgrading repeating_meleeweapon_${id}_rollval`);
|
||
newAttrs[`repeating_meleeweapon_${id}_rollval`] = `%{${v['character_id']}|repeating_meleeweapon_${id}_roll}`;
|
||
}
|
||
});
|
||
rangedIds.forEach(id => {
|
||
if (v[`repeating_rangedweapon_${id}_favored`] === '1') {
|
||
const name = v[`repeating_rangedweapon_${id}_name`];
|
||
weaponButtons = weaponButtons + ` [${name}](~${v['character_id']}|repeating_rangedweapon_${id}_roll)`;
|
||
console.log(`Upgrading repeating_rangedweapon_${id}_rollval`);
|
||
newAttrs[`repeating_rangedweapon_${id}_rollval`] = `%{${v['character_id']}|repeating_rangedweapon_${id}_roll}`;
|
||
}
|
||
});
|
||
console.log("Upgrading weapon_buttons to " + weaponButtons);
|
||
newAttrs['weapon_buttons'] = weaponButtons;
|
||
console.log("newAttrs = " + newAttrs);
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Make the changes needs to get a character sheet updated from 3.4+ to 3.6
|
||
*/
|
||
function upgradeCharacter3Dot6() {
|
||
console.log("Upgrading character to 3.6");
|
||
|
||
getSectionIDs("repeating_professionalskill", function(proSkillIds) {
|
||
getSectionIDs("repeating_combatstyle", function(combatStyleIds) {
|
||
let proSkillGetAttrs = [];
|
||
proSkillIds.forEach(id => {
|
||
proSkillGetAttrs.push(`repeating_professionalskill_${id}_char1`, `repeating_professionalskill_${id}_char2`);
|
||
});
|
||
|
||
let combatStyleGetAttrs = [];
|
||
combatStyleIds.forEach(id => {
|
||
combatStyleGetAttrs.push(`repeating_combatstyle_${id}_char1`, `repeating_combatstyle_${id}_char2`);
|
||
});
|
||
|
||
getAttrs(proSkillGetAttrs.concat(combatStyleGetAttrs), function(v) {
|
||
let newAttrs = {"version": '3.6'};
|
||
|
||
proSkillIds.forEach(id => {
|
||
if (v[`repeating_professionalskill_${id}_char1`] === '@{str}' || v[`repeating_professionalskill_${id}_char1`] === '@{dex}' ||
|
||
v[`repeating_professionalskill_${id}_char2`] === '@{str}' || v[`repeating_professionalskill_${id}_char2`] === '@{dex}') {
|
||
newAttrs[`repeating_professionalskill_${id}_encumbered`] = 1;
|
||
} else {
|
||
newAttrs[`repeating_professionalskill_${id}_encumbered`] = 0;
|
||
}
|
||
});
|
||
|
||
combatStyleIds.forEach(id => {
|
||
if (v[`repeating_combatstyle_${id}_char1`] === '@{str}' || v[`repeating_combatstyle_${id}_char1`] === '@{dex}' ||
|
||
v[`repeating_combatstyle_${id}_char2`] === '@{str}' || v[`repeating_combatstyle_${id}_char2`] === '@{dex}') {
|
||
newAttrs[`repeating_combatstyle_${id}_encumbered`] = 1;
|
||
} else {
|
||
newAttrs[`repeating_combatstyle_${id}_encumbered`] = 0;
|
||
}
|
||
});
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Make the changes needs to get a character sheet updated from 3.6+ to 3.8
|
||
*/
|
||
function upgradeCharacter3Dot8() {
|
||
console.log("Upgrading character to 3.8");
|
||
|
||
getAttrs(['fatigue', 'healing_rate'].concat(actionPointGetAttrs, initGetAttrs, moveRateGetAttrs, damageModGetAttrs), function(v) {
|
||
setAttrs({
|
||
"version": "3.8",
|
||
...calcFatigue(v),
|
||
...calcActionPoints(v),
|
||
...calcInitiativeBonus(v),
|
||
...calcMoveRate(v),
|
||
...calcDamageMod(v)
|
||
});
|
||
});
|
||
}
|
||
const shipConditionTable = {
|
||
"ship_shape": {
|
||
"speed": "-",
|
||
"skills": "1",
|
||
"repair": "-",
|
||
"range": 1
|
||
},
|
||
"seaworthy": {
|
||
"speed": "-",
|
||
"skills": "1",
|
||
"repair": "x1",
|
||
"range": .75
|
||
},
|
||
"battered": {
|
||
"speed": "-25%",
|
||
"skills": "2",
|
||
"repair": "x2",
|
||
"range": .5
|
||
},
|
||
"swamped": {
|
||
"speed": "-50%",
|
||
"skills": "3",
|
||
"repair": "x3",
|
||
"range": .25
|
||
},
|
||
"sinking": {
|
||
"speed": "-100%",
|
||
"skills": "4",
|
||
"repair": "x4",
|
||
"range": 0
|
||
}
|
||
}
|
||
|
||
on('change:ship_seaworthiness', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs(['ship_condition', 'ship_seaworthiness'], function (v) {
|
||
const seaworthiness = parseInt(v['ship_seaworthiness']) || 0;
|
||
let range = Math.ceil((seaworthiness/10) * shipConditionTable[v['ship_condition']]['range']);
|
||
range = range < 0 ? 0 : range;
|
||
|
||
setAttrs({
|
||
"ship_range": range
|
||
});
|
||
});
|
||
});
|
||
|
||
on('change:ship_condition', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs(['ship_condition', 'ship_seaworthiness'], function (v) {
|
||
const seaworthiness = parseInt(v['ship_seaworthiness']) || 0;
|
||
let range = Math.ceil((seaworthiness / 10) * shipConditionTable[v['ship_condition']]['range']);
|
||
range = range < 0 ? 0 : range;
|
||
|
||
setAttrs({
|
||
"ship_speed": shipConditionTable[v['ship_condition']]['speed'],
|
||
"ship_condition_skills": shipConditionTable[v['ship_condition']]['skills'],
|
||
"ship_repair_mod": shipConditionTable[v['ship_condition']]['repair'],
|
||
"ship_range": range
|
||
});
|
||
});
|
||
});
|
||
|
||
function upgradeShip3Dot0() {
|
||
getSectionIDs("repeating_shiparmament", function(shiparmamentIds) {
|
||
let shiparmamentGetAttrs = [];
|
||
shiparmamentIds.forEach(id => {
|
||
shiparmamentGetAttrs.push(`repeating_shiparmament_${id}_name`, `repeating_shiparmament_${id}_range`, `repeating_shiparmament_${id}_damage`, `repeating_shiparmament_${id}_load`, `repeating_shiparmament_${id}_notes`, `repeating_shiparmament_${id}_ap`, `repeating_shiparmament_${id}_hp`);
|
||
});
|
||
getAttrs(shiparmamentGetAttrs.concat(['ship_notes', "ship_seaworthiness_penalty", "ship_seaworthiness", "ship_condition"]), function (v) {
|
||
let newAttrs = {
|
||
'version': '3.0',
|
||
'sheet_type': 'ship',
|
||
'hit_location_roll': '@{none_hit_location_roll}',
|
||
'hit_location_low_roll': '@{none_hit_location_roll}',
|
||
'hit_location_high_roll': '@{none_hit_location_roll}'
|
||
};
|
||
|
||
const seaworthiness = parseInt(v['ship_seaworthiness']) || 0;
|
||
const seaworthiness_penalty = parseInt(v['ship_seaworthiness_penalty']) || 0;
|
||
newAttrs["ship_seaworthiness"] = seaworthiness - seaworthiness_penalty;
|
||
|
||
let range = Math.ceil((newAttrs["ship_seaworthiness"]/10) * shipConditionTable[v['ship_condition']]['range']);
|
||
newAttrs["ship_range"] = range < 0 ? 0 : range;
|
||
|
||
shiparmamentIds.forEach(id => {
|
||
const weaponId = 'repeating_rangedweapon_' + generateRowID();
|
||
newAttrs[`${weaponId}_name`] = v[`repeating_shiparmament_${id}_name`] ? v[`repeating_shiparmament_${id}_name`] : "?";
|
||
newAttrs[`${weaponId}_damage`] = v[`repeating_shiparmament_${id}_damage`] ? v[`repeating_shiparmament_${id}_damage`] : "";
|
||
newAttrs[`${weaponId}_range`] = v[`repeating_shiparmament_${id}_range`] ? v[`repeating_shiparmament_${id}_range`] : "";
|
||
newAttrs[`${weaponId}_load`] = v[`repeating_shiparmament_${id}_load`] ? v[`repeating_shiparmament_${id}_load`] : "";
|
||
newAttrs[`${weaponId}_notes`] = v[`repeating_shiparmament_${id}_notes`] ? v[`repeating_shiparmament_${id}_notes`] : "";
|
||
newAttrs[`${weaponId}_ap`] = v[`repeating_shiparmament_${id}_ap`] ? v[`repeating_shiparmament_${id}_ap`] : "0";
|
||
newAttrs[`${weaponId}_hp`] = v[`repeating_shiparmament_${id}_hp`] ? v[`repeating_shiparmament_${id}_hp`] : "0";
|
||
newAttrs[`${weaponId}_hp_max`] = v[`repeating_shiparmament_${id}_hp`] ? v[`repeating_shiparmament_${id}_hp`] : "0";
|
||
});
|
||
|
||
/* Convert Notes */
|
||
if (v['ship_notes']) {
|
||
newAttrs['sheet_notes'] = v['ship_notes'];
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
}
|
||
const vehicleSystemsTable = {
|
||
"terrestrial": [
|
||
getTranslationByKey('cargo_compartment'),
|
||
getTranslationByKey('communications'),
|
||
getTranslationByKey('controls'),
|
||
getTranslationByKey('drive') + "/" + getTranslationByKey('repulsorlift'),
|
||
getTranslationByKey('pilot') + "/" + getTranslationByKey('passengers'),
|
||
getTranslationByKey('power_core'),
|
||
getTranslationByKey('sensors'),
|
||
getTranslationByKey('weapons'),
|
||
'',
|
||
''
|
||
],
|
||
"spaceship": [
|
||
getTranslationByKey('avionics'),
|
||
getTranslationByKey('communications'),
|
||
getTranslationByKey('crew'),
|
||
getTranslationByKey('hold') + "/" + getTranslationByKey('hanger_bay'),
|
||
getTranslationByKey('hyperdrive'),
|
||
getTranslationByKey('reactor_core'),
|
||
getTranslationByKey('sensors'),
|
||
getTranslationByKey('shields'),
|
||
getTranslationByKey('sublight_drive'),
|
||
getTranslationByKey('weapons')
|
||
]
|
||
}
|
||
|
||
function calcSystemHits(num, v) {
|
||
const hitsBase = parseInt(v['vehicle_size']) || 1;
|
||
const hitsMod = parseInt(v[`vehicle_system${num}_hits_mod`]) || 0;
|
||
const hitsCurr = parseInt(v[`vehicle_system${num}_hits`]) || 0;
|
||
const hitsMaxCurr = parseInt(v[`vehicle_system${num}_hits_max`]) || 0;
|
||
const newMax = hitsBase + hitsMod;
|
||
const diff = hitsCurr - hitsMaxCurr;
|
||
return {[`vehicle_system${num}_hits`]: newMax + diff, [`vehicle_system${num}_hits_max`]: newMax};
|
||
}
|
||
|
||
function calcAllSystemHits(v) {
|
||
return {
|
||
...calcSystemHits('1', v),
|
||
...calcSystemHits('2', v),
|
||
...calcSystemHits('3', v),
|
||
...calcSystemHits('4', v),
|
||
...calcSystemHits('5', v),
|
||
...calcSystemHits('6', v),
|
||
...calcSystemHits('7', v),
|
||
...calcSystemHits('8', v),
|
||
...calcSystemHits('9', v),
|
||
...calcSystemHits('10', v)
|
||
}
|
||
}
|
||
|
||
on('change:vehicle_size', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs(['vehicle_size', 'vehicle_system1_hits', 'vehicle_system1_hits_mod', 'vehicle_system1_hits_max',
|
||
'vehicle_system2_hits', 'vehicle_system2_hits_mod', 'vehicle_system2_hits_max',
|
||
'vehicle_system3_hits', 'vehicle_system3_hits_mod', 'vehicle_system3_hits_max',
|
||
'vehicle_system4_hits', 'vehicle_system4_hits_mod', 'vehicle_system4_hits_max',
|
||
'vehicle_system5_hits', 'vehicle_system5_hits_mod', 'vehicle_system5_hits_max',
|
||
'vehicle_system6_hits', 'vehicle_system6_hits_mod', 'vehicle_system6_hits_max',
|
||
'vehicle_system7_hits', 'vehicle_system7_hits_mod', 'vehicle_system7_hits_max',
|
||
'vehicle_system8_hits', 'vehicle_system8_hits_mod', 'vehicle_system8_hits_max',
|
||
'vehicle_system9_hits', 'vehicle_system9_hits_mod', 'vehicle_system9_hits_max',
|
||
'vehicle_system10_hits', 'vehicle_system10_hits_mod', 'vehicle_system10_hits_max'], function(v) {
|
||
setAttrs(calcAllSystemHits(v));
|
||
});
|
||
});
|
||
|
||
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'].forEach(num => {
|
||
on(`change:vehicle_system${num}_hits_mod`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getAttrs(['vehicle_size', `vehicle_system${num}_hits`, `vehicle_system${num}_hits_mod`, `vehicle_system${num}_hits_max`], function(v) {
|
||
setAttrs(calcSystemHits(num, v))
|
||
});
|
||
});
|
||
});
|
||
|
||
on(`change:mythras_vehicle_type`, function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
let newAttrs = {}
|
||
if (event.newValue === 'spaceship') {
|
||
newAttrs['vehicle_system_die'] = '1d10';
|
||
newAttrs['vehicle_starship_system_display'] = '1';
|
||
} else {
|
||
newAttrs['vehicle_system_die'] = '1d8';
|
||
newAttrs['vehicle_starship_system_display'] = '0';
|
||
}
|
||
for (let i = 0; i < 10; i++) {
|
||
const systemNum = i + 1;
|
||
newAttrs[`vehicle_system${systemNum}_name`] = vehicleSystemsTable[event.newValue][i];
|
||
}
|
||
setAttrs(newAttrs);
|
||
});
|
||
|
||
/* Frostbyte Vehicle Scripts */
|
||
const movementClassTable = {
|
||
"regular": {
|
||
"moduleMod": .1
|
||
},
|
||
"terrain": {
|
||
"moduleMod": .2
|
||
},
|
||
"walker": {
|
||
"moduleMod": 2
|
||
},
|
||
"burrower": {
|
||
"moduleMod": 3,
|
||
"speedMod": .1
|
||
},
|
||
"motor": {
|
||
"moduleMod": 2,
|
||
"speedMod": .5
|
||
},
|
||
"sail": {
|
||
"moduleMod": 2,
|
||
"speedMod": .5
|
||
},
|
||
"sub": {
|
||
"moduleMod": 3,
|
||
"speedMod": .5
|
||
},
|
||
"wings": {
|
||
"moduleMod": 3
|
||
},
|
||
"anti-grav": {
|
||
"moduleMod": .1
|
||
},
|
||
"rotor_blades": {
|
||
"moduleMod": 2
|
||
},
|
||
"hover_craft": {
|
||
"moduleMod": 2
|
||
},
|
||
"gas_bag": {
|
||
"moduleMod": 100
|
||
},
|
||
"spaceship": {
|
||
"moduleMod": 0
|
||
}
|
||
};
|
||
|
||
on(`change:msvehicle_type`, function(event) {
|
||
let newAttrs = {};
|
||
newAttrs['msvehicle_spaceship_toggle'] = event.newValue === 'spaceship' ? '1' : '0';
|
||
setAttrs(newAttrs);
|
||
});
|
||
|
||
on('change:repeating_fbvehiclemodule:moduletype change:repeating_fbvehiclemodule:rating change:repeating_fbvehiclemodule:count change:msvehicle_type remove:repeating_fbvehiclemodule', function(event) {
|
||
if (event.sourceType === "sheetworker") {return;}
|
||
|
||
getSectionIDsOrdered("repeating_fbvehiclemodule", function(moduleIds) {
|
||
let moduleGetAttrs = [];
|
||
|
||
moduleIds.forEach(id => {
|
||
moduleGetAttrs.push(`repeating_fbvehiclemodule_${id}_moduletype`, `repeating_fbvehiclemodule_${id}_rating`, `repeating_fbvehiclemodule_${id}_count`);
|
||
});
|
||
|
||
getAttrs(moduleGetAttrs.concat(['fbvehicle_movement_class_count', 'msvehicle_type']), function(v) {
|
||
const moduleMod = movementClassTable[v['msvehicle_type']]['moduleMod'];
|
||
let newAttrs = {};
|
||
let totalEngineRating = 0;
|
||
let totalManeuveringRating = 0;
|
||
let totalHyperdriveCount = 0;
|
||
let totalRepeatingModuleCount = 0;
|
||
let totalModules = 0;
|
||
|
||
moduleIds.forEach(id => {
|
||
const moduleCount = parseFloat(v[`repeating_fbvehiclemodule_${id}_count`]) || 0;
|
||
totalRepeatingModuleCount = totalRepeatingModuleCount + moduleCount;
|
||
|
||
if (v[`repeating_fbvehiclemodule_${id}_moduletype`] === 'engine') {
|
||
const moduleRating = parseInt(v[`repeating_fbvehiclemodule_${id}_rating`]);
|
||
totalEngineRating = totalEngineRating + (moduleCount * moduleRating);
|
||
} else if (v[`repeating_fbvehiclemodule_${id}_moduletype`] === 'maneuvering') {
|
||
const moduleRating = parseInt(v[`repeating_fbvehiclemodule_${id}_rating`]);
|
||
totalManeuveringRating = totalManeuveringRating + (moduleCount * moduleRating);
|
||
} else if (v[`repeating_fbvehiclemodule_${id}_moduletype`] === 'hyperdrive') {
|
||
totalHyperdriveCount = totalHyperdriveCount + moduleCount;
|
||
}
|
||
|
||
newAttrs['msvehicle_hyperspace'] = Math.ceil(totalHyperdriveCount);
|
||
|
||
/* Set the movement class module adjustment */
|
||
let movementClassModules = totalRepeatingModuleCount * moduleMod;
|
||
if (v['msvehicle_type'] === "spaceship") {
|
||
movementClassModules = 0;
|
||
} else if (v['msvehicle_type'] === "terrain" && movementClassModules < 2) {
|
||
movementClassModules = 2;
|
||
} else if (movementClassModules < 1){
|
||
movementClassModules = 1;
|
||
}
|
||
totalModules = movementClassModules + totalRepeatingModuleCount;
|
||
newAttrs['msvehicle_total_modules'] = parseFloat(totalModules.toFixed(2));
|
||
newAttrs['fbvehicle_movement_class_count'] = parseFloat(movementClassModules.toFixed(2));
|
||
|
||
/* Set Size and Size Rating */
|
||
if (v['msvehicle_type'] === "spaceship") {
|
||
newAttrs['msvehicle_size'] = Math.ceil(totalModules);
|
||
newAttrs['msvehicle_size_rating'] = Math.floor(Math.log2(newAttrs['msvehicle_size'])) + 1;
|
||
} else {
|
||
newAttrs['msvehicle_size'] = Math.ceil(totalModules * 10);
|
||
}
|
||
|
||
/* Speed & Handling */
|
||
let speedMod = 1;
|
||
if ('speedMod' in movementClassTable[v['msvehicle_type']]) {
|
||
speedMod = movementClassTable[v['msvehicle_type']]['speedMod'];
|
||
}
|
||
newAttrs['msvehicle_speed'] = Math.ceil((totalEngineRating / totalModules) * speedMod);
|
||
newAttrs['msvehicle_handling'] = Math.ceil((totalManeuveringRating / totalModules) * speedMod);
|
||
});
|
||
|
||
/* Hit Location */
|
||
if (v['msvehicle_type'] === 'spaceship') {
|
||
let hitTableArray = [];
|
||
let totalRatio = 0;
|
||
let moduleOrder = 0;
|
||
moduleIds.forEach(id => {
|
||
let moduleObj = {};
|
||
const moduleCount = parseFloat(v[`repeating_fbvehiclemodule_${id}_count`]) || 0;
|
||
const ratioRaw = (moduleCount / totalModules) * 100;
|
||
moduleObj['id'] = id;
|
||
moduleObj['order'] = moduleOrder;
|
||
moduleObj['roundedness'] = Math.abs((ratioRaw % 1) - .5);
|
||
moduleObj['ratio'] = Math.round(ratioRaw);
|
||
if (moduleObj['ratio'] > 0 && moduleObj['ratio'] < 1) {
|
||
moduleObj['ratio'] = 1;
|
||
}
|
||
totalRatio = totalRatio + moduleObj['ratio'];
|
||
hitTableArray.push(moduleObj);
|
||
moduleOrder = moduleOrder + 1;
|
||
});
|
||
|
||
let ratioLastValue = 0;
|
||
let ratioDiff = 0;
|
||
|
||
|
||
if (totalRatio !== 100) {
|
||
/* We want to modify the modules which where most rounded so we sort by inverse roundedness */
|
||
hitTableArray.sort((a, b) => {
|
||
return b['roundedness'] - a['roundedness'];
|
||
});
|
||
if (totalRatio > 100) {
|
||
ratioDiff = totalRatio - 100;
|
||
console.log("table over by " + ratioDiff);
|
||
hitTableArray.forEach(module => {
|
||
if (ratioDiff > 0 && module['ratio'] !== 1) {
|
||
module['ratio'] = module['ratio'] - 1;
|
||
ratioDiff = ratioDiff - 1;
|
||
}
|
||
});
|
||
} else {
|
||
ratioDiff = 100 - totalRatio;
|
||
console.log("table under by " + ratioDiff);
|
||
hitTableArray.forEach(module => {
|
||
if (ratioDiff > 0) {
|
||
module['ratio'] = module['ratio'] + 1;
|
||
ratioDiff = ratioDiff - 1;
|
||
}
|
||
});
|
||
}
|
||
/* Re-sort back into order */
|
||
hitTableArray.sort((a, b) => {
|
||
return a['order'] - b['order'];
|
||
});
|
||
}
|
||
hitTableArray.forEach(module => {
|
||
const hitRollStart = (ratioLastValue + 1) === 100 ? '00' : ratioLastValue + 1;
|
||
const hitRollEnd = (ratioLastValue + module['ratio']) === 100 ? '00' : ratioLastValue + module['ratio'];
|
||
ratioLastValue = hitRollEnd;
|
||
if (hitRollStart === hitRollEnd) {
|
||
newAttrs[`repeating_fbvehiclemodule_${module['id']}_hitroll`] = hitRollEnd === 100 ? '00' : hitRollEnd;
|
||
} else {
|
||
|
||
newAttrs[`repeating_fbvehiclemodule_${module['id']}_hitroll`] = hitRollStart + '-' + hitRollEnd;
|
||
}
|
||
});
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
});
|
||
|
||
/* Mythras Vehicle Upgrades */
|
||
function upgradeMythrasVehicle3Dot0() {
|
||
getSectionIDs("repeating_vehicleweapon", function(vehicleweaponIds) {
|
||
let vehicleweaponGetAttrs = [];
|
||
vehicleweaponIds.forEach(id => {
|
||
vehicleweaponGetAttrs.push(`repeating_vehicleweapon_${id}_name`, `repeating_vehicleweapon_${id}_range`, `repeating_vehicleweapon_${id}_damage`, `repeating_vehicleweapon_${id}_load`, `repeating_vehicleweapon_${id}_ammo`, `repeating_vehicleweapon_${id}_traits`);
|
||
});
|
||
getAttrs(vehicleweaponGetAttrs.concat(['vehicle_size', 'mythras_vehicle_type']), function (v) {
|
||
let newAttrs = {
|
||
'version': '3.0',
|
||
'sheet_type': 'vehicle',
|
||
'hit_location_roll': '@{vehicle_system_roll}',
|
||
'hit_location_low_roll': '@{vehicle_system_roll}',
|
||
'hit_location_high_roll': '@{vehicle_system_roll}'
|
||
};
|
||
if (v['mythras_vehicle_type'] === "spaceship") {
|
||
newAttrs['vehicle_starship_system_display'] = 1;
|
||
}
|
||
for (let num = 1; num < 11; num++) {
|
||
newAttrs[`vehicle_system${num}_hits_max`] = v['vehicle_size'];
|
||
}
|
||
vehicleweaponIds.forEach(id => {
|
||
const weaponId = 'repeating_rangedweapon_' + generateRowID();
|
||
newAttrs[`${weaponId}_name`] = v[`repeating_vehicleweapon_${id}_name`] ? v[`repeating_vehicleweapon_${id}_name`] : "?";
|
||
newAttrs[`${weaponId}_damage`] = v[`repeating_vehicleweapon_${id}_damage`] ? v[`repeating_vehicleweapon_${id}_damage`] : "";
|
||
newAttrs[`${weaponId}_range`] = v[`repeating_vehicleweapon_${id}_range`] ? v[`repeating_vehicleweapon_${id}_range`] : "";
|
||
newAttrs[`${weaponId}_load`] = v[`repeating_vehicleweapon_${id}_load`] ? v[`repeating_vehicleweapon_${id}_load`] : "";
|
||
newAttrs[`${weaponId}_notes`] = v[`repeating_vehicleweapon_${id}_traits`] ? v[`repeating_vehicleweapon_${id}_traits`] : "";
|
||
newAttrs[`${weaponId}_ammo`] = v[`repeating_vehicleweapon_${id}_ammo`] ? v[`repeating_vehicleweapon_${id}_ammo`] : "0";
|
||
newAttrs[`${weaponId}_ammo_max`] = v[`repeating_vehicleweapon_${id}_ammo`] ? v[`repeating_vehicleweapon_${id}_ammo`] : "0";
|
||
});
|
||
|
||
console.log(newAttrs);
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
}
|
||
|
||
/* Frostbyte Vehicle Upgrades */
|
||
function upgradeFrostbyteVehicle3Dot0() {
|
||
getSectionIDs("repeating_msvehicleweapon", function(msvehicleweaponIds) {
|
||
const oldModules = ['airlock', 'cargo', 'cockpit', 'crew', 'engines', 'escape_pod', 'extra_sensors', 'environment', 'hanger', 'hyperspace', 'lab', 'maneuvering', 'open_space', 'passengers', 'rescue_utilities', 'robot_arm', 'self_repair', 'sensors', 'sickbay', 'storage', 'weapons'];
|
||
let oldModuleGetAttrs = [];
|
||
oldModules.forEach(oldModule => {
|
||
oldModuleGetAttrs.push(`msvehicle_${oldModule}`, `msvehicle_${oldModule}_hp`, `msvehicle_${oldModule}_table_start`, `msvehicle_${oldModule}_table_end`);
|
||
});
|
||
let msvehicleweaponGetAttrs = [];
|
||
msvehicleweaponIds.forEach(id => {
|
||
msvehicleweaponGetAttrs.push(`repeating_msvehicleweapon_${id}_name`, `repeating_msvehicleweapon_${id}_range`, `repeating_msvehicleweapon_${id}_damage`, `repeating_msvehicleweapon_${id}_ammo`);
|
||
});
|
||
getAttrs(msvehicleweaponGetAttrs.concat(oldModuleGetAttrs, ['type', 'msvehicle_type', 'msvehicle_notes', 'msvehicle_size', 'msvehicle_engines_hphp', 'msvehicle_hyperdrive_table_start', 'msvehicle_hyperdrive_table_end', 'msvehicle_engines_tr', 'msvehicle_maneuvering_tr']), function (v) {
|
||
let newAttrs = {
|
||
'version': '3.0',
|
||
'sheet_type': 'vehicle'
|
||
};
|
||
if (v['msvehicle_type'] === 'spaceship') {
|
||
newAttrs['hit_location_roll'] = '@{d100_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{d100_hit_location_low_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{d100_hit_location_high_roll}';
|
||
} else {
|
||
newAttrs['hit_location_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_low_roll'] = '@{none_hit_location_roll}';
|
||
newAttrs['hit_location_high_roll'] = '@{none_hit_location_roll}';
|
||
}
|
||
msvehicleweaponIds.forEach(id => {
|
||
const weaponId = 'repeating_rangedweapon_' + generateRowID();
|
||
newAttrs[`${weaponId}_name`] = v[`repeating_msvehicleweapon_${id}_name`] ? v[`repeating_msvehicleweapon_${id}_name`] : "?";
|
||
newAttrs[`${weaponId}_damage`] = v[`repeating_msvehicleweapon_${id}_damage`] ? v[`repeating_msvehicleweapon_${id}_damage`] : "";
|
||
newAttrs[`${weaponId}_range`] = v[`repeating_msvehicleweapon_${id}_range`] ? v[`repeating_msvehicleweapon_${id}_range`] : "";
|
||
newAttrs[`${weaponId}_ammo`] = v[`repeating_msvehicleweapon_${id}_ammo`] ? v[`repeating_msvehicleweapon_${id}_ammo`] : "0";
|
||
newAttrs[`${weaponId}_ammo_max`] = v[`repeating_msvehicleweapon_${id}_ammo`] ? v[`repeating_msvehicleweapon_${id}_ammo`] : "0";
|
||
});
|
||
|
||
let total_modules = 0;
|
||
oldModules.forEach(oldModule => {
|
||
const moduleCount = parseFloat(v[`msvehicle_${oldModule}`]) || 0;
|
||
if (moduleCount > 0) {
|
||
const moduleId = 'repeating_fbvehiclemodule_' + generateRowID();
|
||
total_modules = total_modules + moduleCount;
|
||
if (oldModule === 'engines') {
|
||
newAttrs[`${moduleId}_moduletype`] = 'engine';
|
||
newAttrs[`${moduleId}_rating`] = v['msvehicle_engines_tr'];
|
||
} else if (oldModule === 'maneuvering') {
|
||
newAttrs[`${moduleId}_moduletype`] = 'maneuvering';
|
||
newAttrs[`${moduleId}_rating`] = v['msvehicle_maneuvering_tr'];
|
||
} else if (oldModule === 'hyperspace') {
|
||
newAttrs[`${moduleId}_moduletype`] = 'hyperdrive';
|
||
}
|
||
|
||
if (oldModule === 'cargo') {
|
||
newAttrs[`${moduleId}_name`] = getTranslationByKey('cargo_hold');
|
||
} else if (oldModule === 'hanger') {
|
||
newAttrs[`${moduleId}_name`] = getTranslationByKey('hangar_bay');
|
||
} else {
|
||
newAttrs[`${moduleId}_name`] = getTranslationByKey(oldModule);
|
||
}
|
||
|
||
// Hyperspace module had a difference base var name for table values in v2
|
||
if (oldModule === 'hyperspace') {
|
||
if (v[`msvehicle_hyperdrive_table_start`] === v[`msvehicle_hyperdrive_table_end`]) {
|
||
newAttrs[`${moduleId}_hitroll`] = v[`msvehicle_hyperdrive_table_end`];
|
||
} else {
|
||
newAttrs[`${moduleId}_hitroll`] = v[`msvehicle_hyperdrive_table_start`] + '-' + v[`msvehicle_hyperdrive_table_end`];
|
||
}
|
||
} else {
|
||
if (v[`msvehicle_${oldModule}_table_start`] && v[`msvehicle_${oldModule}_table_end`]) {
|
||
if (v[`msvehicle_${oldModule}_table_start`] === v[`msvehicle_${oldModule}_table_end`]) {
|
||
newAttrs[`${moduleId}_hitroll`] = v[`msvehicle_${oldModule}_table_end`];
|
||
} else {
|
||
newAttrs[`${moduleId}_hitroll`] = v[`msvehicle_${oldModule}_table_start`] + '-' + v[`msvehicle_${oldModule}_table_end`];
|
||
}
|
||
}
|
||
}
|
||
|
||
// There was a type in v2 in the engine hp variable name
|
||
if (oldModule === 'engines') {
|
||
newAttrs[`${moduleId}_hp`] = v[`msvehicle_${oldModule}_hphp`] ? v[`msvehicle_${oldModule}_hphp`] : 0;
|
||
} else {
|
||
newAttrs[`${moduleId}_hp`] = v[`msvehicle_${oldModule}_hp`] ? v[`msvehicle_${oldModule}_hp`] : 0;
|
||
}
|
||
|
||
newAttrs[`${moduleId}_count`] = moduleCount;
|
||
}
|
||
});
|
||
|
||
/* Set the movement class module adjustment */
|
||
const moduleMod = movementClassTable[v['msvehicle_type']]['moduleMod'];
|
||
let movementClassModules = total_modules * moduleMod;
|
||
if (v['msvehicle_type'] === "spaceship") {
|
||
movementClassModules = 0;
|
||
} else if (v['msvehicle_type'] === "terrain" && movementClassModules < 2) {
|
||
movementClassModules = 2;
|
||
} else if (movementClassModules < 1){
|
||
movementClassModules = 1;
|
||
}
|
||
newAttrs['fbvehicle_movement_class_count'] = parseFloat(movementClassModules).toFixed(2);
|
||
total_modules = total_modules + movementClassModules;
|
||
newAttrs['msvehicle_total_modules'] = parseFloat(total_modules).toFixed(2);
|
||
|
||
if (v['msvehicle_type'] === "spaceship") {
|
||
newAttrs['msvehicle_size'] = Math.ceil(total_modules);
|
||
newAttrs['msvehicle_size_rating'] = Math.floor(Math.log2(newAttrs['msvehicle_size'])) + 1;
|
||
} else {
|
||
newAttrs['msvehicle_size'] = Math.ceil(total_modules * 10);
|
||
}
|
||
|
||
/* Convert notes */
|
||
newAttrs[`sheet_notes`] = v['msvehicle_notes'] ? v['msvehicle_notes'] : "";
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
}
|
||
|
||
/* General Upgrades */
|
||
function upgradeVehicle3Dot0() {
|
||
getAttrs(['vehicle_type'], function(v) {
|
||
if (v['vehicle_type'] === 'mythras') {
|
||
upgradeMythrasVehicle3Dot0()
|
||
} else if (v['vehicle_type'] === 'mspace') {
|
||
upgradeFrostbyteVehicle3Dot0()
|
||
}
|
||
});
|
||
}
|
||
function upgradeStarSystem3Dot0() {
|
||
getAttrs(['system_notes'], function (v) {
|
||
let newAttrs = {
|
||
'version': '3.0',
|
||
'sheet_type': 'star_system',
|
||
'hit_location_roll': '@{none_hit_location_roll}',
|
||
'hit_location_low_roll': '@{none_hit_location_roll}',
|
||
'hit_location_high_roll': '@{none_hit_location_roll}'
|
||
};
|
||
|
||
/* Convert Notes */
|
||
if (v['system_notes']) {
|
||
newAttrs['sheet_notes'] = v['system_notes'];
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
}
|
||
|
||
/* Generic versioning functions */
|
||
/**
|
||
* Make the changes needs to get a sheet updated from 3.0 to 3.1
|
||
*/
|
||
function upgradeGeneric3Dot1() {
|
||
if (debug) {
|
||
console.log("Upgrading sheet to 3.1");
|
||
}
|
||
|
||
/* Fetch attrs */
|
||
getAttrs(['sheet_notes'], function (v) {
|
||
let newAttrs = {'version': '3.1'};
|
||
|
||
/* Move shet_notes to sheetnotes to avoid conflicts with repeating items using _notes */
|
||
if (v['sheet_notes']) {
|
||
newAttrs['sheetnotes'] = v['sheet_notes'];
|
||
newAttrs['sheet_notes'] = "";
|
||
}
|
||
|
||
setAttrs(newAttrs);
|
||
});
|
||
}
|
||
|
||
/* Versioning */
|
||
/**
|
||
* Compares current sheet version to latest and performs necessary changes to bring the sheet up to date
|
||
* @param sheet_type the sheet sheet_type attribute
|
||
* @param version the sheet version already parse to a float or 0 if not a valid float
|
||
*/
|
||
function versioning(sheet_type, version) {
|
||
const latestVersion = '3.8';
|
||
if (!sheet_type) {
|
||
sheet_type = "pc";
|
||
}
|
||
if (debug) {console.log(`Current sheet version = ${version}`);}
|
||
version = parseFloat(version) || 0;
|
||
/* Eval sheet version and run upgrade functions as needed, note we have dropped functions of old versions */
|
||
if(version === 0) {
|
||
if (debug) {console.log(`Current version invalid, setting to 2.7`);}
|
||
setAttrs({['version']: '2.7'});
|
||
versioning(sheet_type, '3.0');
|
||
} else if (version < 3.0) {
|
||
if (sheet_type === 'pc') {upgradeCharacter3Dot0();}
|
||
else if (sheet_type === 'battle_unit') {upgradeBattleUnit3Dot0();}
|
||
else if (sheet_type === 'ship') {upgradeShip3Dot0();}
|
||
else if (sheet_type === 'solar_system') {upgradeStarSystem3Dot0();}
|
||
else if (sheet_type === 'vehicle') {upgradeVehicle3Dot0();}
|
||
versioning(sheet_type, '3.0');
|
||
}
|
||
else if (version < 3.1) {
|
||
if (sheet_type === 'character' || sheet_type === 'pc') {upgradeCharacter3Dot1();}
|
||
else if (sheet_type === 'battle_unit') {upgradeGeneric3Dot1();}
|
||
else if (sheet_type === 'ship') {upgradeGeneric3Dot1();}
|
||
else if (sheet_type === 'solar_system') {upgradeGeneric3Dot1();}
|
||
else if (sheet_type === 'vehicle') {upgradeGeneric3Dot1();}
|
||
versioning(sheet_type, '3.1');
|
||
} else if (version < 3.4) {
|
||
console.log("sheet type is = " + sheet_type);
|
||
if (sheet_type === 'character' || sheet_type === 'pc' || sheet_type === 'creature' || sheet_type === 'spirit') {
|
||
console.log("run character 3.4 update");
|
||
upgradeCharacter3Dot4();
|
||
}
|
||
versioning(sheet_type, '3.4');
|
||
} else if (version < 3.6) {
|
||
if (sheet_type === 'character' || sheet_type === 'pc' || sheet_type === 'creature' || sheet_type === 'spirit') {
|
||
console.log("running character 3.6 update");
|
||
upgradeCharacter3Dot6();
|
||
}
|
||
versioning(sheet_type, '3.6');
|
||
} else if (version < 3.8) { /* TODO change this when we next introduce a version that requires updating */
|
||
if (sheet_type === 'character' || sheet_type === 'pc' || sheet_type === 'creature' || sheet_type === 'spirit') {
|
||
console.log("running character 3.8 update");
|
||
upgradeCharacter3Dot8();
|
||
}
|
||
versioning(sheet_type, '3.8');
|
||
} else {
|
||
setAttrs({"version": 3.8})
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Sets a number of attributes containing translations for prompts which normally can't use the i18n systems
|
||
* @returns {} an object of translation attributes
|
||
*/
|
||
const i18nVars = ['ablation', 'area', 'casting_time', 'combine', 'condition', 'conditions', 'days', 'dose', 'doses', 'duration', 'effects', 'enhance', "focus", 'fortune', 'hours', 'intensity', 'magnitude', 'months', 'none', 'precision', 'radius', 'range', 'rolls', 'rounds', 'service', 'services', 'shelf_life', 'spells', 'step', 'steps', 'swiftness', 'target', 'targets', 'term', 'terms', 'touch', 'turns', 'weeks', 'wonder', 'wonders', 'years'];
|
||
function setTranslationAttrs() {
|
||
let i18nAttrs = {};
|
||
i18nVars.forEach(i18nVar => {
|
||
i18nAttrs[`${i18nVar}_i18n`] = getTranslationByKey(i18nVar);
|
||
});
|
||
/* ones that don't match the key pattern */
|
||
i18nAttrs['point_a_i18n'] = getTranslationByKey('point-a');
|
||
i18nAttrs['points_a_i18n'] = getTranslationByKey('points-a');
|
||
i18nAttrs['pow_u_i18n'] = getTranslationByKey('pow-u');
|
||
i18nAttrs['minutes_a_i18n'] = getTranslationByKey('minutes-a');
|
||
i18nAttrs['meters_a_i18n'] = getTranslationByKey('meters-a');
|
||
i18nAttrs['kilometers_a_i18n'] = getTranslationByKey('kilometers-a');
|
||
return i18nAttrs;
|
||
}
|
||
|
||
/* On Open Triggers */
|
||
on("sheet:opened", function() {
|
||
getAttrs(['type', 'sheet_type', 'version', 'character_id'], function(v) {
|
||
const version = parseFloat(v['version']) || 0;
|
||
if (version < 3.0) {
|
||
let sheet_type = (typeof v['type'] === 'undefined') ? "pc" : v['type'];
|
||
versioning(sheet_type, version);
|
||
} else {
|
||
let sheet_type = (typeof v['sheet_type'] === 'undefined') ? "pc" : v['type'];
|
||
versioning(sheet_type, version);
|
||
}
|
||
|
||
let newAttrs = setTranslationAttrs();
|
||
/* Was seeing errors in the console about not being able to eval @{character_id} for some formula, but it did seem to actually work.
|
||
Adding this to specifically set the value in the sheet to avoid those errors just to be safe.
|
||
*/
|
||
newAttrs['character_id'] = v['character_id'];
|
||
setAttrs(newAttrs);
|
||
});
|
||
});
|
||
|
||
on('clicked:redo-v3-upgrade', function(event) {
|
||
console.log("redoing v3 upgrade");
|
||
getAttrs(['type', 'version'], function(v) {
|
||
console.log("redoing v3 upgrade");
|
||
let sheet_type = (typeof v['type'] === 'undefined') ? "pc" : v['type'];
|
||
console.log("redoing v3 upgrade");
|
||
versioning(sheet_type, '2.7');
|
||
});
|
||
});
|
||
</script> |