Files

1622 lines
74 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div>
<input type="hidden" class="sheet-tabstoggle" name="attr_sheetTab" value="main" />
<input type="hidden" name="attr_true" value="1" />
<input type="hidden" name="attr_false" value="0" />
<input type="hidden" name="attr_maxLuck" value="3" />
<input type="hidden" name="attr_maxAp" value="5" />
<input type="hidden" name="attr_maxPoise" value="5" />
<input type="hidden" name="attr_maxHp" value="10" />
<input type="hidden" name="attr_force_challenge_action" value="" />
<input type="hidden" name="attr_body_challenge_action" value="" />
<input type="hidden" name="attr_speed_challenge_action" value="" />
<input type="hidden" name="attr_intelligence_challenge_action" value="" />
<input type="hidden" name="attr_feel_challenge_action" value="" />
<input type="hidden" name="attr_experience_challenge_action" value="" />
<input type="hidden" name="attr_impression_challenge_action" value="" />
<input type="hidden" name="attr_challenge_action" value="" />
<input type="hidden" name="attr_draw_action" value="" />
<input type="hidden" name="attr_dash_action" value="" />
<input type="hidden" name="attr_move_action" value="" />
<input type="hidden" name="attr_sprint_action" value="" />
<input type="hidden" name="attr_font_picker" value="" />
<input type="hidden" name="collapsedFields" value="" />
<div class="sheet-tabs-wrapper">
<button type="action" data-i18n="main-page" class="sheet-button0" name="act_main">Main Page</button>
<button type="action" data-i18n="details-page" class="sheet-button1" name="act_details">Details</button>
</div>
<div class="font-picker">
<span>
<span data-i18n="font" class="input_label">
Font:
</span>
<select name="attr_font_picker">
<option value="0" selected="selected">Serif</option>
<option value="1">Sans</option>
</select>
</span>
</div>
<div class="sheet-main wide-grid">
<div class="sheet-grid-section">
<div class="title-wrapper">
<span class="title">Talebones</span>
<div class="outer_box">
<span class="subtitle">Dark Fantasy Roleplaying</span>
</div>
</div>
<div class="outer_box character-details sub-grid wide-grid">
<div class="top-left">
<span class="input_label" data-i18n="character-name">Character Name:</span>
<input type="text" name="attr_character_name" id="character_name" spellcheck="false"/>
</div>
<div class="top-right">
<span class="input_label" data-i18n="pronouns">Pronouns:</span>
<input type="text" name="attr_chr_pronouns" id="character_pronouns" spellcheck="false"/>
</div>
<div class="bottom-left">
<span class="input_label" data-i18n="species">Species:</span>
<input type="text" name="attr_chr_species" id="character_species" spellcheck="false"/>
</div>
<div class="bottom-middle">
<span class="input_label" data-i18n="profession">Profession:</span>
<input type="text" name="attr_chr_profession" id="character_profession" spellcheck="false"/>
</div>
<div class="bottom-right">
<span class="input_label" data-i18n="player-name">Player Name:</span>
<input type="text" name="attr_chr_player" id="character_player" spellcheck="false"/>
</div>
</div>
<!-- Charge/Signature Move -->
<div class="outer_box sub-grid charge-wrapper">
<span class="section_title wide-grid" data-i18n="signature-move">Signature Move</span>
<span class="sheet-attr input_label" data-i18n="charge">Charge</span>
<div>
<input type="hidden" name="attr_Charge" value="0" />
<input type="hidden" class="maxCharge" name="attr_maxChar" value="4" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Charge" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Charge" value="2" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Charge" value="3" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Charge" value="4" /><span></span>
</div>
<div class="box wide-grid sub-grid">
<span class="input_label"></span>
<span class="input_label" data-i18n="name">Name</span>
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
<div>
<button type="roll" name="signature_move_action" value="@{signature_move_action}"></button>
<button type="action" name="act_signature-move-action" class="hidden"></button>
<input type="hidden" name="signature_move_action" value="">
</div>
<div>
<a class="button" id="signature-move" href="#popup1"><input type="text" class="text-box" name="attr_signature-move-name" spellcheck="false" readonly /></a>
</div>
<div>
<a class="button" id="signature-move" href="#popup1"><input type="number" id="signature-move-ap" name="attr_signature-move-ap" value="3" readonly /></a>
</div>
</div>
<div id="popup1" class="overlay">
<div class="popup">
<a class="close" href="#">×</a>
<div class="content">
<span class="section_title wide-grid" data-i18n="signature-move">Signature Move</span>
<span class="input_label wide-grid" data-i18n="name">Name</span>
<input type="text" class="wide-grid" name="attr_signature-move-name" spellcheck="false"/>
<span class="input_label wide-grid" data-i18n="action-points-abbreviation">AP</span>
<input type="number" class="wide-grid" name="attr_signature-move-ap"/>
<span class="input_label wide-grid" data-i18n="description">Description</span>
<textarea class="wide-grid" name="attr_signature-move-desc" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</div>
</div>
</div>
<!-- Luck/AP/Poise/HP -->
<div class="outer_box sub-grid stats-wrapper">
<div class="stat-wrapper">
<div>
<span class="input_label" data-i18n="luck">Luck</span>
<input class="stat-current-value" type="number" id="luck" name="attr_Luck" min="0" value="3">
</div>
<div>
<span class="input_label" data-i18n="max">max</span>
<span class="stat-max-value" name="attr_maxLuck"></span>
<button type="action" class="stat_dec" name="act_dec-Luck">-</button>
<button type="action" class="stat_inc" name="act_inc-Luck">+</button>
</div>
</div>
<div class="stat-wrapper">
<div>
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
<input class="stat-current-value" type="number" id="ap" name="attr_Ap" min="0" value="10">
</div>
<div>
<span class="input_label" data-i18n="max">max</span>
<span class="stat-max-value" name="attr_maxAp"></span>
<button type="action" class="stat_dec" name="act_dec-Ap">-</button>
<button type="action" class="stat_inc" name="act_inc-Ap">+</button>
</div>
</div>
<div class="stat-wrapper">
<div>
<span class="input_label" data-i18n="poise">Poise</span>
<input class="stat-current-value" type="number" id="poise" name="attr_Poise" min="0" value="3">
</div>
<div>
<span class="input_label" data-i18n="max">max</span>
<span class="stat-max-value" name="attr_maxPoise"></span>
</div>
</div>
<div class="stat-wrapper">
<div>
<span class="input_label" data-i18n="hit-points-abbreviation">HP</span>
<input class="stat-current-value" type="number" id="hp" name="attr_Hp" min="0" value="20">
</div>
<div>
<span class="input_label" data-i18n="max">max</span>
<span class="stat-max-value" name="attr_maxHp"></span>
<button type="action" class="stat_dec" name="act_dec-Hp">-</button>
<button type="action" class="stat_inc" name="act_inc-Hp">+</button>
</div>
</div>
</div>
<!-- STATUS EFFECTS -->
<div class="outer_box sub-grid status-effect-wrapper">
<span class="section_title wide-grid" data-i18n="status-effects"> Status Effects </span>
<div class="effect-wrapper">
<span class="sheet-attr input_label" data-i18n="tripped">Tripped</span>
<div>
<input type="hidden" name="attr_Tripped" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Tripped" value="1" /><span></span>
</div>
</div>
<div class="effect-wrapper">
<span class="sheet-attr input_label" data-i18n="staggered">Staggered</span>
<div>
<input type="hidden" name="attr_Staggered" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Staggered" value="1" /><span></span>
</div>
</div>
<div class="effect-wrapper">
<span class="sheet-attr input_label" data-i18n="downed">Downed</span>
<div>
<input type="hidden" name="attr_Downed" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Downed" value="1" /><span></span>
</div>
</div>
<div class="effect-wrapper">
<span class="sheet-attr input_label" data-i18n="weirded">Weirded</span>
<div>
<input type="hidden" name="attr_Weirded" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Weirded" value="1" /><span></span>
</div>
</div>
<div class="effect-wrapper wide-grid">
<span class="sheet-attr input_label" data-i18n="off-balance">Off-Balance</span>
<div>
<input type="hidden" name="attr_Off-Balance" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Off-Balance" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Off-Balance" value="2" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Off-Balance" value="3" /><span></span>
</div>
</div>
</div>
<!-- ATTRIBUTE FIELDS -->
<div class="outer_box sub-grid attributes-wrapper">
<span class="section_title" data-i18n="base-attributes">Base Attributes </span>
<div class="attribute-wrapper">
<div>
<button type="roll" name="force_challenge_action" value="@{force_challenge_action}"></button>
<button type="action" name="act_force-challenge-action" class="hidden"></button>
<input type="hidden" name="force_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="force">Force</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Force" value="1" />
<input type="hidden" class="maxForce" name="attr_maxFor" value="5" />
<input type="hidden" class="maxforcheck" name="attr_max_force_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Force" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Force" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Force" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Force" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Force" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Force" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="body_challenge_action" value="@{body_challenge_action}"></button>
<button type="action" name="act_body-challenge-action" class="hidden"></button>
<input type="hidden" name="body_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="body">Body</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Body" value="1" />
<input type="hidden" class="maxBody" name="attr_maxBod" value="5" />
<input type="hidden" class="maxbodcheck" name="attr_max_body_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Body" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Body" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Body" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Body" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Body" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Body" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="speed_challenge_action" value="@{speed_challenge_action}"></button>
<button type="action" name="act_speed-challenge-action" class="hidden"></button>
<input type="hidden" name="speed_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="speed">Speed</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Speed" value="1" />
<input type="hidden" class="maxSpeed" name="attr_maxSpe" value="5" />
<input type="hidden" class="maxspecheck" name="attr_max_speed_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Speed" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Speed" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Speed" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Speed" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Speed" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Speed" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="intelligence_challenge_action" value="@{intelligence_challenge_action}"></button>
<button type="action" name="act_intelligence-challenge-action" class="hidden"></button>
<input type="hidden" name="intelligence_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="intelligence">Intelligence</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Intelligence" value="1" />
<input type="hidden" class="maxIntelligence" name="attr_maxInt" value="5" />
<input type="hidden" class="maxintcheck" name="attr_max_intelligence_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Intelligence" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Intelligence" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Intelligence" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Intelligence" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Intelligence" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Intelligence" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="feel_challenge_action" value="@{feel_challenge_action}"></button>
<button type="action" name="act_feel-challenge-action" class="hidden"></button>
<input type="hidden" name="feel_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="feel">Feel</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Feel" value="1" />
<input type="hidden" class="maxFeel" name="attr_maxFee" value="5" />
<input type="hidden" class="maxfeecheck" name="attr_max_feel_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Feel" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Feel" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Feel" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Feel" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Feel" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Feel" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="experience_challenge_action" value="@{experience_challenge_action}"></button>
<button type="action" name="act_experience-challenge-action" class="hidden"></button>
<input type="hidden" name="experience_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="experience">Experience</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Experience" value="1" />
<input type="hidden" class="maxExperience" name="attr_maxExp" value="5" />
<input type="hidden" class="maxexpcheck" name="attr_max_experience_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Experience" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Experience" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Experience" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Experience" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Experience" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Experience" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div>
<button type="roll" name="impression_challenge_action" value="@{impression_challenge_action}"></button>
<button type="action" name="act_impression-challenge-action" class="hidden"></button>
<input type="hidden" name="impression_challenge_action" value="">
</div>
<div>
<span class="sheet-attr input_label" data-i18n="impression">Impression</span>
</div>
<div class="attribute_points">
<input type="hidden" name="attr_Impression" value="1" />
<input type="hidden" class="maxImpression" name="attr_maxImp" value="5" />
<input type="hidden" class="maximpcheck" name="attr_max_impression_extended" value="0"/>
<input type="radio" class="sheet-normal" name="attr_Impression" value="1" /><span></span><input type="radio" class="sheet-normal" name="attr_Impression" value="2" /><span></span><input type="radio" class="sheet-normal" name="attr_Impression" value="3" /><span></span><input type="radio" class="sheet-normal" name="attr_Impression" value="4" /><span></span><input type="radio" class="sheet-normal" name="attr_Impression" value="5" /><span></span><input type="radio" class="sheet-normal extendedBubble" name="attr_Impression" value="6" /><span class="extendedValue"></span>
</div>
</div>
<div class="attribute-wrapper">
<div class="wide-grid">
<span class="sheet-attr" data-i18n="button-label-to-change-maximum">Inc./Dec. max Base Attr.</span>
</div>
<div class="attribute_points">
<button type="action" class="stat_dec" name="act_dec-ba">-</button>
<button type="action" class="stat_inc" name="act_inc-ba">+</button>
</div>
</div>
</div>
<!-- TALENTS -->
<div class="outer_box sub-grid talents-wrapper">
<span class="section_title" data-i18n="talents"> Talents </span><div class="talent-wrapper">
<span class="sheet-attr input_label" data-i18n="skilled">Skilled</span>
<div></div>
<span class="sheet-attr input_label" data-i18n="pool-points">Pool Points</span>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Awareness-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Awareness-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="awareness">Awareness</span>
<div class="pool_points">
<input type="hidden" name="attr_Awareness-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Awareness-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Awareness-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Breach-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Breach-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="breach">Breach</span>
<div class="pool_points">
<input type="hidden" name="attr_Breach-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Breach-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Breach-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Convince-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Convince-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="convince">Convince</span>
<div class="pool_points">
<input type="hidden" name="attr_Convince-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Convince-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Convince-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Fitness-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Fitness-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="fitness">Fitness</span>
<div class="pool_points">
<input type="hidden" name="attr_Fitness-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Fitness-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Fitness-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Knowledge-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Knowledge-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="knowledge">Knowledge</span>
<div class="pool_points">
<input type="hidden" name="attr_Knowledge-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Knowledge-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Knowledge-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Marrow-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Marrow-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="marrow">Marrow</span>
<div class="pool_points">
<input type="hidden" name="attr_Marrow-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Marrow-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Marrow-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Medicine-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Medicine-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="medicine">Medicine</span>
<div class="pool_points">
<input type="hidden" name="attr_Medicine-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Medicine-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Medicine-Pool" value="2" /><span></span>
</div>
</div>
<div class="talent-wrapper">
<div class="skilled_point">
<input type="hidden" name="attr_Tactics-Skilled" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Tactics-Skilled" value="1" /><span></span>
</div>
<span class="sheet-attr input_label" data-i18n="tactics">Tactics</span>
<div class="pool_points">
<input type="hidden" name="attr_Tactics-Pool" value="0" />
<input type="checkbox" class="sheet-normal bubbles" name="attr_Tactics-Pool" value="1" /><span></span><input type="checkbox" class="sheet-normal bubbles" name="attr_Tactics-Pool" value="2" /><span></span>
</div>
</div>
</div>
<!-- PLOT POINTS -->
<div class="outer_box sub-grid plot-points-wrapper">
<span class="sheet-attr section_title" data-i18n="plot-points">Plot Points</span>
<input type="hidden" name="attr_Plot-Points" value="0" />
<div>
<input type="checkbox" class="sheet-normal bubbles" name="attr_Plot-Points" value="1" /><span class="pp_visual"></span>
</div>
<div>
<input type="checkbox" class="sheet-normal bubbles" name="attr_Plot-Points" value="2" /><span class="pp_visual"></span>
</div>
<div>
<input type="checkbox" class="sheet-normal bubbles" name="attr_Plot-Points" value="3" /><span class="pp_visual"></span>
</div>
<div>
<input type="checkbox" class="sheet-normal bubbles" name="attr_Plot-Points" value="4" /><span class="pp_visual"></span>
</div>
<div>
<input type="checkbox" class="sheet-normal bubbles" name="attr_Plot-Points" value="5" /><span class="pp_visual"></span>
</div>
<span class="input_label" data-i18n="level">Level</span>
<input class="stat-max-value" type="number" id="level" name="attr_Level" value="1">
</div>
<!-- ACTIONS -->
<div class="outer_box sub-grid actions-wrapper">
<span class="wide-grid sheet-attr section_title" data-i18n="base-actions">Base Actions</span>
<!-- Challenge -->
<div class="action-wrapper">
<!-- The visible and draggable button for the macro bar -->
<button type="roll" name="roll_challenge" value="@{challenge_action}" data-i18n="challenge">Challenge</button>
<!-- The invisible button allowing the use of custom roll parsing -->
<button type="action" name="act_challenge-action" class="hidden"></button>
<!-- The invisible field for the attribute which contains the ability call -->
<input type="hidden" name="attr_challenge_action" value="">
</div>
<!-- REST -->
<div class="action-wrapper">
<button type="roll" name="roll_rest" value="@{rest_action}" data-i18n="rest">Rest</button>
<button type="action" name="act_rest-action" class="hidden"></button>
<input type="hidden" name="attr_rest_action" value="">
</div>
<!-- DRAW -->
<div class="action-wrapper">
<button type="roll" name="roll_draw" value="@{draw_action}" data-i18n="draw">Draw</button>
<button type="action" name="act_draw-action" class="hidden"></button>
<input type="hidden" name="attr_draw_action" value="">
</div>
<!-- HELP -->
<div class="action-wrapper">
<button type="roll" name="roll_help" value="@{help_action}" data-i18n="help">Help</button>
<button type="action" name="act_help-action" class="hidden"></button>
<input type="hidden" name="attr_help_action" value="">
</div>
<!-- DASH -->
<div class="action-wrapper">
<button type="roll" name="roll_dash" value="@{dash_action}" data-i18n="dash">Dash</button>
<button type="action" name="act_dash-action" class="hidden"></button>
<input type="hidden" name="attr_dash_action" value="">
</div>
<!-- MOVE -->
<div class="action-wrapper">
<button type="roll" name="roll_move" value="@{move_action}" data-i18n="move">Move</button>
<button type="action" name="act_move-action" class="hidden"></button>
<input type="hidden" name="attr_move_action" value="">
</div>
<!-- SPRINT -->
<div class="action-wrapper">
<button type="roll" name="roll_sprint" value="@{sprint_action}" data-i18n="sprint">Sprint</button>
<button type="action" name="act_sprint-action" class="hidden"></button>
<input type="hidden" name="attr_sprint_action" value="">
</div>
</div>
<rolltemplate class="sheet-rolltemplate-challenge">
<div class="sheet-template-container">
<h2>{{title}}</h2>
<div class="sheet-results">
<p>{{ba}}</p>
<p>{{diff}}({{difficulty}})</p>
<p>{{ta}} ({{sk}}, {{pl}})</p>
<p>{{computed::roll1}}</p>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-action">
<div class="sheet-template-container">
<h2>{{name}}</h2>
<div class="sheet-results">
<p>{{desc}}</p>
<p>{{cost}}</p>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-signature-move">
<div class="sheet-template-container">
<h2>{{name}}</h2>
<div class="sheet-results">
<p>{{desc1}}</p>
<p>{{desc2}}</p>
<p>{{cost}}</p>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-rest">
<div class="sheet-template-container">
<h2>{{talebound}}</h2>
<div class="sheet-results">
<p>{{character_name}}</p>
<p>{{currHp}}</p>
</div>
</div>
</rolltemplate>
<!-- ABILITIES -->
<div class="outer_box sub-grid abilities-wrapper">
<span class="section_title" data-i18n="abilities">Abilities</span>
<fieldset class="repeating_abilities" id="abilities">
<div class="ability-wrapper">
<span class="input_label" data-i18n="name">Name</span>
<input type="text" name="attr_ability-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false" readonly />
<span class="input_label" data-i18n="description">Description</span>
<input type="text" name="attr_ability-desc" data-i18n-placeholder="description-abbreviation" placeholder="Desc" spellcheck="false" readonly />
</div>
</fieldset>
</div>
<div class="outer_box sub-grid cum-talents-wrapper">
<!-- WAYS OF ENTRY -->
<div class="ways-of-entry-wrapper top">
<span class="section_title" data-i18n="ways-of-entry">Ways of Entry</span>
<fieldset class="repeating_ways-of-entry" id="ways-of-entry">
<input type="text" name="attr_way-of-entry" spellcheck="false">
</fieldset>
</div>
<!-- FIELDS OF ACADEMIC KNOWLEDGE -->
<div class="fields-of-study-wrapper bottom">
<span class="section_title" data-i18n="fields-of-academic-study">Fields of Academic Study</span>
<fieldset class="repeating_fields-of-study" id="fields-of-study">
<input type="text" name="attr_field-of-study" spellcheck="false">
</fieldset>
</div>
</div>
<!-- WEAPON TALENTS -->
<div class="outer_box sub-grid weapon-talents-wrapper">
<span class="top section_title" data-i18n="weapon-talents">Weapon Talents</span>
<div>
<div class="weapon-talent-wrapper">
<span class="input_label"></span>
<span class="input_label" data-i18n="name">Name</span>
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
<span class="input_label" data-i18n="pool">Pool</span>
<span class="input_label" data-i18n="base-attributes-abbreviation">B.Attr.</span>
<span class="input_label" data-i18n="properties">Properties</span>
</div>
<fieldset class="repeating_weapon-talents" id="weapon-talents">
<div class="weapon-talent-wrapper">
<div>
<button type="roll" name="roll_weapon_challenge" value="@{weapon-challenge-action-attr}"></button>
<button type="action" name="act_weapon-challenge-action" class="hidden"></button>
<input type="hidden" name="attr_weapon-challenge-action-attr" value="">
</div>
<div>
<input type="text" name="attr_weapon-talent-name" id="weapon-talent-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
</div>
<div>
<input type="number" name="attr_weapon-talent-ap" id="weapon-talent-ap" data-i18n-placeholder="action-points-abbreviation" placeholder="AP" spellcheck="false" readonly>
</div>
<div>
<input type="number" name="attr_weapon-talent-pool" id="weapon-talent-pool" data-i18n-placeholder="pool" placeholder="Pool" readonly>
</div>
<div>
<select class="ba_input" name="attr_weapon-talent-attr" id="weapon-talent-attr">
<option value="0" selected="selected">Force</option>
<option value="1">Body</option>
<option value="2">Speed</option>
<option value="3">Intelligence</option>
<option value="4">Feel</option>
<option value="5">Experience</option>
<option value="6">Impression</option>
</select>
</div>
<div>
<input type="text" name="attr_weapon-talent-properties" id="weapon-talent-properties" data-i18n-placeholder="properties" placeholder="Properties" spellcheck="false" readonly>
</div>
<div class="sheet-condensed-masteries">
<input type="hidden" class="sheet-condensed-masteries-toggle" name="attr_weapon-talent-Has-Mastery" value="0">
<div class="filtered weapon-mastery-wrapper mastery-1">
<input type="hidden" class="sheet-filtered-mastery-toggle" name="attr_weapon-mastery-Is-Active" value="0">
<span class="input_label" data-i18n="mastery-name">Mastery Name</span>
<span class="input_label" data-i18n="description">Description</span>
<div>
<input type="text" name="attr_weapon-mastery-1-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false" readonly>
</div>
<textarea name="attr_weapon-mastery-1-desc" data-i18n-placeholder="description" placeholder="Description" rows="2" cols="5" spellcheck="false" readonly></textarea>
</div>
<div class="filtered weapon-mastery-wrapper mastery-2">
<input type="hidden" class="sheet-filtered-mastery-toggle" name="attr_weapon-mastery-Is-Active" value="0">
<span class="input_label" data-i18n="mastery-name">Mastery Name</span>
<span class="input_label" data-i18n="description">Description</span>
<div>
<input type="text" name="attr_weapon-mastery-2-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false" readonly>
</div>
<textarea name="attr_weapon-mastery-2-desc" data-i18n-placeholder="description" placeholder="Description" rows="2" cols="5" spellcheck="false" readonly></textarea>
</div>
</div>
</div>
</fieldset>
</div>
</div>
<!-- BASE REACTIONS -->
<div class="outer_box sub-grid reactions-wrapper">
<span class="sheet-attr wide-grid section_title" data-i18n="reactions-and-incantations">Reactions &amp; Incantations</span>
<div class="wide-grid">
<fieldset class="repeating_reactions" id="reactions">
<div class="sheet-condensed-reactions sub-grid">
<input type="hidden" class="sheet-condensed-reactions-toggle" name="attr_reaction-Is-Active" value="0">
<span class="input_label" data-i18n="name">Name</span>
<input type="text" name="attr_reaction-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false" readonly>
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
<input type="number" name="attr_reaction-ap" data-i18n-placeholder="action-points-abbreviation" placeholder="AP" readonly>
<span class="input_label" data-i18n="trigger">Trigger</span>
<input type="text" class="wide-grid" name="attr_reaction-trigger" data-i18n-placeholder="trigger" placeholder="Trigger" spellcheck="false" readonly>
<input type="hidden" name="attr_reaction-Is-Incantation">
<span class="input_label hidden_reaction_ba" data-i18n="base-attr">Base Attr.</span>
<input type="text" class="wide-grid hidden_reaction_ba" name="attr_reaction-ba-clear" spellcheck="false" readonly>
<span class="input_label" data-i18n="type">Type</span>
<input type="text" class="wide-grid" name="attr_reaction-type-clear" spellcheck="false" readonly>
</div>
</fieldset>
</div>
</div>
<!-- REACTIONS AND INCANTATIONS -->
</div>
</div>
<div class="sheet-details wide-grid">
<div class="sheet-grid-section">
<!-- CHARACTER -->
<div class="outer_box top_left character-info-wrapper">
<span class="section_title" data-i18n="character-info">Character Info</span>
<div>
<textarea class="textbox" name="attr_ability-desc" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</div>
<!-- TALEBOUND EPITHETS -->
<div class="outer_box top_right epithets-wrapper">
<span class="section_title" data-i18n="talebound-epithets">Talebound Epithets</span>
<div class="epithet-wrapper">
<span class="input_label" data-i18n="active">Active</span>
<span class="input_label" data-i18n="epithet">Epithet</span>
</div>
<fieldset class="repeating_epithets" id="epithets">
<div class="epithet-wrapper">
<div class="input">
<input type="checkbox" class="sheet-normal" name="attr_epithet-Is-active" value="1" /><span></span>
</div>
<input type="text" name="attr_epithet-name" id="epithet-name" data-i18n-placeholder="talebound-epithet" placeholder="Talebound Epithet" spellcheck="false">
</div>
</fieldset>
</div>
<!-- INVENTORY -->
<div class="outer_box bottom_left inventory-wrapper">
<span class="section_title" data-i18n="inventory">Inventory</span>
<div class="item-wrapper">
<span class="input_label" data-i18n="heavy">Heavy</span>
<span class="input_label" data-i18n="name">Name</span>
<span class="input_label" data-i18n="ideas">Ideas</span>
</div>
<fieldset class="repeating_inventory" id="inventory">
<div class="item-wrapper">
<div class="input">
<input type="checkbox" class="sheet-normal" name="attr_inventory-Is-Heavy" value="1" /><span></span>
</div>
<input type="text" name="attr_inventory-name" data-i18n-placeholder="item" placeholder="Item" spellcheck="false">
<input type="number" name="attr_inventory-ideas" data-i18n-placeholder="ideas" placeholder="Ideas">
</div>
</fieldset>
</div>
<div class="bottom_right">
<!-- ABILITIES -->
<div class="outer_box abilities-wrapper">
<span class="section_title" data-i18n="abilities">Abilities</span>
<fieldset class="repeating_abilities" id="abilities">
<div class="ability-wrapper">
<span class="input_label" data-i18n="name">Name</span>
<input type="text" class="name_textfield" name="attr_ability-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
<span class="input_label" data-i18n="description">Description</span>
<textarea class="textbox" name="attr_ability-desc" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</fieldset>
</div>
<!-- SIGNATURE MOVE -->
<div class="outer_box signature-move-wrapper">
<span class="wide-grid section_title" data-i18n="signature-move"> Signature Move </span>
<div class="bottom_left">
<span class="input_label" data-i18n="name">Name</span>
<input type="text" class="name_textfield" name="attr_signature-move-name" spellcheck="false"/>
</div>
<div class="bottom_right">
<span class="input_label" data-i18n="action-points-abbreviation">AP</span><br/>
<input type="number" class="ap_cost_input" name="attr_signature-move-ap"/>
</div>
<div class="wide-grid">
<span class="input_label" data-i18n="description">Description</span>
<textarea class="textbox" name="attr_signature-move-desc" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</div>
</div>
</div>
<!-- WEAPON TALENTS -->
<div class="outer_box weapon-talents-wrapper">
<span class="section_title" data-i18n="weapon-talents">Weapon Talents</span>
<div>
<div class="weapon-talent-wrapper">
<span class="input_label" data-i18n="name">Name</span>
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
<span class="input_label" data-i18n="pool">Pool</span>
<span class="input_label" data-i18n="base-attributes-abbreviation">B.Attr.</span>
<span class="input_label" data-i18n="properties">Properties</span>
<span class="input_label" data-i18n="mastery">Mastery</span>
</div>
<fieldset class="repeating_weapon-talents" id="weapon-talents">
<div class="weapon-talent-wrapper">
<div>
<input type="text" class="name_textfield" name="attr_weapon-talent-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
</div>
<div>
<input type="number" class="ap_cost_input" name="attr_weapon-talent-ap" data-i18n-placeholder="action-points-abbreviation" placeholder="AP">
</div>
<div>
<input type="number" class="pool_input" name="attr_weapon-talent-pool" data-i18n-placeholder="pool" placeholder="Pool">
</div>
<div>
<select class="ba_input" name="attr_weapon-talent-attr">
<option value="0" selected="selected" data-i18n="force">Force</option>
<option value="1" data-i18n="body">Body</option>
<option value="2" data-i18n="speed">Speed</option>
<option value="3" data-i18n="intelligence">Intelligence</option>
<option value="4" data-i18n="feel">Feel</option>
<option value="5" data-i18n="experience">Experience</option>
<option value="6" data-i18n="impression">Impression</option>
</select>
</div>
<div>
<input type="text" name="attr_weapon-talent-properties" data-i18n-placeholder="properties" placeholder="Properties" spellcheck="false">
</div>
<div>
<input type="checkbox" class="sheet-normal visibility-toggle" name="attr_weapon-talent-Has-Mastery" value="1" /><span></span>
</div>
<div class="weapon-masteries-wrapper">
<div class="weapon-mastery-wrapper">
<span class="input_label" data-i18n="active">Active</span>
<span class="input_label" data-i18n="name">Name</span>
<div class="input">
<input type="checkbox" class="sheet-normal" name="attr_weapon-mastery-Is-Active" value="1" /><span></span>
</div>
<input type="text" class="name_textfield" name="attr_weapon-mastery-1-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
<span class="input_label wide-grid" data-i18n="description">Description</span>
<textarea class="textbox wide-grid" name="attr_weapon-mastery-1-desc" data-i18n-placeholder="description" placeholder="Description" rows="2" cols="5" spellcheck="false"></textarea>
</div>
<div class="weapon-mastery-wrapper">
<span class="input_label" data-i18n="active">Active</span>
<span class="input_label" data-i18n="name">Name</span>
<div class="input">
<input type="checkbox" class="sheet-normal" name="attr_weapon-mastery-Is-Active" value="2" /><span></span>
</div>
<input type="text" class="name_textfield" name="attr_weapon-mastery-2-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
<span class="input_label wide-grid" data-i18n="description">Description</span>
<textarea class="textbox wide-grid" name="attr_weapon-mastery-2-desc" data-i18n-placeholder="description" placeholder="Description" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</div>
</div>
</fieldset>
</div>
</div>
<!-- REACTIONS -->
<div class="outer_box reactions-wrapper">
<span class="section_title" data-i18n="reactions-and-incantations">Reactions &amp; Incantations</span>
<fieldset class="repeating_reactions" id="reactions">
<div class="sheet-reaction-wrapper">
<div class="top_left sub-grid">
<div class="top_left">
<span class="input_label" data-i18n="active">Active</span>
</div>
<div class="bottom_left">
<input type="checkbox" class="sheet-normal" name="attr_reaction-Is-Active" value="1" /><span></span>
</div>
<div class="top_right">
<span class="input_label" data-i18n="name">Name</span>
</div>
<div class="bottom_right">
<input type="text" class="name_textfield" name="attr_reaction-name" data-i18n-placeholder="name" placeholder="Name" spellcheck="false">
</div>
</div>
<div class="top_right sub-grid">
<div class="top_left">
<span class="input_label" data-i18n="action-points-abbreviation">AP</span>
</div>
<div class="bottom_left">
<input type="number" class="ap_cost_input" name="attr_reaction-ap" data-i18n-placeholder="action-points-abbreviation" placeholder="AP">
</div>
</div>
<div class="sub-grid">
<div class="top_left">
<span class="input_label" data-i18n="incantation">Incantation</span>
</div>
<div class="bottom_left">
<input type="checkbox" class="sheet-normal visibility-toggle" name="attr_reaction-Is-Incantation" value="1" /><span></span>
</div>
<div class="top_right">
<span class="input_label hidden_reaction_ba" data-i18n="base-attribute">Base Attribute</span>
</div>
<div class="bottom_right">
<select class="ba_input hidden_reaction_ba" name="attr_reaction-ba">
<option value="0" selected="selected" data-i18n="force">Force</option>
<option value="1" data-i18n="body">Body</option>
<option value="2" data-i18n="speed">Speed</option>
<option value="3" data-i18n="intelligence">Intelligence</option>
<option value="4" data-i18n="feel">Feel</option>
<option value="5" data-i18n="experience">Experience</option>
<option value="6" data-i18n="impression">Impression</option>
</select>
</div>
</div>
<div class="wide-grid">
<span class="input_label" data-i18n="trigger">Trigger</span>
</div>
<div class="wide-grid">
<input type="text" name="attr_reaction-trigger" data-i18n-placeholder="trigger" placeholder="Trigger" spellcheck="false">
</div>
<div class="wide-grid">
<span class="input_label" data-i18n="type">Type</span>
</div>
<div class="wide-grid">
<select name="attr_reaction-type">
<option value="0" selected="selected" data-i18n="action">Action</option>
<option value="1" data-i18n="reactive">Reactive</option>
<option value="2" data-i18n="preventive">Preventive</option>
<option value="3" data-i18n="supportive">Supportive</option>
</select>
</div>
<div class="wide-grid">
<span class="input_label" data-i18n="description">Description</span>
</div>
<div class="wide-grid">
<textarea class="wide-grid textbox" name="attr_reaction-desc" data-i18n-placeholder="description" placeholder="Description" rows="2" cols="5" spellcheck="false"></textarea>
</div>
</div>
</fieldset>
</div>
<!-- INCANTATIONS -->
</div>
</div>
<script type="text/worker">
const baseAttributes = [getTranslationByKey("force"),getTranslationByKey("body"),getTranslationByKey("speed"),getTranslationByKey("intelligence"),getTranslationByKey("feel"),getTranslationByKey("experience"),getTranslationByKey("impression")];
const talents = [getTranslationByKey("awareness"),getTranslationByKey("breach"),getTranslationByKey("convince"),getTranslationByKey("fitness"),getTranslationByKey("knowledge"),getTranslationByKey("marrow"),getTranslationByKey("medicine"),getTranslationByKey("tactics")];
const actionTypes = [getTranslationByKey("action"),getTranslationByKey("reactive"),getTranslationByKey("preventive"),getTranslationByKey("supportive")];
const buttonlist = ["main", "details"];
buttonlist.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
sheetTab: button
});
});
});
on("sheet:opened", function () {
getAttrs(["Force","Body","Speed","Intelligence","Feel","Experience","Impression"], function(values) {
const output = {};
output['Force'] = (parseInt(values.Force) || 0);
output['Body'] = (parseInt(values.Body) || 0);
output['Speed'] = (parseInt(values.Speed) || 0);
output['Intelligence'] = (parseInt(values.Intelligence) || 0);
output['Feel'] = (parseInt(values.Feel) || 0);
output['Experience'] = (parseInt(values.Experience) || 0);
output['Impression'] = (parseInt(values.Impression) || 0);
setAttrs(output);
});
});
on("change:Luck sheet:opened", function () {
getAttrs(["Luck", "maxLuck"], function(values) {
const output = {};
const luck = parseInt(values.Luck) || 0;
const maxluck = parseInt(values.maxLuck) || 0;
output['Luck'] = (luck > maxluck) ? maxluck : luck;
setAttrs(output);
});
});
on("change:Hp sheet:opened", function () {
getAttrs(["Hp", "maxHp"], function(values) {
const output = {};
const hp = parseInt(values.Hp) || 0;
const maxhp = parseInt(values.maxHp) || 0;
output['Hp'] = (hp > maxhp) ? maxhp: hp;
setAttrs(output);
});
});
on("change:maxFor change:maxBod change:maxSpe change:maxInt change:maxFee change:maxExp change:maxImp sheet:opened", function () {
getAttrs(["maxFor","maxBod","maxSpe","maxInt","maxFee","maxExp","maxImp"], function(values) {
const output = {};
const maxFor = parseInt(values.maxFor) || 0;
const maxBod = parseInt(values.maxBod) || 0;
const maxSpe = parseInt(values.maxSpe) || 0;
const maxInt = parseInt(values.maxInt) || 0;
const maxFee = parseInt(values.maxFee) || 0;
const maxExp = parseInt(values.maxExp) || 0;
const maxImp = parseInt(values.maxImp) || 0;
output['max_force_extended'] = (maxFor > 5) ? 1 : 0;
output['max_body_extended'] = (maxBod > 5) ? 1 : 0;
output['max_speed_extended'] = (maxSpe > 5) ? 1 : 0;
output['max_intelligence_extended'] = (maxInt > 5) ? 1 : 0;
output['max_feel_extended'] = (maxFee > 5) ? 1 : 0;
output['max_experience_extended'] = (maxExp > 5) ? 1 : 0;
output['max_impression_extended'] = (maxImp > 5) ? 1 : 0;
setAttrs(output);
});
});
on("sheet:opened change:character_name", function(eventInfo) {
getAttrs(["character_name", "force_challenge_action", "body_challenge_action", "speed_challenge_action", "intelligence_challenge_action", "feel_challenge_action", "experience_challenge_action", "impression_challenge_action", "draw_action", "help_action", "dash_action", "move_action", "sprint_action", "repeating_weapon-talents_weapon_challenge_action"], function(v) {
var attrsToChange = {};
attrsToChange["force_challenge_action"] = "%{" + v["character_name"] + "|force-challenge-action}";
attrsToChange["body_challenge_action"] = "%{" + v["character_name"] + "|body-challenge-action}";
attrsToChange["speed_challenge_action"] = "%{" + v["character_name"] + "|speed-challenge-action}";
attrsToChange["intelligence_challenge_action"] = "%{" + v["character_name"] + "|intelligence-challenge-action}";
attrsToChange["feel_challenge_action"] = "%{" + v["character_name"] + "|feel-challenge-action}";
attrsToChange["experience_challenge_action"] = "%{" + v["character_name"] + "|experience-challenge-action}";
attrsToChange["impression_challenge_action"] = "%{" + v["character_name"] + "|impression-challenge-action}";
attrsToChange["challenge_action"] = "%{" + v["character_name"] + "|challenge-action}";
attrsToChange["rest_action"] = "%{" + v["character_name"] + "|rest-action}";
attrsToChange["draw_action"] = "%{" + v["character_name"] + "|draw-action}";
attrsToChange["help_action"] = "%{" + v["character_name"] + "|help-action}";
attrsToChange["dash_action"] = "%{" + v["character_name"] + "|dash-action}";
attrsToChange["move_action"] = "%{" + v["character_name"] + "|move-action}";
attrsToChange["sprint_action"] = "%{" + v["character_name"] + "|sprint-action}";
attrsToChange["signature_move_action"] = "%{" + v["character_name"] + "|signature-move-action}";
getSectionIDs("repeating_weapon-talents", function(rep_ids) {
for (const id of rep_ids){
console.log("repeating_weapon-talents_" + id + "_weapon-challenge-action-attr");
console.log("%{" + v["character_name"] + "|repeating_weapon-talents_" + id + "_weapon-challenge-action}");
attrsToChange["repeating_weapon-talents_" + id + "_weapon-challenge-action-attr"] = "%{" + v["character_name"] + "|repeating_weapon-talents_" + id +"_weapon-challenge-action}";
}
setAttrs(attrsToChange);
});
});
});
on('change:repeating_reactions', function(eventInfo) {
getAttrs(["repeating_reactions_reaction-ba","repeating_reactions_reaction-type"], function(values) {
var attrsToChange = {};
attrsToChange["repeating_reactions_reaction-ba-clear"] = baseAttributes[parseInt(values["repeating_reactions_reaction-ba"]) || 0];
attrsToChange["repeating_reactions_reaction-type-clear"] = actionTypes[parseInt(values["repeating_reactions_reaction-type"]) || 0];
setAttrs(attrsToChange);
});
});
on('clicked:dec-Luck', (info) => {
getAttrs(["maxLuck"], function(v) {
var attrsToChange = {};
attrsToChange["maxLuck"] = (parseInt(v.maxLuck) || 0) -1;
setAttrs(attrsToChange);
});
});
on('clicked:inc-Luck', (info) => {
getAttrs(["maxLuck"], function(v) {
var attrsToChange = {};
attrsToChange["maxLuck"] = (parseInt(v.maxLuck) || 0) + 1;
setAttrs(attrsToChange);
});
});
on('clicked:dec-Ap', (info) => {
getAttrs(["maxAp"], function(v) {
var attrsToChange = {};
attrsToChange["maxAp"] = (parseInt(v.maxAp) || 0) -1;
setAttrs(attrsToChange);
});
});
on('clicked:inc-Ap', (info) => {
getAttrs(["maxAp"], function(v) {
var attrsToChange = {};
attrsToChange["maxAp"] = (parseInt(v.maxAp) || 0) + 1;
setAttrs(attrsToChange);
});
});
on('clicked:dec-Hp', (info) => {
getAttrs(["dHp"], function(v) {
var attrsToChange = {};
attrsToChange["dHp"] = (parseInt(v.dHp) || 0) -20;
setAttrs(attrsToChange);
});
});
on('clicked:inc-Hp', (info) => {
getAttrs(["dHp"], function(v) {
var attrsToChange = {};
attrsToChange["dHp"] = (parseInt(v.dHp) || 0) + 20;
setAttrs(attrsToChange);
});
});
on('sheet:opened change:Body change:Speed change:Tactics-Pool', (info) => {
getAttrs(["Body","Speed", "Tactics-Pool"], function(v) {
var attrsToChange = {};
attrsToChange["maxPoise"] = (parseInt(v.Body) || 0) + (parseInt(v.Speed) || 0) + (parseInt(v["Tactics-Pool"]) || 0);
setAttrs(attrsToChange);
});
});
on('sheet:opened change:Body change:dHp', (info) => {
getAttrs(["Body","dHp"], function(v) {
var attrsToChange = {};
attrsToChange["maxHp"] = (parseInt(v.Body) || 0) * 20 + (parseInt(v.dHp) || 0);
setAttrs(attrsToChange);
});
});
on('clicked:challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession"]);
});
on('clicked:force-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Force"]);
});
on('clicked:body-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Body"]);
});
on('clicked:speed-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Speed"]);
});
on('clicked:intelligence-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Intelligence"]);
});
on('clicked:feel-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Feel"]);
});
on('clicked:experience-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Experience"]);
});
on('clicked:impression-challenge-action', (info) => {
triggerChallenge(["Ap","character_name","chr_profession","Impression"]);
});
on('clicked:repeating_weapon-talents:weapon-challenge-action', (info) => {
getAttrs(["character_name", "repeating_weapon-talents_weapon-talent-attr", "repeating_weapon-talents_weapon-talent-name"], function(v) {
var attribute = baseAttributes[v["repeating_weapon-talents_weapon-talent-attr"]];
var name = v["repeating_weapon-talents_weapon-talent-name"];
triggerChallenge(["Ap","character_name","chr_profession",attribute,name]);
});
});
function triggerChallenge(attributeArray){
console.log(attributeArray);
getSectionIDs("weapon-talents", function(rep_ids) {
const weapon_talents = [];
for (const id of rep_ids){
weapon_talents.push("repeating_weapon-talents_" + id + "_weapon-talent-name");
}
getAttrs(attributeArray.concat(weapon_talents), function(queryValues) {
console.log(queryValues);
/* Create Weapon Talent List*/
weapon_talent_names = [];
for (const weapon_talent_id of weapon_talents){
var weapon_talent = {name: queryValues[weapon_talent_id], id: weapon_talent_id.slice(25,45)};
weapon_talent_names.push(weapon_talent);
}
console.log(weapon_talent_names);
const queries = createRollQueries(queryValues,weapon_talent_names);
console.log(attributeArray);
// Check if there is a set Attribute
if(attributeArray.some(r => baseAttributes.includes(r))){
queries[0] = "" + baseAttributes.indexOf(attributeArray[3]) + "";
}
// Check if there is a set Talent
if(attributeArray.some(r => weapon_talent_names.some(wt => wt.name === r))){
console.log("Name of Weapon Talent: " + attributeArray[1]);
console.log("Id of Weapon Talent: " + ((weapon_talent_names.findIndex(wt => wt.name === attributeArray[4])+1)*10));
queries[2] = "" + ((weapon_talent_names.findIndex(wt => wt.name === attributeArray[4])+1)*10) + "";
}
console.log(queries);
resolveChallenge(queries,queryValues)
});
});
}
function createRollQueries(values,weapon_talent_names){
var ba_string = "";
for(const id in baseAttributes){
ba_string += baseAttributes[id] +"," + id + "|";
}
ba_string = ba_string.slice(0,ba_string.length -1);
var queryBa = "?{" + getTranslationByKey("base-attribute-question") + "|" +
ba_string + "}";
var queryDiff = "?{" + getTranslationByKey("difficulty-question") + "|+0}";
var talent_string = "";
for(const id in talents){
console.log(id);
talent_string += talents[id] +"," + id + "|";
}
var weapon_talent_string = "";
console.log("Weapon Talent Names");
console.log(weapon_talent_names);
for(const weapon_talent of weapon_talent_names){
console.log(weapon_talent.name);
weapon_talent_string += weapon_talent.name +"," + (weapon_talent_names.indexOf(weapon_talent)+1) + "0|";
}
weapon_talent_string = weapon_talent_string.slice(0,weapon_talent_string.length -1);
var queryTa = "?{" + getTranslationByKey("skilled-question") + "|" +
getTranslationByKey("none") + ",-2|" +
getTranslationByKey("profession-detailed").replace("{}",values.chr_profession) + ",-1|" +
talent_string +
weapon_talent_string + "}";
return [queryBa,queryDiff,queryTa];
}
function resolveChallenge(queries,queryValues){
startRoll("!{template:challenge} {{ba=[[" + queries[0] + "]]}} {{diff=[[" + queries[1] + "]]}} {{ta=[[" + queries[2] + "]]}}", (results) => {
console.log(results);
/* Construct the getters for the final roll */
var baPoolDice = baseAttributes[results.results.ba.expression];
var difficulty = results.results.diff.expression;
var talent = results.results.ta.expression;
var talent_name = "";
var talent_skilled = "";
var talent_pool = "";
if(talent >= 0 && talent < 10){
talent_name = talents[talent];
talent_skilled = talents[talent] + "-Skilled";
talent_pool = talents[talent] + "-Pool";
}else if(talent == -1){
talent_name = "Profession";
talent_skilled = "true";
talent_pool = "false";
}else if(talent >= 10){
talent_name = weapon_talent_names[(talent-10)/10].name;
talent_skilled = "true";
talent_pool = "repeating_weapon-talents_" + weapon_talent_names[(talent-10)/10].id + "_weapon-talent-pool";
}else{
talent_skilled = "false";
talent_pool = "false";
}
console.log("Hier");
var maxBa = "";
console.log("Chosen BA-ID: " + results.results.ba.expression);
switch(results.results.ba.expression) {
case "0":
maxBa = "maxFor";
console.log(maxBa);
break;
case "1":
maxBa = "maxBod";
console.log(maxBa);
break;
case "2":
maxBa = "maxSpe";
console.log(maxBa);
break;
case "3":
maxBa = "maxInt";
console.log(maxBa);
break;
case "4":
maxBa = "maxFee";
console.log(maxBa);
break;
case "5":
maxBa = "maxExp";
console.log(maxBa);
break;
case "6":
maxBa = "maxImp";
console.log(maxBa);
break;
}
const attrs = [baPoolDice,talent_skilled,talent_pool,maxBa];
console.log(attrs);
getAttrs(attrs, function(values) {
console.log(values);
const diff = "13-" + (parseInt(values[talent_skilled] || 0) * 5) + "[Skilled] " + difficulty;
console.log("Ba ("+maxBa+"): "+values[maxBa]+" is < than "+parseInt(values[baPoolDice] || 0));
const baPool = (values[maxBa] < parseInt(values[baPoolDice] || 0)) ? values[maxBa] : parseInt(values[baPoolDice] || 0);
console.log(values[talent_pool]);
const pool = baPool + parseInt(values[talent_pool] || 0);
console.log("{{roll1=[[" + pool +"d20]]}}");
const titleText = getTranslationByKey("rq-challenge-title").replace("{}",baseAttributes[results.results.ba.expression]);
const baText = getTranslationByKey("rq-challenge-ba").replace("{}",baseAttributes[results.results.ba.expression]);
const char_nameText = queryValues.character_name;
const diffText = getTranslationByKey("rq-challenge-diff").replace("{}",diff);
const difficultyText = difficulty;
const taText = getTranslationByKey("rq-challenge-ta").replace("{}",talent_name);
const skText = (values[talent_skilled] == 1? "Skilled" : "Unskilled");
const plText = getTranslationByKey("rq-challenge-pl").replace("{}",values[talent_pool]);
const roll1Text = getTranslationByKey("rq-challenge-roll1").replace("{}",pool);
startRoll("&{template:challenge} {{title=" + titleText + "}} {{ba=" + baText + "}} {{char_name=" + char_nameText + "}} {{diff= " + diffText + "}} {{difficulty=" + difficultyText + "}} {{ta=" + taText + "}} {{sk=" + skText + "}} {{pl=" + plText + "}} {{roll1=" + roll1Text + "}}", (results) => {
console.log("Final Roll:");
console.log(results.results.diff.result,results.results.roll1.dice);
const computed = rollChallenge(results.results.diff.result,results.results.roll1.dice);
console.log(computed);
finishRoll(
results.rollId,
{
roll1: computed
}
);
});
});
});
}
function rollChallenge(diff,rolls){
let result = 0;
for (let i = 0; i < rolls.length; i++) {
if(rolls[i] >= diff){
result++;
if(rolls[i] == 20){
result++;
}
}
}
return result;
}
on('clicked:rest-action', (info) => {
getAttrs(["character_name","Luck","maxLuck","Hp","maxHp","dHp"], function(values) {
const name = values.character_name;
var Luck = parseInt(values.Luck) || 0;
const maxLuck = parseInt(values.maxLuck) || 0;
var Hp = parseInt(values.Hp) || 0;
const maxHp = parseInt(values.maxHp) || 0;
const dHp = parseInt(values.dHp) || 0;
startRoll("!{template:action} {{talebound=[[?{Is the Rest Talebound? | No,0|Yes,1}]]}}", (results) => {
var talebound = "";
if(results.results.talebound.expression == 1){
talebound = "Talebound ";
Luck += 1;
Luck = (Luck > maxLuck) ? maxLuck : Luck;
Hp = maxHp + dHp;
}else{
Luck += 1;
Luck = (Luck > maxLuck) ? maxLuck : Luck;
Hp = (Hp > ((maxHp+dHp)/2)) ? Hp : ((maxHp+dHp)/2);
}
var attrsToChange = {};
attrsToChange["Luck"] = Luck;
attrsToChange["Hp"] = Hp;
setAttrs(attrsToChange);
const taleboundText = getTranslationByKey("rq-rest-title").replace("{}",talebound);
const character_nameText = getTranslationByKey("rq-rest-content").replace("{}",values.character_name);
const hpText = getTranslationByKey("rq-rest-info").replace("{}",Hp);
startRoll("&{template:rest} {{talebound=" + taleboundText + "}} {{character_name=" + character_nameText + "}} {{currHp=" + hpText + "}}", (results) => {
finishRoll(
results.rollId
);
});
});
});
});
on('clicked:draw-action', (info) => {
getAttrs(["Ap","character_name"], function(values) {
const name = "Draw";
const succesfulDesc = getTranslationByKey("action-draw-succesful").replace("{}",values.character_name);
const failedDesc = getTranslationByKey("action-draw-failed").replace("{}",values.character_name);
const apCost = 1;
const currAp = (parseInt(values["Ap"]) || 0);
performAction(name,succesfulDesc,failedDesc,apCost,currAp);
});
});
on('clicked:help-action', (info) => {
console.log("Help");
getAttrs(["Ap","character_name"], function(values) {
const name = "Help";
const succesfulDesc = getTranslationByKey("action-help-succesful").replace("{}",values.character_name);
const failedDesc = getTranslationByKey("action-help-failed").replace("{}",values.character_name);
const apCost = 4;
const currAp = (parseInt(values["Ap"]) || 0);
performAction(name,succesfulDesc,failedDesc,apCost,currAp);
});
});
on('clicked:dash-action', (info) => {
console.log("Dash");
getAttrs(["Ap","character_name", "Speed"], function(values) {
const name = "Dash";
const succesfulDesc = getTranslationByKey("action-dash-succesful").replace("{}",values.character_name).replace("{0}",values.Speed);
const failedDesc = getTranslationByKey("action-dash-failed").replace("{}",values.character_name);
const apCost = 2;
const currAp = (parseInt(values["Ap"]) || 0);
performAction(name,succesfulDesc,failedDesc,apCost,currAp);
});
});
on('clicked:move-action', (info) => {
console.log("Move");
getAttrs(["Ap","character_name", "Speed"], function(values) {
const name = "Move";
const succesfulDesc = getTranslationByKey("action-move-succesful").replace("{}",values.character_name).replace("{0}",values.Speed * 2);
const failedDesc = getTranslationByKey("action-move-failed").replace("{}",values.character_name);
const apCost = 6;
const currAp = (parseInt(values["Ap"]) || 0);
performAction(name,succesfulDesc,failedDesc,apCost,currAp);
});
});
on('clicked:sprint-action', (info) => {
console.log("Sprint");
getAttrs(["Ap","character_name", "Speed"], function(values) {
const name = "Sprint";
const succesfulDesc = getTranslationByKey("action-sprint-succesful").replace("{}",values.character_name).replace("{0}",values.Speed * 3);
const failedDesc = getTranslationByKey("action-sprint-failed").replace("{}",values.character_name);
const apCost = 5;
const currAp = (parseInt(values["Ap"]) || 0);
performAction(name,succesfulDesc,failedDesc,apCost,currAp);
});
});
on('clicked:signature-move-action', (info) => {
console.log("Signature Move");
getAttrs(["Ap","character_name", "signature-move-name", "signature-move-ap", "signature-move-desc", "Charge"], function(values) {
const name = values["signature-move-name"];
const desc = values["signature-move-desc"];
const succesfulDesc = values.character_name + " performs the Signature Move " + name + ".";
const failedDesc = values.character_name + " wasn't able to perform the Signature Move " + name + ".";
const apCost = (parseInt(values["signature-move-ap"]) || 0);
const currAp = (parseInt(values["Ap"]) || 0);
const chargeCost = 3;
const currCharge = (parseInt(values["Charge"]) || 0);
performSignatureMove(name,desc,succesfulDesc,failedDesc,apCost,currAp,chargeCost,currCharge);
});
});
function performAction(name,succesfulDesc,failedDesc,cost,ap){
var apIsSpent = false;
var newAp = ap - cost;
if(newAp < 0){
newAp = ap;
apIsSpent = true;
}
var attrsToChange = {};
attrsToChange["Ap"] = newAp;
setAttrs(attrsToChange);
var nameText = getTranslationByKey("rq-action-title").replace("{}",name);
var descText = succesfulDesc;
var costText = getTranslationByKey("rq-action-cost").replace("{}",cost);
if(apIsSpent){
nameText = getTranslationByKey("rq-action-title-failed").replace("{}",name);
descText = failedDesc;
costText = getTranslationByKey("rq-action-cost-failed").replace("{}",cost);
}
startRoll("&{template:action} {{name=" + nameText + "}} {{desc=" + descText + "}} {{cost=" + costText + "}}", (results) => {
console.log(results);
finishRoll(
results.rollId
);
});
}
function performSignatureMove(name,desc,succesfulDesc,failedDesc,cost,ap, chargeCost, charge){
var apIsSpent = false;
var newAp = ap - cost;
var attrsToChange = {};
var chargeIsSpent = false;
var newCharge = charge - chargeCost;
if(newAp < 0 || newCharge < 0){
apIsSpent = newAp < 0;
chargeIsSpent = newCharge < 0;
newAp = ap;
newCharge = charge;
}
var attrsToChange = {};
attrsToChange["Ap"] = newAp;
attrsToChange["Charge"] = newCharge;
setAttrs(attrsToChange);
var nameText = getTranslationByKey("rq-signature-move-title").replace("{}",name);
var desc1Text = succesfulDesc;
var desc2Text = getTranslationByKey("rq-signature-move-desc").replace("{}",desc);
var costText = getTranslationByKey("rq-signature-move-cost").replace("{}",cost);
if(apIsSpent){
nameText = getTranslationByKey("rq-signature-move-title-failed").replace("{}",name);
desc1Text = failedDesc;
costText = getTranslationByKey("rq-signature-move-cost-failed-ap").replace("{}",cost);
}else if(chargeIsSpent){
nameText = getTranslationByKey("rq-signature-move-title-failed").replace("{}",name);
desc1Text = failedDesc;
costText = getTranslationByKey("rq-signature-move-cost-failed-charge").replace("{}",cost);
}
startRoll("&{template:signature-move} {{name=" + nameText + "}} {{desc1=" + desc1Text + "}} {{desc2=" + desc2Text + "}} {{cost=" + costText + "}}", (results) => {
console.log(results);
finishRoll(
results.rollId
);
});
}
on('clicked:dec-ba', (info) => {
console.log("Change Base Attribute Maximum");
getAttrs(["max_force_extended","max_body_extended","max_speed_extended","max_intelligence_extended","max_feel_extended","max_experience_extended","max_impression_extended"], function(values) {
const force = (values["max_force_extended"] == 1) ? true : false;
console.log("force " + force);
const body = (values["max_body_extended"] == 1) ? true : false;
console.log("body " + body);
const speed = (values["max_speed_extended"] == 1) ? true : false;
console.log("speed " + speed);
const intelligence = (values["max_intelligence_extended"] == 1) ? true : false;
console.log("intelligence " + intelligence);
const feel = (values["max_feel_extended"] == 1) ? true : false;
console.log("feel " + feel);
const experience = (values["max_experience_extended"] == 1) ? true : false;
console.log("experience " + experience);
const impression = (values["max_impression_extended"] == 1) ? true : false;
console.log("impression " + impression);
var questionString = "?{" + getTranslationByKey("rq-dec-ba-max");
questionString += force ? "|"+baseAttributes[0]+",0" : "";
questionString += body ? "|"+baseAttributes[1]+",1" : "";
questionString += speed ? "|"+baseAttributes[2]+",2" : "";
questionString += intelligence ? "|"+baseAttributes[3]+",3" : "";
questionString += feel ? "|"+baseAttributes[4]+",4" : "";
questionString += experience ? "|"+baseAttributes[5]+",5" : "";
questionString += impression ? "|"+baseAttributes[6]+",6" : "";
if(questionString === "?{" + getTranslationByKey("rq-dec-ba-max")){
questionString += "|" + getTranslationByKey("rq-dec-ba-max-failed") + ",-2|" + getTranslationByKey("none") + ",-1}";
}else{
questionString += "|" + getTranslationByKey("none") + ",-1}";
}
console.log(questionString);
startRoll("!{template:default} {{stat=[[" + questionString + "]]}}", (results) => {
console.log(results.results.stat.result);
const ba = results.results.stat.result;
var attrsToChange = {};
switch(ba) {
case 0:
attrsToChange["maxFor"] = 5;
break;
case 1:
attrsToChange["maxBod"] = 5;
break;
case 2:
attrsToChange["maxSpe"] = 5;
break;
case 3:
attrsToChange["maxInt"] = 5;
break;
case 4:
attrsToChange["maxFee"] = 5;
break;
case 5:
attrsToChange["maxExp"] = 5;
break;
case 6:
attrsToChange["maxImp"] = 5;
break;
default:
// code block
}
setAttrs(attrsToChange);
finishRoll(
results.rollId
);
});
});
});
on('clicked:inc-ba', (info) => {
console.log("Change Base Attribute Maximum");
getAttrs(["max_force_extended","max_body_extended","max_speed_extended","max_intelligence_extended","max_feel_extended","max_experience_extended","max_impression_extended"], function(values) {
const force = (values["max_force_extended"] == 0) ? true : false;
console.log("force " + force);
const body = (values["max_body_extended"] == 0) ? true : false;
console.log("body " + body);
const speed = (values["max_speed_extended"] == 0) ? true : false;
console.log("speed " + speed);
const intelligence = (values["max_intelligence_extended"] == 0) ? true : false;
console.log("intelligence " + intelligence);
const feel = (values["max_feel_extended"] == 0) ? true : false;
console.log("feel " + feel);
const experience = (values["max_experience_extended"] == 0) ? true : false;
console.log("experience " + experience);
const impression = (values["max_impression_extended"] == 0) ? true : false;
console.log("impression " + impression);
var questionString = "?{" + getTranslationByKey("rq-inc-ba-max");
questionString += force ? "|"+baseAttributes[0]+",0" : "";
questionString += body ? "|"+baseAttributes[1]+",1" : "";
questionString += speed ? "|"+baseAttributes[2]+",2" : "";
questionString += intelligence ? "|"+baseAttributes[3]+",3" : "";
questionString += feel ? "|"+baseAttributes[4]+",4" : "";
questionString += experience ? "|"+baseAttributes[5]+",5" : "";
questionString += impression ? "|"+baseAttributes[6]+",6" : "";
if(questionString === "?{" + getTranslationByKey("rq-inc-ba-max")){
questionString += "|" + getTranslationByKey("rq-inc-ba-max") + ",-2|" + getTranslationByKey("none") + ",-1}";
}else{
questionString += "|" + getTranslationByKey("none") + ",-1}";
}
console.log(questionString);
startRoll("!{template:default} {{stat=[[" + questionString + "]]}}", (results) => {
console.log(results.results.stat.result);
const ba = results.results.stat.result;
var attrsToChange = {};
switch(ba) {
case 0:
attrsToChange["maxFor"] = 6;
break;
case 1:
attrsToChange["maxBod"] = 6;
break;
case 2:
attrsToChange["maxSpe"] = 6;
break;
case 3:
attrsToChange["maxInt"] = 6;
break;
case 4:
attrsToChange["maxFee"] = 6;
break;
case 5:
attrsToChange["maxExp"] = 6;
break;
case 6:
attrsToChange["maxImp"] = 6;
break;
default:
// code block
}
setAttrs(attrsToChange);
finishRoll(
results.rollId
);
});
});
});
</script>