Files
roll20-character-sheets/StarWars5E/StarWars5E_HTML.html
T

13748 lines
935 KiB
HTML

<div class="container">
<!-- HEADER -->
<input class="npc_toggle" name="attr_npc" type="hidden" value="0">
<!-- NPC -->
<div class="container npc">
<input class="npc_options-flag" type="checkbox" name="attr_npc_options-flag" checked="checked"><span>y</span>
<div class="npc_options">
<div class="sheet-row title">
<span data-i18n="npc-options-u">NPC OPTIONS</span>
</div>
<div class="sheet-row">
<span data-i18n="name-u">NAME</span>
<input type="text" name="attr_npc_name">
</div>
<div class="sheet-row">
<span data-i18n="npc-type-u">NPC TYPE</span>
<input type="text" name="attr_npc_type" placeholder="Medium fiend, any evil alignment" data-i18n-placeholder="npc-type-place">
</div>
<div class="sheet-row">
<span data-i18n="armor-class-u">ARMOR CLASS</span>
<input class="num" type="text" name="attr_npc_ac" placeholder="10">
<span data-i18n="type-u">TYPE</span>
<input type="text" name="attr_npc_actype" placeholder="scale mail" data-i18n-placeholder="npc-armor-place" value="">
</div>
<div class="sheet-row">
<span data-i18n="hit-points-u">HIT POINTS</span>
<input class="num" type="text" name="attr_hp_max" placeholder="82">
<span data-i18n="formula-u">FORMULA</span>
<input type="text" name="attr_npc_hpformula" placeholder="11d8 + 33">
</div>
<div class="sheet-row">
<span data-i18n="speed-u">SPEED</span>
<input type="text" name="attr_npc_speed" placeholder="30 ft., fly 60ft." data-i18n-placeholder="npc-speed-place">
</div>
<div class="spacer"></div>
<div class="sheet-row">
<span data-i18n="attributes-u">ATTRIBUTES</span>
</div>
<div class="sheet-row">
<span data-i18n="str-u">STR</span>
<input class="num" type="text" name="attr_strength_base" value="10">
<span data-i18n="dex-u">DEX</span>
<input class="num" type="text" name="attr_dexterity_base" value="10">
<span data-i18n="con-u">CON</span>
<input class="num" type="text" name="attr_constitution_base" value="10">
<span data-i18n="int-u">INT</span>
<input class="num" type="text" name="attr_intelligence_base" value="10">
<span data-i18n="wis-u">WIS</span>
<input class="num" type="text" name="attr_wisdom_base" value="10">
<span data-i18n="cha-u">CHA</span>
<input class="num" type="text" name="attr_charisma_base" value="10">
</div>
<div class="spacer"></div>
<div class="sheet-row">
<span data-i18n="saves-u">SAVES</span>
</div>
<div class="sheet-row">
<span data-i18n="str-u">STR</span>
<input class="num" type="text" name="attr_npc_str_save_base" placeholder="0">
<span data-i18n="dex-u">DEX</span>
<input class="num" type="text" name="attr_npc_dex_save_base" placeholder="0">
<span data-i18n="con-u">CON</span>
<input class="num" type="text" name="attr_npc_con_save_base" placeholder="0">
<span data-i18n="int-u">INT</span>
<input class="num" type="text" name="attr_npc_int_save_base" placeholder="0">
<span data-i18n="wis-u">WIS</span>
<input class="num" type="text" name="attr_npc_wis_save_base" placeholder="0">
<span data-i18n="cha-u">CHA</span>
<input class="num" type="text" name="attr_npc_cha_save_base" placeholder="0">
<input type="hidden" name="attr_npc_str_save" value="@{strength_mod}">
<input type="hidden" name="attr_npc_dex_save" value="@{dexterity_mod}">
<input type="hidden" name="attr_npc_con_save" value="@{constitution_mod}">
<input type="hidden" name="attr_npc_int_save" value="@{intelligence_mod}">
<input type="hidden" name="attr_npc_wis_save" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_cha_save" value="@{charisma_mod}">
</div>
<div class="spacer"></div>
<div class="sheet-row">
<span data-i18n="skills-u">SKILLS</span>
</div>
<div class="sheet-row skills-list" data-i18n-list="skills-list">
<div class="sheet-col">
<div class="sheet-row" data-i18n-list-item="acrobatics">
<span data-i18n="acrobatics-u">ACROBATICS</span>
<input class="num" type="text" name="attr_npc_acrobatics_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="animal_handling">
<span data-i18n="animal_handling-u">ANIMAL HANDLING</span>
<input class="num" type="text" name="attr_npc_animal_handling_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="athletics">
<span data-i18n="athletics-u">ATHLETICS</span>
<input class="num" type="text" name="attr_npc_athletics_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="deception">
<span data-i18n="deception-u">DECEPTION</span>
<input class="num" type="text" name="attr_npc_deception_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="insight">
<span data-i18n="insight-u">INSIGHT</span>
<input class="num" type="text" name="attr_npc_insight_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="intimidation">
<span data-i18n="intimidation-u">INTIMIDATION</span>
<input class="num" type="text" name="attr_npc_intimidation_base" placeholder="0">
</div>
</div>
<div class="sheet-col" data-i18n-list-sublist>
<div class="sheet-row" data-i18n-list-item="investigation">
<span data-i18n="investigation-u">INVESTIGATION</span>
<input class="num" type="text" name="attr_npc_investigation_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="lore">
<span data-i18n="lore-u">LORE</span>
<input class="num" type="text" name="attr_npc_lore_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="medicine">
<span data-i18n="medicine-u">MEDICINE</span>
<input class="num" type="text" name="attr_npc_medicine_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="nature">
<span data-i18n="nature-u">NATURE</span>
<input class="num" type="text" name="attr_npc_nature_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="perception">
<span data-i18n="perception-u">PERCEPTION</span>
<input class="num" type="text" name="attr_npc_perception_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="performance">
<span data-i18n="performance-u">PERFORMANCE</span>
<input class="num" type="text" name="attr_npc_performance_base" placeholder="0">
</div>
</div>
<div class="sheet-col" data-i18n-list-sublist>
<div class="sheet-row" data-i18n-list-item="persuasion">
<span data-i18n="persuasion-u">PERSUASION</span>
<input class="num" type="text" name="attr_npc_persuasion_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="piloting">
<span data-i18n="piloting-u">PILOTING</span>
<input class="num" type="text" name="attr_npc_piloting_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="sleight_of_hand">
<span data-i18n="sleight_of_hand-u">SLEIGHT OF HAND</span>
<input class="num" type="text" name="attr_npc_sleight_of_hand_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="stealth">
<span data-i18n="stealth-u">STEALTH</span>
<input class="num" type="text" name="attr_npc_stealth_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="survival">
<span data-i18n="survival-u">SURVIVAL</span>
<input class="num" type="text" name="attr_npc_survival_base" placeholder="0">
</div>
<div class="sheet-row" data-i18n-list-item="technology">
<span data-i18n="technology-u">TECHNOLOGY</span>
<input class="num" type="text" name="attr_npc_technology_base" placeholder="0">
</div>
</div>
<input type="hidden" name="attr_npc_acrobatics" value="@{dexterity_mod}">
<input type="hidden" name="attr_npc_animal_handling" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_athletics" value="@{strength_mod}">
<input type="hidden" name="attr_npc_deception" value="@{charisma_mod}">
<input type="hidden" name="attr_npc_insight" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_intimidation" value="@{charisma_mod}">
<input type="hidden" name="attr_npc_investigation" value="@{intelligence_mod}">
<input type="hidden" name="attr_npc_lore" value="@{intelligence_mod}">
<input type="hidden" name="attr_npc_medicine" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_nature" value="@{intelligence_mod}">
<input type="hidden" name="attr_npc_perception" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_performance" value="@{charisma_mod}">
<input type="hidden" name="attr_npc_persuasion" value="@{charisma_mod}">
<input type="hidden" name="attr_npc_piloting" value="@{intelligence_mod}">
<input type="hidden" name="attr_npc_sleight_of_hand" value="@{dexterity_mod}">
<input type="hidden" name="attr_npc_stealth" value="@{dexterity_mod}">
<input type="hidden" name="attr_npc_survival" value="@{wisdom_mod}">
<input type="hidden" name="attr_npc_technology" value="@{intelligence_mod}">
</div>
<div class="sheet-row">
<span data-i18n="damage-vuln-u">DAMAGE VULNERABILITIES</span>
<input type="text" name="attr_npc_vulnerabilities" placeholder="fire" data-i18n-placeholder="npc-dmg-vuln-place">
</div>
<div class="sheet-row">
<span data-i18n="damage-res-u">DAMAGE RESISTANCES</span>
<input type="text" name="attr_npc_resistances" placeholder="cold" data-i18n-placeholder="npc-dmg-res-place">
</div>
<div class="sheet-row">
<span data-i18n="damage-imm-u">DAMAGE IMMUNITIES</span>
<input type="text" name="attr_npc_immunities" placeholder="lighting, thunder" data-i18n-placeholder="npc-dmg-imm-place">
</div>
<div class="sheet-row">
<span data-i18n="cond-imm-u">CONDITION IMMUNITIES</span>
<input type="text" name="attr_npc_condition_immunities" placeholder="charmed" data-i18n-placeholder="npc-cond-imm-place">
</div>
<div class="sheet-row">
<span data-i18n="senses-u">SENSES</span>
<input type="text" name="attr_npc_senses" placeholder="darkvision 120ft., passive Perception 16" data-i18n-placeholder="npc-senses-place">
</div>
<div class="sheet-row">
<span data-i18n="langs-u">LANGUAGES</span>
<input type="text" name="attr_npc_languages" placeholder="Abyssal, Common, Infernal" value="—" data-i18n-placeholder="npc-langs-place">
</div>
<div class="sheet-row">
<span data-i18n="challenge-u">CHALLENGE</span>
<input class="num" type="text" name="attr_npc_challenge" placeholder="1">
<span data-i18n="xp-u">XP</span>
<input type="text" name="attr_npc_xp" placeholder="250">
</div>
<div class="sheet-row">
<span data-i18n="token_size-u">TOKEN SIZE</span>
<input class="text" name="attr_token_size" value="1" placeholder="1">
</div>
<div class="sheet-row">
<input class="npcpowercastingflag" type="checkbox" name="attr_npcpowercastingflag" value="1">
<span data-i18n="powercast-npc-u">POWERCASTING NPC</span>
<div class="npcpoweroptions">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_powercasting_ability" style="margin: 0px; width: auto; padding: 0px; height: 15px;">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="npcpoweroptions">
<div class="sheet-row">
<span data-i18n="glob-atk-mod:-u">GLOBAL POWER ATTACK MODIFIER:</span>
<input type="text" class="num" name="attr_globalpowermod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="power-caster-lvl:-u">POWER CASTER LEVEL:</span>
<input type="text" class="num" name="attr_caster_level">
</div>
<div class="sheet-row">
<span data-i18n="power_dc_mod:-u">POWER SAVE DC MOD:</span>
<input type="text" class="num" name="attr_power_dc_mod" placeholde="0" value="0">
</div>
</div>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_npcreactionsflag" value="1">
<span data-i18n="has-reaction-u">HAS REACTIONS</span>
</div>
<div class="sheet-row">
<span data-i18n="leg-actions:-u">LEGENDARY ACTIONS:</span>
<input class="num" type="text" name="attr_npc_legendary_actions" value="0" placeholder="0">
</div>
<div class="sheet-row title">
<span data-i18n="gen-opts-u">GENERAL OPTIONS</span>
</div>
<div class="sheet-row">
<span>SHEET TYPE:</span>
<select name="attr_npc">
<option value="0">PC</option>
<option value="1">NPC</option>
<option value="2">Ship</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="roll-queries:-u">ROLL QUERIES:</span>
<select name="attr_rtype">
<option value="{{always=1}} {{r2=[[@{d20}" data-i18n="always-adv">Always Roll Advantage</option>
<option value="@{advantagetoggle}" data-i18n="adv-toggle">Advantage Toggle</option>
<option value="{{query=1}} ?{Advantage?|Normal Roll,&#123&#123normal=1&#125&#125 &#123&#123r2=[[0d20|Advantage,&#123&#123advantage=1&#125&#125 &#123&#123r2=[[@{d20}|Disadvantage,&#123&#123disadvantage=1&#125&#125 &#123&#123r2=[[@{d20}}" data-i18n="query-adv">Query Advantage</option>
<option value="{{normal=1}} {{r2=[[0d20" data-i18n="never-adv">Never Roll Advantage</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="whisp-rolls-gm:-u">WHISPER ROLLS TO GM:</span>
<select name="attr_wtype">
<option value="" data-i18n="never-whisper-roll">Never Whisper Rolls</option>
<option value="@{whispertoggle}" data-i18n="toggle-roll-whisper">Whisper Toggle</option>
<option value="?{Whisper?|Public Roll,|Whisper Roll,/w gm }" data-i18n="query-whisper-roll">Query Whisper</option>
<option value="/w gm " data-i18n="always-whisper-roll">Always Whisper Rolls</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="auto-dmg-roll:-u">AUTO DAMAGE ROLL:</span>
<select class="dtype" name="attr_dtype">
<option value="pick" data-i18n="never-dmg">Don't Auto Roll Damage</option>
<option value="full" data-i18n="always-dmg">Auto Roll Damage & Crit</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="npc-name-in-rolls:-u">NPC NAME IN ROLLS:</span>
<select name="attr_npc_name_flag">
<option value="{{name=@{npc_name}}}" data-i18n="show">Show</option>
<option value="0" data-i18n="hide">Hide</option>
</select>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_init_tiebreaker" value="@{dexterity}/100">
<span data-i18n="add-dex-tiebreaker-u">ADD DEX TIEBREAKER TO INITIATIVE</span>
</div>
</div>
<div class="npc_display_row">
<div class="display">
<div class="sheet-row title red">
<button type="roll" name="roll_npc_init" style="width: 100%;" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{init}}} {{mod=[[[[@{initiative_bonus}]][DEX]]]}} {{r1=[[@{d20}+[[@{initiative_bonus}]][DEX] &{tracker}]]}} {{normal=1}} {{type=Initiative}}">
<span name="attr_npc_name"></span>
</button>
</div>
<div class="sheet-row subtitle" style="margin-top: -5px;">
<span class="italics" name="attr_npc_type"></span>
</div>
<div class="triangle"></div>
<div class="button-row flex-row flex-justify-sb triangle">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
</div>
<div class="sheet-row red" style="position:relative;">
<span data-i18n="ac" class="bold">Armor Class</span>
<span class="num" name="attr_npc_ac"></span>
<input class="actype" type="hidden" name="attr_npc_actype" value="">
<span class="parens" name="attr_npc_actype"></span>
<button type="roll" name="roll_npc_init" style="position: absolute; right: 5px; height: 30px; width: 20px;" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{init}}} {{mod=[[[[@{initiative_bonus}]][DEX]]]}} {{r1=[[@{d20}+[[@{initiative_bonus}]][DEX] &{tracker}]]}} {{normal=1}} {{type=Initiative}}">
<span class="npc-init-die">t</span>
<span style="display: block;">INIT</span>
</button>
</div>
<div class="sheet-row red">
<span data-i18n="hp" class="bold">Hit Points</span>
<span class="num3" name="attr_hp_max"></span>
<button type="roll" name="roll_npc_hpformula" value="@{wtype}&{template:npc} {{type=Hit Points}} {{normal=1}} @{npc_name_flag} {{rname=^{hp}}} {{mod=@{npc_hpformula}}} {{r1=[[@{npc_hpformula}]]}} charname=@{character_name}">
<span class="parens" name="attr_npc_hpformula" style="font-size: 12px; font-weight: normal;"></span>
</button>
</div>
<div class="sheet-row red">
<span data-i18n="speed" class="bold">Speed</span>
<span name="attr_npc_speed"></span>
</div>
<div class="triangle"></div>
<div class="sheet-row red">
<div class="attr-container">
<button type="roll" name="roll_npc_str" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{strength}}} {{mod=[[[[@{strength_mod}]][STR]]]}} {{r1=[[@{d20}+[[@{strength_mod}]][STR]]]}} @{rtype}+[[@{strength_mod}]][STR]]]}} {{type=Ability}}">
<span class="bold" data-i18n="str-u">STR</span>
<span name="attr_strength"></span>
<input class="negativeflag" type="hidden" name="attr_npc_str_negative" value="0">
<span class="npcattr" name="attr_strength_mod"></span>
</button>
</div>
<div class="attr-container">
<button type="roll" name="roll_npc_dex" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{dexterity}}} {{mod=[[[[@{dexterity_mod}]][DEX]]]}} {{r1=[[@{d20}+[[@{dexterity_mod}]][DEX]]]}} @{rtype}+[[@{dexterity_mod}]][DEX]]]}} {{type=Ability}}">
<span class="bold" data-i18n="dex-u">DEX</span>
<span name="attr_dexterity"></span>
<input class="negativeflag" type="hidden" name="attr_npc_dex_negative" value="0">
<span class="npcattr" name="attr_dexterity_mod"></span>
</button>
</div>
<div class="attr-container">
<button type="roll" name="roll_npc_con" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{constitution}}} {{mod=[[[[@{constitution_mod}]][CON]]]}} {{r1=[[@{d20}+[[@{constitution_mod}]][CON]]]}} @{rtype}+[[@{constitution_mod}]][CON]]]}} {{type=Ability}}">
<span class="bold" data-i18n="con-u">CON</span>
<span name="attr_constitution"></span>
<input class="negativeflag" type="hidden" name="attr_npc_con_negative" value="0">
<span class="npcattr" name="attr_constitution_mod"></span>
</button>
</div>
<div class="attr-container">
<button type="roll" name="roll_npc_int" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{intelligence}}} {{mod=[[[[@{intelligence_mod}]][INT]]]}} {{r1=[[@{d20}+[[@{intelligence_mod}]][INT]]]}} @{rtype}+[[@{intelligence_mod}]][INT]]]}} {{type=Ability}}">
<span class="bold" data-i18n="int-u">INT</span>
<span name="attr_intelligence"></span>
<input class="negativeflag" type="hidden" name="attr_npc_int_negative" value="0">
<span class="npcattr" name="attr_intelligence_mod"></span>
</button>
</div>
<div class="attr-container">
<button type="roll" name="roll_npc_wis" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{wisdom}}} {{mod=[[[[@{wisdom_mod}]][WIS]]]}} {{r1=[[@{d20}+[[@{wisdom_mod}]][WIS]]]}} @{rtype}+[[@{wisdom_mod}]][WIS]]]}} {{type=Ability}}">
<span class="bold" data-i18n="wis-u">WIS</span>
<span name="attr_wisdom"></span>
<input class="negativeflag" type="hidden" name="attr_npc_wis_negative" value="0">
<span class="npcattr" name="attr_wisdom_mod"></span>
</button>
</div>
<div class="attr-container">
<button type="roll" name="roll_npc_cha" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{charisma}}} {{mod=[[[[@{charisma_mod}]][CHA]]]}} {{r1=[[@{d20}+[[@{charisma_mod}]][CHA]]]}} @{rtype}+[[@{charisma_mod}]][CHA]]]}} {{type=Ability}}">
<span class="bold" data-i18n="cha-u">CHA</span>
<span name="attr_charisma"></span>
<input class="negativeflag" type="hidden" name="attr_npc_cha_negative" value="0">
<span class="npcattr" name="attr_charisma_mod"></span>
</button>
</div>
</div>
<div class="triangle"></div>
<input class="flag" type="hidden" name="attr_npc_saving_flag" value="">
<div class="sheet-row saving red">
<span class="bold" data-i18n="saving-throw">Saving Throws</span>
<input class="flag" type="hidden" name="attr_npc_str_save_flag" value="0">
<button type="roll" name="roll_npc_str_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{strength-save}}} {{mod=[[[[@{npc_str_save}]][STR SAVE]]]}} {{r1=[[@{d20}+[[@{npc_str_save}]][STR SAVE]]]}} @{rtype}+[[@{npc_str_save}]][STR SAVE]]]}} {{type=Save}}">
<span data-i18n="str">Str</span>
<span class="stat" name="attr_npc_str_save"></span>
</button>
<input class="flag" type="hidden" name="attr_npc_dex_save_flag" value="0">
<button type="roll" name="roll_npc_dex_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{dexterity-save}}} {{mod=[[[[@{npc_dex_save}]][DEX SAVE]]]}} {{r1=[[@{d20}+[[@{npc_dex_save}]][DEX SAVE]]]}} @{rtype}+[[@{npc_dex_save}]][DEX SAVE]]]}} {{type=Save}}">
<span data-i18n="dex">Dex</span>
<span class="stat" name="attr_npc_dex_save"></span>
</button>
<input class="flag" type="hidden" name="attr_npc_con_save_flag" value="0">
<button type="roll" name="roll_npc_con_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{constitution-save}}} {{mod=[[[[@{npc_con_save}]][CON SAVE]]]}} {{r1=[[@{d20}+[[@{npc_con_save}]][CON SAVE]]]}} @{rtype}+[[@{npc_con_save}]][CON SAVE]]]}} {{type=Save}}">
<span data-i18n="con">Con</span>
<span class="stat" name="attr_npc_con_save"></span>
</button>
<input class="flag" type="hidden" name="attr_npc_int_save_flag" value="0">
<button type="roll" name="roll_npc_int_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{intelligence-save}}} {{mod=[[[[@{npc_int_save}]][INT SAVE]]]}} {{r1=[[@{d20}+[[@{npc_int_save}]][INT SAVE]]]}} @{rtype}+[[@{npc_int_save}]][INT SAVE]]]}} {{type=Save}}">
<span data-i18n="int">Int</span>
<span class="stat" name="attr_npc_int_save"></span>
</button>
<input class="flag" type="hidden" name="attr_npc_wis_save_flag" value="0">
<button type="roll" name="roll_npc_wis_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{wisdom-save}}} {{mod=[[[[@{npc_wis_save}]][WIS SAVE]]]}} {{r1=[[@{d20}+[[@{npc_wis_save}]][WIS SAVE]]]}} @{rtype}+[[@{npc_wis_save}]][WIS SAVE]]]}} {{type=Save}}">
<span data-i18n="wis">Wis</span>
<span class="stat" name="attr_npc_wis_save"></span>
</button>
<input class="flag" type="hidden" name="attr_npc_cha_save_flag" value="0">
<button type="roll" name="roll_npc_cha_save" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{charisma-save}}} {{mod=[[[[@{npc_cha_save}]][CHA SAVE]]]}} {{r1=[[@{d20}+[[@{npc_cha_save}]][CHA SAVE]]]}} @{rtype}+[[@{npc_cha_save}]][CHA SAVE]]]}} {{type=Save}}">
<span data-i18n="cha">Cha</span>
<span class="stat" name="attr_npc_cha_save"></span>
</button>
</div>
<input class="flag" type="hidden" name="attr_npc_skills_flag" value="">
<div class="sheet-row skills skills-list red" data-i18n-list="skills-list">
<span class="bold" data-i18n="skills">Skills</span>
<span data-i18n-list-item="acrobatics">
<input class="flag" type="hidden" name="attr_npc_acrobatics_flag" value="0">
<button type="roll" name="roll_npc_acrobatics" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{acrobatics}}} {{mod=@{npc_acrobatics}}} {{r1=[[@{d20}+@{npc_acrobatics}]]}} @{rtype}+@{npc_acrobatics}]]}} {{type=Skill}}">
<span data-i18n="acrobatics">Acrobatics</span>
<span class="stat" name="attr_npc_acrobatics"></span>
</button>
</span>
<span data-i18n-list-item="animal_handling">
<input class="flag" type="hidden" name="attr_npc_animal_handling_flag" value="0">
<button type="roll" name="roll_npc_animal_handling" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{animal_handling}}} {{mod=@{npc_animal_handling}}} {{r1=[[@{d20}+@{npc_animal_handling}]]}} @{rtype}+@{npc_animal_handling}]]}} {{type=Skill}}">
<span data-i18n="animal_handling">Animal Handling</span>
<span class="stat" name="attr_npc_animal_handling"></span>
</button>
</span>
<span data-i18n-list-item="athletics">
<input class="flag" type="hidden" name="attr_npc_athletics_flag" value="0">
<button type="roll" name="roll_npc_athletics" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{athletics}}} {{mod=@{npc_athletics}}} {{r1=[[@{d20}+@{npc_athletics}]]}} @{rtype}+@{npc_athletics}]]}} {{type=Skill}}">
<span data-i18n="athletics">Athletics</span>
<span class="stat" name="attr_npc_athletics"></span>
</button>
</span>
<span data-i18n-list-item="deception">
<input class="flag" type="hidden" name="attr_npc_deception_flag" value="0">
<button type="roll" name="roll_npc_deception" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{deception}}} {{mod=@{npc_deception}}} {{r1=[[@{d20}+@{npc_deception}]]}} @{rtype}+@{npc_deception}]]}} {{type=Skill}}">
<span data-i18n="deception">Deception</span>
<span class="stat" name="attr_npc_deception"></span>
</button>
</span>
<span data-i18n-list-item="insight">
<input class="flag" type="hidden" name="attr_npc_insight_flag" value="0">
<button type="roll" name="roll_npc_insight" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{insight}}} {{mod=@{npc_insight}}} {{r1=[[@{d20}+@{npc_insight}]]}} @{rtype}+@{npc_insight}]]}} {{type=Skill}}">
<span data-i18n="insight">Insight</span>
<span class="stat" name="attr_npc_insight"></span>
</button>
</span>
<span data-i18n-list-item="intimidation">
<input class="flag" type="hidden" name="attr_npc_intimidation_flag" value="0">
<button type="roll" name="roll_npc_intimidation" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{intimidation}}} {{mod=@{npc_intimidation}}} {{r1=[[@{d20}+@{npc_intimidation}]]}} @{rtype}+@{npc_intimidation}]]}} {{type=Skill}}">
<span data-i18n="intimidation">Intimidation</span>
<span class="stat" name="attr_npc_intimidation"></span>
</button>
</span>
<span data-i18n-list-item="investigation">
<input class="flag" type="hidden" name="attr_npc_investigation_flag" value="0">
<button type="roll" name="roll_npc_investigation" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{investigation}}} {{mod=@{npc_investigation}}} {{r1=[[@{d20}+@{npc_investigation}]]}} @{rtype}+@{npc_investigation}]]}} {{type=Skill}}">
<span data-i18n="investigation">Investigation</span>
<span class="stat" name="attr_npc_investigation"></span>
</button>
</span>
<span data-i18n-list-item="lore">
<input class="flag" type="hidden" name="attr_npc_lore_flag" value="0">
<button type="roll" name="roll_npc_lore" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{lore}}} {{mod=@{npc_lore}}} {{r1=[[@{d20}+@{npc_lore}]]}} @{rtype}+@{npc_lore}]]}} {{type=Skill}}">
<span data-i18n="lore">Lore</span>
<span class="stat" name="attr_npc_lore"></span>
</button>
</span>
<span data-i18n-list-item="medicine">
<input class="flag" type="hidden" name="attr_npc_medicine_flag" value="0">
<button type="roll" name="roll_npc_medicine" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{medicine}}} {{mod=@{npc_medicine}}} {{r1=[[@{d20}+@{npc_medicine}]]}} @{rtype}+@{npc_medicine}]]}} {{type=Skill}}">
<span data-i18n="medicine">Medicine</span>
<span class="stat" name="attr_npc_medicine"></span>
</button>
</span>
<span data-i18n-list-item="nature">
<input class="flag" type="hidden" name="attr_npc_nature_flag" value="0">
<button type="roll" name="roll_npc_nature" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{nature}}} {{mod=@{npc_nature}}} {{r1=[[@{d20}+@{npc_nature}]]}} @{rtype}+@{npc_nature}]]}} {{type=Skill}}">
<span data-i18n="nature">Nature</span>
<span class="stat" name="attr_npc_nature"></span>
</button>
</span>
<span data-i18n-list-item="perception">
<input class="flag" type="hidden" name="attr_npc_perception_flag" value="0">
<button type="roll" name="roll_npc_perception" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{perception}}} {{mod=@{npc_perception}}} {{r1=[[@{d20}+@{npc_perception}]]}} @{rtype}+@{npc_perception}]]}} {{type=Skill}}">
<span data-i18n="perception">Perception</span>
<span class="stat" name="attr_npc_perception"></span>
</button>
</span>
<span data-i18n-list-item="performance">
<input class="flag" type="hidden" name="attr_npc_performance_flag" value="0">
<button type="roll" name="roll_npc_performance" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{performance}}} {{mod=@{npc_performance}}} {{r1=[[@{d20}+@{npc_performance}]]}} @{rtype}+@{npc_performance}]]}} {{type=Skill}}">
<span data-i18n="performance">Performance</span>
<span class="stat" name="attr_npc_performance"></span>
</button>
</span>
<span data-i18n-list-item="persuasion">
<input class="flag" type="hidden" name="attr_npc_persuasion_flag" value="0">
<button type="roll" name="roll_npc_persuasion" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{persuasion}}} {{mod=@{npc_persuasion}}} {{r1=[[@{d20}+@{npc_persuasion}]]}} @{rtype}+@{npc_persuasion}]]}} {{type=Skill}}">
<span data-i18n="persuasion">Persuasion</span>
<span class="stat" name="attr_npc_persuasion"></span>
</button>
</span>
<span data-i18n-list-item="piloting">
<input class="flag" type="hidden" name="attr_npc_piloting_flag" value="0">
<button type="roll" name="roll_npc_piloting" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{piloting}}} {{mod=@{npc_piloting}}} {{r1=[[@{d20}+@{npc_piloting}]]}} @{rtype}+@{npc_piloting}]]}} {{type=Skill}}">
<span data-i18n="piloting">Piloting</span>
<span class="stat" name="attr_npc_piloting"></span>
</button>
</span>
<span data-i18n-list-item="sleight_of_hand">
<input class="flag" type="hidden" name="attr_npc_sleight_of_hand_flag" value="0">
<button type="roll" name="roll_npc_sleight_of_hand" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{sleight_of_hand}}} {{mod=@{npc_sleight_of_hand}}} {{r1=[[@{d20}+@{npc_sleight_of_hand}]]}} @{rtype}+@{npc_sleight_of_hand}]]}} {{type=Skill}}">
<span data-i18n="sleight_of_hand">Sleight of Hand</span>
<span class="stat" name="attr_npc_sleight_of_hand"></span>
</button>
</span>
<span data-i18n-list-item="stealth">
<input class="flag" type="hidden" name="attr_npc_stealth_flag" value="0">
<button type="roll" name="roll_npc_stealth" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{stealth}}} {{mod=@{npc_stealth}}} {{r1=[[@{d20}+@{npc_stealth}]]}} @{rtype}+@{npc_stealth}]]}} {{type=Skill}}">
<span data-i18n="stealth">Stealth</span>
<span class="stat" name="attr_npc_stealth"></span>
</button>
</span>
<span data-i18n-list-item="survival">
<input class="flag" type="hidden" name="attr_npc_survival_flag" value="0">
<button type="roll" name="roll_npc_survival" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{survival}}} {{mod=@{npc_survival}}} {{r1=[[@{d20}+@{npc_survival}]]}} @{rtype}+@{npc_survival}]]}} {{type=Skill}}">
<span data-i18n="survival">Survival</span>
<span class="stat" name="attr_npc_survival"></span>
</button>
</span>
<span data-i18n-list-item="technology">
<input class="flag" type="hidden" name="attr_npc_technology_flag" value="0">
<button type="roll" name="roll_npc_technology" value="@{wtype}&{template:npc} @{npc_name_flag} {{rname=^{technology}}} {{mod=@{npc_technology}}} {{r1=[[@{d20}+@{npc_technology}]]}} @{rtype}+@{npc_technology}]]}} {{type=Skill}}">
<span data-i18n="technology">Technology</span>
<span class="stat" name="attr_npc_technology"></span>
</button>
</span>
</div>
<input class="flag" type="hidden" name="attr_npc_vulnerabilities">
<div class="sheet-row status vulnerabilities red">
<span class="bold" data-i18n="dmg-vuln">Damage Vulnerabilities</span>
<span class="info" name="attr_npc_vulnerabilities"></span>
</div>
<input class="flag" type="hidden" name="attr_npc_resistances">
<div class="sheet-row status resistances red">
<span class="bold" data-i18n="dmg-res">Damage Resistances</span>
<span class="info" name="attr_npc_resistances"></span>
</div>
<input class="flag" type="hidden" name="attr_npc_immunities">
<div class="sheet-row status immunities red">
<span class="bold" data-i18n="dmg-imm">Damage Immunities</span>
<span class="info" name="attr_npc_immunities"></span>
</div>
<input class="flag" type="hidden" name="attr_npc_condition_immunities">
<div class="sheet-row status condition_immunities red">
<span class="bold" data-i18n="cond-imm">Condition Immunities</span>
<span class="info" name="attr_npc_condition_immunities"></span>
</div>
<div class="sheet-row senses red">
<span class="bold" data-i18n="senses">Senses</span>
<span class="info" name="attr_npc_senses"></span>
</div>
<div class="sheet-row languages red">
<span class="bold" data-i18n="langs">Languages</span>
<span class="info languages" name="attr_npc_languages" value="—"></span>
</div>
<div class="sheet-row red">
<span class="bold" data-i18n="challenge">Challenge</span>
<span class="num" name="attr_npc_challenge"></span>
<span class="parens xp" name="attr_npc_xp"></span>
</div>
<div class="triangle"></div>
<div class="sheet-row traits">
<fieldset class="repeating_npctrait">
<div class="trait">
<input class="npc_options-flag" type="checkbox" name="attr_npc_options-flag" checked="checked"><span>y</span>
<div class="npc_options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name" placeholder="False Appearance."
data-i18n-placeholder="npc-trait-name-place">
</div>
<div class="sheet-row">
<textarea name="attr_desc" placeholder="If the dragon fails..."
data-i18n-placeholder="npc-trait-desc-place"></textarea>
</div>
</div>
<div class="display">
<button class="pick" type="roll" name="roll_npc_trait" value="@{wtype}&{template:npcaction} @{npc_name_flag} {{rname=@{name}}} {{description=@{desc}}} @{charname_output}">
<div class="sheet-row wide">
<span class="bold wide" name="attr_name"></span>
</div>
<span class="description" name="attr_desc"></span>
</button>
</div>
</div>
</fieldset>
</div>
</div>
<div class="actions_container">
<input class="dflag" type="hidden" name="attr_dflag" value="pick">
<div class="sheet-row actions">
<div class="sheet-row actiontitle" style="position: relative;">
<span class="title red" data-i18n="actions">Actions</span>
</div>
<fieldset class="repeating_npcaction">
<div class="action">
<input class="npc_options-flag" type="checkbox" name="attr_npc_options-flag" checked="checked"><span>y</span>
<div class="npc_options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_attack_flag" value="on">
<span data-i18n="attack-u">ATTACK</span>
</div>
<input type="hidden" class="attack_options" name="attr_attack_flag" value="0">
<div class="sheet-row attack_option">
<span data-i18n="type:-u">TYPE:</span>
<select name="attr_attack_type">
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
<span style="margin-left: 15px;" data-i18n="range-reach:-u">RANGE/REACH:</span>
<input type="text" name="attr_attack_range" placeholder="5 ft." style="width: 100px;" data-i18n-placeholder="range-reach-place">
</div>
<div class="sheet-row attack_option">
<span data-i18n="to-hit:-u">TO HIT:</span>
<input type="text" name="attr_attack_tohit" value="0" placeholder="5" style="width: 30px;">
<span style="margin-left: 15px;" data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_attack_target" placeholder="One target" style="width: 100px;" data-i18n-placeholder="to-hit-place">
</div>
<input type="hidden" name="attr_damage_flag">
<div class="sheet-row attack_option">
<span data-i18n="on-hit:-u">ON HIT:</span>
<input type="text" name="attr_attack_damage" placeholder="1d10" style="width: 65px;">
<input type="text" name="attr_attack_damagetype" placeholder="slashing" style="width: 100px;" data-i18n-placeholder="on-hit-place">
<input type="hidden" name="attr_attack_crit">
</div>
<div class="sheet-row attack_option">
<span data-i18n="on-hit2:-u">ON HIT 2:</span>
<input type="text" name="attr_attack_damage2" placeholder="2d6+5" style="width: 65px;">
<input type="text" name="attr_attack_damagetype2" placeholder="fire" style="width: 100px;" data-i18n-placeholder="on-hit-2-place">
<input type="hidden" name="attr_attack_crit2">
</div>
<div class="sheet-row attack_option">
<span data-i18n="desc:-u">DESCRIPTION:</span>
<select name="attr_show_desc">
<option value="@{description}" data-i18n="show">Show</option>
<option value=" " data-i18n="hide">Hide</option>
</select>
</div>
<div class="sheet-row">
<textarea name="attr_description"></textarea>
</div>
</div>
<div class="display">
<button class="pick" type="roll" name="roll_npc_action" value="@{rollbase}">
<div class="sheet-row wide">
<span class="bold wide" name="attr_name"></span>
</div>
<input class="attack_options" type="hidden" name="attr_attack_flag">
<div class="sheet-row attack attack_option">
<span class="italics" name="attr_attack_type"></span><span class="italics"> Weapon Attack: </span><span name="attr_attack_tohitrange">
</div>
<div class="sheet-row attack attack_option">
<span class="italics" style="font-size: 13px; font-weight: normal; vertical-align: middle;" data-i18n="hit:">Hit: </span><span name="attr_attack_onhit" style="vertical-align: middle;"></span>
</div>
<span class="description" name="attr_description"></span>
</button>
</div>
<input type="hidden" name="attr_rollbase">
<button type="roll" style="display: none;" name="roll_npc_dmg" value="@{wtype}&{template:npcdmg} @{damage_flag} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}}"></button>
<button type="roll" style="display: none;" name="roll_npc_crit" value="@{wtype}&{template:npcdmg} @{damage_flag} {{crit=1}} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}} {{crit1=[[@{attack_crit}+0]]}} {{crit2=[[@{attack_crit2}+0]]}}"></button>
</div>
</fieldset>
</div>
<input class="reaction_flag" type="hidden" name="attr_npcreactionsflag">
<div class="sheet-row actions reaction">
<div class="sheet-row actiontitle">
<span class="title red" data-i18n="reactions">Reactions</span>
</div>
<fieldset class="repeating_npcreaction">
<div class="trait">
<input type="text" name="attr_name" placeholder="Parry." data-i18n-placeholder="npc-repeating-name-place">
<textarea name="attr_desc" placeholder="The creature adds 2 to its AC against..." data-i18n-placeholder="npc-repeating-desc-place"></textarea>
</div>
</fieldset>
</div>
<input class="legendary_flag" type="hidden" name="attr_npc_legendary_actions" value="0">
<div class="sheet-row actions legendary">
<div class="sheet-row actiontitle">
<span class="title red" data-i18n="leg-actions">Legendary Actions</span>
</div>
<div class="sheet-row">
<div class="legendaryactions" data-i18n="leg-actions-desc"><span name="attr_npc_legendary_actions_desc"></span></div>
</div>
<fieldset class="repeating_npcaction-l">
<div class="action">
<input class="npc_options-flag" type="checkbox" name="attr_npc_options-flag" checked="checked"><span>y</span>
<div class="npc_options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_attack_flag" value="on">
<span data-i18n="attack-u">ATTACK</span>
</div>
<input type="hidden" class="attack_options" name="attr_attack_flag" value="0">
<div class="sheet-row attack_option">
<span data-i18n="type:-u">TYPE:</span>
<select name="attr_attack_type">
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
<span style="margin-left: 15px;" data-i18n="range-reach:-u">RANGE/REACH:</span>
<input type="text" name="attr_attack_range" placeholder="5 ft." style="width: 100px;" data-i18n-placeholder="range-reach-place">
</div>
<div class="sheet-row attack_option">
<span data-i18n="to-hit:-u">TO HIT:</span>
<input type="text" name="attr_attack_tohit" value="0" placeholder="5" style="width: 30px;">
<span style="margin-left: 15px;" data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_attack_target" placeholder="One target" style="width: 100px;" data-i18n-placeholder="to-hit-place">
</div>
<input type="hidden" name="attr_damage_flag">
<div class="sheet-row attack_option">
<span data-i18n="on-hit:-u">ON HIT:</span>
<input type="text" name="attr_attack_damage" placeholder="1d10" style="width: 65px;">
<input type="text" name="attr_attack_damagetype" placeholder="slashing" style="width: 100px;" data-i18n-placeholder="on-hit-place">
<input type="hidden" name="attr_attack_crit">
</div>
<div class="sheet-row attack_option">
<span data-i18n="on-hit2:-u">ON HIT 2:</span>
<input type="text" name="attr_attack_damage2" placeholder="2d6+5" style="width: 65px;">
<input type="text" name="attr_attack_damagetype2" placeholder="fire" style="width: 100px;" data-i18n-placeholder="on-hit-2-place">
<input type="hidden" name="attr_attack_crit2">
</div>
<div class="sheet-row attack_option">
<span data-i18n="desc:-u">DESCRIPTION:</span>
<select name="attr_show_desc">
<option value="@{description}" data-i18n="show">Show</option>
<option value=" " data-i18n="hide">Hide</option>
</select>
</div>
<div class="sheet-row">
<textarea name="attr_description"></textarea>
</div>
</div>
<div class="display">
<button class="pick" type="roll" name="roll_npc_action" value="@{rollbase}">
<div class="sheet-row wide">
<span class="bold wide" name="attr_name"></span>
</div>
<input class="attack_options" type="hidden" name="attr_attack_flag">
<div class="sheet-row attack attack_option">
<span class="italics" name="attr_attack_type"></span><span class="italics"> Weapon Attack: </span><span name="attr_attack_tohitrange">
</div>
<div class="sheet-row attack attack_option">
<span class="italics" style="font-size: 13px; font-weight: normal; vertical-align: middle;" data-i18n="hit:">Hit: </span><span name="attr_attack_onhit" style="vertical-align: middle;"></span>
</div>
<span class="description" name="attr_description"></span>
</button>
</div>
<input type="hidden" name="attr_rollbase">
<button type="roll" style="display: none;" name="roll_npc_dmg" value="@{wtype}&{template:npcdmg} @{damage_flag} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}}"></button>
<button type="roll" style="display: none;" name="roll_npc_crit" value="@{wtype}&{template:npcdmg} @{damage_flag} {{crit=1}} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}} {{crit1=[[@{attack_crit}+0]]}} {{crit2=[[@{attack_crit2}+0]]}}"></button>
</div>
</fieldset>
</div>
<input class="npcpower_flag" type="hidden" name="attr_npcpower_flag">
<div class="sheet-row actions npcpower powers">
<div class="sheet-row actiontitle">
<span class="title red" style="font-weight: normal; text-align: left;" data-i18n="powers">Powers</span>
</div>
<div class="warning"><span>THIS SECTION IS NOW NO LONGER SUPPORTED. PLEASE TRANSFER ANY POWERS LISTED HERE INTO THE NEW POWERS BY LEVEL SECTION, AVAILABLE AFTER SELECTING THE 'POWERCASTING NPC' OPTION FROM THE NPC OPTIONS ABOVE. FOR MODULE USERS, THIS SHEET WILL BE UPDATED IN AN UPCOMING PATCH.</span></div>
<div class="power-container">
<fieldset class="repeating_power-npc">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="sheet-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="sheet-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="sheet-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="sheet-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="sheet-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="sheet-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="sheet-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Melee" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="dmg:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="sheet-row">
<span data-i18n="dmg2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="sheet-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="sheet-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;" placeholder="Half damage" data-i18n-placeholder="npc-atk-effect-place">
</div>
<div class="sheet-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1" style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0" style="width: 15px; text-align: center;">
</div>
<div class="sheet-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="on" data-i18n="on">On</option>
<option value="off" selected="selected" data-i18n="off">Off</option>
</select>
</div>
</div>
<div class="sheet-row">
<span data-i18n="desc:-u">DESCRIPTION:</span>
</div>
<div class="sheet-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="sheet-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="sheet-row">
<textarea name="attr_powerathigherlevels" style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel">
<input type="hidden" name="attr_rollbase">
</div>
<div class="display">
<input type="hidden" name="attr_rollcontent" value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<input type="hidden" name="attr_powerprepared"><span class="prep"></span>
<span class="powername" name="attr_powername"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration">C</span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<input type="hidden" name="attr_npcpowercastingflag">
<div class="powers npc-powers">
<div class="sheet-row title red">
<span data-i18n="powers-u">POWERS</span>
</div>
<div class="triangle"></div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="power-labels">
<span data-i18n="force_slots_total-u">FORCE TOTAL</span>
<span data-i18n="force_slots_remaining-u">FORCE REMAINING</span>
</div>
<div class="power-level">
<div class="level">
<span>FP</span>
</div>
<div class="total">
<input type="number" name="attr_force_power_points_total" value="0">
</div>
<div class="expended">
<input type="number" name="attr_force_power_points_expended" value="0">
</div>
</div>
<div class="power-labels">
<span data-i18n="tech_slots_total-u">TECH TOTAL</span>
<span data-i18n="tech_slots_remaining-u">TECH REMAINING</span>
</div>
<div class="power-level">
<div class="level">
<span>TP</span>
</div>
<div class="total">
<input type="number" name="attr_tech_power_points_total" value="0">
</div>
<div class="expended">
<input type="number" name="attr_tech_power_points_expended" value="0">
</div>
</div>
<br>
<div class="power-level">
<div class="level">
<span>0</span>
</div>
<div class="cantrips">
<span data-i18n="cantrips-u">AT-WILL</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-cantrip">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="cantrip-progression:-u">AT-WILL PROGRESSION</span>
<select name="attr_power_damage_progression">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Cantrip Dice" data-i18n="cantrip-dice-u">AT-WILL DICE</option>
<option value="Cantrip Beam" data-i18n="cantrip-beam-u">AT-WILL BEAM</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="cantrip">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>1</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-1">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="1">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>2</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-2">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="2">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="power-level">
<div class="level">
<span>3</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-3">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="3">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>4</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-4">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="4">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<!-- Edited Spell Adding here ppl -->
<div class="power-level">
<div class="level">
<span>5</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-5">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="5">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<!-- Removed Components Here -->
</div>
<div class="flex-column flex-w-4">
<div class="power-level">
<div class="level">
<span>6</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-6">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="6">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>7</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-7">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="7">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>8</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-8">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="8">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>9</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-9">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="9">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<div class="footer">
<div style="margin-right: 50px; margin-left: 10px;">
<span data-i18n="portions-sheet-utilize">
Portions of this sheet utilize content from the System Reference Document 5.0 under the OGL License. View OGL License and Copyright Notice. https://sw5e.com/
</span>
</div>
<div>
<span data-i18n="footer-wiki-link">
For more information about this character sheet, its functionality, or uses, please check out the Roll20 Wiki for official documentation. https://wiki.roll20.net/5th_Edition_OGL_by_Roll20
</span>
</div>
</div>
</div>
<!-- PC -->
<div class="container pc">
<input type="hidden" name="attr_tab" value="core">
<div class="tab core">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="char-name-u">CHARACTER NAME</span>
</div>
<input class="options-flag" type="checkbox" name="attr_options-class-selection" checked="checked"><span>y</span>
<div class="header-info options">
<div class="sheet-row" style="border-top: 2px dashed gold;">
<span data-i18n="class:-u">CLASS:</span>
<input type="hidden" name="attr_custom_class" class="flag">
<select class="hiding class" name="attr_class">
<option value="" data-i18n="choose">Choose</option>
<option value="Berserker" data-i18n="berserker">Berserker</option>
<option value="Consular" data-i18n="consular">Consular</option>
<option value="Engineer" data-i18n="engineer">Engineer</option>
<option value="Fighter" data-i18n="fighter">Fighter</option>
<option value="Guardian" data-i18n="guardian">Guardian</option>
<option value="Monk" data-i18n="monk">Monk</option>
<option value="Operative" data-i18n="operative">Operative</option>
<option value="Scholar" data-i18n="scholar">Scholar</option>
<option value="Scout" data-i18n="scout">Scout</option>
<option value="Sentinel" data-i18n="sentinel">Sentinel</option>
</select>
<input type="text" class="showing" name="attr_cust_classname" style="width: 90px;">
<span data-i18n="subclass:-u">SUBCLASS:</span>
<input type="text" name="attr_subclass">
<span data-i18n="lvl:-u">LEVEL:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_level" value="1">
</div>
<div class="sheet-row">
<span data-i18n="race:-u">RACE:</span>
<input type="text" name="attr_race">
<span data-i18n="subrace:-u">SUBRACE:</span>
<input type="text" name="attr_subrace">
</div>
</div>
<div class="header-info display">
<div class="top">
<div class="hlabel-container">
<input type="text" name="attr_class_display" class="class-display no_events">
<span class="label" data-i18n="class-level-u">CLASS & LEVEL</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_background" style="width: 182px;">
<span class="label" data-i18n="background-u">BACKGROUND</span>
</div>
</div>
<div class="bottom">
<div class="hlabel-container">
<input type="text" name="attr_race_display" class="no_events">
<span class="label" data-i18n="race-u">RACE</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_alignment">
<span class="label" data-i18n="alignment-u">ALIGNMENT</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_experience">
<span class="label" data-i18n="exp-pts-u">EXPERIENCE POINTS</span>
</div>
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="pc-btn-group">
<input type="hidden" name="attr_tab">
<button type="action" name="act_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_tab_bio"><span data-i18n="bio-u">BIO</span></button>
<button type="action" name="act_tab_powers"><span data-i18n="powers-u">POWERS</span></button>
<button type="action" name="act_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="flex-row">
<div class="attributes-container" style="margin-top: 10px;">
<div class="attr-container">
<button type="roll" name="roll_strength"
value="@{wtype}&{template:simple} {{rname=^{strength-u}}} {{mod=@{strength_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{strength_mod}@{jack_attr}[STR]]]}} @{rtype}+@{strength_mod}@{jack_attr}[STR]]]}} @{charname_output}"
data-i18n="strength-u">STRENGTH
</button>
<span class="attr" name="attr_strength_mod" title="@{strength_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_strength_base" title="@{strength}" value="10">
<input type="hidden" name="attr_strength" value="10">
<input class="attr-flag" type="hidden" name="attr_strength_flag" value="0">
<span class="finalattr" name="attr_strength"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_dexterity"
value="@{wtype}&{template:simple} {{rname=^{dexterity-u}}} {{mod=@{dexterity_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{dexterity_mod}@{jack_attr}[DEX]]]}} @{rtype}+@{dexterity_mod}@{jack_attr}[DEX]]]}} @{charname_output}"
data-i18n="dexterity-u">DEXTERITY
</button>
<span class="attr" name="attr_dexterity_mod" title="@{dexterity_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_dexterity_base" title="@{dexterity}" value="10">
<input type="hidden" name="attr_dexterity" value="10">
<input class="attr-flag" type="hidden" name="attr_dexterity_flag" value="0">
<span class="finalattr" name="attr_dexterity"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_constitution"
value="@{wtype}&{template:simple} {{rname=^{constitution-u}}} {{mod=@{constitution_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{constitution_mod}@{jack_attr}[CON]]]}} @{rtype}+@{constitution_mod}@{jack_attr}[CON]]]}} @{charname_output}"
data-i18n="constitution-u">CONSTITUTION
</button>
<span class="attr" name="attr_constitution_mod" title="@{constitution_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_constitution_base" title="@{constitution}"
value="10">
<input type="hidden" name="attr_constitution" value="10">
<input class="attr-flag" type="hidden" name="attr_constitution_flag" value="0">
<span class="finalattr" name="attr_constitution"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_intelligence"
value="@{wtype}&{template:simple} {{rname=^{intelligence-u}}} {{mod=@{intelligence_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{intelligence_mod}@{jack_attr}[INT]]]}} @{rtype}+@{intelligence_mod}@{jack_attr}[INT]]]}} @{charname_output}"
data-i18n="intelligence-u">INTELLIGENCE
</button>
<span class="attr" name="attr_intelligence_mod" title="@{intelligence_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_intelligence_base" title="@{intelligence}"
value="10">
<input type="hidden" name="attr_intelligence" value="10">
<input class="attr-flag" type="hidden" name="attr_intelligence_flag" value="0">
<span class="finalattr" name="attr_intelligence"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_wisdom"
value="@{wtype}&{template:simple} {{rname=^{wisdom-u}}} {{mod=@{wisdom_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{wisdom_mod}@{jack_attr}[WIS]]]}} @{rtype}+@{wisdom_mod}@{jack_attr}[WIS]]]}} @{charname_output}"
data-i18n="wisdom-u">WISDOM
</button>
<span class="attr" name="attr_wisdom_mod" title="@{wisdom_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_wisdom_base" title="@{wisdom}" value="10">
<input type="hidden" name="attr_wisdom" value="10">
<input class="attr-flag" type="hidden" name="attr_wisdom_flag" value="0">
<span class="finalattr" name="attr_wisdom"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_charisma"
value="@{wtype}&{template:simple} {{rname=^{charisma-u}}} {{mod=@{charisma_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{charisma_mod}@{jack_attr}[CHA]]]}} @{rtype}+@{charisma_mod}@{jack_attr}[CHA]]]}} @{charname_output}"
data-i18n="charisma-u">CHARISMA
</button>
<span class="attr" name="attr_charisma_mod" title="@{charisma_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_charisma_base" title="@{charisma}" value="10">
<input type="hidden" name="attr_charisma" value="10">
<input class="attr-flag" type="hidden" name="attr_charisma_flag" value="0">
<span class="finalattr" name="attr_charisma"></span>
</div>
</div>
</div>
<div class="skills-saves-container">
<div class="flex-row insp-prof-container">
<div class="value">
<input type="checkbox" name="attr_inspiration"><span></span>
</div>
<div class="label">
<span data-i18n="inspiration-u">INSPIRATION</span>
</div>
</div>
<div class="flex-row insp-prof-container">
<div class="value">
<span name="attr_pb" title="@{pb}"></span>
</div>
<div class="label">
<span class="break-lang" data-i18n="prof-bonus-u">PROFICIENCY BONUS</span>
</div>
</div>
<div class="saving-throw-container">
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_strength_save_prof" title="@{strength_save_prof}"
value="(@{pb})">
<span name="attr_strength_save_bonus" title="@{strength_save_bonus}">0</span>
<button type="roll" name="roll_strength_save"
value="@{wtype}&{template:simple} {{rname=^{strength-save-u}}} {{mod=@{strength_save_bonus}}} {{r1=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} @{rtype}+@{strength_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="strength">Strength
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_dexterity_save_prof" title="@{dexterity_save_prof}"
value="(@{pb})">
<span name="attr_dexterity_save_bonus" title="@{dexterity_save_bonus}">0</span>
<button type="roll" name="roll_dexterity_save"
value="@{wtype}&{template:simple} {{rname=^{dexterity-save-u}}} {{mod=@{dexterity_save_bonus}}} {{r1=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} @{rtype}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="dexterity">Dexterity
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_constitution_save_prof" title="@{constitution_save_prof}"
value="(@{pb})">
<span name="attr_constitution_save_bonus" title="@{constitution_save_bonus}">0</span>
<button type="roll" name="roll_constitution_save"
value="@{wtype}&{template:simple} {{rname=^{constitution-save-u}}} {{mod=@{constitution_save_bonus}}} {{r1=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} @{rtype}+@{constitution_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="constitution">Constitution
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_intelligence_save_prof" title="@{intelligence_save_prof}"
value="(@{pb})">
<span name="attr_intelligence_save_bonus" title="@{intelligence_save_bonus}">0</span>
<button type="roll" name="roll_intelligence_save"
value="@{wtype}&{template:simple} {{rname=^{intelligence-save-u}}} {{mod=@{intelligence_save_bonus}}} {{r1=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} @{rtype}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="intelligence">Intelligence
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_wisdom_save_prof" title="@{wisdom_save_prof}"
value="(@{pb})">
<span name="attr_wisdom_save_bonus" title="@{wisdom_save_bonus}">0</span>
<button type="roll" name="roll_wisdom_save"
value="@{wtype}&{template:simple} {{rname=^{wisdom-save-u}}} {{mod=@{wisdom_save_bonus}}} {{r1=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} @{rtype}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="wisdom">Wisdom
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_charisma_save_prof" title="@{charisma_save_prof}"
value="(@{pb})">
<span name="attr_charisma_save_bonus" title="@{charisma_save_bonus}">0</span>
<button type="roll" name="roll_charisma_save"
value="@{wtype}&{template:simple} {{rname=^{charisma-save-u}}} {{mod=@{charisma_save_bonus}}} {{r1=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} @{rtype}+@{charisma_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="charisma">Charisma
</button>
</div>
<input type="hidden" class="toggleflag" name="attr_global_save_mod_flag">
<div class="conditional-visibility textarea globalattack">
<span class="label break-lang" data-i18n="global-save-u">GLOBAL SAVE MODIFIER</span>
<fieldset class="repeating_savemod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag"
checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_save_active_flag" value="1"
class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_save_rollstring"
placeholder="1d4[BLESS]" style="width: 125px;"></textarea>
</div>
<div class="display">
<span class="title" name="attr_global_save_rollstring"></span>
</div>
</div>
</fieldset>
</div>
<div class="label">
<span data-i18n="saving-throws-u">SAVING THROWS</span>
</div>
</div>
<div class="skills-container skills-list">
<div data-i18n-list="skills-list">
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="acrobatics">
<input type="checkbox" name="attr_acrobatics_prof" title="@{acrobatics_prof}"
value="(@{pb}*@{acrobatics_type})">
<span name="attr_acrobatics_bonus" title="@{acrobatics_bonus}">0</span>
<button type="roll" name="roll_acrobatics"
value="@{wtype}&{template:simple} {{rname=^{acrobatics-u}}} {{mod=@{acrobatics_bonus}}} {{r1=[[@{d20}+@{acrobatics_bonus}@{pbd_safe}]]}} @{rtype}+@{acrobatics_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}"
data-i18n="acrobatics-core">Acrobatics <span>(Dex)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="animal_handling">
<input type="checkbox" name="attr_animal_handling_prof" title="@{animal_handling_prof}"
value="(@{pb}*@{animal_handling_type})">
<span name='attr_animal_handling_bonus' title='@{animal_handling_bonus}'>0</span>
<button type='roll' name='roll_animal_handling'
value='@{wtype}&{template:simple} {{rname=^{animal_handling-u}}} {{mod=@{animal_handling_bonus}}} {{r1=[[@{d20}+@{animal_handling_bonus}@{pbd_safe}]]}} @{rtype}+@{animal_handling_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='animal_handling-core'>Animal Handling <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="athletics">
<input type="checkbox" name="attr_athletics_prof" title="@{athletics_prof}"
value="(@{pb}*@{athletics_type})">
<span name='attr_athletics_bonus' title='@{athletics_bonus}'>0</span>
<button type='roll' name='roll_athletics'
value='@{wtype}&{template:simple} {{rname=^{athletics-u}}} {{mod=@{athletics_bonus}}} {{r1=[[@{d20}+@{athletics_bonus}@{pbd_safe}]]}} @{rtype}+@{athletics_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='athletics-core'>Athletics <span>(Str)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="deception">
<input type="checkbox" name="attr_deception_prof" title="@{deception_prof}"
value="(@{pb}*@{deception_type})">
<span name='attr_deception_bonus' title='@{deception_bonus}'>0</span>
<button type='roll' name='roll_deception'
value='@{wtype}&{template:simple} {{rname=^{deception-u}}} {{mod=@{deception_bonus}}} {{r1=[[@{d20}+@{deception_bonus}@{pbd_safe}]]}} @{rtype}+@{deception_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='deception-core'>Deception <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="insight">
<input type="checkbox" name="attr_insight_prof" title="@{insight_prof}"
value="(@{pb}*@{insight_type})">
<span name='attr_insight_bonus' title='@{insight_bonus}'>0</span>
<button type='roll' name='roll_insight'
value='@{wtype}&{template:simple} {{rname=^{insight-u}}} {{mod=@{insight_bonus}}} {{r1=[[@{d20}+@{insight_bonus}@{pbd_safe}]]}} @{rtype}+@{insight_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='insight-core'>Insight <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="intimidation">
<input type="checkbox" name="attr_intimidation_prof" title="@{intimidation_prof}"
value="(@{pb}*@{intimidation_type})">
<span name='attr_intimidation_bonus' title='@{intimidation_bonus}'>0</span>
<button type='roll' name='roll_intimidation'
value='@{wtype}&{template:simple} {{rname=^{intimidation-u}}} {{mod=@{intimidation_bonus}}} {{r1=[[@{d20}+@{intimidation_bonus}@{pbd_safe}]]}} @{rtype}+@{intimidation_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='intimidation-core'>Intimidation <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="investigation">
<input type="checkbox" name="attr_investigation_prof" title="@{investigation_prof}"
value="(@{pb}*@{investigation_type})">
<span name='attr_investigation_bonus' title='@{investigation_bonus}'>0</span>
<button type='roll' name='roll_investigation'
value='@{wtype}&{template:simple} {{rname=^{investigation-u}}} {{mod=@{investigation_bonus}}} {{r1=[[@{d20}+@{investigation_bonus}@{pbd_safe}]]}} @{rtype}+@{investigation_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='investigation-core'>Investigation <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="lore">
<input type="checkbox" name="attr_lore_prof" title="@{lore_prof}"
value="(@{pb}*@{lore_type})">
<span name='attr_lore_bonus' title='@{lore_bonus}'>0</span>
<button type='roll' name='roll_lore'
value='@{wtype}&{template:simple} {{rname=^{lore-u}}} {{mod=@{lore_bonus}}} {{r1=[[@{d20}+@{lore_bonus}@{pbd_safe}]]}} @{rtype}+@{lore_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='lore-core'>Lore <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="medicine">
<input type="checkbox" name="attr_medicine_prof" title="@{medicine_prof}"
value="(@{pb}*@{medicine_type})">
<span name='attr_medicine_bonus' title='@{medicine_bonus}'>0</span>
<button type='roll' name='roll_medicine'
value='@{wtype}&{template:simple} {{rname=^{medicine-u}}} {{mod=@{medicine_bonus}}} {{r1=[[@{d20}+@{medicine_bonus}@{pbd_safe}]]}} @{rtype}+@{medicine_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='medicine-core'>Medicine <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="nature">
<input type="checkbox" name="attr_nature_prof" title="@{nature_prof}"
value="(@{pb}*@{nature_type})">
<span name='attr_nature_bonus' title='@{nature_bonus}'>0</span>
<button type='roll' name='roll_nature'
value='@{wtype}&{template:simple} {{rname=^{nature-u}}} {{mod=@{nature_bonus}}} {{r1=[[@{d20}+@{nature_bonus}@{pbd_safe}]]}} @{rtype}+@{nature_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='nature-core'>Nature <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="perception">
<input type="checkbox" name="attr_perception_prof" title="@{perception_prof}"
value="(@{pb}*@{perception_type})">
<span name='attr_perception_bonus' title='@{perception_bonus}'>0</span>
<button type='roll' name='roll_perception'
value='@{wtype}&{template:simple} {{rname=^{perception-u}}} {{mod=@{perception_bonus}}} {{r1=[[@{d20}+@{perception_bonus}@{pbd_safe}]]}} @{rtype}+@{perception_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='perception-core'>Perception <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="performance">
<input type="checkbox" name="attr_performance_prof" title="@{performance_prof}"
value="(@{pb}*@{performance_type})">
<span name='attr_performance_bonus' title='@{performance_bonus}'>0</span>
<button type='roll' name='roll_performance'
value='@{wtype}&{template:simple} {{rname=^{performance-u}}} {{mod=@{performance_bonus}}} {{r1=[[@{d20}+@{performance_bonus}@{pbd_safe}]]}} @{rtype}+@{performance_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='performance-core'>Performance <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="persuasion">
<input type="checkbox" name="attr_persuasion_prof" title="@{persuasion_prof}"
value="(@{pb}*@{persuasion_type})">
<span name='attr_persuasion_bonus' title='@{persuasion_bonus}'>0</span>
<button type='roll' name='roll_persuasion'
value='@{wtype}&{template:simple} {{rname=^{persuasion-u}}} {{mod=@{persuasion_bonus}}} {{r1=[[@{d20}+@{persuasion_bonus}@{pbd_safe}]]}} @{rtype}+@{persuasion_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='persuasion-core'>Persuasion <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="piloting">
<input type="checkbox" name="attr_piloting_prof" title="@{piloting_prof}"
value="(@{pb}*@{piloting_type})">
<span name='attr_piloting_bonus' title='@{piloting_bonus}'>0</span>
<button type='roll' name='roll_piloting'
value='@{wtype}&{template:simple} {{rname=^{piloting-u}}} {{mod=@{piloting_bonus}}} {{r1=[[@{d20}+@{piloting_bonus}@{pbd_safe}]]}} @{rtype}+@{piloting_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='piloting-core'>Piloting <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="sleight_of_hand">
<input type="checkbox" name="attr_sleight_of_hand_prof" title="@{sleight_of_hand_prof}"
value="(@{pb}*@{sleight_of_hand_type})">
<span name='attr_sleight_of_hand_bonus' title='@{sleight_of_hand_bonus}'>0</span>
<button type='roll' name='roll_sleight_of_hand'
value='@{wtype}&{template:simple} {{rname=^{sleight_of_hand-u}}} {{mod=@{sleight_of_hand_bonus}}} {{r1=[[@{d20}+@{sleight_of_hand_bonus}@{pbd_safe}]]}} @{rtype}+@{sleight_of_hand_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='sleight_of_hand-core'>Sleight of Hand <span>(Dex)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="stealth">
<input type="checkbox" name="attr_stealth_prof" title="@{stealth_prof}"
value="(@{pb}*@{stealth_type})">
<span name='attr_stealth_bonus' title='@{stealth_bonus}'>0</span>
<button type='roll' name='roll_stealth'
value='@{wtype}&{template:simple} {{rname=^{stealth-u}}} {{mod=@{stealth_bonus}}} {{r1=[[@{d20}+@{stealth_bonus}@{pbd_safe}]]}} @{rtype}+@{stealth_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='stealth-core'>Stealth <span>(Dex)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="survival">
<input type="checkbox" name="attr_survival_prof" title="@{survival_prof}"
value="(@{pb}*@{survival_type})">
<span name='attr_survival_bonus' title='@{survival_bonus}'>0</span>
<button type='roll' name='roll_survival'
value='@{wtype}&{template:simple} {{rname=^{survival-u}}} {{mod=@{survival_bonus}}} {{r1=[[@{d20}+@{survival_bonus}@{pbd_safe}]]}} @{rtype}+@{survival_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='survival-core'>Survival <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="technology">
<input type="checkbox" name="attr_technology_prof" title="@{technology_prof}"
value="(@{pb}*@{technology_type})">
<span name='attr_technology_bonus' title='@{technology_bonus}'>0</span>
<button type='roll' name='roll_technology'
value='@{wtype}&{template:simple} {{rname=^{technology-u}}} {{mod=@{technology_bonus}}} {{r1=[[@{d20}+@{technology_bonus}@{pbd_safe}]]}} @{rtype}+@{technology_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='technology-core'>Technology <span>(Int)</span></button>
</div>
</div>
<div class="label">
<span data-i18n="skills-u">SKILLS</span>
</div>
</div>
</div>
</div>
<div class="flex-row insp-prof-container" style="width: 100%; margin-top: 2px;">
<div class="value">
<!-- <input type="text" name="attr_passive_wisdom" title="@{passive_wisdom}" value="(10+@{perception_bonus}+@{passiveperceptionmod})" disabled="true" ><span></span> -->
<span name="attr_passive_wisdom"></span>
</div>
<div class="label" style="width: 217px;">
<span data-i18n="pass-wis-u">PASSIVE WISDOM (PERCEPTION)</span>
</div>
</div>
<div class="tool_proficiencies" style="margin-bottom: 10px; min-height: 100px; position: relative;">
<div class="top">
<span class="label" style="width: 95px;" data-i18n="tool-u">TOOL</span>
<span class="label" style="width: 25px;" data-i18n="pro-u">PRO</span>
<span class="label" style="width: 50px;" data-i18n="attr-u">ATTRIBUTE</span>
</div>
<fieldset class="repeating_tool">
<div class="tool">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_toolname" style="width: 120px;">
</div>
<div class="sheet-row">
<span data-i18n="prof-bonus:-u">PROFICIENCY BONUS:</span>
<select name="attr_toolbonus_base">
<option value="(@{pb})" selected="selected" data-i18n="prof-u">PROFICIENT</option>
<option value="(@{pb}*2)" data-i18n="expertise-u">EXPERTISE</option>
<option value="(floor(@{pb}/2))" data-i18n="jack-of-all-u">JACK OF ALL TRADES</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="attr:-u">ATTRIBUTE:</span>
<select name="attr_toolattr_base">
<option value="@{strength_mod}" selected="selected" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}" data-i18n="charisma-u">CHARISMA</option>
<option value="?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}" data-i18n="query-attr-u">QUERY ATTRIBUTE</option>
</select>
<span data-i18n="mods:-u">MODS:</span>
<input type="text" class="num" name="attr_tool_mod" title="@{tool_mod}" value="0">
</div>
</div>
<div class="display">
<button type="roll" name="roll_tool" value="@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}@{pbd_safe}]]}} @{rtype}+@{toolbonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}">
<span name="attr_toolname" style="width: 100px;"></span>
<input type="text" name="attr_toolbonus_display" style="width: 40px; text-align: center;">
<input type="hidden" name="attr_toolbonus">
<input type="text" name="attr_toolattr" style="width: 80px;">
</button>
</div>
</div>
</fieldset>
<input type="hidden" class="toggleflag" name="attr_global_skill_mod_flag">
<div class="conditional-visibility textarea globalattack">
<span class="label" data-i18n="global-skill-u">GLOBAL SKILL MODIFIER</span>
<fieldset class="repeating_skillmod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_skill_active_flag" value="1" class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_skill_rollstring" placeholder="1d4[GUIDANCE]"></textarea>
</div>
<div class="display">
<span class="title" name="attr_global_skill_rollstring"></span>
</div>
</div>
</fieldset>
</div>
<div class="label fixed-bottom-title">
<span data-i18n="tool-prof-u" style="display: inline;">TOOL PROFICIENCIES</span><span style="display: inline;"> & </span><span data-i18n="custom-skills-u" style="display: inline;">CUSTOM SKILLS</span>
</div>
</div>
<div class="textbox-container proficiencies" style="margin-bottom: 10px;">
<input type="hidden" class="inventoryflag" name="attr_simpleproficencies" value="complex">
<textarea class="simple" name="attr_other_proficiencies_and_languages" style="min-height: 91px; height: 91px;"></textarea>
<div class="complex">
<div class="top">
<span class="label" style="width: 50px;" data-i18n="type-u">TYPE</span>
<span class="label" style="width: 135px;" data-i18n="proficency-u">PROFICIENCY</span>
</div>
<fieldset class="repeating_proficiencies">
<div class="proficiency">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="type:-u">TYPE:</span>
<select name="attr_prof_type">
<option selected="selected" data-i18n="lang-u">LANGUAGE</option>
<option data-i18n="weapon-u">WEAPON</option>
<option data-i18n="armor-u">ARMOR</option>
<option data-i18n="other-u">OTHER</option>
</select>
</div>
<div class="sheet-row" style="margin-bottom: 3px;">
<span data-i18n="proficency-u">PROFICIENCY</span><span>:</span>
<input type="text" name="attr_name" style="width: 165px;" placeholder="Basic, Huttese, Binary">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<button type="roll" name="roll_output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{prof_type} PROFICIENCY}} {{description=@{name}}}">
<span name="attr_prof_type" style="width: 55px;"></span>
<span name="attr_name" style="width: 159px;"></span>
</button>
</div>
</div>
</fieldset>
</div>
<div class="label">
<span style="margin-top: -10px;" data-i18n="other-prof-langs-u">OTHER PROFICIENCIES & LANGUAGES</span>
</div>
</div>
<div class="textbox-container proficiencies">
<input type="hidden" class="inventoryflag" name="attr_simpleproficencies" value="complex">
<textarea class="simple" name="attr_deployments" style="min-height: 91px; height: 91px;"></textarea>
<div class="complex">
<div class="top">
<span class="label" style="width: 50px;" data-i18n="rank-u">RANK</span>
<span class="label" style="width: 135px;" data-i18n="deployment-u">DEPLOYMENT</span>
</div>
<fieldset class="repeating_deployments">
<div class="deployment">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="deployment:-u">DEPLOYMENT:</span>
<select name="attr_deployment_type">
<option selected="selected" data-i18n="coordinator">Coordinator</option>
<option data-i18n="gunner">Gunner</option>
<option data-i18n="mechanic">Mechanic</option>
<option data-i18n="operator">Operator</option>
<option data-i18n="pilot">Pilot</option>
<option data-i18n="technician">Technician</option>
</select>
</div>
<div class="sheet-row" style="margin-bottom: 3px;">
<span data-i18n="rank:-u">RANK:</span>
<input type="number" name="attr_deployment_rank" style="width: 40px;">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<button type="roll" name="roll_output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{deployment_type} @{deployment_rank}}} {{description=Deployment}}">
<span name="attr_deployment_rank" style="width: 55px;"></span>
<span name="attr_deployment_type" style="width: 159px;"></span>
</button>
</div>
</div>
</fieldset>
</div>
<div class="label">
<span style="margin-top: -10px;" data-i18n="deployments-u">DEPLOYMENTS</span>
</div>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="flex-row flex-align-stretch ac-init-speed-container">
<div class="ac">
<input type="text" name="attr_ac" title="@{ac}">
<span class="label pc-ac" data-i18n="armor-class-u">ARMOR CLASS</span>
</div>
<div class="init">
<span name="attr_initiative_bonus" title="@{initiative_bonus}"></span>
<button type="roll" name="roll_initiative" value="@{wtype}&{template:simple} {{rname=^{init-u}}} {{mod=@{initiative_bonus}}} {{r1=[[@{initiative_style}+@{initiative_bonus}@{pbd_safe}[INIT] &{tracker}]]}} {{normal=1}} @{charname_output}" data-i18n="init-u">INITIATIVE</button>
</div>
<div class="speed">
<input type="text" name="attr_speed" title="@{speed}">
<span class="label" data-i18n="speed-u">SPEED</span>
</div>
</div>
<div class="hp">
<div class="top">
<span data-i18n="hp-max">Hit Point Maximum</span>
<input type="text" name="attr_hp_max" title="@{hp_max}">
</div>
<input type="number" name="attr_hp" title="@{hp}">
<span class="label" data-i18n="hp-current-u">CURRENT HIT POINTS</span>
</div>
<div class="hp" style="min-height: 56px;">
<input type="number" name="attr_hp_temp" title="@{hp_temp}">
<span class="label" data-i18n="hp-temp-u">TEMPORARY HIT POINTS</span>
</div>
<div class="hdice-dsaves-container" style="width: 242px;">
<div class="subcontainer">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_hit_dice_max" title="@{hit_dice_max}">
</div>
<input type="number" name="attr_hit_dice" title="@{hit_dice}" style="margin-bottom: -6px;">
<button type="roll" name="roll_hit_dice" value="@{wtype}&{template:simple} {{rname=^{hit-dice-u}}} {{mod=D@{hitdie_final}+[[@{constitution_mod}[CON]]]}} {{r1=[[1d@{hitdie_final}+[[@{constitution_mod}]][CON]]]}} {{normal=1}} @{charname_output}" data-i18n="hit-dice-u">HIT DICE</button>
</div>
<div class="subcontainer" style="float: right;">
<div class="row-container">
<span data-i18n="successes-u">SUCCESSES</span>
<input type="checkbox" name="attr_deathsave_succ1">
<input type="checkbox" name="attr_deathsave_succ2">
<input type="checkbox" name="attr_deathsave_succ3">
</div>
<div class="row-container">
<span data-i18n="failures-u">FAILURES</span>
<input type="checkbox" name="attr_deathsave_fail1">
<input type="checkbox" name="attr_deathsave_fail2">
<input type="checkbox" name="attr_deathsave_fail3">
</div>
<button type="roll" name="roll_death_save" style="margin-top: 6px;" value="@{wtype}&{template:simple} {{rname=^{death-save-u}}} {{mod=@{death_save_bonus}}} {{r1=[[@{d20}+@{death_save_bonus}[MOD]@{globalsavingthrowbonus}]]}} {{normal=1}} {{global=@{global_save_mod}}} @{charname_output}" data-i18n="death-saves-u">DEATH SAVES</button>
</div>
</div>
<input type="hidden" class="exhaustion-toggle" name="attr_exhaustion_toggle" value="0">
<div class="exhaustion" style="position: relative;">
<input type="number" name="attr_exhaustion_level" step="1" min="0" max="6">
<div class="ex-descriptions">
<span class="ex-description" name="attr_exhaustion_1"></span>
<span class="ex-description" name="attr_exhaustion_2"></span>
<span class="ex-description" name="attr_exhaustion_3"></span>
<span class="ex-description" name="attr_exhaustion_4"></span>
<span class="ex-description" name="attr_exhaustion_5"></span>
<span class="ex-description" name="attr_exhaustion_6"></span>
</div>
<span class="label" data-i18n="exhaustion-u">EXHAUSTION LEVEL</span>
</div>
<input type="hidden" class="ammoflag" name="attr_ammotracking">
<div class="attacks" style="position: relative;">
<div class="top">
<span class="label" style="width: 95px;padding: 0;" data-i18n="name-u">NAME</span>
<span class="label" style="width: 35px;padding: 0;" data-i18n="atk-u">ATK</span>
<span class="label" style="width: 65px;padding: 0;" data-i18n="dmg-type-u">DAMAGE/TYPE</span>
</div>
<fieldset class="repeating_attack">
<div class="attack">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_atkname">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_atkflag" value="{{attack=1}}" checked="checked">
<span data-i18n="attack:-u">ATTACK:</span>
<select name="attr_atkattr_base">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" selected="selected" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_atkmod" placeholder="0">
<span>+</span>
<input type="checkbox" name="attr_atkprofflag" value="(@{pb})" checked="checked" style="margin-left: 3px;">
<span data-i18n="proficient-u">PROFICIENT</span>
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_atkrange" placeholder="Self (60-foot cone)" style="width: 170px;" data-i18n-placeholder="range-place">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="power-bonus:-u">POWER BONUS:</span>
<input type="text" class="num" name="attr_atkpower" placeholder="0">
<span data-i18n="crit-range-u">CRIT RANGE:</span>
<input type="text" class="num" name="attr_atkcritrange" value="20" placeholder="20">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_dmgflag" value="{{damage=1}} {{dmg1flag=1}}" checked="checked">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_dmgbase" placeholder="1d6" style="width: 50px;">
<span>+</span>
<select name="attr_dmgattr">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" selected="selected" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_dmgmod" placeholder="0">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_dmgtype" placeholder="Slashing" style="width: 50px;" data-i18n-placeholder="dmg-type-place">
<span data-i18n="crit:-u">CRIT:</span>
<input type="text" name="attr_dmgcustcrit" placeholder="1d6" style="width: 80px;">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_dmg2flag" value="{{damage=1}} {{dmg2flag=1}}">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_dmg2base" placeholder="1d6" style="width: 50px;">
<span>+</span>
<select name="attr_dmg2attr">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0" selected="selected">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_dmg2mod" placeholder="0">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_dmg2type" placeholder="Slashing" style="width: 50px;" data-i18n-placeholder="dmg-type-place">
<span data-i18n="crit:-u">CRIT:</span>
<input type="text" name="attr_dmg2custcrit" placeholder="1d6" style="width: 80px;">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_saveflag" value="{{save=1}} {{saveattr=@{saveattr}}} {{savedesc=@{saveeffect}}} {{savedc=[[[[@{savedc}]][SAVE]]]}}">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_saveattr">
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" selected="selected" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="vs-dc:-u">VS DC:</span>
<select name="attr_savedc">
<option value="(@{power_save_dc})" selected="selected" data-i18n="power-u">POWER</option>
<option value="(@{strength_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="str-u">STR</option>
<option value="(@{dexterity_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="dex-u">DEX</option>
<option value="(@{constitution_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="con-u">CON</option>
<option value="(@{intelligence_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="int-u">INT</option>
<option value="(@{wisdom_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="wis-u">WIS</option>
<option value="(@{charisma_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="cha-u">CHA</option>
<option value="(@{saveflat})" data-i18n="flat-u">FLAT</option>
</select>
<input class="flatflag" type="hidden" name="attr_savedc">
<input class="num flat" type="text" name="attr_saveflat" placeholder="10" value="10">
</div>
<div class="sheet-row">
<span data-i18n="save-effect:-u">SAVE EFFECT:</span>
<input type="text" name="attr_saveeffect" placeholder="half damage" style="width: 160px;" data-i18n-placeholder="save-effect-place">
</div>
<div class="sheet-row ammo">
<span data-i18n="ammunition:-u">AMMUNITION:</span>
<input type="text" name="attr_ammo" placeholder="Arrows" style="width: 160px;" data-i18n-placeholder="ammunition-place">
</div>
<div class="sheet-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
<textarea name="attr_atk_desc" placeholder="Up to 2 creatures within 5 feet" data-i18n-placeholder="description-place"></textarea>
</div>
</div>
<div class="display">
<button type="roll" name="roll_attack" value="@{rollbase}">
<span name="attr_atkname" style="width: 85px;"></span>
<input type="text" name="attr_atkbonus" style="width: 40px; text-align: center;" value="">
<input type="text" name="attr_atkdmgtype" style="width: 90px;" value="">
</button>
</div>
</div>
<input type="hidden" name="attr_rollbase">
<input type="hidden" name="attr_rollbase_dmg">
<input type="hidden" name="attr_rollbase_crit">
<input type="hidden" name="attr_hldmg">
<input type="hidden" name="attr_powerlevel">
<input type="hidden" name="attr_itemid">
<input type="hidden" name="attr_powerid">
<input type="hidden" name="attr_power_innate">
<input type="hidden" name="attr_versatile_alt">
<button type="roll" name="roll_attack_dmg" style="display: none;" value="@{rollbase_dmg}"></button>
<button type="roll" name="roll_attack_crit" style="display: none;" value="@{rollbase_crit}"></button>
</fieldset>
<input type="hidden" class="toggleflag" name="attr_global_attack_mod_flag">
<div class="conditional-visibility textbox globalattack">
<span class="label" data-i18n="global-attack-u">GLOBAL ATTACK MODIFIER</span>
<fieldset class="repeating_tohitmod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_attack_active_flag" value="1" class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_attack_rollstring" placeholder="1d4[BLESS]"></textarea>
</div>
<div class="display">
<span class="title" name="attr_global_attack_rollstring"></span>
</div>
</div>
</fieldset>
</div>
<input type="hidden" class="toggleflag" name="attr_global_damage_mod_flag">
<div class="conditional-visibility textbox globalattack">
<span class="label" data-i18n="global-damage-u">GLOBAL DAMAGE MODIFIER</span>
<fieldset class="repeating_damagemod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_damage_active_flag" value="1" class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_damage_rollstring" placeholder="1d6[SNEAK ATTACK]"></textarea>
<div class="sheet-row" style="margin-bottom: 5px;">
<span style="display: inline; margin-left: 25px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_global_damage_type" value="">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_global_damage_rollstring" style="width: 110px; padding-right: 0px;"></span>
<span class="subheader" name="attr_global_damage_type" style="padding-right: 0px;"></span>
</div>
</div>
</fieldset>
</div>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;" data-i18n="atk-powercasting-u">ATTACKS & POWERCASTING</span>
</div>
<div class="equipment">
<div class="money">
<div class="coin">
<span class="label" data-i18n="credit-piece-u">CR</span>
<input type="text" name="attr_cr" title="@{cr}">
</div>
</div>
<input type="hidden" class="inventoryflag" name="attr_simpleinventory" value="complex">
<textarea class="simple" name="attr_equipment"></textarea>
<div class="complex">
<input type="hidden" class="warningflag" name="attr_armorwarningflag">
<div class="warning">
<span data-i18n="warning-armor-sets-u">
<input type="checkbox" name="attr_armorwarning" value="hide">
WARNING - MULTIPLE SETS OF ARMOR OR SHIELDS HAVE BEEN ADDED AND AC IS NOT CORRECTLY CALCULATED. UNEQUIP THE ARMOR PIECE FROM THE ITEM DETAILS.
</span>
</div>
<div class="header" style="height: auto;">
<span class="pictos" style="width: 25px; font-size: 15px;">*</span>
<span style="width: 100px; text-align: left;" data-i18n="item-name-u">ITEM NAME</SPAN>
<span style="width: 25px;"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%20Edition%20OGL%20by%20Roll20/images/weight_lbs.png" style="width: 15px; margin-bottom: -3px;"></span>
</div>
<fieldset class="repeating_inventory">
<input type="hidden" class="equippedflag" name="attr_equipped">
<div class="item">
<input class="weight" type="text" name="attr_itemcount" value="1">
<input class="name" type="text" name="attr_itemname">
<input class="weight" type="text" name="attr_itemweight">
<input class="inventorysubflag" type="checkbox" name="attr_inventorysubflag"><span>i</span>
<div class="subitem">
<input class="equipped" type="checkbox" name="attr_equipped" value="1" checked="checked">
<span class="equippedlabel" data-i18n="equipped-u">EQUIPPED</span>
<input class="equipped" type="checkbox" name="attr_useasresource" value="1">
<span class="equippedlabel" data-i18n="use-as-resource-u">USE AS A RESOURCE</span>
<input class="equipped" type="checkbox" name="attr_hasattack" value="1">
<span class="equippedlabel" data-i18n="has-attack-u">HAS AN ATTACK</span>
<span class="label" data-i18n="prop:-u">PROP:</span>
<input class="subfield" type="text" name="attr_itemproperties">
<span class="label" data-i18n="mods:-u">MODS:</span>
<input class="subfield" type="text" name="attr_itemmodifiers">
<textarea class="subtextarea" name="attr_itemcontent"></textarea>
</div>
<input type="hidden" name="attr_itemattackid">
<input type="hidden" name="attr_itemresourceid">
</div>
</fieldset>
<div class="weighttotal">
<span class="label" data-i18n="total-weight-u">TOTAL WEIGHT</span>
<input type="text" name="attr_weighttotal" value="0">
<input type="hidden" class="encumberance" name="attr_encumberance">
<span class="encumb immobile" data-i18n="immobile-u">IMMOBILE</span>
<span class="encumb heavily" data-i18n="heavily-encumbered-u">HEAVILY ENCUMBERED</span>
<span class="encumb encumbered" data-i18n="encumbered-u">ENCUMBERED</span>
<span class="encumb over" data-i18n="over-carrying-cap-u">OVER CARRYING CAPACITY</span>
</div>
</div>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;" data-i18n="equipment-u">EQUIPMENT</span>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="textbox pibf">
<input class="options-flag" type="checkbox" name="attr_options-flag-personality" checked="checked"><span>y</span>
<div class="options">
<textarea name="attr_personality_traits" style="min-height: 50px; height: 50px;"></textarea>
</div>
<div class="display">
<span name="attr_personality_traits"></span>
</div>
<span class="label" data-i18n="personality-traits-u">PERSONALITY TRAITS</span>
</div>
<div class="textbox pibf">
<input class="options-flag" type="checkbox" name="attr_options-flag-ideals" checked="checked"><span>y</span>
<div class="options">
<textarea name="attr_ideals"></textarea>
</div>
<div class="display">
<span name="attr_ideals"></span>
</div>
<span class="label" data-i18n="ideals-u">IDEALS</span>
</div>
<div class="textbox pibf">
<input class="options-flag" type="checkbox" name="attr_options-flag-bonds" checked="checked"><span>y</span>
<div class="options">
<textarea name="attr_bonds"></textarea>
</div>
<div class="display">
<span name="attr_bonds"></span>
</div>
<span class="label" data-i18n="bonds-u">BONDS</span>
</div>
<div class="textbox pibf">
<input class="options-flag" type="checkbox" name="attr_options-flag-flaws" checked="checked"><span>y</span>
<div class="options">
<textarea name="attr_flaws" style="min-height: 46px; height: 46px;"></textarea>
</div>
<div class="display">
<span name="attr_flaws"></span>
</div>
<span class="label" data-i18n="flaws-u">FLAWS</span>
</div>
<div class="resources">
<div class="hdice-dsaves-container" style="width: 246px; margin-top: 10px;">
<div class="subcontainer" style="height: 64px; width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_class_resource_max" title="@{class_resource_max}">
</div>
<input type="number" class="stepper" name="attr_class_resource" title="@{class_resource}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_class_resource_name" title="@{class_resource_name}" placeholder="CLASS RESOURCE" data-i18n-placeholder="class-resource-u">
</div>
<div class="subcontainer" style="height: 64px; width: 119px; float: right;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_other_resource_max" title="@{other_resource_max}">
</div>
<input type="number" class="stepper" name="attr_other_resource" title="@{other_resource}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_other_resource_name" title="@{other_resource_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_other_resource_itemid">
</div>
</div>
<fieldset class="repeating_resource">
<div class="hdice-dsaves-container" style="width: 246px; margin-top: 10px;">
<div class="subcontainer" style="height: 64px; width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_resource_left_max" title="@{repeating_resource_left_max}">
</div>
<input type="number" class="stepper" name="attr_resource_left" title="@{repeating_resource_left}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_resource_left_name" title="@{repeating_resource_left_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_resource_left_itemid">
</div>
<div class="subcontainer" style="height: 64px; width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_resource_right_max" title="@{repeating_resource_right_max}">
</div>
<input type="number" class="stepper" name="attr_resource_right" title="@{repeating_resource_right}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_resource_right_name" title="@{repeating_resource_right_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_resource_right_itemid">
</div>
</div>
</fieldset>
</div>
<div class="textbox traits" style="min-height: 480px;">
<input type="hidden" class="inventoryflag" name="attr_simpletraits" value="complex">
<textarea class="simple" name="attr_features_and_traits" style="min-height: 461px; height: 461px;"></textarea>
<div class="complex">
<fieldset class="repeating_traits">
<div class="trait">
<button type="roll" name="roll_output" class="output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{name}}} {{source=@{source}: @{source_type}}} {{description=@{description}}}">w</button>
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<input class="display-flag" type="checkbox" name="attr_display_flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name" style="width: 120px;">
</div>
<div class="sheet-row">
<span data-i18n="source:-u">SOURCE:</span>
<select name="attr_source">
<option selected="selected" data-i18n="racial">Racial</option>
<option data-i18n="class">Class</option>
<option data-i18n="feat">Feat</option>
<option data-i18n="background">Background</option>
<option data-i18n="other">Other</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="source-type:-u">SOURCE TYPE:</span>
<input type="text" name="attr_source_type" style="width: 160px;" placeholder="Bothan/Fighter/4th Level">
</div>
<div class="sheet-row">
<textarea name="attr_description" style="min-height: 200px; height: 200px;"></textarea>
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_name"></span>
<span class="subheader">
<span name="attr_source"></span><span>: </span><span name="attr_source_type"></span>
</span>
<span class="desc" name="attr_description"></span>
</div>
</div>
</fieldset>
</div>
<span class="label" data-i18n="feats-traits-u" style="margin-top: 0px; position: absolute; bottom: 0px;">FEATURES & TRAITS</span>
</div>
<input type="hidden" class="missing-info-flag" name="attr_missing_info">
<div class="missing-info">
<span><span class="info-popup pictos">i</span> Looking for missing data?</span>
<span class="missing-info-desc">Your data is in the simple version that can be re-enabled from the Settings(gear) tab of the character sheet. Under GENERAL OPTIONS and then FEATS & TRAITS. Set the section to be 'Simple'.</span>
</div>
</div>
</div>
</div>
<div class="tab bio">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="char-name-u">CHARACTER NAME</span>
</div>
<div class="header-info">
<div class="top" style="position: relative; top: 10px;">
<div class="hlabel-container">
<input type="text" name="attr_age" style="width: 120px;">
<span class="label" data-i18n="age-u">AGE</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_size" style="width: 120px;">
<span class="label" data-i18n="size-u">SIZE</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_height" style="width: 120px;">
<span class="label" data-i18n="height-u">HEIGHT</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_weight" style="width: 120px;">
<span class="label" data-i18n="weight-u">WEIGHT</span>
</div>
</div>
<div class="bottom">
<div class="hlabel-container">
<input type="text" name="attr_eyes" style="width: 160px;">
<span class="label" data-i18n="eye-u">EYES</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_skin" style="width: 160px;">
<span class="label" data-i18n="skin-u">SKIN</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_hair" style="width: 160px;">
<span class="label" data-i18n="hair-u">HAIR</span>
</div>
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="pc-btn-group">
<input type="hidden" name="attr_tab">
<button type="action" name="act_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_tab_bio"><span data-i18n="bio-u">BIO</span></button>
<button type="action" name="act_tab_powers"><span data-i18n="powers-u">POWERS</span></button>
<button type="action" name="act_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="textbox">
<textarea name="attr_character_appearance" style="min-height: 300px; height: 300px;"></textarea>
<span class="label" data-i18n="char-appearance-u">CHARACTER APPEARANCE</span>
</div>
<div class="textbox">
<textarea name="attr_character_backstory" style="min-height: 623px; height: 623px;"></textarea>
<span class="label" data-i18n="char-backstory-u">CHARACTER BACKSTORY</span>
</div>
<div class="textbox">
<textarea name="attr_miscellaneous" style="min-height: 300px; height: 300px;"></textarea>
<span class="label" data-i18n="miscellaneous-u">MISCELLANEOUS</span>
</div>
</div>
<div class="flex-column flex-w-8">
<div class="textbox">
<textarea name="attr_allies_and_organizations" style="min-height: 288px; height: 300px;"></textarea>
<span class="label" data-i18n="allies-orgs-u">ALLIES & ORGANIZATIONS</span>
</div>
<div class="textbox">
<textarea name="attr_additional_feature_and_traits" style="min-height: 289px; height: 300px;"></textarea>
<span class="label" data-i18n="add-feats-traits-u">ADDITIONAL FEATURES & TRAITS</span>
</div>
<div class="textbox">
<textarea name="attr_treasure" style="min-height: 300px; height: 300px;"></textarea>
<span class="label" data-i18n="treasure-u">LOOT</span>
</div>
<div class="textbox">
<textarea name="attr_storage" style="min-height: 300px; height: 300px;"></textarea>
<span class="label" data-i18n="storage-u">STORAGE</span>
</div>
</div>
</div>
</div>
<div class="tab powers">
<div class="header flex-row">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="char-name-u">CHARACTER NAME</span>
</div>
<div class="header-info flex flex-row flex-justify-sa">
<div class="part flex-w-4">
<select name="attr_powercasting_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
<span class="label break-lang" data-i18n="power-ability-u">POWERCASTING ABILITY</span>
</div>
<div class="part flex-w-4">
<span class="display" name="attr_power_save_dc"></span>
<span class="label break-lang" data-i18n="power-save-dc-u">POWER SAVE DC</span>
</div>
<div class="part flex-w-4">
<span class="display" name="attr_power_attack_bonus"></span>
<span class="label break-lang" data-i18n="power-atk-bonus-u">POWER ATTACK BONUS</span>
</div>
</div>
</div>
<input type="hidden" class="powericon_flag" name="attr_powericon_flag" value="all">
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="pc-btn-group">
<input type="hidden" name="attr_tab">
<button type="action" name="act_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_tab_bio"><span data-i18n="bio-u">BIO</span></button>
<button type="action" name="act_tab_powers"><span data-i18n="powers-u">POWERS</span></button>
<button type="action" name="act_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="power-labels">
<span data-i18n="force_slots_total-u">FORCE TOTAL</span>
<span data-i18n="force_slots_remaining-u">FORCE REMAINING</span>
</div>
<div class="power-level">
<div class="level">
<span>FP</span>
</div>
<div class="total">
<input type="number" name="attr_force_power_points_total" value="0">
</div>
<div class="expended">
<input type="number" name="attr_force_power_points_expended" value="0">
</div>
</div>
<div class="power-labels">
<span data-i18n="tech_slots_total-u">TECH TOTAL</span>
<span data-i18n="tech_slots_remaining-u">TECH REMAINING</span>
</div>
<div class="power-level">
<div class="level">
<span>TP</span>
</div>
<div class="total">
<input type="number" name="attr_tech_power_points_total" value="0">
</div>
<div class="expended">
<input type="number" name="attr_tech_power_points_expended" value="0">
</div>
</div>
<br>
<div class="power-level">
<div class="level">
<span>0</span>
</div>
<div class="cantrips">
<span data-i18n="cantrips-u">AT-WILL</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-cantrip">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="cantrip-progression:-u">AT-WILL PROGRESSION</span>
<select name="attr_power_damage_progression">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Cantrip Dice" data-i18n="cantrip-dice-u">AT-WILL DICE</option>
<option value="Cantrip Beam" data-i18n="cantrip-beam-u">AT-WILL BEAM</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="cantrip">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>1</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-1">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="1">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>2</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-2">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="2">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="power-level">
<div class="level">
<span>3</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-3">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="3">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>4</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-4">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="4">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<!-- Edited Spell Adding here ppl -->
<div class="power-level">
<div class="level">
<span>5</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-5">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="5">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<!-- Removed Components Here -->
</div>
<div class="flex-column flex-w-4">
<div class="power-level">
<div class="level">
<span>6</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-6">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="6">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>7</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-7">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="7">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>8</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-8">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="8">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
<div class="power-level">
<div class="level">
<span>9</span>
</div>
</div>
<div class="power-container">
<fieldset class="repeating_power-9">
<div class="power">
<input class="options-flag" type="checkbox" name="attr_options-flag"
checked="checked"><span>y</span>
<div class="options">
<div class="flex-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_powername">
</div>
<div class="flex-row">
<span data-i18n="school:-u">SCHOOL:</span>
<select name="attr_powerschool">
<option value="force" data-i18n="force">Force</option>
<option value="tech" data-i18n="tech">Tech</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="casting-time:-u">CASTING TIME:</span>
<input type="text" name="attr_powercastingtime">
</div>
<div class="flex-row">
<span data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_powerrange">
</div>
<div class="flex-row">
<span data-i18n="target:-u">TARGET:</span>
<input type="text" name="attr_powertarget">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerconcentration" value="{{concentration=1}}">
<span data-i18n="concentration-u">CONCENTRATION</span>
</div>
<div class="flex-row">
<span data-i18n="duration:-u">DURATION:</span>
<input type="text" name="attr_powerduration">
</div>
<div class="flex-row">
<span data-i18n="power-ability-u">POWERCASTING ABILITY</span>
<select name="attr_power_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="innate:-u">INNATE:</span>
<input type="text" name="attr_innate" placeholder="1/day" value="">
</div>
<div class="flex-row">
<span data-i18n="output:-u">OUTPUT:</span>
<select name="attr_poweroutput">
<option value="POWERCARD" data-i18n="powercard-u">POWERCARD</option>
<option value="ATTACK" data-i18n="attack-u">ATTACK</option>
</select>
</div>
<input type="hidden" class="powerattackinfoflag" name="attr_poweroutput">
<div class="powerattackinfo">
<div class="flex-row">
<span data-i18n="power-atk:-u">POWER ATTACK:</span>
<select name="attr_powerattack">
<option value="None" data-i18n="none">None</option>
<option value="Melee" data-i18n="melee">Melee</option>
<option value="Ranged" data-i18n="ranged">Ranged</option>
</select>
</div>
<div class="flex-row">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_powerdamage" style="width: 50px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_powerdamage2" style="width: 45px;">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_powerdamagetype2" style="width: 103px;">
</div>
<div class="flex-row">
<span data-i18n="healing:-u">HEALING:</span>
<input type="text" name="attr_powerhealing" style="width: 45px;">
</div>
<div class="flex-row">
<input type="checkbox" name="attr_powerdmgmod" value="Yes">
<span data-i18n="add-ability-mod-u">ADD ABILITY MOD TO DAMAGE OR HEALING</span>
</div>
<div class="flex-row">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_powersave">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="effect:-u">EFFECT:</span>
<input type="text" name="attr_powersavesuccess" style="width: 78px;"
placeholder="Half damage" data-i18n-placeholder="half-dmg-place">
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl-dmg:-u">HIGHER LVL CAST DMG:</span>
<input type="text" name="attr_powerhldie" placeholder="1"
style="width: 15px; text-align: right;">
<select name="attr_powerhldietype">
<option value="" selected="selected" data-i18n="none-u">NONE</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
<option value="d20">d20</option>
</select>
<span>+</span>
<input type="text" name="attr_powerhlbonus" placeholder="0"
style="width: 15px; text-align: center;">
</div>
<div class="flex-row">
<span data-i18n="include_power_desc:-u">INCLUDE POWER DESCRIPTION IN ATTACK:</span>
<select name="attr_includedesc">
<option value="off" selected="selected" data-i18n="off">Off</option>
<option value="partial" data-i18n="partial">Partial</option>
<option value="on" data-i18n="on">On</option>
</select>
</div>
</div>
<div class="flex-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerdescription"></textarea>
</div>
<div class="flex-row">
<span data-i18n="at-higher-lvl:-u">AT HIGHER LEVELS:</span>
</div>
<div class="flex-row">
<textarea name="attr_powerathigherlevels"
style="height: 36px; min-height: 36px;"></textarea>
</div>
<input type="hidden" name="attr_powerattackid">
<input type="hidden" name="attr_powerlevel" value="9">
</div>
<div class="flex-row display">
<input type="hidden" name="attr_rollcontent"
value="@{wtype}&{template:power} {{level=@{powerschool} @{powerlevel}}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}">
<input type="checkbox" name="attr_powerprepared" value="1" class="prep-box"><span
class="prep"></span>
<button class="powercard" type="roll" name="roll_power" value="@{rollcontent}">
<span class="powername" name="attr_powername"></span>
<input class="innate_flag" type="hidden" name="attr_innate" value="">
<span class="innate" name="attr_innate"></span>
</button>
<input type="hidden" class="powerconcentration" name="attr_powerconcentration" value="0">
<span class="powerconcentration" data-i18n="power-concentration">C</span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<div class="tab options">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="char-name-u">CHARACTER NAME</span>
</div>
<input class="options-flag" type="checkbox" name="attr_options-class-selection" checked="checked"><span>y</span>
<div class="header-info options">
<div class="sheet-row" style="border-top: 2px dashed gold;">
<span data-i18n="class:-u">CLASS:</span>
<input type="hidden" name="attr_custom_class" class="flag">
<select class="hiding class" name="attr_class">
<option value="" data-i18n="choose">Choose</option>
<option value="Berserker" data-i18n="berserker">Berserker</option>
<option value="Consular" data-i18n="consular">Consular</option>
<option value="Engineer" data-i18n="engineer">Engineer</option>
<option value="Fighter" data-i18n="fighter">Fighter</option>
<option value="Guardian" data-i18n="guardian">Guardian</option>
<option value="Monk" data-i18n="monk">Monk</option>
<option value="Operative" data-i18n="operative">Operative</option>
<option value="Scholar" data-i18n="scholar">Scholar</option>
<option value="Scout" data-i18n="scout">Scout</option>
<option value="Sentinel" data-i18n="sentinel">Sentinel</option>
</select>
<input type="text" class="showing" name="attr_cust_classname" style="width: 90px;">
<span data-i18n="subclass:-u">SUBCLASS:</span>
<input type="text" name="attr_subclass">
<span data-i18n="lvl:-u">LEVEL:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_level" value="1">
</div>
<div class="sheet-row">
<span data-i18n="race:-u">RACE:</span>
<input type="text" name="attr_race">
<span data-i18n="subrace:-u">SUBRACE:</span>
<input type="text" name="attr_subrace">
</div>
</div>
<div class="header-info display">
<div class="top">
<div class="hlabel-container">
<input type="text" name="attr_class_display" class="class-display no_events">
<span class="label" data-i18n="class-level-u">CLASS & LEVEL</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_background" style="width: 182px;">
<span class="label" data-i18n="background-u">BACKGROUND</span>
</div>
</div>
<div class="bottom">
<div class="hlabel-container">
<input type="text" name="attr_race_display" class="no_events">
<span class="label" data-i18n="race-u">RACE</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_alignment">
<span class="label" data-i18n="alignment-u">ALIGNMENT</span>
</div>
<div class="hlabel-container">
<input type="text" name="attr_experience">
<span class="label" data-i18n="exp-pts-u">EXPERIENCE POINTS</span>
</div>
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="pc-btn-group">
<input type="hidden" name="attr_tab">
<button type="action" name="act_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_tab_bio"><span data-i18n="bio-u">BIO</span></button>
<button type="action" name="act_tab_powers"><span data-i18n="powers-u">POWERS</span></button>
<button type="action" name="act_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="class_options">
<div class="sheet-row">
<span data-i18n="hit-die:-u">HIT DIE:</span>
<select name="attr_hitdietype">
<option value="4">D4</option>
<option value="6">D6</option>
<option value="8">D8</option>
<option value="10">D10</option>
<option value="12">D12</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="carrying-capacity-mod:-u">CARRYING CAPACITY MODIFIER:</span>
<input type="text" class="num" name="attr_carrying_capacity_mod" placeholder="*2">
</div>
<div class="sheet-row">
<span data-i18n="glob-atk-mod:-u">GLOBAL POWER ATTACK MODIFIER:</span>
<input type="text" class="num" name="attr_globalpowermod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="power-caster-lvl:-u">POWER CASTER LEVEL:</span>
<input type="text" class="num" name="attr_caster_level">
</div>
<div class="sheet-row">
<span data-i18n="power_dc_mod:-u">POWER SAVE DC MOD:</span>
<input type="text" class="num" name="attr_power_dc_mod" placeholde="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="power-icons:-u">POWER ICONS:</span>
<select name="attr_powericon_flag">
<option value="all" data-i18n="show_all">Show All</option>
<option value="cp" data-i18n="cr_only">C&R Only</option>
<option value="none" data-i18n="none">None</option>
</select>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_precognition_flag" value="1">
<span data-i18n="precognition-u">PRECOGNITION (REROLL ONES)</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_tech_fighter" value="1">
<span data-i18n="tech-fighter-u">TECH FIGHTER</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_tech_operative" value="1">
<span data-i18n="tech-operative-u">TECH OPERATIVE</span>
</div>
<div class="sheet-row title">
<span data-i18n="class-options-u">CLASS OPTIONS</span>
</div>
</div>
<div class="class_options">
<div class="sheet-row">
<input type="checkbox" name="attr_multiclass1_flag" value="1">
<span data-i18n="2nd-class:-u">2ND CLASS:</span>
<select name="attr_multiclass1" style="width: 64px;">
<option value="berserker" data-i18n="berserker">Berserker</option>
<option value="scholar" data-i18n="scholar">Scholar</option>
<option value="engineer" data-i18n="engineer">Engineer</option>
<option value="fighter" data-i18n="fighter">Fighter</option>
<option value="monk" data-i18n="monk">Monk</option>
<option value="guardian" data-i18n="guardian">Guardian</option>
<option value="scout" data-i18n="scout">Scout</option>
<option value="operative" data-i18n="operative">Operative</option>
<option value="sentinel" data-i18n="sentinel">Sentinel</option>
<option value="consular" data-i18n="consular">Consular</option>
</select>
<span data-i18n="lvl:-u">LEVEL:</span>
<input type="text" name="attr_multiclass1_lvl" value="1" style="width: 28px; text-align: center;">
<span data-i18n="subclass:-u" class="subclass">SUBCLASS:</span>
<input type="text" name="attr_multiclass1_subclass">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_multiclass2_flag" value="1">
<span data-i18n="3rd-class:-u">3RD CLASS:</span>
<select name="attr_multiclass2" style="width: 64px;">
<option value="berserker" data-i18n="berserker">Berszerker</option>
<option value="scholar" data-i18n="scholar">Scholar</option>
<option value="engineer" data-i18n="engineer">Engineer</option>
<option value="fighter" data-i18n="fighter">Fighter</option>
<option value="monk" data-i18n="monk">Monk</option>
<option value="guardian" data-i18n="guardian">Guardian</option>
<option value="scout" data-i18n="scout">Scout</option>
<option value="operative" data-i18n="operative">Operative</option>
<option value="sentinel" data-i18n="sentinel">Sentinel</option>
<option value="consular" data-i18n="consular">Consular</option>
</select>
<span data-i18n="lvl:-u">LEVEL:</span>
<input type="text" name="attr_multiclass2_lvl" value="1" style="width: 28px; text-align: center;">
<span data-i18n="subclass:-u" class="subclass">SUBCLASS:</span>
<input type="text" name="attr_multiclass2_subclass">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_multiclass3_flag" value="1">
<span data-i18n="4th-class:-u">4TH CLASS:</span>
<select name="attr_multiclass3" style="width: 64px;">
<option value="berserker" data-i18n="berserker">Berserker</option>
<option value="scholar" data-i18n="scholar">Scholar</option>
<option value="engineer" data-i18n="engineer">Engineer</option>
<option value="fighter" data-i18n="fighter">Fighter</option>
<option value="monk" data-i18n="monk">Monk</option>
<option value="guardian" data-i18n="guardian">Guardian</option>
<option value="scout" data-i18n="scout">Scout</option>
<option value="operative" data-i18n="operative">Operative</option>
<option value="sentinel" data-i18n="sentinel">Sentinel</option>
<option value="consular" data-i18n="consular">Consular</option>
</select>
<span data-i18n="lvl:-u">LEVEL:</span>
<input type="text" name="attr_multiclass3_lvl" value="1" style="width: 28px; text-align: center;">
<span data-i18n="subclass:-u" class="subclass">SUBCLASS:</span>
<input type="text" name="attr_multiclass3_subclass">
</div>
<div class="sheet-row title">
<span data-i18n="mutliclass-opts-u">MULTICLASS OPTIONS</span>
</div>
</div>
<div class="class_options">
<div class="sheet-row">
<input type="checkbox" name="attr_custom_class" value="1">
<span data-i18n="use-cust-class-u">USE CUSTOM CLASS</span>
</div>
<div class="sheet-row">
<span data-i18n="class-name:-u">CLASS NAME:</span>
<input type="text" name="attr_cust_classname">
</div>
<div class="sheet-row">
<span data-i18n="hit-die:-u">HIT DIE:</span>
<select name="attr_cust_hitdietype">
<option value="4">D4</option>
<option value="6">D6</option>
<option value="8">D8</option>
<option value="10">D10</option>
<option value="12">D12</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="powercasting-ability:-u">POWERCASTING ABILITY:</span>
<select name="attr_cust_powercasting_ability">
<option value="0*" data-i18n="none-u">NONE</option>
<option value="@{strength_mod}+" data-i18n="strength-u">STRENGTH</option>
<option value="@{dexterity_mod}+" data-i18n="dexterity-u">DEXTERITY</option>
<option value="@{constitution_mod}+" data-i18n="constitution-u">CONSTITUTION</option>
<option value="@{intelligence_mod}+" data-i18n="intelligence-u">INTELLIGENCE</option>
<option value="@{wisdom_mod}+" data-i18n="wisdom-u">WISDOM</option>
<option value="@{charisma_mod}+" data-i18n="charisma-u">CHARISMA</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="power-slots:-u">POWER SLOTS:</span>
<select name="attr_cust_powerslots">
<option value="none" data-i18n="none-u">NONE</option>
<option value="full" data-i18n="power-full-u">FULL (Engineer, Druid, Consular)</option>
<option value="half" data-i18n="power-half-u">HALF (Guardian, Scout)</option>
<option value="third" data-i18n="power-third-u">THIRD (Tech Fighter/Operative)</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="saves-u">SAVES</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_strength_save_prof" value="(@{pb})">
<span data-i18n="strength">Strength</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_dexterity_save_prof" value="(@{pb})">
<span data-i18n="dexterity">Dexterity</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_constitution_save_prof" value="(@{pb})">
<span data-i18n="constitution">Constitution</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_intelligence_save_prof" value="(@{pb})">
<span data-i18n="intelligence">Intelligence</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_wisdom_save_prof" value="(@{pb})">
<span data-i18n="wisdom">Wisdom</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_cust_charisma_save_prof" value="(@{pb})">
<span data-i18n="charisma">Charisma</span>
</div>
<div class="sheet-row title">
<span data-i18n="cust-class-opts">CUSTOM CLASS OPTIONS</span>
</div>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="attribute_options" style="width: 234px;">
<div class="sheet-row skill">
<span data-i18n="strength-u">STRENGTH</span>
<span>+</span><input type="text" class="num" name="attr_strength_bonus" value="0" placeholder="0" title="@{strength_bonus}">
</div>
<div class="sheet-row skill">
<span data-i18n="dexterity-u">DEXTERITY</span>
<span>+</span><input type="text" class="num" name="attr_dexterity_bonus" value="0" placeholder="0" title="@{dexterity_bonus}">
</div>
<div class="sheet-row skill">
<span data-i18n="constitution-u">CONSTITUTION</span>
<span>+</span><input type="text" class="num" name="attr_constitution_bonus" value="0" placeholder="0" title="@{constitution_bonus}">
</div>
<div class="sheet-row skill">
<span data-i18n="intelligence-u">INTELLIGENCE</span>
<span>+</span><input type="text" class="num" name="attr_intelligence_bonus" value="0" placeholder="0" title="@{intelligence_bonus}">
</div>
<div class="sheet-row skill">
<span data-i18n="wisdom-u">WISDOM</span>
<span>+</span><input type="text" class="num" name="attr_wisdom_bonus" value="0" placeholder="0" title="@{wisdom_bonus}">
</div>
<div class="sheet-row skill">
<span data-i18n="charisma-u">CHARISMA</span>
<span>+</span><input type="text" class="num" name="attr_charisma_bonus" value="0" placeholder="0" title="@{charisma_bonus}">
</div>
<div class="sheet-row">
<span data-i18n="initiative-mod:-u">INITIATIVE MODIFIER:</span>
<input type="text" class="num" name="attr_initmod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="initiative-style:-u">INITIATIVE STYLE:</span>
<select name="attr_initiative_style">
<option value="@{d20}" selected="selected" data-i18n="norm">Normal</option>
<option value="{@{d20},@{d20}}kh1" data-i18n="adv">Advantage</option>
<option value="{@{d20},@{d20}}kl1" data-i18n="disadv">Disadvantage</option>
<!-- <option value="?{Advantage?|Normal Roll,&#64;&#123;d20&#125;|Advantage,&#123;&#64;&#123;d20&#125;&#44;&#64;&#123;d20&#125;&#125;kh1|Disadvantage,&#123;&#64;&#123;d20&#125;&#44;&#64;&#123;d20&#125;&#125;kl1}" data-i18n="query-roll-adv">Query Advantage</option> -->
<!-- Pajellen was here -->
</select>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_init_tiebreaker" value="@{dexterity}/100">
<span data-i18n="add-dex-tiebreaker-u">ADD DEX TIEBREAKER TO INITIATIVE</span>
</div>
<div class="sheet-row">
<span data-i18n="glob-ac-mod:-u">GLOBAL ARMOR CLASS MODIFIER:</span>
<input type="text" class="num" name="attr_globalacmod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="armor-class-tracking:-u">ARMOR CLASS TRACKING:</span>
<select name="attr_custom_ac_flag">
<option value="0" selected="selected" data-i18n="automatic">Automatic</option>
<option value="1" data-i18n="custom">Custom</option>
<option value="2" data-i18n="off">Off</option>
</select>
</div>
<input class="toggleflag" type="hidden" name="attr_custom_ac_flag">
<div class="sheet-row conditional-visibility">
<span data-i18n="custom_ac:-u">CUSTOM AC:</span>
<input type="text" class="num" name="attr_custom_ac_base" placeholder="10" value="10">
<span>+</span>
<select name="attr_custom_ac_part1">
<option value="none" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span>+</span>
<select name="attr_custom_ac_part2">
<option value="none" selected="selected" data-i18n="none-u">NONE</option>
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
</div>
<div class="sheet-row title">
<span data-i18n="attribute-opts-u">ATTRIBUTE OPTIONS</span>
</div>
</div>
<div class="save_options" style="width: 234px;">
<div class="sheet-row skill">
<span data-i18n="strength-save-u">Strength Save</span>
<span>+</span><input type="text" class="num" name="attr_strength_save_mod" value="0" placeholder="0" title="@{strength_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="dexterity-save-u">Dexterity Save</span>
<span>+</span><input type="text" class="num" name="attr_dexterity_save_mod" value="0" placeholder="0" title="@{dexterity_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="constitution-save-u">Constitution Save</span>
<span>+</span><input type="text" class="num" name="attr_constitution_save_mod" value="0" placeholder="0" title="@{constitution_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="intelligence-save-u">Intelligence Save</span>
<span>+</span><input type="text" class="num" name="attr_intelligence_save_mod" value="0" placeholder="0" title="@{intelligence_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="wisdom-save-u">Wisdom Save</span>
<span>+</span><input type="text" class="num" name="attr_wisdom_save_mod" value="0" placeholder="0" title="@{wisdom_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="charisma-save-u">Charisma Save</span>
<span>+</span><input type="text" class="num" name="attr_charisma_save_mod" value="0" placeholder="0" title="@{charisma_save_mod}">
</div>
<div class="sheet-row">
<span data-i18n="death-save-mod:-u">DEATH SAVE MODIFIER:</span>
<input type="text" class="num" name="attr_death_save_mod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="glob-saving-mod:-u">GLOBAL SAVING THROW MODIFIER:</span>
<input type="text" class="num" name="attr_globalsavemod" placeholder="0" value="0">
</div>
<div class="sheet-row title">
<span data-i18n="save-opts-u">SAVE OPTIONS</span>
</div>
</div>
<div class="skill_options" style="width: 234px;">
<div data-i18n-list="skills-list">
<div class="sheet-row skill" data-i18n-list-item="acrobatics">
<select name="attr_acrobatics_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="acrobatics-core">Acrobatics <span>(Dex)</span></span>
<span>+</span><input type="text" class="num" name="attr_acrobatics_flat" value="0" placeholder="0" title="@{acrobatics_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="animal_handling">
<select name="attr_animal_handling_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="animal_handling-core">Animal Handling <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_animal_handling_flat" value="0" placeholder="0" title="@{animal_handling_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="technology">
<select name="attr_technology_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="technology-core">Technology <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_technology_flat" value="0" placeholder="0" title="@{technology_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="athletics">
<select name="attr_athletics_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="athletics-core">Athletics <span>(Str)</span></span>
<span>+</span><input type="text" class="num" name="attr_athletics_flat" value="0" placeholder="0" title="@{athletics_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="deception">
<select name="attr_deception_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="deception-core">Deception <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_deception_flat" value="0" placeholder="0" title="@{deception_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="lore">
<select name="attr_lore_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="lore-core">Lore <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_lore_flat" value="0" placeholder="0" title="@{lore_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="insight">
<select name="attr_insight_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="insight-core">Insight <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_insight_flat" value="0" placeholder="0" title="@{insight_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="intimidation">
<select name="attr_intimidation_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="intimidation-core">Intimidation <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_intimidation_flat" value="0" placeholder="0" title="@{intimidation_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="investigation">
<select name="attr_investigation_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="investigation-core">Investigation <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_investigation_flat" value="0" placeholder="0" title="@{investigation_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="medicine">
<select name="attr_medicine_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="medicine-core">Medicine <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_medicine_flat" value="0" placeholder="0" title="@{medicine_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="nature">
<select name="attr_nature_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="nature-core">Nature <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_nature_flat" value="0" placeholder="0" title="@{nature_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="perception">
<select name="attr_perception_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="perception-core">Perception <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_perception_flat" value="0" placeholder="0" title="@{perception_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="performance">
<select name="attr_performance_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="performance-core">Performance <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_performance_flat" value="0" placeholder="0" title="@{performance_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="persuasion">
<select name="attr_persuasion_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="persuasion-core">Persuasion <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_persuasion_flat" value="0" placeholder="0" title="@{persuasion_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="piloting">
<select name="attr_piloting_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="piloting-core">Piloting <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_piloting_flat" value="0" placeholder="0" title="@{piloting_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="sleight_of_hand">
<select name="attr_sleight_of_hand_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="sleight_of_hand-core">Sleight of Hand <span>(Dex)</span></span>
<span>+</span><input type="text" class="num" name="attr_sleight_of_hand_flat" value="0" placeholder="0" title="@{sleight_of_hand_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="stealth">
<select name="attr_stealth_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="stealth-core">Stealth <span>(Dex)</span></span>
<span>+</span><input type="text" class="num" name="attr_stealth_flat" value="0" placeholder="0" title="@{stealth_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="survival">
<select name="attr_survival_type"><option value="1" selected="selected" data-i18n="normal">Normal</option><option value="2" data-i18n="expirtise">Expertise</option></select>
<span data-i18n="survival-core">Survival <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_survival_flat" value="0" placeholder="0" title="@{survival_flat}">
</div>
</div>
<div class="sheet-row" style="margin-top:10px;">
<input type="checkbox" name="attr_jack_of_all_trades" value="@{jack}">
<span data-i18n="jack-of-all-u">JACK OF ALL TRADES</span>
</div>
<div class="sheet-row">
<span data-i18n="pass-perc-mod:-u">PASSIVE PERCEPTION MODIFIER:</span>
<input type="text" class="num" name="attr_passiveperceptionmod" placeholder="0" value="0">
</div>
<div class="sheet-row title">
<span data-i18n="skill-opts-u">SKILL OPTIONS</span>
</div>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="general_options">
<div class="version">
<span data-i18n="version">v</span>
<input type="text" name="attr_version">
</div>
<div class="sheet-row">
<span>SHEET TYPE:</span>
<select name="attr_npc">
<option value="0">PC</option>
<option value="1">NPC</option>
<option value="2">Ship</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="roll-queries:-u">ROLL QUERIES:</span>
<select name="attr_rtype">
<option value="{{always=1}} {{r2=[[@{d20}" data-i18n="always-roll-adv">Always Roll Advantage</option>
<option value="@{advantagetoggle}" data-i18n="toggle-roll-adv">Advantage Toggle</option>
<option value="{{query=1}} ?{Advantage?|Normal Roll,&#123&#123normal=1&#125&#125 &#123&#123r2=[[0d20|Advantage,&#123&#123advantage=1&#125&#125 &#123&#123r2=[[@{d20}|Disadvantage,&#123&#123disadvantage=1&#125&#125 &#123&#123r2=[[@{d20}}" data-i18n="query-roll-adv">Query Advantage</option>
<option value="{{normal=1}} {{r2=[[0d20" data-i18n="never-roll-adv">Never Roll Advantage</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="whisp-rolls-gm:-u">WHISPER ROLLS TO GM:</span>
<select name="attr_wtype">
<option value="" data-i18n="never-whisper-roll">Never Whisper Rolls</option>
<option value="@{whispertoggle}" data-i18n="toggle-roll-whisper">Whisper Toggle</option>
<option value="?{Whisper?|Public Roll,|Whisper Roll,/w gm }" data-i18n="query-whisper-roll">Query Whisper</option>
<option value="/w gm " data-i18n="always-whisper-roll">Always Whisper Rolls</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="auto-dmg-roll:-u">AUTO DAMAGE ROLL:</span>
<select class="dtype" name="attr_dtype">
<option value="pick" data-i18n="never-roll-dmg">Don't Auto Roll Damage</option>
<option value="full" data-i18n="always-roll-dmg">Auto Roll Damage & Crit</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="core-die-roll:-u">CORE DIE ROLL:</span>
<input type="text" name="attr_core_die" value="1d20" placeholder="1d20" title="@{core_die}">
</div>
<div class="sheet-row">
<span data-i18n="prof-bonus:-u">PROFICIENCY BONUS:</span>
<select class="dtype" name="attr_pb_type">
<option value="level" data-i18n="by-level">By Level (Default)</option>
<option value="die" data-i18n="prof-die">Proficency Die (DMG)</option>
<option value="custom" data-i18n="custom">Custom</option>
</select>
<input type="hidden" name="attr_pb_type">
<input class="pb_custom" type="text" style="float:right;" name="attr_pb_custom" placeholder="2d10">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_save_mod_flag" value="1">
<span data-i18n="show-global-save-field-u">SHOW GLOBAL SAVE MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_skill_mod_flag" value="1">
<span data-i18n="show-global-skill-field-u">SHOW GLOBAL SKILL MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_attack_mod_flag" value="1">
<span data-i18n="show-global-attack-field-u">SHOW GLOBAL ATTACK MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_damage_mod_flag" value="1">
<span data-i18n="show-global-damage-field-u">SHOW GLOBAL DAMAGE MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<span data-i18n="add-char-to-templates:-u">ADD CHARACTER NAME TO TEMPLATES:</span>
<select class="dtype" name="attr_charname_output">
<option value="{{charname=@{character_name}}}" data-i18n="on">On</option>
<option value="charname=@{character_name}" selected="selected" data-i18n="off">Off</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="level-calculations:-u">LEVEL CALCULATIONS:</span>
<select class="dtype" name="attr_level_calculations">
<option value="on" selected="selected" data-i18n="on">On</option>
<option value="off" data-i18n="off">Off</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="encumbrance:-u">ENCUMBRANCE:</span>
<select name="attr_encumberance_setting">
<option value="off" data-i18n="simple">Simple</option>
<option value="on" data-i18n="variant-phb">Variant (PHB p176)</option>
<option value="disabled" data-i18n="off">Off</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="inventory:-u">INVENTORY:</span>
<select name="attr_simpleinventory">
<option value="complex" data-i18n="compendium-compatible">Compendium Compatible</option>
<option value="simple" data-i18n="simple">Simple</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="feats-traits-u">FEATURES AND TRAITS</span><span>:</span>
<select name="attr_simpletraits">
<option value="complex" data-i18n="compendium-compatible">Compendium Compatible</option>
<option value="simple" data-i18n="simple">Simple</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="prof-langs-u">PROFICENCIES AND LANGUAGES</span><span>:</span>
<select name="attr_simpleproficencies">
<option value="complex" data-i18n="compendium-compatible">Compendium Compatible</option>
<option value="simple" data-i18n="simple">Simple</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="ammo-tracking:-u">AMMO TRACKING:</span>
<select name="attr_ammotracking">
<option value="on" data-i18n="on">On</option>
<option value="off" selected="selected" data-i18n="off">Off</option>
</select>
<span data-i18n-title="api-required-title" data-i18n="api-required-u" title="Try it now with easy one click API installation available with your Pro subscription." style="color:#666; cursor:help;">(API REQUIRED)</span>
</div>
<div class="sheet-row">
<span data-i18n="exhaustion-setting-u">SHOW EXHAUSTION TRACKING:</span>
<select name="attr_exhaustion_toggle">
<option value="1" data-i18n="on">On</option>
<option value="0" data-i18n="off" selected="selected">Off</option>
</select>
</div>
<div class="sheet-row title">
<span data-i18n="general-opts-u">GENERAL OPTIONS</span>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div style="margin-right: 50px; margin-left: 10px;">
<span data-i18n="portions-sheet-utilize">
Portions of this sheet utilize content from the System Reference Document 5.0 under the OGL License. View OGL License and Copyright Notice. https://sw5e.com/
</span>
</div>
<div>
<span data-i18n="footer-wiki-link">
For more information about this character sheet, its functionality, or uses, please check out the Roll20 Wiki for official documentation. https://wiki.roll20.net/5th_Edition_OGL_by_Roll20
</span>
</div>
</div>
</div>
<!-- SHIP -->
<div class="container ship">
<input type="hidden" name="attr_ship_tab" value="ship-core">
<div class="tab ship-suites">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="ship-name-u">SHIP NAME</span>
</div>
<div class="header-info options">
<div class="flex-row flex-align-center">
<span data-i18n="ship-size:-u">SIZE:</span>
<select class="hiding class" name="attr_ship_size">
<option value="" data-i18n="choose">Choose</option>
<option value="Tiny" data-i18n="tiny">Tiny</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="Gargantuan" data-i18n="gargantuan">Gargantuan</option>
</select>
<span data-i18n="ship-tier:-u">TIER:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_ship_tier" value="0">
<span data-i18n="role-specialization:-u">ROLE:</span>
<input type="text" class="class-level" name="attr_ship_role" value="">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-manufacturer:-u">MANUFACTURER/LINE/CLASS:</span>
<input type="text" name="attr_ship_manufacturer">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-credits-next-tier:-u">CREDITS NEEDED TO UPGRADE TO NEXT TIER:</span>
<input type="number" style="width:90px" name="attr_ship_cr_next">
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="ship-btn-group">
<input type="hidden" name="attr_ship_tab">
<button type="action" name="act_ship_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_ship_tab_cargo"><span data-i18n="ship-cargo-tab-u">CARGO</span></button>
<button type="action" name="act_ship_tab_mods"><span data-i18n="ship-mods-tab-u">MODS</span></button>
<button type="action" name="act_ship_tab_suites"><span data-i18n="ship-suites-tab-u">SUITES</span></button>
<button type="action" name="act_ship_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-8">
<div class="textbox traits" style="min-height: 84px; width:480px; display:inline-block;">
<input type="hidden" class="inventoryflag" name="attr_simpletraits" value="complex">
<textarea class="simple" name="attr_features_and_traits" style="min-height: 260px; height: 260px;"></textarea>
<div class="complex" style="width: 475px;">
<fieldset class="repeating_suites">
<div class="trait">
<button type="roll" name="roll_output" class="output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{suite_name}}} {{source=@{suite_source}: @{suite_source_type}}} {{description=@{suite_description}}}">w</button>
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<input class="display-flag" type="checkbox" name="attr_display_flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_suite_name" style="width: 120px;">
</div>
<div class="sheet-row">
<span data-i18n="source:-u">SOURCE:</span>
<select name="attr_suite_source">
<option selected="selected" data-i18n="base">Base</option>
<option data-i18n="upgrade">Upgrade</option>
<option data-i18n="other">Other</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_suite_source_type" style="width: 160px;" value="Suite System">
</div>
<div class="sheet-row">
<span data-i18n="grade:-u">GRADE:</span>
<input type="number" name="attr_suite_grade" style="width: 160px;" placeholder=0>
</div>
<div class="sheet-row">
<span data-i18n="cost:-u">Cost:</span>
<input type="number" name="attr_suite_mod_cost" style="width: 160px;" placeholder=0>
</div>
<div class="sheet-row">
<textarea name="attr_suite_description" style="min-height: 200px; height: 200px;"></textarea>
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_suite_name"></span>
<span class="subheader">
Grade: <span name="attr_suite_grade"></span>: <span name="attr_suite_source"></span><span>: </span><span name="attr_suite_source_type"></span>: <span name="attr_suite_mod_cost"></span> cr
</span>
<span class="desc" name="attr_suite_description"></span>
</div>
</div>
</fieldset>
</div>
<span class="label" data-i18n="modifications-suites-u" style="margin-top: 0px; position: absolute; bottom: 0px;">SUITE MODIFICATIONS</span>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="hp">
<div class="top">
<span data-i18n="ship-mod-max">Modification Capacity</span>
<input type="text" name="attr_ship_mod_max" title="@{ship_mod_max}">
</div>
<input type="number" name="attr_ship_mod_current" title="@{ship_mod_current}">
<span class="label" data-i18n="ship-mod-current-u">TOTAL MODIFICATIONS</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-suites-max">Maximum Suites</span>
<input type="text" name="attr_ship_suites_max" title="@{ship_suites_max}">
</div>
<input type="number" name="attr_ship_suites_current" title="@{ship_suites_current}">
<span class="label" data-i18n="ship-suites-current-u">TOTAL SUITES</span>
</div>
</div>
</div>
</div>
<div class="tab ship-mods">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="ship-name-u">SHIP NAME</span>
</div>
<div class="header-info options">
<div class="flex-row flex-align-center">
<span data-i18n="ship-size:-u">SIZE:</span>
<select class="hiding class" name="attr_ship_size">
<option value="" data-i18n="choose">Choose</option>
<option value="Tiny" data-i18n="tiny">Tiny</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="Gargantuan" data-i18n="gargantuan">Gargantuan</option>
</select>
<span data-i18n="ship-tier:-u">TIER:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_ship_tier" value="0">
<span data-i18n="role-specialization:-u">ROLE:</span>
<input type="text" class="class-level" name="attr_ship_role" value="">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-manufacturer:-u">MANUFACTURER/LINE/CLASS:</span>
<input type="text" name="attr_ship_manufacturer">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-credits-next-tier:-u">CREDITS NEEDED TO UPGRADE TO NEXT TIER:</span>
<input type="number" style="width:90px" name="attr_ship_cr_next">
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="ship-btn-group">
<input type="hidden" name="attr_ship_tab">
<button type="action" name="act_ship_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_ship_tab_cargo"><span data-i18n="ship-cargo-tab-u">CARGO</span></button>
<button type="action" name="act_ship_tab_mods"><span data-i18n="ship-mods-tab-u">MODS</span></button>
<button type="action" name="act_ship_tab_suites"><span data-i18n="ship-suites-tab-u">SUITES</span></button>
<button type="action" name="act_ship_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-8">
<div class="textbox traits" style="min-height: 84px; width:480px; display:inline-block;">
<input type="hidden" class="inventoryflag" name="attr_simpletraits" value="complex">
<textarea class="simple" name="attr_features_and_traits" style="min-height: 260px; height: 260px;"></textarea>
<div class="complex" style="width: 475px;">
<fieldset class="repeating_modifications">
<div class="trait">
<button type="roll" name="roll_output" class="output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{name}}} {{source=@{source}: @{source_type}}} {{description=@{description}}}">w</button>
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<input class="display-flag" type="checkbox" name="attr_display_flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name" style="width: 120px;">
</div>
<div class="sheet-row">
<span data-i18n="source:-u">SOURCE:</span>
<select name="attr_source">
<option selected="selected" data-i18n="base">Base</option>
<option data-i18n="upgrade">Upgrade</option>
<option data-i18n="other">Other</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_source_type" style="width: 160px;" placeholder="Universal, Engineering...">
</div>
<div class="sheet-row">
<span data-i18n="grade:-u">GRADE:</span>
<input type="number" name="attr_mod_grade" style="width: 160px;" placeholder=0>
</div>
<div class="sheet-row">
<span data-i18n="cost:-u">Cost:</span>
<input type="number" name="attr_mod_cost" style="width: 160px;" placeholder=0>
</div>
<div class="sheet-row">
<textarea name="attr_description" style="min-height: 200px; height: 200px;"></textarea>
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_name"></span>
<span class="subheader">
Grade: <span name="attr_mod_grade"></span>: <span name="attr_source"></span><span>: </span><span name="attr_source_type"></span> : <span name="attr_mod_cost"></span> cr
</span>
<span class="desc" name="attr_description"></span>
</div>
</div>
</fieldset>
</div>
<span class="label" data-i18n="modifications-u" style="margin-top: 0px; position: absolute; bottom: 0px;">MODIFICATIONS</span>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="hp">
<div class="top">
<span data-i18n="ship-mod-max">Modification Capacity</span>
<input type="text" name="attr_ship_mod_max" title="@{ship_mod_max}">
</div>
<input type="number" name="attr_ship_mod_current" title="@{ship_mod_current}">
<span class="label" data-i18n="ship-mod-current-u">TOTAL MODIFICATIONS</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-hardpoints-max">Fixed Hardpoints</span>
<input type="text" name="attr_ship_hardpoints_max" title="@{ship_hardpoints_max}">
</div>
<input type="number" name="attr_ship_hardpoints_current" title="@{ship_hardpoints_current}">
<span class="label" data-i18n="ship-hardpoints-current-u">HARDPOINTS USED</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-t-hardpoints-max">Turret Hardpoints</span>
<input type="text" name="attr_ship_t_hardpoints_max" title="@{ship_t_hardpoints_max}">
</div>
<input type="number" name="attr_ship_t_hardpoints_current" title="@{ship_t_hardpoints_current}">
<span class="label" data-i18n="ship-t-hardpoints-current-u">TURRET HARDPOINTS USED</span>
</div>
</div>
</div>
</div>
<div class="tab ship-cargo">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="ship-name-u">SHIP NAME</span>
</div>
<div class="header-info options">
<div class="flex-row flex-align-center">
<span data-i18n="ship-size:-u">SIZE:</span>
<select class="hiding class" name="attr_ship_size">
<option value="" data-i18n="choose">Choose</option>
<option value="Tiny" data-i18n="tiny">Tiny</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="Gargantuan" data-i18n="gargantuan">Gargantuan</option>
</select>
<span data-i18n="ship-tier:-u">TIER:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_ship_tier" value="0">
<span data-i18n="role-specialization:-u">ROLE:</span>
<input type="text" class="class-level" name="attr_ship_role" value="">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-manufacturer:-u">MANUFACTURER/LINE/CLASS:</span>
<input type="text" name="attr_ship_manufacturer">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-credits-next-tier:-u">CREDITS NEEDED TO UPGRADE TO NEXT TIER:</span>
<input type="number" style="width:90px" name="attr_ship_cr_next">
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="ship-btn-group">
<input type="hidden" name="attr_ship_tab">
<button type="action" name="act_ship_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_ship_tab_cargo"><span data-i18n="ship-cargo-tab-u">CARGO</span></button>
<button type="action" name="act_ship_tab_mods"><span data-i18n="ship-mods-tab-u">MODS</span></button>
<button type="action" name="act_ship_tab_suites"><span data-i18n="ship-suites-tab-u">SUITES</span></button>
<button type="action" name="act_ship_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-8">
<div class="flex-row">
<div style="display:inline-block" class="equipment flex-w-6">
<div class="money">
<div class="coin">
<span class="label" data-i18n="credit-piece-u">CR</span>
<input type="text" name="attr_cr" title="@{cr}">
</div>
</div>
<input type="hidden" class="inventoryflag" name="attr_simpleinventory" value="complex">
<textarea class="simple" name="attr_equipment"></textarea>
<div class="complex">
<input type="hidden" class="warningflag" name="attr_armorwarningflag">
<div class="warning">
<span data-i18n="warning-armor-sets-u">
<input type="checkbox" name="attr_armorwarning" value="hide">
WARNING - MULTIPLE SETS OF ARMOR OR SHIELDS HAVE BEEN ADDED AND AC IS NOT CORRECTLY CALCULATED. UNEQUIP THE ARMOR PIECE FROM THE ITEM DETAILS.
</span>
</div>
<div class="header" style="height: auto;">
<span class="pictos" style="width: 25px; font-size: 15px;">*</span>
<span style="width: 100px; text-align: left;" data-i18n="item-name-u">ITEM NAME</SPAN>
<span style="width: 25px;"><img
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%20Edition%20OGL%20by%20Roll20/images/weight_lbs.png"
style="width: 15px; margin-bottom: -3px;"></span>
</div>
<fieldset class="repeating_inventory">
<input type="hidden" class="equippedflag" name="attr_equipped">
<div class="item">
<input class="weight" type="text" name="attr_itemcount" value="1">
<input class="name" type="text" name="attr_itemname">
<input class="weight" type="text" name="attr_itemweight">
<input class="inventorysubflag" type="checkbox" name="attr_inventorysubflag"><span>i</span>
<div class="subitem">
<input class="equipped" type="checkbox" name="attr_equipped" value="1"
checked="checked">
<span class="equippedlabel" data-i18n="equipped-u">EQUIPPED</span>
<input class="equipped" type="checkbox" name="attr_useasresource" value="1">
<span class="equippedlabel" data-i18n="use-as-resource-u">USE AS A RESOURCE</span>
<input class="equipped" type="checkbox" name="attr_hasattack" value="1">
<span class="equippedlabel" data-i18n="has-attack-u">HAS AN ATTACK</span>
<span class="label" data-i18n="prop:-u">PROP:</span>
<input class="subfield" type="text" name="attr_itemproperties">
<span class="label" data-i18n="mods:-u">MODS:</span>
<input class="subfield" type="text" name="attr_itemmodifiers">
<textarea class="subtextarea" name="attr_itemcontent"></textarea>
</div>
<input type="hidden" name="attr_itemattackid">
<input type="hidden" name="attr_itemresourceid">
</div>
</fieldset>
<div class="weighttotal">
<span class="label break-lang" data-i18n="total-cargo-tons-u">TOTAL CARGO (TONS)</span>
<input type="text" name="attr_weighttotal" value="0">
</div>
</div>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;"
data-i18n="cargo-u">CARGO</span>
</div>
<div style="display:inline-block" class="equipment flex-w-6">
<div class="money">
<div class="coin">
<span class="label" data-i18n="credit-piece-u">CR</span>
<input type="text" name="attr_hiddencr" title="@{hiddencr}">
</div>
</div>
<input type="hidden" class="inventoryflag" name="attr_simpleinventory" value="complex">
<textarea class="simple" name="attr_equipment"></textarea>
<div class="complex">
<input type="hidden" class="warningflag" name="attr_armorwarningflag">
<div class="warning">
<span data-i18n="warning-armor-sets-u">
<input type="checkbox" name="attr_armorwarning" value="hide">
WARNING - MULTIPLE SETS OF ARMOR OR SHIELDS HAVE BEEN ADDED AND AC IS NOT CORRECTLY CALCULATED. UNEQUIP THE ARMOR PIECE FROM THE ITEM DETAILS.
</span>
</div>
<div class="header" style="height: auto;">
<span class="pictos" style="width: 25px; font-size: 15px;">*</span>
<span style="width: 100px; text-align: left;" data-i18n="item-name-u">ITEM NAME</SPAN>
<span style="width: 25px;"><img
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/5th%20Edition%20OGL%20by%20Roll20/images/weight_lbs.png"
style="width: 15px; margin-bottom: -3px;"></span>
</div>
<fieldset class="repeating_hiddeninventory">
<input type="hidden" class="equippedflag" name="attr_equipped">
<div class="item">
<input class="weight" type="text" name="attr_itemcount" value="1">
<input class="name" type="text" name="attr_itemname">
<input class="weight" type="text" name="attr_itemweight">
<input class="inventorysubflag" type="checkbox" name="attr_inventorysubflag"><span>i</span>
<div class="subitem">
<input class="equipped" type="checkbox" name="attr_equipped" value="1"
checked="checked">
<span class="equippedlabel" data-i18n="equipped-u">EQUIPPED</span>
<input class="equipped" type="checkbox" name="attr_useasresource" value="1">
<span class="equippedlabel" data-i18n="use-as-resource-u">USE AS A RESOURCE</span>
<input class="equipped" type="checkbox" name="attr_hasattack" value="1">
<span class="equippedlabel" data-i18n="has-attack-u">HAS AN ATTACK</span>
<span class="label" data-i18n="prop:-u">PROP:</span>
<input class="subfield" type="text" name="attr_itemproperties">
<span class="label" data-i18n="mods:-u">MODS:</span>
<input class="subfield" type="text" name="attr_itemmodifiers">
<textarea class="subtextarea" name="attr_itemcontent"></textarea>
</div>
<input type="hidden" name="attr_itemattackid">
<input type="hidden" name="attr_itemresourceid">
</div>
</fieldset>
<div class="weighttotal">
<span class="label break-lang" data-i18n="total-hidden-cargo-tons-u">TOTAL HIDDEN CARGO (TONS)</span>
<input type="text" name="attr_hiddenweighttotal" value="0">
</div>
</div>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;"
data-i18n="hidden-cargo-u">HIDDEN CARGO</span>
</div>
</div>
<div class="textbox">
<span class="label" data-i18n="ship-notes-u">SHIP NOTES AND MISC</span>
<textarea name="attr_ship_notes" style="min-height: 400px; height: 400px;"></textarea>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="hp">
<div class="top">
<span data-i18n="ship-fuel-max">Ship Fuel Capacity</span>
<input type="text" name="attr_ship_fuel_max" title="@{ship_fuel_max}">
</div>
<input type="number" name="attr_ship_fuel_current" title="@{ship_fuel_current}">
<span class="label" data-i18n="ship-fuel-current-label">CURRENT FUEL (UNITS)</span>
</div>
<div class="hp">
<input type="number" name="attr_ship_fuel_cost" title="@{ship_fuel_cost}">
<span class="label" data-i18n="ship-fuel-cost-label">FUEL COST (CR)</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-food-max">Ship Food Capacity</span>
<input type="text" name="attr_ship_food_max" title="@{food_max}">
</div>
<input type="number" name="attr_ship_food_current" title="@{ship_food_current}">
<span class="label" data-i18n="ship-food-current-label">CURRENT FOOD (PORTIONS)</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-reg-cargo-max">Regular Cargo Capacity</span>
<input type="text" name="attr_ship_reg_cargo_max" title="@{ship_reg_cargo_max}">
</div>
<input type="number" name="attr_weighttotal" title="@{weighttotal}">
<span class="label" data-i18n="total-cargo-tons-u">CURRENT CARGO (TONS)</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-hidden-cargo-max">Hidden Cargo Capacity</span>
<input type="text" name="attr_ship_hidden_cargo_max" title="@{ship_hidden_cargo_max}" style="width:115px">
</div>
<input type="number" name="attr_hiddenweighttotal" title="@{hiddenweighttotal}">
<span class="label" data-i18n="total-hidden-cargo-tons-u">HIDDEN CARGO (TONS)</span>
</div>
</div>
</div>
</div>
<div class="tab ship-core">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="ship-name-u">SHIP NAME</span>
</div>
<div class="header-info options">
<div class="flex-row flex-align-center">
<span data-i18n="ship-size:-u">SIZE:</span>
<select class="hiding class" name="attr_ship_size">
<option value="" data-i18n="choose">Choose</option>
<option value="Tiny" data-i18n="tiny">Tiny</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="Gargantuan" data-i18n="gargantuan">Gargantuan</option>
</select>
<span data-i18n="ship-tier:-u">TIER:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_ship_tier" value="0">
<span data-i18n="role-specialization:-u">ROLE:</span>
<input type="text" class="class-level" name="attr_ship_role" value="">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-manufacturer:-u">MANUFACTURER/LINE/CLASS:</span>
<input type="text" name="attr_ship_manufacturer">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-credits-next-tier:-u">CREDITS NEEDED TO UPGRADE TO NEXT TIER:</span>
<input type="number" style="width:90px" name="attr_ship_cr_next">
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="ship-btn-group">
<input type="hidden" name="attr_ship_tab">
<button type="action" name="act_ship_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_ship_tab_cargo"><span data-i18n="ship-cargo-tab-u">CARGO</span></button>
<button type="action" name="act_ship_tab_mods"><span data-i18n="ship-mods-tab-u">MODS</span></button>
<button type="action" name="act_ship_tab_suites"><span data-i18n="ship-suites-tab-u">SUITES</span></button>
<button type="action" name="act_ship_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-8">
<div class="flex-row">
<div style="display:inline" class="flex-column flex-w-6">
<div class="attributes-container" style="margin-top: 10px;">
<div class="attr-container">
<button type="roll" name="roll_strength"
value="@{wtype}&{template:simple} {{rname=^{strength-u}}} {{mod=@{strength_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{strength_mod}@{jack_attr}[STR]]]}} @{rtype}+@{strength_mod}@{jack_attr}[STR]]]}} @{charname_output}"
data-i18n="strength-u">STRENGTH
</button>
<span class="attr" name="attr_strength_mod" title="@{strength_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_strength_base" title="@{strength}"
value="10">
<input type="hidden" name="attr_strength" value="10">
<input class="attr-flag" type="hidden" name="attr_strength_flag" value="0">
<span class="finalattr" name="attr_strength"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_dexterity"
value="@{wtype}&{template:simple} {{rname=^{dexterity-u}}} {{mod=@{dexterity_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{dexterity_mod}@{jack_attr}[DEX]]]}} @{rtype}+@{dexterity_mod}@{jack_attr}[DEX]]]}} @{charname_output}"
data-i18n="dexterity-u">DEXTERITY
</button>
<span class="attr" name="attr_dexterity_mod" title="@{dexterity_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_dexterity_base" title="@{dexterity}"
value="10">
<input type="hidden" name="attr_dexterity" value="10">
<input class="attr-flag" type="hidden" name="attr_dexterity_flag" value="0">
<span class="finalattr" name="attr_dexterity"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_constitution"
value="@{wtype}&{template:simple} {{rname=^{constitution-u}}} {{mod=@{constitution_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{constitution_mod}@{jack_attr}[CON]]]}} @{rtype}+@{constitution_mod}@{jack_attr}[CON]]]}} @{charname_output}"
data-i18n="constitution-u">CONSTITUTION
</button>
<span class="attr" name="attr_constitution_mod" title="@{constitution_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_constitution_base" title="@{constitution}"
value="10">
<input type="hidden" name="attr_constitution" value="10">
<input class="attr-flag" type="hidden" name="attr_constitution_flag" value="0">
<span class="finalattr" name="attr_constitution"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_intelligence"
value="@{wtype}&{template:simple} {{rname=^{intelligence-u}}} {{mod=@{intelligence_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{intelligence_mod}@{jack_attr}[INT]]]}} @{rtype}+@{intelligence_mod}@{jack_attr}[INT]]]}} @{charname_output}"
data-i18n="intelligence-u">INTELLIGENCE
</button>
<span class="attr" name="attr_intelligence_mod" title="@{intelligence_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_intelligence_base" title="@{intelligence}"
value="10">
<input type="hidden" name="attr_intelligence" value="10">
<input class="attr-flag" type="hidden" name="attr_intelligence_flag" value="0">
<span class="finalattr" name="attr_intelligence"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_wisdom"
value="@{wtype}&{template:simple} {{rname=^{wisdom-u}}} {{mod=@{wisdom_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{wisdom_mod}@{jack_attr}[WIS]]]}} @{rtype}+@{wisdom_mod}@{jack_attr}[WIS]]]}} @{charname_output}"
data-i18n="wisdom-u">WISDOM
</button>
<span class="attr" name="attr_wisdom_mod" title="@{wisdom_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_wisdom_base" title="@{wisdom}" value="10">
<input type="hidden" name="attr_wisdom" value="10">
<input class="attr-flag" type="hidden" name="attr_wisdom_flag" value="0">
<span class="finalattr" name="attr_wisdom"></span>
</div>
</div>
<div class="attr-container">
<button type="roll" name="roll_charisma"
value="@{wtype}&{template:simple} {{rname=^{charisma-u}}} {{mod=@{charisma_mod}@{jack_bonus}}} {{r1=[[@{d20}+@{charisma_mod}@{jack_attr}[CHA]]]}} @{rtype}+@{charisma_mod}@{jack_attr}[CHA]]]}} @{charname_output}"
data-i18n="charisma-u">CHARISMA
</button>
<span class="attr" name="attr_charisma_mod" title="@{charisma_mod}">0</span>
<div class="attr-mod">
<input class="baseattr" type="text" name="attr_charisma_base" title="@{charisma}"
value="10">
<input type="hidden" name="attr_charisma" value="10">
<input class="attr-flag" type="hidden" name="attr_charisma_flag" value="0">
<span class="finalattr" name="attr_charisma"></span>
</div>
</div>
</div>
<div class="skills-saves-container">
<div class="flex-row insp-prof-container">
<div class="value">
<input type="number" name="attr_hyperdrive_class">
</div>
<div class="label">
<span data-i18n="hyperdrive_class-u">HYPERDRIVE CLASS</span>
</div>
</div>
<div class="flex-row insp-prof-container">
<div class="value">
<input type="number" name="attr_navcomputer_bonus">
</div>
<div class="label">
<span class="break-lang" data-i18n="navcomputer_bonus-u">NAVCOMPUTER BONUS</span>
</div>
</div>
<div class="flex-row insp-prof-container">
<div class="value">
<input type="number" value="0" name="attr_pb">
</div>
<div class="label">
<span data-i18n="pilot_prof_bonus-u">PILOT PROF BONUS</span>
</div>
</div>
<div class="flex-row insp-prof-container">
<div class="value">
<input type="number" value="0" name="attr_pilot_skill">
</div>
<div class="label">
<span data-i18n="pilot_proficiency-u">PILOT INT(PILOTING)</span>
</div>
</div>
<div class="saving-throw-container">
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_strength_save_prof" title="@{strength_save_prof}"
value="(@{pb})">
<span name="attr_strength_save_bonus" title="@{strength_save_bonus}">0</span>
<button type="roll" name="roll_strength_save"
value="@{wtype}&{template:simple} {{rname=^{strength-save-u}}} {{mod=@{strength_save_bonus}}} {{r1=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} @{rtype}+@{strength_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="strength">Strength
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_dexterity_save_prof" title="@{dexterity_save_prof}"
value="(@{pb})">
<span name="attr_dexterity_save_bonus" title="@{dexterity_save_bonus}">0</span>
<button type="roll" name="roll_dexterity_save"
value="@{wtype}&{template:simple} {{rname=^{dexterity-save-u}}} {{mod=@{dexterity_save_bonus}}} {{r1=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} @{rtype}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="dexterity">Dexterity
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_constitution_save_prof" title="@{constitution_save_prof}"
value="(@{pb})">
<span name="attr_constitution_save_bonus" title="@{constitution_save_bonus}">0</span>
<button type="roll" name="roll_constitution_save"
value="@{wtype}&{template:simple} {{rname=^{constitution-save-u}}} {{mod=@{constitution_save_bonus}}} {{r1=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} @{rtype}+@{constitution_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="constitution">Constitution
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_intelligence_save_prof" title="@{intelligence_save_prof}"
value="(@{pb})">
<span name="attr_intelligence_save_bonus" title="@{intelligence_save_bonus}">0</span>
<button type="roll" name="roll_intelligence_save"
value="@{wtype}&{template:simple} {{rname=^{intelligence-save-u}}} {{mod=@{intelligence_save_bonus}}} {{r1=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} @{rtype}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="intelligence">Intelligence
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_wisdom_save_prof" title="@{wisdom_save_prof}"
value="(@{pb})">
<span name="attr_wisdom_save_bonus" title="@{wisdom_save_bonus}">0</span>
<button type="roll" name="roll_wisdom_save"
value="@{wtype}&{template:simple} {{rname=^{wisdom-save-u}}} {{mod=@{wisdom_save_bonus}}} {{r1=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} @{rtype}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="wisdom">Wisdom
</button>
</div>
<div class="flex-row flex-justify-sa flex-align-center saving-throw">
<input type="checkbox" name="attr_charisma_save_prof" title="@{charisma_save_prof}"
value="(@{pb})">
<span name="attr_charisma_save_bonus" title="@{charisma_save_bonus}">0</span>
<button type="roll" name="roll_charisma_save"
value="@{wtype}&{template:simple} {{rname=^{charisma-save-u}}} {{mod=@{charisma_save_bonus}}} {{r1=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} @{rtype}+@{charisma_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="charisma">Charisma
</button>
</div>
<input type="hidden" class="toggleflag" name="attr_global_save_mod_flag">
<div class="conditional-visibility textarea globalattack">
<span class="label" data-i18n="global-save-u">GLOBAL SAVE MODIFIER</span>
<fieldset class="repeating_savemod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag"
checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_save_active_flag" value="1"
class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_save_rollstring"
placeholder="1d4[BLESS]" style="width: 125px;"></textarea>
</div>
<div class="display">
<span class="title" name="attr_global_save_rollstring"></span>
</div>
</div>
</fieldset>
</div>
<div class="label">
<span data-i18n="saving-throws-u">SAVING THROWS</span>
</div>
</div>
<div class="skills-container skills-list">
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_boost">
<input type="checkbox" name="attr_ship_boost_prof" title="@{ship_boost_prof}"
value="(@{pb}*@{ship_boost_type})">
<span name='attr_ship_boost_bonus' title='@{ship_boost_bonus}'>0</span>
<button type='roll' name='roll_ship_boost'
value='@{wtype}&{template:simple} {{rname=^{ship_boost-u}}} {{mod=@{ship_boost_bonus}}} {{r1=[[@{d20}+@{ship_boost_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_boost_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_boost-core'>Boost <span>(Str)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_ram">
<input type="checkbox" name="attr_ship_ram_prof" title="@{ship_ram_prof}"
value="(@{pb}*@{ship_ram_type})">
<span name='attr_ship_ram_bonus' title='@{ship_ram_bonus}'>0</span>
<button type='roll' name='roll_ship_ram'
value='@{wtype}&{template:simple} {{rname=^{ship_ram-u}}} {{mod=@{ship_ram_bonus}}} {{r1=[[@{d20}+@{ship_ram_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_ram_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_ram-core'>Ram <span>(Str)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_hide">
<input type="checkbox" name="attr_ship_hide_prof" title="@{ship_hide_prof}"
value="(@{pb}*@{ship_hide_type})">
<span name='attr_ship_hide_bonus' title='@{ship_hide_bonus}'>0</span>
<button type='roll' name='roll_ship_hide'
value='@{wtype}&{template:simple} {{rname=^{ship_hide-u}}} {{mod=@{ship_hide_bonus}}} {{r1=[[@{d20}+@{ship_hide_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_hide_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_hide-core'>Hide <span>(Dex)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_maneuvering">
<input type="checkbox" name="attr_ship_maneuvering_prof" title="@{ship_maneuvering_prof}"
value="(@{pb}*@{ship_maneuvering_type})">
<span name='attr_ship_maneuvering_bonus' title='@{ship_maneuvering_bonus}'>0</span>
<button type='roll' name='roll_ship_maneuvering'
value='@{wtype}&{template:simple} {{rname=^{ship_maneuvering-u}}} {{mod=@{ship_maneuvering_bonus}}} {{r1=[[@{d20}+@{ship_maneuvering_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_maneuvering_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_maneuvering-core'>Maneuvering <span>(Dex)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_patch">
<input type="checkbox" name="attr_ship_patch_prof" title="@{ship_patch_prof}"
value="(@{pb}*@{ship_patch_type})">
<span name='attr_ship_patch_bonus' title='@{ship_patch_bonus}'>0</span>
<button type='roll' name='roll_ship_patch'
value='@{wtype}&{template:simple} {{rname=^{ship_patch-u}}} {{mod=@{ship_patch_bonus}}} {{r1=[[@{d20}+@{ship_patch_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_patch_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_patch-core'>Patch <span>(Con)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_regulation">
<input type="checkbox" name="attr_ship_regulation_prof" title="@{ship_regulation_prof}"
value="(@{pb}*@{ship_regulation_type})">
<span name='attr_ship_regulation_bonus' title='@{ship_regulation_bonus}'>0</span>
<button type='roll' name='roll_ship_regulation'
value='@{wtype}&{template:simple} {{rname=^{ship_regulation-u}}} {{mod=@{ship_regulation_bonus}}} {{r1=[[@{d20}+@{ship_regulation_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_regulation_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_regulation-core'>Regulation <span>(Con)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_astrogation">
<input type="checkbox" name="attr_ship_astrogation_prof" title="@{ship_astrogation_prof}"
value="(@{pb}*@{ship_astrogation_type})">
<span name='attr_ship_astrogation_bonus' title='@{ship_astrogation_bonus}'>0</span>
<button type='roll' name='roll_ship_astrogation'
value='@{wtype}&{template:simple} {{rname=^{ship_astrogation-u}}} {{mod=@{ship_astrogation_bonus}}} {{r1=[[@{d20}+@{ship_astrogation_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_astrogation_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_astrogation-core'>Astrogation <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_data">
<input type="checkbox" name="attr_ship_data_prof" title="@{ship_data_prof}"
value="(@{pb}*@{ship_data_type})">
<span name='attr_ship_data_bonus' title='@{ship_data_bonus}'>0</span>
<button type='roll' name='roll_ship_data'
value='@{wtype}&{template:simple} {{rname=^{ship_data-u}}} {{mod=@{ship_data_bonus}}} {{r1=[[@{d20}+@{ship_data_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_data_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_data-core'>Data <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_probe">
<input type="checkbox" name="attr_ship_probe_prof" title="@{ship_probe_prof}"
value="(@{pb}*@{ship_probe_type})">
<span name='attr_ship_probe_bonus' title='@{ship_probe_bonus}'>0</span>
<button type='roll' name='roll_ship_probe'
value='@{wtype}&{template:simple} {{rname=^{ship_probe-u}}} {{mod=@{ship_probe_bonus}}} {{r1=[[@{d20}+@{ship_probe_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_probe_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_probe-core'>Probe <span>(Int)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_scan">
<input type="checkbox" name="attr_ship_scan_prof" title="@{ship_scan_prof}"
value="(@{pb}*@{ship_scan_type})">
<span name='attr_ship_scan_bonus' title='@{ship_scan_bonus}'>0</span>
<button type='roll' name='roll_ship_scan'
value='@{wtype}&{template:simple} {{rname=^{ship_scan-u}}} {{mod=@{ship_scan_bonus}}} {{r1=[[@{d20}+@{ship_scan_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_scan_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_scan-core'>Scan <span>(Wis)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_impress">
<input type="checkbox" name="attr_ship_impress_prof" title="@{ship_impress_prof}"
value="(@{pb}*@{ship_impress_type})">
<span name='attr_ship_impress_bonus' title='@{ship_impress_bonus}'>0</span>
<button type='roll' name='roll_ship_impress'
value='@{wtype}&{template:simple} {{rname=^{ship_impress-u}}} {{mod=@{ship_impress_bonus}}} {{r1=[[@{d20}+@{ship_impress_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_impress_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_impress-core'>Impress <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_interfere">
<input type="checkbox" name="attr_ship_interfere_prof" title="@{ship_interfere_prof}"
value="(@{pb}*@{ship_interfere_type})">
<span name='attr_ship_interfere_bonus' title='@{ship_interfere_bonus}'>0</span>
<button type='roll' name='roll_ship_interfere'
value='@{wtype}&{template:simple} {{rname=^{ship_interfere-u}}} {{mod=@{ship_interfere_bonus}}} {{r1=[[@{d20}+@{ship_interfere_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_interfere_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_interfere-core'>Interfere <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_menace">
<input type="checkbox" name="attr_ship_menace_prof" title="@{ship_menace_prof}"
value="(@{pb}*@{ship_menace_type})">
<span name='attr_ship_menace_bonus' title='@{ship_menace_bonus}'>0</span>
<button type='roll' name='roll_ship_menace'
value='@{wtype}&{template:simple} {{rname=^{ship_menace-u}}} {{mod=@{ship_menace_bonus}}} {{r1=[[@{d20}+@{ship_menace_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_menace_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_menace-core'>Menace <span>(Cha)</span></button>
</div>
<div class="flex-row flex-justify-sa flex-align-center skill" data-i18n-list-item="ship_swindle">
<input type="checkbox" name="attr_ship_swindle_prof" title="@{ship_swindle_prof}"
value="(@{pb}*@{ship_swindle_type})">
<span name='attr_ship_swindle_bonus' title='@{ship_swindle_bonus}'>0</span>
<button type='roll' name='roll_ship_swindle'
value='@{wtype}&{template:simple} {{rname=^{ship_swindle-u}}} {{mod=@{ship_swindle_bonus}}} {{r1=[[@{d20}+@{ship_swindle_bonus}@{pbd_safe}]]}} @{rtype}+@{ship_swindle_bonus}@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}'
data-i18n='ship_swindle-core'>Swindle <span>(Cha)</span></button>
</div>
<div class="label">
<span data-i18n="skills-u">SKILLS</span>
</div>
</div>
</div>
</div>
<div style="display:inline-block" class="flex-column flex-w-6">
<div class="ac-init-speed-container flex-row flex-justify-sb">
<div class="ac">
<input type="text" name="attr_ac">
<span class="label pc-ac" data-i18n="armor-class-u">ARMOR CLASS</span>
</div>
<div class="speed">
<input type="text" name="attr_ship_turnspeed">
<span class="label break-lang" data-i18n="ship_turnspeed-u">TURNING SPEED</span>
</div>
<div class="speed">
<input type="text" name="attr_ship_flyspeed">
<span class="label break-lang" data-i18n="ship_flyspeed-u">FLYING SPEED</span>
</div>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-hp-max">Hull Point Maximum</span>
<input type="text" style="width:40px" name="attr_hp_max" title="@{hp_max}">
<input type="text" style="float:right; width:40px;" name="attr_ship_dmg_reduction">
<span style="float:right; width:50px;" data-i18n="ship-dr">Dmg Red.</span>
</div>
<input type="number" name="attr_hp" title="@{hp}">
<span class="label" data-i18n="ship-hp-current-u">CURRENT HULL POINTS</span>
</div>
<div class="hp">
<div class="top">
<span data-i18n="ship-shield-max">Shield Point Maximum</span>
<input type="text" style="width:40px" name="attr_ship_shield_max">
<input type="text" style="float:right; width:40px;" name="attr_ship_shield_regen_rate">
<span style="float:right; width:50px;" data-i18n="ship-regen-rate">Regen Rate</span>
</div>
<input type="number" name="attr_ship_shield_points">
<span class="label" data-i18n="ship-shield-u">CURRENT SHIELD POINTS</span>
</div>
<div class="hp">
<div class="top">
<span class="label" data-i18n="ship-armor-label:">Armor: </span>
<select name="attr_ship_armor">
<option value="none" selected="selected" data-i18n="option-select-none-u">None</option>
<option value="deflection" data-i18n="deflection-shield-u">Deflection Armor</option>
<option value="lightweight" data-i18n="lightweight-shield-u">Fortress Armor</option>
<option value="reinforced" data-i18n="reinforced-shield-u">Reinforced Armor</option>
<option value="customshiparmor" data-i18n="custom-ship-armor-u">Custom Armor</option>
</select>
</div>
<div class="top">
<span class="label" data-i18n="ship-shield-label:">Shields: </span>
<select name="attr_ship_shield">
<option value="none" selected="selected" data-i18n="option-select-none-u">None</option>
<option value="directional" data-i18n="directional-shield-u">Directional Shield</option>
<option value="fortress" data-i18n="fortress-shield-u">Fortress Shield</option>
<option value="quickcharge" data-i18n="quick-charge-shield-u">Quick Charge Shield</option>
<option value="customshipshield" data-i18n="custom-ship-shield-u">Custom Shield</option>
</select>
</div>
<span class="label" data-i18n="armor-shields-label-u">ARMOR &amp; SHIELDS</span>
</div>
<div class="hdice-dsaves-container flex-row flex-justify-sb" style="width: 242px;">
<div class="subcontainer">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_hull_dice_max" title="@{hull_dice_max}">
</div>
<input type="number" name="attr_hull_dice" title="@{hull_dice}" style="margin-bottom: -6px;">
<button type="roll" name="roll_hull_dice"
value="@{wtype}&{template:simple} {{rname=^{hull-dice-u}}} {{mod=D@{hulldie_final}}} {{r1=[[1d@{hulldie_final}]]}} {{normal=1}} @{charname_output}"
data-i18n="hull-dice-u">HULL DICE
</button>
</div>
<div class="subcontainer">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_shield_dice_max" title="@{shield_dice_max}">
</div>
<input type="number" name="attr_shield_dice" title="@{shield_dice}"
style="margin-bottom: -6px;">
<button type="roll" name="roll_shield_dice"
value="@{wtype}&{template:simple} {{rname=^{shield-dice-u}}} {{mod=D@{shielddie_final}}} {{r1=[[1d@{shielddie_final}]]}} {{normal=1}} @{charname_output}"
data-i18n="shield-dice-u">SHIELD DICE
</button>
</div>
</div>
<div class="hdice-dsaves-container flex-row flex-justify-sb" style="width: 242px;">
<div class="subcontainer">
<div class="row-container" style="float:right;margin-top:10px;">
<span data-i18n="successes-u">SUCCESSES</span>
<input type="checkbox" name="attr_deathsave_succ1">
<input type="checkbox" name="attr_deathsave_succ2">
<input type="checkbox" name="attr_deathsave_succ3">
</div>
<button style="margin-top:8px;" class="break-lang" type="roll" name="roll_death_save"
value="@{wtype}&{template:simple} {{rname=^{destruction-save-u}}} {{mod=@{death_save_bonus}}} {{r1=[[@{d20}+@{death_save_bonus}[MOD]@{globalsavingthrowbonus}]]}} {{normal=1}} {{global=@{global_save_mod}}} @{charname_output}"
data-i18n="destruction-saves-u">DESTRUCTION SAVES
</button>
</div>
<div class="subcontainer">
<div class="sheet-row options" style="text-align:center;">
<button type="roll" name="roll_system_damage" data-i18n="system-dmg-lvl:-u"
style="width:86px;" class="break-lang"
value="@{wtype}&{template:traits} @{charname_output} {{name=System Damage}} {{source=Level: @{system_dmg_lvl}}} {{description=@{system_dmg}}}">
SYSTEM DMG LEVEL:
</button>
</div>
<div class="sheet-row options" style="text-align:center; font-size: 20px;">
<select name="attr_system_dmg_lvl" style="margin-left:3px;">
<option value="0" selected="selected">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</div>
</div>
</div>
<div class="hp">
<div class="top">
<span class="label" data-i18n="reactor-u">Reactor: </span>
<select name="attr_ship_reactor">
<option value="none" selected="selected" data-i18n="option-select-none-u">None</option>
<option value="fuelcell" data-i18n="fuel-cell-reactor-u">Fuel Cell Reactor</option>
<option value="ionization" data-i18n="ionization-reactor-u">Ionization Reactor</option>
<option value="powercore" data-i18n="pwr-core-reactor-u">Power Core Reactor</option>
</select>
</div>
<div class="top">
<span data-i18n="pwrcoupling-u">Power Coupling: </span>
<select name="attr_ship_pwr_coupling">
<option value="none" selected="selected" data-i18n="option-select-none-u">None</option>
<option value="direct" data-i18n="direct-pwr-coup-u">Direct Power Coupling</option>
<option value="distributed" data-i18n="dist-pwr-coup-u">Distributed Power Coupling</option>
<option value="hubspoke" data-i18n="hub-spoke-pwr-coup-u">Hub Spoke Power Coupling</option>
</select>
</div>
<span class="label" data-i18n="reactor-pwr-couple-u">REACTOR &amp; POWER COUPLING</span>
</div>
<div class="flex-row insp-prof-container">
<div class="value">
<!-- <span name="attr_passive_wisdom"></span> -->
<input type="number" value="@{wisdom}" name="attr_passive_ship_scan">
</div>
<div class="label">
<span data-i18n="passive-ship-scan-u">PASSIVE SCAN (WISDOM)</span>
</div>
</div>
</div>
</div>
<input type="hidden" class="ammoflag" name="attr_ammotracking">
<div class="attacks" style="position: relative;min-height:100px;min-width:500px">
<div class="top" style="margin-left:5px;">
<span class="label" style="width:50px;margin:0 10px 0 0;padding:0" data-i18n="ship-weapon-category-u">CATEGORY</span>
<span class="label lang-long" style="width:50px;margin:0 9px 0 0;padding:0" data-i18n="ship-weapon-facing-u">FACING</span>
<span class="label" style="width:140px;margin:0 8px 0 0;padding:0" data-i18n="name-u">NAME</span>
<span class="label" style="width:50px;margin:0 9px 0 0;padding:0" data-i18n="ship-weapon-range-u">RANGE</span>
<span class="label" style="width:35px;margin:0 2px 0 0;padding:0" data-i18n="atk-u">ATK</span>
<span class="label" style="width:75px;margin:0 2px 0 0;padding:0" data-i18n="dmg-type-u">DAMAGE/TYPE</span>
<span class="label lang-long" style="width:30px;margin:0;padding:0" data-i18n="attacks-per-round-u">ATKS</span>
</div>
<fieldset class="repeating_attack">
<div class="attack">
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<div class="options">
<div class="sheet-row">
<span data-i18n="ship-weapon-category:-u">WEAPON CATEGORY</span>
<select name="attr_ship_weapon_category">
<option value="PRIMARY" selected="selected" data-i18n="primary-u">PRIMARY</option>
<option value="SECONDARY" data-i18n="secondary-u">SECONDARY</option>
<option value="TERTIARY" data-i18n="tertiary-u">TERTIARY</option>
<option value="QUATERNARY" data-i18n="quaternary-u">QUATERNARY</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="ship-weapon-facing:-u">WEAPON FACING:</span>
<select name="attr_ship_weapon_facing">
<option value="TURRETED" selected="selected" data-i18n="turreted-u">TURRETED</option>
<option value="FRONT" data-i18n="bow-front-u">FRONT</option>
<option value="BACK" data-i18n="stern-back-u">BACK</option>
<option value="LEFT" data-i18n="port-left-u">LEFT</option>
<option value="RIGHT" data-i18n="starboard-right-u">RIGHT</option>
<option value="BROADSIDED" data-i18n="broadsided-u">BROADSIDED</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_atkname">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_atkflag" value="{{attack=1}}" checked="checked">
<span data-i18n="attack:-u">ATTACK:</span>
<select name="attr_atkattr_base">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" selected="selected" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_atkmod" placeholder="0">
<input type="hidden" name="attr_atkprofflag" value="">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="range:-u">RANGE:</span>
<input type="text" name="attr_atkrange" placeholder="Self (60-foot cone)" style="width: 170px;" data-i18n-placeholder="range-place">
</div>
<div class="sheet-row">
<span data-i18n="crit-range-u">CRIT RANGE:</span>
<input type="text" class="num" name="attr_atkcritrange" value="20" placeholder="20">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_dmgflag" value="{{damage=1}} {{dmg1flag=1}}" checked="checked">
<span data-i18n="damage:-u">DAMAGE:</span>
<input type="text" name="attr_dmgbase" placeholder="1d6" style="width: 50px;">
<span>+</span>
<select name="attr_dmgattr">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" selected="selected" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_dmgmod" placeholder="0">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_dmgtype" placeholder="Energy" style="width: 50px;" data-i18n-placeholder="Energy">
<span data-i18n="crit:-u">CRIT:</span>
<input type="text" name="attr_dmgcustcrit" placeholder="1d6" style="width: 80px;">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_dmg²2flag" value="{{damage=1}} {{dmg2flag=1}}">
<span data-i18n="damage2:-u">DAMAGE2:</span>
<input type="text" name="attr_dmg2base" placeholder="1d6" style="width: 50px;">
<span>+</span>
<select name="attr_dmg2attr">
<option value="@{strength_mod}" data-i18n="str-u">STR</option>
<option value="@{dexterity_mod}" data-i18n="dex-u">DEX</option>
<option value="@{constitution_mod}" data-i18n="con-u">CON</option>
<option value="@{intelligence_mod}" data-i18n="int-u">INT</option>
<option value="@{wisdom_mod}" data-i18n="wis-u">WIS</option>
<option value="@{charisma_mod}" data-i18n="cha-u">CHA</option>
<option value="power" data-i18n="power-u">POWER</option>
<option value="0" selected="selected">-</option>
</select>
<span>+</span>
<input type="text" class="num" name="attr_dmg2mod" placeholder="0">
</div>
<div class="sheet-row">
<span style="margin-left: 17px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_dmg2type" placeholder="Energy" style="width: 50px;" data-i18n-placeholder="Energy">
<span data-i18n="crit:-u">CRIT:</span>
<input type="text" name="attr_dmg2custcrit" placeholder="1d6" style="width: 80px;">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_saveflag" value="{{save=1}} {{saveattr=@{saveattr}}} {{savedesc=@{saveeffect}}} {{savedc=[[[[@{savedc}]][SAVE]]]}}">
<span data-i18n="saving-throw:-u">SAVING THROW:</span>
<select name="attr_saveattr">
<option value="Strength" data-i18n="str-u">STR</option>
<option value="Dexterity" selected="selected" data-i18n="dex-u">DEX</option>
<option value="Constitution" data-i18n="con-u">CON</option>
<option value="Intelligence" data-i18n="int-u">INT</option>
<option value="Wisdom" data-i18n="wis-u">WIS</option>
<option value="Charisma" data-i18n="cha-u">CHA</option>
</select>
<span data-i18n="vs-dc:-u">VS DC:</span>
<select name="attr_savedc">
<option value="(@{power_save_dc})" selected="selected" data-i18n="power-u">POWER</option>
<option value="(@{strength_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="str-u">STR</option>
<option value="(@{dexterity_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="dex-u">DEX</option>
<option value="(@{constitution_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="con-u">CON</option>
<option value="(@{intelligence_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="int-u">INT</option>
<option value="(@{wisdom_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="wis-u">WIS</option>
<option value="(@{charisma_mod}+8+@{power_dc_mod}+@{pb})" data-i18n="cha-u">CHA</option>
<option value="(@{saveflat})" data-i18n="flat-u">FLAT</option>
</select>
<input class="flatflag" type="hidden" name="attr_savedc" value="saveflat">
<input class="num flat" type="text" name="attr_saveflat" placeholder="8" value="8">
</div>
<div class="sheet-row">
<span data-i18n="save-effect:-u">SAVE EFFECT:</span>
<input type="text" name="attr_saveeffect" placeholder="half damage" style="width: 160px;" data-i18n-placeholder="save-effect-place" value="half damage">
</div>
<div class="sheet-row ammo">
<span data-i18n="ammunition:-u">AMMUNITION:</span>
<input type="text" name="attr_ammo" placeholder="Arrows" style="width: 160px;" data-i18n-placeholder="ammunition-place">
</div>
<div class="sheet-row">
<span data-i18n="attacks-per-round:-u">ATK/ROUND:</span>
<input type="text" name="attr_atk_per_round" placeholder="1" style="width: 160px;">
</div>
<div class="sheet-row">
<span data-i18n="description:-u">DESCRIPTION:</span>
<textarea name="attr_atk_desc" placeholder="Up to 2 creatures within 5 feet" data-i18n-placeholder="description-place"></textarea>
</div>
</div>
<div class="display">
<button type="roll" name="roll_attack" value="@{rollbase}">
<span name="attr_ship_weapon_category" style="width: 50px;"></span>
<span name="attr_ship_weapon_facing" style="width:50px;"></span>
<span name="attr_atkname" style="width: 140px;"></span>
<span name="attr_atkrange" style="width: 50px"></span>
<input type="text" name="attr_atkbonus" style="width: 35px; text-align: center;" value="">
<input type="text" name="attr_atkdmgtype" style="width: 75px;" value="">
<input type="text" name="attr_atk_per_round" style="width: 30px;" value="">
</button>
</div>
</div>
<input type="hidden" name="attr_rollbase">
<input type="hidden" name="attr_rollbase_dmg">
<input type="hidden" name="attr_rollbase_crit">
<input type="hidden" name="attr_hldmg">
<input type="hidden" name="attr_powerlevel">
<input type="hidden" name="attr_itemid">
<input type="hidden" name="attr_powerid">
<input type="hidden" name="attr_power_innate">
<input type="hidden" name="attr_versatile_alt">
<button type="roll" name="roll_attack_dmg" style="display: none;" value="@{rollbase_dmg}"></button>
<button type="roll" name="roll_attack_crit" style="display: none;" value="@{rollbase_crit}"></button>
</fieldset>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;" data-i18n="ship-weapons-u">Ship Weapon Attacks</span>
</div>
<input type="hidden" class="toggleflag" name="attr_global_attack_mod_flag">
<div class="conditional-visibility textbox globalattack">
<span class="label" data-i18n="global-attack-u">GLOBAL ATTACK MODIFIER</span>
<fieldset class="repeating_tohitmod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_attack_active_flag" value="1" class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_attack_rollstring" placeholder="1d4[BLESS]"></textarea>
</div>
<div class="display">
<span class="title" name="attr_global_attack_rollstring"></span>
</div>
</div>
</fieldset>
</div>
<input type="hidden" class="toggleflag" name="attr_global_damage_mod_flag">
<div class="conditional-visibility textbox globalattack">
<span class="label" data-i18n="global-damage-u">GLOBAL DAMAGE MODIFIER</span>
<fieldset class="repeating_damagemod">
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_global_damage_active_flag" value="1" class="active-flag">
<div class="options">
<textarea type="textarea" name="attr_global_damage_rollstring" placeholder="1d6[SNEAK ATTACK]"></textarea>
<div class="sheet-row" style="margin-bottom: 5px;">
<span style="display: inline; margin-left: 25px;" data-i18n="type:-u">TYPE:</span>
<input type="text" name="attr_global_damage_type" value="">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_global_damage_rollstring" style="width: 110px; padding-right: 0px;"></span>
<span class="subheader" name="attr_global_damage_type" style="padding-right: 0px;"></span>
</div>
</div>
</fieldset>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="pwr-dice-container">
<div class="label">
<span data-i18n="ship-pwr-die-label-u">POWER DIE CAPACITY STORAGE</span>
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-cen-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="central-system-u">Central System Power Die</button>
<input type="text" name="attr_pwr_c_storage" value="0"><span> &#47; </span>
<input type="text" name="attr_pwr_c_storage_actual" value="0">
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-com-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="comms-system-u">Communication System Power Die</button>
<input type="text" name="attr_pwr_s_storage" value="0"><span> &#47; </span>
<input type="text" name="attr_pwr_comm_storage_actual" value="0">
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-eng-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="engines-system-u">Engines System Power Die</button>
<input type="text" name="attr_pwr_s_storage" value="0"><span> &#47; </span>
<input type="text" name="attr_pwr_engine_storage_actual" value="0">
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-shi-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="shields-system-u">Shields System Power Die</button>
<input type="text" name="attr_pwr_s_storage" value="0"><span> &#47; </span>
<input type="text" name="attr_pwr_shields_storage_actual" value="0">
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-sen-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="sensors-system-u">Sensors System Power Die</button>
<input type="text" name="attr_pwr_s_storage" value="0"><span> &#47; </span>
<input type="text" name="attr_pwr_sensors_storage_actual" value="0">
</div>
<div class="pwr-die-system">
<button type="roll" name="roll_pwr_dice" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-wea-u}}} {{mod=D@{pwrdie_final}}} {{r1=[[1d@{pwrdie_final}]]}} {{normal=1}} @{charname_output}" data-i18n="weapons-system-u">Weapons System Power Die</button>
<input type="text" name="attr_pwr_s_storage" value="0"><span> &#47; </span><input type="text" name="attr_pwr_weapons_storage_actual" value="0">
</div>
<div class="pwr-die-system" style="margin-top:10px;">
<button type="roll" name="roll_pwr_dice_recovery" value="@{wtype}&{template:simple} {{rname=^{pwr-dice-recovery-u}}} {{mod=D@{pwrdie_recovery}}} {{r1=[[1d@{pwrdie_recovery}-@{pwrdie_mod}]]}} {{normal=1}} @{charname_output}" data-i18n="pwr-dice-recovery-u"></button>
</div>
</div>
<div class="resources">
<div class="hdice-dsaves-container" style="width: 246px; margin-top: 10px;">
<div class="subcontainer" style="min-height: 64px; min-width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_class_resource_max" title="@{class_resource_max}">
</div>
<input type="number" name="attr_class_resource" title="@{class_resource}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_class_resource_name" title="@{class_resource_name}" placeholder="CLASS RESOURCE" data-i18n-placeholder="class-resource-u">
</div>
<div class="subcontainer" style="min-height: 64px; min-width: 119px; float: right;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_other_resource_max" title="@{other_resource_max}">
</div>
<input type="number" name="attr_other_resource" title="@{other_resource}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_other_resource_name" title="@{other_resource_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_other_resource_itemid">
</div>
</div>
<fieldset class="repeating_resource">
<div class="hdice-dsaves-container" style="width: 246px; margin-top: 10px;">
<div class="subcontainer" style="height: 64px; width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_resource_left_max" title="@{repeating_resource_left_max}">
</div>
<input type="number" name="attr_resource_left" title="@{repeating_resource_left}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_resource_left_name" title="@{repeating_resource_left_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_resource_left_itemid">
</div>
<div class="subcontainer" style="height: 64px; width: 119px;">
<div class="top">
<span data-i18n="total">Total</span>
<input type="text" name="attr_resource_right_max" title="@{repeating_resource_right_max}">
</div>
<input type="number" name="attr_resource_right" title="@{repeating_resource_right}" style="margin-bottom: -6px;">
<input type="text" class="label" name="attr_resource_right_name" title="@{repeating_resource_right_name}" placeholder="OTHER RESOURCE" data-i18n-placeholder="other-resource-u">
<input type="hidden" name="attr_resource_right_itemid">
</div>
</div>
</fieldset>
</div>
<div class="textbox traits" style="min-height: 250px;">
<input type="hidden" class="inventoryflag" name="attr_simpletraits" value="complex">
<textarea class="simple" name="attr_features_and_traits" style="min-height: 461px; height: 461px;"></textarea>
<div class="complex">
<fieldset class="repeating_shiptraits">
<div class="trait">
<button type="roll" name="roll_output" class="output" value="@{wtype}&{template:traits} @{charname_output} {{name=@{name}}} {{source=@{source}: @{source_type}}} {{description=@{description}}}">w</button>
<input class="options-flag" type="checkbox" name="attr_options-flag" checked="checked"><span>y</span>
<input class="display-flag" type="checkbox" name="attr_display_flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_name" style="width: 120px;">
</div>
<div class="sheet-row">
<span data-i18n="source:-u">SOURCE:</span>
<select name="attr_source">
<option selected="selected" data-i18n="tier">Tier</option>
<option data-i18n="other">Other</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="source-type:-u">SOURCE TYPE:</span>
<input type="text" name="attr_source_type" style="width: 160px;" placeholder="Tier 1">
</div>
<div class="sheet-row">
<textarea name="attr_description" style="min-height: 200px; height: 200px;"></textarea>
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span class="title" name="attr_name"></span>
<span class="subheader">
<span name="attr_source"></span><span>: </span><span name="attr_source_type"></span>
</span>
<span class="desc" name="attr_description"></span>
</div>
</div>
</fieldset>
</div>
<span class="label" data-i18n="feats-traits-u" style="margin-top: 0px; position: absolute; bottom: 0px;">FEATURES & TRAITS</span>
</div>
</div>
</div>
</div>
<div class="tab options">
<div class="header">
<div class="name-container">
<img src="https://s22.postimg.cc/jnlp8fqc1/Star_Wars_5_E_Logo_Shrunk.png" style="padding-bottom: 10px;">
<input type="text" name="attr_character_name" style="width: 100%;">
<span class="label" data-i18n="ship-name-u">SHIP NAME</span>
</div>
<div class="header-info options">
<div class="flex-row flex-align-center">
<span data-i18n="ship-size:-u">SIZE:</span>
<select class="hiding class" name="attr_ship_size">
<option value="" data-i18n="choose">Choose</option>
<option value="Tiny" data-i18n="tiny">Tiny</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="Gargantuan" data-i18n="gargantuan">Gargantuan</option>
</select>
<span data-i18n="ship-tier:-u">TIER:</span>
<input type="number" class="class-level" style="width: 40px" name="attr_base_ship_tier" value="0">
<span data-i18n="role-specialization:-u">ROLE:</span>
<input type="text" class="class-level" name="attr_ship_role" value="">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-manufacturer:-u">MANUFACTURER/LINE/CLASS:</span>
<input type="text" name="attr_ship_manufacturer">
</div>
<div class="flex-row flex-align-center">
<span data-i18n="ship-credits-next-tier:-u">CREDITS NEEDED TO UPGRADE TO NEXT TIER:</span>
<input type="number" style="width:90px" name="attr_ship_cr_next">
</div>
</div>
</div>
<div class="button-row flex-row flex-justify-sb">
<input type="hidden" class="toggleflag" name="attr_wtype">
<div class="gm-btn-group">
<input name="attr_whispertoggle" type="hidden" value="">
<button type="action" name="act_wtype_public"><span data-i18n="public:-u">PUBLIC</span></button>
<button type="action" name="act_wtype_whisper"><span data-i18n="to-gm:-u">TO <span class="togm">GM</span></button>
</div>
<input type="hidden" name="attr_rtype">
<div class="adv-btn-group">
<input type="hidden" name="attr_advantagetoggle" value="{{query=1}} {{normal=1}} {{r2=[[0d20">
<button type="action" name="act_adv_advantage"><span data-i18n="adv-u">ADVANTAGE</span></button>
<button type="action" name="act_adv_normal"><span data-i18n="norm-u">NORMAL</span></button>
<button type="action" name="act_adv_disadvantage"><span data-i18n="disadv-u">DISADVANTAGE</span></button>
</div>
<div class="ship-btn-group">
<input type="hidden" name="attr_ship_tab">
<button type="action" name="act_ship_tab_core"><span data-i18n="core-u">CORE</span></button>
<button type="action" name="act_ship_tab_cargo"><span data-i18n="ship-cargo-tab-u">CARGO</span></button>
<button type="action" name="act_ship_tab_mods"><span data-i18n="ship-mods-tab-u">MODS</span></button>
<button type="action" name="act_ship_tab_suites"><span data-i18n="ship-suites-tab-u">SUITES</span></button>
<button type="action" name="act_ship_tab_options"><span style="font-family: pictos">y</span></button>
</div>
</div>
<div class="flex-row body">
<div class="flex-column flex-w-4">
<div class="general_options">
<div class="version">
<span data-i18n="version">v</span>
<input type="text" name="attr_version">
</div>
<div class="sheet-row">
<span>SHEET TYPE:</span>
<select name="attr_npc">
<option value="0">PC</option>
<option value="1">NPC</option>
<option value="2">Ship</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="roll-queries:-u">ROLL QUERIES:</span>
<select name="attr_rtype">
<option value="{{always=1}} {{r2=[[@{d20}" data-i18n="always-roll-adv">Always Roll Advantage</option>
<option value="@{advantagetoggle}" data-i18n="toggle-roll-adv">Advantage Toggle</option>
<option value="{{query=1}} ?{Advantage?|Normal Roll,&#123&#123normal=1&#125&#125 &#123&#123r2=[[0d20|Advantage,&#123&#123advantage=1&#125&#125 &#123&#123r2=[[@{d20}|Disadvantage,&#123&#123disadvantage=1&#125&#125 &#123&#123r2=[[@{d20}}" data-i18n="query-roll-adv">Query Advantage</option>
<option value="{{normal=1}} {{r2=[[0d20" data-i18n="never-roll-adv">Never Roll Advantage</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="whisp-rolls-gm:-u">WHISPER ROLLS TO GM:</span>
<select name="attr_wtype">
<option value="" data-i18n="never-whisper-roll">Never Whisper Rolls</option>
<option value="@{whispertoggle}" data-i18n="toggle-roll-whisper">Whisper Toggle</option>
<option value="?{Whisper?|Public Roll,|Whisper Roll,/w gm }" data-i18n="query-whisper-roll">Query Whisper</option>
<option value="/w gm " data-i18n="always-whisper-roll">Always Whisper Rolls</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="auto-dmg-roll:-u">AUTO DAMAGE ROLL:</span>
<select class="dtype" name="attr_dtype">
<option value="pick" data-i18n="never-roll-dmg">Don't Auto Roll Damage</option>
<option value="full" data-i18n="always-roll-dmg">Auto Roll Damage & Crit</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="core-die-roll:-u">CORE DIE ROLL:</span>
<input type="text" name="attr_core_die" value="1d20" placeholder="1d20" title="@{core_die}">
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_attack_mod_flag" value="1">
<span data-i18n="show-global-attack-field-u">SHOW GLOBAL ATTACK MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<input type="checkbox" name="attr_global_damage_mod_flag" value="1">
<span data-i18n="show-global-damage-field-u">SHOW GLOBAL DAMAGE MODIFIER FIELD</span>
</div>
<div class="sheet-row">
<span data-i18n="add-char-to-templates:-u">ADD CHARACTER NAME TO TEMPLATES:</span>
<select class="dtype" name="attr_charname_output">
<option value="{{charname=@{character_name}}}" data-i18n="on">On</option>
<option value="charname=@{character_name}" selected="selected" data-i18n="off">Off</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="feats-traits-u">FEATURES AND TRAITS</span><span>:</span>
<select name="attr_simpletraits">
<option value="complex" data-i18n="compendium-compatible">Compendium Compatible</option>
<option value="simple" data-i18n="simple">Simple</option>
</select>
</div>
<div class="sheet-row">
<span data-i18n="ammo-tracking:-u">AMMO TRACKING:</span>
<select name="attr_ammotracking">
<option value="on" data-i18n="on">On</option>
<option value="off" selected="selected" data-i18n="off">Off</option>
</select>
<span data-i18n-title="api-required-title" data-i18n="api-required-u" title="Try it now with easy one click API installation available with your Pro subscription." style="color:#666; cursor:help;">(API REQUIRED)</span>
</div>
<div class="sheet-row">
<span data-i18n="armor-class-tracking:-u">ARMOR CLASS TRACKING:</span>
<select name="attr_custom_ac_flag">
<option value="0" selected="selected" data-i18n="automatic">Automatic</option>
<option value="2" data-i18n="off">Off</option>
</select>
</div>
<div class="sheet-row title">
<span data-i18n="general-opts-u">GENERAL OPTIONS</span>
</div>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="save_options" style="width: 234px;">
<div class="sheet-row skill">
<span data-i18n="strength-save-u">Strength Save</span>
<span>+</span><input type="text" class="num" name="attr_strength_save_mod" value="0" placeholder="0" title="@{strength_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="dexterity-save-u">Dexterity Save</span>
<span>+</span><input type="text" class="num" name="attr_dexterity_save_mod" value="0" placeholder="0" title="@{dexterity_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="constitution-save-u">Constitution Save</span>
<span>+</span><input type="text" class="num" name="attr_constitution_save_mod" value="0" placeholder="0" title="@{constitution_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="intelligence-save-u">Intelligence Save</span>
<span>+</span><input type="text" class="num" name="attr_intelligence_save_mod" value="0" placeholder="0" title="@{intelligence_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="wisdom-save-u">Wisdom Save</span>
<span>+</span><input type="text" class="num" name="attr_wisdom_save_mod" value="0" placeholder="0" title="@{wisdom_save_mod}">
</div>
<div class="sheet-row skill">
<span data-i18n="charisma-save-u">Charisma Save</span>
<span>+</span><input type="text" class="num" name="attr_charisma_save_mod" value="0" placeholder="0" title="@{charisma_save_mod}">
</div>
<div class="sheet-row">
<span data-i18n="death-save-mod:-u">DEATH SAVE MODIFIER:</span>
<input type="text" class="num" name="attr_death_save_mod" placeholder="0" value="0">
</div>
<div class="sheet-row">
<span data-i18n="glob-saving-mod:-u">GLOBAL SAVING THsheet-row MODIFIER:</span>
<input type="text" class="num" name="attr_globalsavemod" placeholder="0" value="0">
</div>
<div class="sheet-row title">
<span data-i18n="save-opts-u">SAVE OPTIONS</span>
</div>
</div>
<div class="skill_options" style="width: 234px;">
<div data-i18n-list="skills-list">
<div class="sheet-row skill" data-i18n-list-item="ship_boost">
<select name="attr_ship_boost_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_boost-core">Boost <span>(Str)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_boost_flat" value="0" placeholder="0" title="@{ship_boost_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_ram">
<select name="attr_ship_ram_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_ram-core">Ram <span>(Str)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_ram_flat" value="0" placeholder="0" title="@{ship_ram_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_hide">
<select name="attr_ship_hide_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_hide-core">Hide <span>(Dex)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_hide_flat" value="0" placeholder="0" title="@{ship_hide_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_maneuvering">
<select name="attr_ship_maneuvering_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_maneuvering-core">Maneuvering <span>(Dex)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_maneuvering_flat" value="0" placeholder="0" title="@{ship_maneuvering_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_patch">
<select name="attr_ship_patch_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_patch-core">Patch <span>(Con)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_patch_flat" value="0" placeholder="0" title="@{ship_patch_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_regulation">
<select name="attr_ship_regulation_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_regulation-core">Regulation <span>(Con)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_regulation_flat" value="0" placeholder="0" title="@{ship_regulation_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_astrogation">
<select name="attr_ship_astrogation_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_astrogation-core">Astrogation<span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_astrogation_flat" value="0" placeholder="0" title="@{ship_astrogation_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_data">
<select name="attr_ship_data_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_data-core">Data <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_data_flat" value="0" placeholder="0" title="@{ship_data_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_probe">
<select name="attr_ship_probe_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_probe-core">Probe <span>(Int)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_probe_flat" value="0" placeholder="0" title="@{ship_probe_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_scan">
<select name="attr_ship_scan_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_scan-core">Scan <span>(Wis)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_scan_flat" value="0" placeholder="0" title="@{ship_scan_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_impress">
<select name="attr_ship_impress_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_impress-core">Impress <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_impress_flat" value="0" placeholder="0" title="@{ship_impress_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_interfere">
<select name="attr_ship_interfere_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_interfere-core">Interfere <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_interfere_flat" value="0" placeholder="0" title="@{ship_interfere_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_menace">
<select name="attr_ship_menace_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_menace-core">Menace <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_menace_flat" value="0" placeholder="0" title="@{ship_menace_flat}">
</div>
<div class="sheet-row skill" data-i18n-list-item="ship_swindle">
<select name="attr_ship_swindle_type"><option value="1" selected="selected" data-i18n="proficiently">Proficiently</option><option value="2" data-i18n="expertly">Expertly</option></select>
<span data-i18n="ship_swindle-core">Swindle <span>(Cha)</span></span>
<span>+</span><input type="text" class="num" name="attr_ship_swindle_flat" value="0" placeholder="0" title="@{ship_swindle_flat}">
</div>
</div>
<div class="sheet-row" style="margin-top:10px;">
<input type="checkbox" name="attr_jack_of_all_trades" value="@{jack}">
<span data-i18n="jack-of-all-u">JACK OF ALL TRADES</span>
</div>
<div class="sheet-row">
<span data-i18n="pass-perc-mod:-u">PASSIVE PERCEPTION MODIFIER:</span>
<input type="text" class="num" name="attr_passiveperceptionmod" placeholder="0" value="0">
</div>
<div class="sheet-row title">
<span data-i18n="skill-opts-u">SKILL OPTIONS</span>
</div>
</div>
</div>
<div class="flex-column flex-w-4">
<div class="attacks" style="position: relative;min-height:100px;">
<div class="globalattack">
<span class="label" data-i18n="armor-u" style="border:none">ARMOR</span>
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_ship_armor_active_flag" value="1" class="active-flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_ship_armor_name">
</div>
<div class="sheet-row">
<span data-i18n="ac-bonus:-u">AC BONUS:</span>
<input type="number" name="attr_ship_armor_ac_bonus">
</div>
<div class="sheet-row">
<span data-i18n="hp-slash-hit-die:-u">HP/HIT DIE:</span>
<input type="number" name="attr_ship_armor_hp_per_hit_die">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span name="attr_ship_armor_name" style="width:120px; padding-right: 0px;"></span>
<span name="attr_ship_armor_ac_bonus" style="width:20px; padding-right: 0px;"></span>
<span name="attr_ship_armor_hp_per_hit_die" style="width:20px; padding-right: 0px;"></span>
</div>
</div>
</div>
<div class="globalattack">
<span class="label" data-i18n="shield-u">SHIELD</span>
<div class="global-mod">
<input type="checkbox" name="attr_options-flag" class="options-flag" checked="checked" style="top: -15px;"><span>y</span>
<input type="checkbox" name="attr_ship_shield_active_flag" value="1" class="active-flag">
<div class="options">
<div class="sheet-row">
<span data-i18n="name:-u">NAME:</span>
<input type="text" name="attr_ship_shield_name">
</div>
<div class="sheet-row">
<span data-i18n="shield-capacity-x:-u">SHIELD CAPACITY X:</span>
<input type="number" style="width:100px;" name="attr_ship_shield_capacity">
</div>
<div class="sheet-row">
<span data-i18n="regen-rate-x:-u">REGEN RATE X:</span>
<input type="number" style="width:100px;" name="attr_ship_shield_regen_rate_coefficient">
</div>
</div>
<div class="display" style="margin-bottom: 2px;">
<span name="attr_ship_shield_name" style="width:120px; padding-right: 0px;"></span>
<span name="attr_ship_shield_capacity" style="width:20px; padding-right: 0px;"></span>
<span name="attr_ship_shield_regen_rate_coefficient" style="width:20px; padding-right: 0px;"></span>
</div>
</div>
</div>
<span class="label" style="margin-top: 0px; position: absolute; bottom: 0px;" >ARMOR &amp; SHIELD (legacy)</span>
</div>
</div>
</div>
</div>
<div class="footer">
<div style="margin-right: 50px; margin-left: 10px;">
<span data-i18n="portions-sheet-utilize">
Portions of this sheet utilize content from the System Reference Document 5.0 under the OGL License. View OGL License and Copyright Notice. https://sw5e.com/
</span>
</div>
<div>
<span data-i18n="footer-wiki-link">
For more information about this character sheet, its functionality, or uses, please check out the Roll20 Wiki for official documentation. https://wiki.roll20.net/5th_Edition_OGL_by_Roll20
</span>
</div>
</div>
</div>
<!-- HIDDEN FIELDS -->
<input type="hidden" name="attr_d20" value="1d20">
<input type="hidden" name="attr_level" value="1">
<input type="hidden" name="attr_pb" value="2">
<input type="hidden" name="attr_pbd_safe" value="">
<input type="hidden" name="attr_jack" value="1">
<input type="hidden" name="attr_jack_attr" value="">
<input type="hidden" name="attr_jack_bonus" value="">
<input type="hidden" name="attr_passive_wisdom" value="10">
<input type="hidden" name="attr_hitdie_final" value="">
<input type="hidden" name="attr_globalsavingthrowbonus" value="">
<input type="hidden" name="attr_death_save_bonus" value="0">
<input type="hidden" name="attr_initiative_bonus" value="0">
<input type="hidden" name="attr_power_save_dc" value="0">
<input type="hidden" name="attr_power_attack_bonus" value="0">
<input type="hidden" name="attr_power_attack_mod" value="0">
<input type="hidden" name="attr_npc_legendary_actions_desc" value="">
<input type="hidden" name="attr_global_damage_mod_crit" value="0">
<input type="hidden" name="attr_global_damage_mod_roll" value="0">
<input type="hidden" name="attr_global_damage_mod_type" value="">
<input type="hidden" name="attr_global_attack_mod" value="">
<input type="hidden" name="attr_global_save_mod" value="">
<input type="hidden" name="attr_global_skill_mod" value="">
<input type="hidden" name="attr_exhaustion_1" value="">
<input type="hidden" name="attr_exhaustion_2" value="">
<input type="hidden" name="attr_exhaustion_3" value="">
<input type="hidden" name="attr_exhaustion_4" value="">
<input type="hidden" name="attr_exhaustion_5" value="">
<input type="hidden" name="attr_exhaustion_6" value="">
<input type="hidden" name="attr_strength_mod" value="0">
<input type="hidden" name="attr_dexterity_mod" value="0">
<input type="hidden" name="attr_constitution_mod" value="0">
<input type="hidden" name="attr_intelligence_mod" value="0">
<input type="hidden" name="attr_wisdom_mod" value="0">
<input type="hidden" name="attr_charisma_mod" value="0">
<input type="hidden" name="attr_strength_save_bonus" value="0">
<input type="hidden" name="attr_dexterity_save_bonus" value="0">
<input type="hidden" name="attr_constitution_save_bonus" value="0">
<input type="hidden" name="attr_intelligence_save_bonus" value="0">
<input type="hidden" name="attr_wisdom_save_bonus" value="0">
<input type="hidden" name="attr_charisma_save_bonus" value="0">
<input type='hidden' name='attr_acrobatics_bonus' value='0'>
<input type='hidden' name='attr_animal_handling_bonus' value='0'>
<input type='hidden' name='attr_technology_bonus' value='0'>
<input type='hidden' name='attr_athletics_bonus' value='0'>
<input type='hidden' name='attr_deception_bonus' value='0'>
<input type='hidden' name='attr_lore_bonus' value='0'>
<input type='hidden' name='attr_insight_bonus' value='0'>
<input type='hidden' name='attr_intimidation_bonus' value='0'>
<input type='hidden' name='attr_investigation_bonus' value='0'>
<input type='hidden' name='attr_medicine_bonus' value='0'>
<input type='hidden' name='attr_nature_bonus' value='0'>
<input type='hidden' name='attr_perception_bonus' value='0'>
<input type='hidden' name='attr_performance_bonus' value='0'>
<input type='hidden' name='attr_persuasion_bonus' value='0'>
<input type='hidden' name='attr_piloting_bonus' value='0'>
<input type='hidden' name='attr_sleight_of_hand_bonus' value='0'>
<input type='hidden' name='attr_stealth_bonus' value='0'>
<input type='hidden' name='attr_survival_bonus' value='0'>
<input type='hidden' name='attr_lvl1_slots_total' value='0'>
<input type='hidden' name='attr_lvl2_slots_total' value='0'>
<input type='hidden' name='attr_lvl3_slots_total' value='0'>
<input type='hidden' name='attr_lvl4_slots_total' value='0'>
<input type='hidden' name='attr_lvl5_slots_total' value='0'>
<input type='hidden' name='attr_lvl6_slots_total' value='0'>
<input type='hidden' name='attr_lvl7_slots_total' value='0'>
<input type='hidden' name='attr_lvl8_slots_total' value='0'>
<input type='hidden' name='attr_lvl9_slots_total' value='0'>
<input type='hidden' name='attr_l1mancer_status' value='completed'>
<input type='hidden' name='attr_pilot_skill' value='0'>
<input type='hidden' name='attr_ship_size' value='0'>
<input type='hidden' name='attr_system_dmg_lvl' value='0'>
<input type='hidden' name='attr_system_dmg' value='None.'>
<input type='hidden' name='attr_ship_boost_bonus' value='0'>
<input type='hidden' name='attr_ship_ram_bonus' value='0'>
<input type='hidden' name='attr_ship_hide_bonus' value='0'>
<input type='hidden' name='attr_ship_maneuvering_bonus' value='0'>
<input type='hidden' name='attr_ship_patch_bonus' value='0'>
<input type='hidden' name='attr_ship_regulation_bonus' value='0'>
<input type='hidden' name='attr_ship_astrogation_bonus' value='0'>
<input type='hidden' name='attr_ship_data_bonus' value='0'>
<input type='hidden' name='attr_ship_probe_bonus' value='0'>
<input type='hidden' name='attr_ship_scan_bonus' value='0'>
<input type='hidden' name='attr_ship_impress_bonus' value='0'>
<input type='hidden' name='attr_ship_interfere_bonus' value='0'>
<input type='hidden' name='attr_ship_menace_bonus' value='0'>
<input type='hidden' name='attr_ship_swindle_bonus' value='0'>
<input type="hidden" name="attr_hulldie_final" value="">
<input type="hidden" name="attr_shielddie_final" value="">
<input type="hidden" name="attr_pwrdie_final" value="">
<input type="hidden" name="attr_pwrdie_recovery" value="">
<input type="hidden" name="attr_pwrdie_mod" value="">
<input type="hidden" name="attr_ship_mod_max" value="">
<input type="hidden" name="attr_ship_mod_current" value="">
<input type="hidden" name="attr_ship_hardpoints_max" value="">
<input type="hidden" name="attr_ship_hardpoints_current" value="">
<input type="hidden" name="attr_ship_t_hardpoints_max" value="">
<input type="hidden" name="attr_ship_t_hardpoints_current" value="">
<input type="hidden" name="attr_ship_suites_max" value="">
<input type="hidden" name="attr_ship_suites_current" value="">
<!-- ROLL TEMPLATES -->
<div class="rolltemplates">
<rolltemplate class="sheet-rolltemplate-simple">
<div class="sheet-container">
<div class="sheet-result">
{{#always}}
<div class="sheet-adv">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/always}}
{{#normal}}
<div class="sheet-solo">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/normal}}
{{#advantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#global}} + {{global}}{{/global}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#global}} + {{global}}{{/global}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
<div class="sheet-label">
<span>{{rname}}{{#mod}} <span>({{mod}})</span>{{/mod}}</span>
</div>
{{#charname}}
<div class="sheet-charname">
<span>{{charname}}</span>
</div>
{{/charname}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-atk">
<div class="sheet-container">
<div class="sheet-result">
{{#always}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/always}}
{{#normal}}
<div class="sheet-solo">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/normal}}
{{#advantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{#range}}
<div class="sheet-sublabel">
<span>{{range}}</span>
</div>
{{/range}}
<div class="sheet-label">
{{#normal}}
{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}
{{#^rollWasCrit() r1}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/^rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span>{{rnamec}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollTotal() r1 r2}}{{#^rollWasCrit() r1}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/^rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollLess() r1 r2}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollLess() r1 r2}}
{{#rollGreater() r1 r2}}<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}} <span>({{mod}})</span></span>{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{#charname}}
<div class="sheet-charname">
<span>{{charname}}</span>
</div>
{{/charname}}
</div>
{{#desc}}
<div class="sheet-desc sheet-info">
<span><span class="sheet-top"></span><span class="sheet-middle">{{desc}}</span><span class="sheet-bottom"></span></span>
</div>
{{/desc}}
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-dmg">
{{#save}}
{{#attack}}
<div class="sheet-desc sheet-save">
{{/attack}}
{{^attack}}
<div class="sheet-atk sheet-save">
{{/attack}}
<div class="sheet-savedc">
<span class="sheet-rolltemplate-inline" data-i18n="difficulty-class-abv">DC</span><span class="sheet-rolltemplate-inline">{{savedc}}</span>
</div>
{{#savedesc}}
<div class="sheet-sublabel">
<span>{{savedesc}}</span>
</div>
{{/savedesc}}
<div class="sheet-label">
<span class="sheet-rolltemplate-inline">{{saveattr}}</span> <span class="sheet-rolltemplate-inline" data-i18n="save">Save</span>
</div>
</div>
{{/save}}
{{^attack}}
{{#desc}}
<div class="sheet-desc sheet-info">
<span><span class="sheet-top"></span><span class="sheet-middle">{{desc}}</span><span class="sheet-bottom"></span></span>
</div>
{{/desc}}
{{/attack}}
{{#globaldamage}}
{{#^rollTotal() globaldamage 0}}
<div class="sheet-desc">
<span>{{globaldamage}}{{#globaldamagecrit}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/globaldamagecrit}}</span>
<span class="sheet-sublabel">{{globaldamagetype}}</span>
</div>
{{/^rollTotal() globaldamage 0}}
{{/globaldamage}}
{{#hldmg}}
{{#^rollTotal() hldmg 0}}
<div class="sheet-desc">
<span>{{hldmg}}{{#hldmgcrit}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/hldmgcrit}}</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
<div class="sheet-label">
<span data-i18n="higher-lvl-cast">Higher Level Cast</span>
</div>
</div>
{{/^rollTotal() hldmg 0}}
{{/hldmg}}
<div class="sheet-container sheet-damagetemplate">
<div class="sheet-result">
{{#dmg1flag}}
{{^dmg2flag}}
<div class="sheet-solo">
<span class="sheet-damage">{{dmg1}}{{#crit}} + {{crit1}}{{/crit}}</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
</div>
{{/dmg2flag}}
{{/dmg1flag}}
{{#dmg2flag}}
{{^dmg1flag}}
<div class="sheet-solo">
<span class="sheet-damage">{{dmg2}}{{#crit}} + {{crit2}}{{/crit}}</span>
<span class="sheet-sublabel">{{dmg2type}}</span>
</div>
{{/dmg1flag}}
{{/dmg2flag}}
{{#dmg1flag}}
{{#dmg2flag}}
<div class="sheet-adv">
<span class="sheet-damage">{{dmg1}}{{#crit}} + {{crit1}}{{/crit}}</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-damage">{{dmg2}}{{#crit}} + {{crit2}}{{/crit}}</span>
<span class="sheet-sublabel">{{dmg2type}}</span>
</div>
{{/dmg2flag}}
{{/dmg1flag}}
</div>
{{^attack}}
{{#range}}
<div class="sheet-sublabel" style="color: black;">
<span>{{range}}</span>
</div>
{{/range}}
<div class="sheet-label">
<span>{{rname}}</span>{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}}
</div>
{{#charname}}
<div class="sheet-charname">
<span>{{charname}}</span>
</div>
{{/charname}}
{{/attack}}
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-atkdmg">
{{#attack}}
<div class="sheet-container sheet-atk">
<div class="sheet-result">
{{#always}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/always}}
{{#normal}}
<div class="sheet-solo">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/normal}}
{{#advantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span class="sheet-grey">{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<div class="sheet-adv">
<span>{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<div class="sheet-adv">
<span class="sheet-grey">{{r1}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>{{r2}}{{#globalattack}} + {{globalattack}}{{/globalattack}}</span>
</div>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{#range}}
<div class="sheet-sublabel">
<span>{{range}}</span>
</div>
{{/range}}
<div class="sheet-label">
<span>{{rname}}{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}}{{#attack}} <span>({{mod}})</span>{{/attack}}</span>
</div>
{{#charname}}
<div class="sheet-charname">
<span>{{charname}}</span>
</div>
{{/charname}}
</div>
{{/attack}}
{{#save}}
{{#attack}}
<div class="sheet-container sheet-desc sheet-save">
{{/attack}}
{{^attack}}
<div class="sheet-container sheet-atk sheet-save">
{{/attack}}
<div class="sheet-savedc">
<span class="sheet-rolltemplate-inline" data-i18n="difficulty-class-abv">DC</span><span class="sheet-rolltemplate-inline">{{savedc}}</span>
</div>
{{#savedesc}}
<div class="sheet-sublabel">
<span>{{savedesc}}</span>
</div>
{{/savedesc}}
<div class="sheet-label">
<span class="sheet-rolltemplate-inline">{{saveattr}}</span> <span class="sheet-rolltemplate-inline" data-i18n="save">Save</span>
</div>
</div>
{{/save}}
{{#desc}}
<div class="sheet-desc sheet-info">
<span><span class="sheet-top"></span><span class="sheet-middle">{{desc}}</span><span class="sheet-bottom"></span></span>
</div>
{{/desc}}
{{#globaldamage}}
{{#^rollTotal() globaldamage 0}}
<div class="sheet-desc">
<span>
{{globaldamage}}
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{globaldamagecrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{globaldamagetype}}</span>
</div>
{{/^rollTotal() globaldamage 0}}
{{/globaldamage}}
{{#hldmg}}
{{#^rollTotal() hldmg 0}}
<div class="sheet-desc">
<span>
{{hldmg}}
<!-- {{#hldmgcrit}} + {{hldmgcrit}}{{/hldmgcrit}} -->
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-plus"> + </span>{{hldmgcrit}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
<div class="sheet-label">
<span data-i18n="higher-lvl-cast">Higher Level Cast</span>
</div>
</div>
{{/^rollTotal() hldmg 0}}
{{/hldmg}}
{{#damage}}
<div class="sheet-container sheet-damagetemplate">
<div class="sheet-result">
{{#dmg1flag}}
{{^dmg2flag}}
<div class="sheet-solo">
<span class="sheet-damage">
{{dmg1}}
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
</div>
{{/dmg2flag}}
{{/dmg1flag}}
{{#dmg2flag}}
{{^dmg1flag}}
<div class="sheet-solo">
<span class="sheet-damage">
{{dmg2}}
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{dmg2type}}</span>
</div>
{{/dmg1flag}}
{{/dmg2flag}}
{{#dmg1flag}}
{{#dmg2flag}}
<div class="sheet-adv">
<span class="sheet-damage">
{{dmg1}}
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{dmg1type}}</span>
</div>
<div class="sheet-advspacer"></div>
<div class="sheet-adv">
<span>
{{dmg2}}
{{#attack}}
{{#normal}}
{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}+ {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}+ {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{/attack}}
</span>
<span class="sheet-sublabel">{{dmg2type}}</span>
</div>
{{/dmg2flag}}
{{/dmg1flag}}
</div>
{{^attack}}
{{#range}}
<div class="sheet-sublabel">
<span>{{range}}</span>
</div>
{{/range}}
<div class="sheet-label">
<span>{{rname}}</span>{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}}
</div>
{{#charname}}
<div class="sheet-charname">
<span>{{charname}}</span>
</div>
{{/charname}}
{{/attack}}
</div>
{{/damage}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-desc">
<div class="sheet-desc sheet-info">
<span><span class="sheet-top"></span><span class="sheet-middle">{{desc}}</span><span class="sheet-bottom"></span></span>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-power">
<div class="sheet-container">
<div class="sheet-title sheet-row">
<span>{{name}}</span>{{#innate}}<span class="sheet-grey">, {{innate}}</span>{{/innate}}
</div>
<div class="sheet-spacer"></div>
{{#castingtime}}
<div class="sheet-row">
<span class="sheet-bold" data-i18n="casting-time:">Casting Time:</span> <span>{{castingtime}}</span>
</div>
{{/castingtime}}
{{#range}}
<div class="sheet-row">
<span class="sheet-bold" data-i18n="range:">Range:</span> <span>{{range}}</span>
</div>
{{/range}}
{{#target}}
<div class="sheet-row">
<span class="sheet-bold" data-i18n="target:">Target:</span> <span>{{target}}<></span>
</div>
{{/target}}
{{#duration}}
<div class="sheet-row">
<span class="sheet-bold" data-i18n="duration:">Duration:</span> <span>{{#concentration}}<span data-i18n="concentration">Concentration</span> {{/concentration}}{{duration}}</span>
</div>
{{/duration}}
<div class="sheet-spacer"></div>
{{#description}}
<div class="sheet-row">
<span class="sheet-description">{{description}}</span>
</div>
{{/description}}
{{#athigherlevels}}
<div class="sheet-row">
<span class="sheet-bold sheet-italics" data-i18n="at-higher-lvl">At Higher Levels</span>. <span class="sheet-description">{{athigherlevels}}</span>
</div>
{{/athigherlevels}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-traits">
<div class="sheet-row sheet-header">
<span>{{name}}</span>
</div>
{{#source}}
<div class="sheet-row sheet-subheader">
<span class="sheet-italics">{{#charname}}{{charname}} {{/charname}}{{source}}</span>
</div>
{{/source}}
{{#description}}
<div class="sheet-row">
<span class="sheet-desc">{{description}}</span>
</div>
{{/description}}
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-npc">
<div class="sheet-row sheet-header">
<span>{{rname}}</span>
</div>
{{#name}}
<div class="sheet-row sheet-subheader">
<span class="sheet-italics">{{name}}</span>
</div>
{{/name}}
<div class="sheet-arrow-right"></div>
<div class="sheet-row">
{{#normal}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span>
{{/normal}}
{{#always}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span class="sheet-italics">{{type}}: </span><span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-npcatk">
<div class="sheet-row sheet-header">
{{#normal}}
{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}
{{#^rollWasCrit() r1}}{{rname}}{{/^rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}{{rnamec}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}{{rname}}{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}{{rnamec}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}{{rname}}{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}{{rnamec}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollTotal() r1 r2}}{{#^rollWasCrit() r1}}{{rname}}{{/^rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollLess() r1 r2}}{{rname}}{{/rollLess() r1 r2}}
{{#rollGreater() r1 r2}}{{rnamec}}{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{#name}}
<div class="sheet-row sheet-subheader">
<span class="sheet-italics">{{name}}</span>
</div>
{{/name}}
<div class="sheet-arrow-right"></div>
<div class="sheet-row">
{{#normal}}
{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}
{{#^rollWasCrit() r1}}<span class="sheet-italics">{{type}}: </span>{{/^rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}<span class="sheet-italics">{{type}}: </span>{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}}<span class="sheet-italics">[{{typec}}: </span>{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{#^rollWasCrit() r1}}{{#^rollWasCrit() r2}}<span class="sheet-italics">{{type}}: </span>{{/^rollWasCrit() r2}}{{/^rollWasCrit() r1}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}}<span class="sheet-italics">{{typec}}: </span>{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollTotal() r1 r2}}{{#^rollWasCrit() r1}}<span class="sheet-italics">{{type}}: </span>{{/^rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollLess() r1 r2}}<span class="sheet-italics">{{type}}: </span>{{/rollLess() r1 r2}}
{{#rollGreater() r1 r2}}<span class="sheet-italics">{{typec}}: </span>{{/rollGreater() r1 r2}}
{{/disadvantage}}
{{#normal}}
<span>{{r1}}</span>
{{/normal}}
{{#always}}
<span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}
<span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{#description}}
<div class="sheet-row">
<span class="sheet-desc">{{description}}</span>
</div>
{{/description}}
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-npcdmg">
<div class="sheet-container sheet-dmgcontainer sheet-damagetemplate">
<span class="sheet-italics">Damage: </span>
<span>
{{#dmg1flag}}
{{dmg1}}{{#crit}} + {{crit1}}{{/crit}}{{dmg1type}}
{{/dmg1flag}}
{{#dmg1flag}}{{#dmg2flag}}+{{/dmg2flag}}{{/dmg1flag}}
{{#dmg2flag}}
{{dmg2}}{{#crit}} + {{crit2}}{{/crit}}{{dmg2type}}
{{/dmg2flag}}
</span>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-npcaction">
<div class="sheet-container">
<div class="sheet-row sheet-header">
<span>{{rname}}</span>
</div>
{{#name}}
<div class="sheet-row sheet-subheader">
<span class="sheet-italics">{{name}}</span>
</div>
{{/name}}
<div class="sheet-arrow-right"></div>
{{#attack}}
<div class="sheet-row">
{{#normal}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span>
{{/normal}}
{{#always}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}
<span class="sheet-italics">Attack: </span><span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollLess() r1 r2}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span><span> | </span><span class="sheet-grey">{{r2}}</span>
{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}
<span class="sheet-italics">Attack: </span><span>{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}
<span class="sheet-italics">Attack: </span><span class="sheet-grey">{{r1}}</span><span> | </span><span>{{r2}}</span>
{{/rollGreater() r1 r2}}
{{/disadvantage}}
</div>
{{/attack}}
{{#description}}
<span class="sheet-desc">{{description}}</span>
{{/description}}
</div>
{{#damage}}
<div class="sheet-container sheet-dmgcontainer sheet-damagetemplate">
<span class="sheet-italics">Damage: </span>
<span>
{{#dmg1flag}}
{{dmg1}}
{{#normal}}
{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}} + {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}} + {{crit1}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit1}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{dmg1type}}
{{/dmg1flag}}
{{#dmg1flag}}{{#dmg2flag}}+{{/dmg2flag}}{{/dmg1flag}}
{{#dmg2flag}}
{{dmg2}}
{{#normal}}
{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}
{{/normal}}
{{#always}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}} + {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/always}}
{{#advantage}}
{{#rollLess() r1 r2}}{{#rollWasCrit() r2}} + {{crit2}}{{/rollWasCrit() r2}}{{/rollLess() r1 r2}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{#rollGreater() r1 r2}}{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}{{/rollGreater() r1 r2}}
{{/advantage}}
{{#disadvantage}}
{{#rollTotal() r1 r2}}{{#rollWasCrit() r1}} + {{crit2}}{{/rollWasCrit() r1}}{{/rollTotal() r1 r2}}
{{/disadvantage}}
{{dmg2type}}
{{/dmg2flag}}
</span>
</div>
{{/damage}}
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-mancerroll">
<div class="sheet-container">
<div class="sheet-row sheet-header">
<span>{{title}}</span>
</div>
{{#r1}}
<div class="sheet-row">
<span class="sheet-desc">Roll 1: </span>
<span class="sheet-result">{{r1}}</span>
</div>
{{/r1}}
{{#r2}}
<div class="sheet-row">
<span class="sheet-desc">Roll 2: </span>
<span class="sheet-result">{{r2}}</span>
</div>
{{/r2}}
{{#r3}}
<div class="sheet-row">
<span class="sheet-desc">Roll 3: </span>
<span class="sheet-result">{{r3}}</span>
</div>
{{/r3}}
{{#r4}}
<div class="sheet-row">
<span class="sheet-desc">Roll 4: </span>
<span class="sheet-result">{{r4}}</span>
</div>
{{/r4}}
{{#r5}}
<div class="sheet-row">
<span class="sheet-desc">Roll 5: </span>
<span class="sheet-result">{{r5}}</span>
</div>
{{/r5}}
{{#r6}}
<div class="sheet-row">
<span class="sheet-desc">Roll 6: </span>
<span class="sheet-result">{{r6}}</span>
</div>
{{/r6}}
</div>
</rolltemplate>
</div>
</div>
<!-- WORKERS -->
<script type="text/worker">
//=require tools.js
var update_attr = function(attr) {
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_attr_change("repeating_inventory_", idarray, attr);
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_attr_change("repeating_hiddeninventory_", idarray, attr);
});
};
var update_inventory_from_attr_change = function(inventory, idarray, attr) {
var update = {};
var attr_fields = [attr + "_base",attr + "_bonus"];
_.each(idarray, function(currentID, i) {
attr_fields.push(inventory + currentID + "_equipped");
attr_fields.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(attr_fields, function(v) {
var base = v[attr + "_base"] && !isNaN(parseInt(v[attr + "_base"], 10)) ? parseInt(v[attr + "_base"], 10) : 10;
var bonus = v[attr + "_bonus"] && !isNaN(parseInt(v[attr + "_bonus"], 10)) ? parseInt(v[attr + "_bonus"], 10) : 0;
var item_base = 0;
var item_bonus = 0;
_.each(idarray, function(currentID) {
if((!v[inventory + currentID + "_equipped"] || v[inventory + currentID + "_equipped"] === "1") && v[inventory + currentID + "_itemmodifiers"] && v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf(attr > -1)) {
var mods = v[inventory + currentID + "_itemmodifiers"].toLowerCase().split(",");
_.each(mods, function(mod) {
if(mod.indexOf(attr) > -1 && mod.indexOf("save") === -1) {
if(mod.indexOf(":") > -1) {
var new_base = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
item_base = new_base && new_base > item_base ? new_base : item_base;
}
else if(mod.indexOf("-") > -1) {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
item_bonus = new_mod ? item_bonus - new_mod : item_bonus;
}
else {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
item_bonus = new_mod ? item_bonus + new_mod : item_bonus;
}
};
});
}
});
update[attr + "_flag"] = bonus > 0 || item_bonus > 0 || item_base > base ? 1 : 0;
base = base > item_base ? base : item_base;
update[attr] = base + bonus + item_bonus;
setAttrs(update);
});
};
var update_mod = function (attr) {
getAttrs([attr], function(v) {
var attr_abr = attr.substring(0,3);
var finalattr = v[attr] && isNaN(v[attr]) === false ? Math.floor((parseInt(v[attr], 10) - 10) / 2) : 0;
var update = {};
update[attr + "_mod"] = finalattr;
update["npc_" + attr_abr + "_negative"] = v[attr] && !isNaN(v[attr]) && parseInt(v[attr], 10) < 10 ? 1 : 0;
setAttrs(update);
});
};
var update_save = function (attr) {
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_save_change("repeating_inventory_", idarray, attr);
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_save_change("repeating_hiddeninventory_", idarray, attr);
});
};
var update_inventory_from_save_change = function(inventory, idarray, attr) {
var save_attrs = [attr + "_mod", attr + "_save_prof", attr + "_save_mod","pb","globalsavemod","pb_type"];
_.each(idarray, function(currentID, i) {
save_attrs.push(inventory + currentID + "_equipped");
save_attrs.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(save_attrs, function(v) {
var attr_mod = v[attr + "_mod"] ? parseInt(v[attr + "_mod"], 10) : 0;
var prof = v[attr + "_save_prof"] && v[attr + "_save_prof"] != 0 && !isNaN(v["pb"]) ? parseInt(v["pb"], 10) : 0;
var save_mod = v[attr + "_save_mod"] && !isNaN(parseInt(v[attr + "_save_mod"], 10)) ? parseInt(v[attr + "_save_mod"], 10) : 0;
var global = v["globalsavemod"] && !isNaN(v["globalsavemod"]) ? parseInt(v["globalsavemod"], 10) : 0;
var items = 0;
_.each(idarray, function(currentID) {
if(v[inventory + currentID + "_equipped"] && v[inventory + currentID + "_equipped"] === "1" && v[inventory + currentID + "_itemmodifiers"] && (v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf("saving throws") > -1 || v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf(attr + " save") > -1)) {
var mods = v[inventory + currentID + "_itemmodifiers"].toLowerCase().split(",");
_.each(mods, function(mod) {
if(mod.indexOf(attr + " save") > -1) {
var substr = mod.slice(mod.lastIndexOf(attr + " save") + attr.length + " save".length);
var bonus = substr && substr.length > 0 && !isNaN(parseInt(substr,10)) ? parseInt(substr,10) : 0;
}
else if(mod.indexOf("saving throws") > -1) {
var substr = mod.slice(mod.lastIndexOf("saving throws") + "saving throws".length);
var bonus = substr && substr.length > 0 && !isNaN(parseInt(substr,10)) ? parseInt(substr,10) : 0;
};
if(bonus && bonus != 0) {
items = items + bonus;
};
});
}
});
var total = attr_mod + prof + save_mod + global + items;
if(v["pb_type"] && v["pb_type"] === "die" && v[attr + "_save_prof"] != 0 && attr != "death") {
total = total + "+" + v["pb"];
};
var update = {};
update[attr + "_save_bonus"] = total;
setAttrs(update, {silent: true});
});
};
var update_all_saves = function() {
update_save("strength");
update_save("dexterity");
update_save("constitution");
update_save("intelligence");
update_save("wisdom");
update_save("charisma");
update_save("death");
};
var update_all_ability_checks = function(){
update_initiative();
update_skills(["athletics", "acrobatics", "sleight_of_hand", "stealth", "technology", "lore", "investigation", "nature", "piloting", "animal_handling", "insight", "medicine", "perception", "survival", "deception", "intimidation", "performance", "persuasion", "ship_boost", "ship_ram", "ship_hide", "ship_maneuvering", "ship_patch", "ship_regulation", "ship_astrogation", "ship_data", "ship_probe", "ship_scan", "ship_impress", "ship_interfere", "ship_menace", "ship_swindle"]);
};
var update_skills = function (skills_array) {
var skill_parent = {
athletics: "strength",
acrobatics: "dexterity",
sleight_of_hand: "dexterity",
stealth: "dexterity",
ship_hide: "dexterity",
technology: "intelligence",
lore: "intelligence",
investigation: "intelligence",
nature: "intelligence",
piloting: "intelligence",
animal_handling: "wisdom",
insight: "wisdom",
medicine: "wisdom",
perception: "wisdom",
survival: "wisdom",
deception: "charisma",
intimidation: "charisma",
performance: "charisma",
persuasion: "charisma",
ship_boost: "strength",
ship_ram: "strength",
ship_maneuvering: "dexterity",
ship_patch: "constitution",
ship_regulation: "constitution",
ship_astrogation: "intelligence",
ship_data: "intelligence",
ship_probe: "intelligence",
ship_scan: "wisdom",
ship_impress: "charisma",
ship_interfere: "charisma",
ship_menace: "charisma",
ship_swindle: "charisma"};
var attrs_to_get = ["pb","pb_type","jack_of_all_trades","jack"];
var callbacks = [];
if(skills_array.indexOf("perception") > -1) {
callbacks.push( function() {update_passive_perception();} )
};
_.each(skills_array, function(s) {
if(skill_parent[s] && attrs_to_get.indexOf(skill_parent[s]) === -1) {attrs_to_get.push(skill_parent[s] + "_mod")};
attrs_to_get.push(s + "_prof");
attrs_to_get.push(s + "_type");
attrs_to_get.push(s + "_flat");
});
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_skill_change("repeating_inventory_", idarray, callbacks, attrs_to_get, skill_parent, skills_array);
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_skill_change("repeating_hiddeninventory_", idarray, callbacks, attrs_to_get, skill_parent, skills_array);
});
};
var update_inventory_from_skill_change = function(inventory, idarray, callbacks, attrs_to_get, skill_parent, skills_array) {
var update = {};
_.each(idarray, function(currentID, i) {
attrs_to_get.push(inventory + currentID + "_equipped");
attrs_to_get.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(attrs_to_get, function(v) {
_.each(skills_array, function(s) {
console.log("UPDATING SKILL: " + s);
var attr_mod = v[skill_parent[s] + "_mod"] ? parseInt(v[skill_parent[s] + "_mod"], 10) : 0;
var prof = v[s + "_prof"] != 0 && !isNaN(v["pb"]) ? parseInt(v["pb"], 10) : 0;
var flat = v[s + "_flat"] && !isNaN(parseInt(v[s + "_flat"], 10)) ? parseInt(v[s + "_flat"], 10) : 0;
var type = v[s + "_type"] && !isNaN(parseInt(v[s + "_type"], 10)) ? parseInt(v[s + "_type"], 10) : 1;
var jack = v["jack_of_all_trades"] && v["jack_of_all_trades"] != 0 && v["jack"] ? v["jack"] : 0;
var item_bonus = 0;
_.each(idarray, function(currentID) {
if(v[inventory + currentID + "_equipped"] && v[inventory + currentID + "_equipped"] === "1" && v[inventory + currentID + "_itemmodifiers"] && (v[inventory + currentID + "_itemmodifiers"].toLowerCase().replace(/ /g,"_").indexOf(s) > -1 || v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf("ability checks") > -1)) {
var mods = v[inventory + currentID + "_itemmodifiers"].toLowerCase().split(",");
_.each(mods, function(mod) {
if(mod.replace(/ /g,"_").indexOf(s) > -1 || mod.indexOf("ability checks") > -1) {
if(mod.indexOf("-") > -1) {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
item_bonus = new_mod ? item_bonus - new_mod : item_bonus;
}
else {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
item_bonus = new_mod ? item_bonus + new_mod : item_bonus;
}
};
});
};
});
var total = attr_mod + flat + item_bonus;
if(v["pb_type"] && v["pb_type"] === "die") {
if(v[s + "_prof"] != 0) {
type === 1 ? "" : "2"
total = total + "+" + type + v["pb"];
}
else if(v[s + "_prof"] == 0 && jack != 0) {
total = total + "+" + jack;
};
}
else {
if(v[s + "_prof"] != 0) {
total = total + (prof * type);
}
else if(v[s + "_prof"] == 0 && jack != 0) {
total = total + parseInt(jack, 10);
};
};
update[s + "_bonus"] = total;
});
setAttrs(update, {silent: true}, function() {callbacks.forEach(function(callback) {callback(); })} );
});
};
var update_tool = function(tool_id) {
if(tool_id.substring(0,1) === "-" && tool_id.length === 20) {
do_update_tool([tool_id]);
}
else if(tool_id === "all") {
getSectionIDs("repeating_tool", function(idarray) {
do_update_tool(idarray);
});
}
else {
getSectionIDs("repeating_tool", function(idarray) {
var tool_attribs = [];
_.each(idarray, function(id) {
tool_attribs.push("repeating_tool_" + id + "_toolattr_base");
});
getAttrs(tool_attribs, function(v) {
var attr_tool_ids = [];
_.each(idarray, function(id) {
if(v["repeating_tool_" + id + "_toolattr_base"] && v["repeating_tool_" + id + "_toolattr_base"].indexOf(tool_id) > -1) {
attr_tool_ids.push(id);
}
});
if(attr_tool_ids.length > 0) {
do_update_tool(attr_tool_ids);
}
});
});
};
};
var do_update_tool = function(tool_array) {
var tool_attribs = ["pb","pb_type","jack","strength_mod","dexterity_mod","constitution_mod","intelligence_mod","wisdom_mod","charisma_mod"];
var update = {};
_.each(tool_array, function(tool_id) {
tool_attribs.push("repeating_tool_" + tool_id + "_toolbonus_base");
tool_attribs.push("repeating_tool_" + tool_id + "_tool_mod");
tool_attribs.push("repeating_tool_" + tool_id + "_toolattr_base");
});
getAttrs(tool_attribs, function(v) {
_.each(tool_array, function(tool_id) {
console.log("UPDATING TOOL: " + tool_id);
var query = false;
if(v["repeating_tool_" + tool_id + "_toolattr_base"] && v["repeating_tool_" + tool_id + "_toolattr_base"].substring(0,2) === "?{") {
update["repeating_tool_" + tool_id + "_toolattr"] = "QUERY";
var mod = "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}";
if(v["repeating_tool_" + tool_id + "_tool_mod"]) {
mod = mod + "+" + v["repeating_tool_" + tool_id + "_tool_mod"];
}
query = true;
}
else {
var attr = v["repeating_tool_" + tool_id + "_toolattr_base"].substring(0, v["repeating_tool_" + tool_id + "_toolattr_base"].length - 5).substr(2);
var attr_mod = v[attr + "_mod"] ? parseInt(v[attr + "_mod"], 10) : 0;
var tool_mod = v["repeating_tool_" + tool_id + "_tool_mod"] && !isNaN(parseInt(v["repeating_tool_" + tool_id + "_tool_mod"], 10)) ? parseInt(v["repeating_tool_" + tool_id + "_tool_mod"], 10) : 0;
var mod = attr_mod + tool_mod;
update["repeating_tool_" + tool_id + "_toolattr"] = attr.toUpperCase();
if(v["repeating_tool_" + tool_id + "_tool_mod"] && v["repeating_tool_" + tool_id + "_tool_mod"].indexOf("@{") > -1) {
update["repeating_tool_" + tool_id + "_toolbonus"] = update["repeating_tool_" + tool_id + "_toolbonus"] + "+" + v["repeating_tool_" + tool_id + "_tool_mod"];
}
if(!v["repeating_tool_" + tool_id + "_tool_mod"]) {
update["repeating_tool_" + tool_id + "_tool_mod"] = 0;
}
};
if(v["pb_type"] && v["pb_type"] === "die" ) {
if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb})") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+" + v.pb}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb}*2)") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+2" + v.pb}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(floor(@{pb}/2))") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+" + v.jack};
}
else if(v["repeating_tool_" + tool_id + "_toolattr_base"] && v["repeating_tool_" + tool_id + "_toolattr_base"].substring(0,2) === "?{") {
if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb})") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+" + parseInt(v.pb, 10)}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb}*2)") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+" + (parseInt(v.pb, 10)*2)}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(floor(@{pb}/2))") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + "+" + parseInt(v.jack, 10)};
}
else {
if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb})") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + parseInt(v.pb, 10)}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(@{pb}*2)") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + (parseInt(v.pb, 10)*2)}
else if(v["repeating_tool_" + tool_id + "_toolbonus_base"] === "(floor(@{pb}/2))") {update["repeating_tool_" + tool_id + "_toolbonus"] = mod + parseInt(v.jack, 10)};
};
if(query) {
update["repeating_tool_" + tool_id + "_toolbonus_display"] = "?";
}
else {
update["repeating_tool_" + tool_id + "_toolbonus_display"] = update["repeating_tool_" + tool_id + "_toolbonus"];
};
});
setAttrs(update, {silent: true});
});
};
var check_itemmodifiers = function(modifiers, previousValue) {
var mods = modifiers.toLowerCase().split(",");
if(previousValue) {
prevmods = previousValue.toLowerCase().split(",");
mods = _.union(mods, prevmods);
};
_.each(mods, function(mod) {
if(mod.indexOf("ac:") > -1 || mod.indexOf("ac +") > -1 || mod.indexOf("ac -") > -1) {update_ac();};
if(mod.indexOf("power") > -1) {update_power_info();};
if(mod.indexOf("saving throws") > -1) {update_all_saves();};
if(mod.indexOf("strength save") > -1) {update_save("strength");} else if(mod.indexOf("strength") > -1) {update_attr("strength");};
if(mod.indexOf("dexterity save") > -1) {update_save("dexterity");} else if(mod.indexOf("dexterity") > -1) {update_attr("dexterity");};
if(mod.indexOf("constitution save") > -1) {update_save("constitution");} else if(mod.indexOf("constitution") > -1) {update_attr("constitution");};
if(mod.indexOf("intelligence save") > -1) {update_save("intelligence");} else if(mod.indexOf("intelligence") > -1) {update_attr("intelligence");};
if(mod.indexOf("wisdom save") > -1) {update_save("wisdom");} else if(mod.indexOf("wisdom") > -1) {update_attr("wisdom");};
if(mod.indexOf("charisma save") > -1) {update_save("charisma");} else if(mod.indexOf("charisma") > -1) {update_attr("charisma");};
if(mod.indexOf("ability checks") > -1) {update_all_ability_checks();};
if(mod.indexOf("acrobatics") > -1) {update_skills(["acrobatics"]);};
if(mod.indexOf("animal handling") > -1) {update_skills(["animal_handling"]);};
if(mod.indexOf("technology") > -1) {update_skills(["technology"]);};
if(mod.indexOf("athletics") > -1) {update_skills(["athletics"]);};
if(mod.indexOf("deception") > -1) {update_skills(["deception"]);};
if(mod.indexOf("lore") > -1) {update_skills(["lore"]);};
if(mod.indexOf("insight") > -1) {update_skills(["insight"]);};
if(mod.indexOf("intimidation") > -1) {update_skills(["intimidation"]);};
if(mod.indexOf("investigation") > -1) {update_skills(["investigation"]);};
if(mod.indexOf("medicine") > -1) {update_skills(["medicine"]);};
if(mod.indexOf("nature") > -1) {update_skills(["nature"]);};
if(mod.indexOf("perception") > -1) {update_skills(["perception"]);};
if(mod.indexOf("performance") > -1) {update_skills(["performance"]);};
if(mod.indexOf("persuasion") > -1) {update_skills(["persuasion"]);};
if(mod.indexOf("piloting") > -1) {update_skills(["piloting"]);};
if(mod.indexOf("sleight of hand") > -1) {update_skills(["sleight_of_hand"]);};
if(mod.indexOf("stealth") > -1) {update_skills(["stealth"]);};
if(mod.indexOf("survival") > -1) {update_skills(["survival"]);};
if(mod.indexOf("ship boost") > -1) {update_skills(["ship_boost"]);};
if(mod.indexOf("ship ram") > -1) {update_skills(["ship_ram"]);};
if(mod.indexOf("ship hide") > -1) {update_skills(["ship_hide"]);};
if(mod.indexOf("ship maneuvering") > -1) {update_skills(["ship_maneuvering"]);};
if(mod.indexOf("ship patch") > -1) {update_skills(["ship_patch"]);};
if(mod.indexOf("ship regulation") > -1) {update_skills(["ship_regulation"]);};
if(mod.indexOf("ship astrogation") > -1) {update_skills(["ship_astrogation"]);};
if(mod.indexOf("ship data") > -1) {update_skills(["ship_data"]);};
if(mod.indexOf("ship probe") > -1) {update_skills(["ship_probe"]);};
if(mod.indexOf("ship scan") > -1) {update_skills(["ship_scan"]);};
if(mod.indexOf("ship impress") > -1) {update_skills(["ship_impress"]);};
if(mod.indexOf("ship interfere") > -1) {update_skills(["ship_interfere"]);};
if(mod.indexOf("ship menace") > -1) {update_skills(["ship_menace"]);};
if(mod.indexOf("ship swindle") > -1) {update_skills(["ship_swindle"]);};
});
};
var create_attack_from_item = function(itemid, options) {
var inventory = "repeating_inventory_";
var isHidden = false;
if(options && options.hidden) {
inventory = "repeating_hiddeninventory_";
isHidden = true;
}
var update = {};
var newrowid = generateRowID();
update[inventory + itemid + "_itemattackid"] = newrowid;
if(options && options.versatile) {
var newrowid2 = generateRowID();
update[inventory + itemid + "_itemattackid"] += "," + newrowid2;
setAttrs(update, {}, function() {
update_attack_from_item(itemid, newrowid, {newattack: true, versatile: "primary", hidden: isHidden});
update_attack_from_item(itemid, newrowid2, {newattack: true, versatile: "secondary", hidden: isHidden});
});
}
else {
setAttrs(update, {}, update_attack_from_item(itemid, newrowid, {newattack: true, hidden: isHidden}));
}
};
var update_attack_from_item = function(itemid, attackid, options) {
var inventory = "repeating_inventory_";
var isHidden = false;
if(options && options.hidden) {
inventory = "repeating_hiddeninventory_";
isHidden = true;
}
getAttrs([inventory + itemid + "_itemname",inventory + itemid + "_itemproperties",inventory + itemid + "_itemmodifiers", "strength", "dexterity"], function(v) {
var update = {}; var itemtype; var damage; var damagetype; var damage2; var damagetype2; var attackmod; var damagemod; var range;
var alt = {};
if(options && options.newattack) {
update["repeating_attack_" + attackid + "_options-flag"] = "0";
update["repeating_attack_" + attackid + "_itemid"] = itemid;
}
if(v[inventory + itemid + "_itemmodifiers"] && v[inventory + itemid + "_itemmodifiers"] != "") {
var mods = v[inventory + itemid + "_itemmodifiers"].split(",");
_.each(mods, function(mod) {
if(mod.indexOf("Item Type:") > -1) {itemtype = mod.split(":")[1].trim()}
else if(mod.indexOf("Alternate Secondary Damage Type:") > -1) {alt.damagetype2 = mod.split(":")[1].trim();}
else if(mod.indexOf("Alternate Secondary Damage:") > -1) {alt.damage2 = mod.split(":")[1].trim();}
else if(mod.indexOf("Alternate Damage Type:") > -1) {alt.damagetype = mod.split(":")[1].trim();}
else if(mod.indexOf("Alternate Damage:") > -1) {alt.damage = mod.split(":")[1].trim();}
else if(mod.indexOf("Secondary Damage Type:") > -1) {damagetype2 = mod.split(":")[1].trim()}
else if(mod.indexOf("Secondary Damage:") > -1) {damage2 = mod.split(":")[1].trim()}
else if(mod.indexOf("Damage Type:") > -1) {damagetype = mod.split(":")[1].trim()}
else if(mod.indexOf("Damage:") > -1) {damage = mod.split(":")[1].trim()}
else if(mod.indexOf("Range:") > -1) {range = mod.split(":")[1].trim()}
else if(mod.indexOf(" Attacks ") > -1) {attackmod = mod.split(" Attacks ")[1].trim()}
else if(mod.indexOf(" Damage ") > -1) {damagemod = mod.split(" Damage ")[1].trim()}
});
}
if(v[inventory + itemid + "_itemname"] && v[inventory + itemid + "_itemname"] != "") {
update["repeating_attack_" + attackid + "_atkname"] = v[inventory + itemid + "_itemname"];
if(options && options.versatile === "primary") {
update["repeating_attack_" + attackid + "_atkname"] += " (One-Handed)";
} else if(options && options.versatile === "secondary") {
update["repeating_attack_" + attackid + "_atkname"] += " (Two-Handed)";
}
}
if(options && options.versatile === "secondary") {
if(alt.damage) {
update["repeating_attack_" + attackid + "_dmgbase"] = alt.damage;
}
if(alt.damagetype) {
update["repeating_attack_" + attackid + "_dmgtype"] = alt.damagetype;
}
if(alt.damage2) {
update["repeating_attack_" + attackid + "_dmg2base"] = alt.damage2;
update["repeating_attack_" + attackid + "_dmg2attr"] = 0;
update["repeating_attack_" + attackid + "_dmg2flag"] = "{{damage=1}} {{dmg2flag=1}}";
}
if(alt.damagetype2) {
update["repeating_attack_" + attackid + "_dmg2type"] = alt.damagetype2;
}
update["repeating_attack_" + attackid + "_versatile_alt"] = "1";
}
else {
if(damage) {
update["repeating_attack_" + attackid + "_dmgbase"] = damage;
}
if(damagetype) {
update["repeating_attack_" + attackid + "_dmgtype"] = damagetype;
}
if(damage2) {
update["repeating_attack_" + attackid + "_dmg2base"] = damage2;
update["repeating_attack_" + attackid + "_dmg2attr"] = 0;
update["repeating_attack_" + attackid + "_dmg2flag"] = "{{damage=1}} {{dmg2flag=1}}";
}
if(damagetype2) {
update["repeating_attack_" + attackid + "_dmg2type"] = damagetype2;
}
}
if(range) {
update["repeating_attack_" + attackid + "_atkrange"] = range;
}
var finesse = v[inventory + itemid + "_itemproperties"] && /finesse/i.test(v[inventory + itemid + "_itemproperties"]);
if( (itemtype && itemtype.indexOf("Ranged") > -1) || (finesse && +v.dexterity > +v.strength)) {
update["repeating_attack_" + attackid + "_atkattr_base"] = "@{dexterity_mod}";
update["repeating_attack_" + attackid + "_dmgattr"] = "@{dexterity_mod}";
}
else {
update["repeating_attack_" + attackid + "_atkattr_base"] = "@{strength_mod}";
update["repeating_attack_" + attackid + "_dmgattr"] = "@{strength_mod}";
}
if(attackmod && damagemod && attackmod == damagemod) {
update["repeating_attack_" + attackid + "_atkpower"] = parseInt(attackmod, 10);
update["repeating_attack_" + attackid + "_atkmod"] = "";
update["repeating_attack_" + attackid + "_dmgmod"] = "";
}
else {
if(attackmod) {
update["repeating_attack_" + attackid + "_atkmod"] = parseInt(attackmod, 10);
}
if(damagemod) {
update["repeating_attack_" + attackid + "_dmgmod"] = parseInt(damagemod, 10);
}
update["repeating_attack_" + attackid + "_atkpower"] = "";
}
var callback = function() {update_attacks(attackid, "item")};
setAttrs(update, {silent: true}, callback);
});
};
var create_resource_from_item = function(itemid, options) {
var update = {};
var newrowid = generateRowID();
var inventory = "repeating_inventory_";
var isHidden = false;
if(options && options.hidden){
inventory = "repeating_hiddeninventory_";
isHidden = true;
}
getAttrs(["other_resource_name"], function(x) {
if(!x.other_resource_name || x.other_resource_name == "") {
update[inventory + itemid + "_itemresourceid"] = "other_resource";
setAttrs(update, {}, update_resource_from_item(itemid, "other_resource", true, {hidden: isHidden}));
}
else {
getSectionIDs("repeating_resource", function(idarray) {
if(idarray.length == 0) {
update[inventory + itemid + "_itemresourceid"] = newrowid + "_resource_left";
setAttrs(update, {}, update_resource_from_item(itemid, newrowid + "_resource_left", true, {hidden: isHidden}));
}
else {
var resource_names = [];
_.each(idarray, function(currentID, i) {
resource_names.push("repeating_resource_" + currentID + "_resource_left_name");
resource_names.push("repeating_resource_" + currentID + "_resource_right_name");
});
getAttrs(resource_names, function(y) {
var existing = false;
_.each(idarray, function(currentID, i) {
if((!y["repeating_resource_" + currentID + "_resource_left_name"] || y["repeating_resource_" + currentID + "_resource_left_name"] === "") && existing == false) {
update[inventory + itemid + "_itemresourceid"] = currentID + "_resource_left";
setAttrs(update, {}, update_resource_from_item(itemid, currentID + "_resource_left", true, {hidden:isHidden}));
existing = true;
}
else if((!y["repeating_resource_" + currentID + "_resource_right_name"] || y["repeating_resource_" + currentID + "_resource_right_name"] === "") && existing == false) {
update[inventory + itemid + "_itemresourceid"] = currentID + "_resource_right";
setAttrs(update, {}, update_resource_from_item(itemid, currentID + "_resource_right", true, {hidden:isHidden}));
existing = true;
};
});
if(!existing) {
update[inventory + itemid + "_itemresourceid"] = newrowid + "_resource_left";
setAttrs(update, {}, update_resource_from_item(itemid, newrowid + "_resource_left", true, {hidden:isHidden}));
}
});
};
});
};
});
};
var update_resource_from_item = function(itemid, resourceid, newresource, options) {
var inventory = "repeating_inventory_";
if(options && options.hidden) {
inventory = "repeating_hiddeninventory_";
}
getAttrs([inventory + itemid + "_itemname",inventory + itemid + "_itemcount"], function(v) {
var update = {}; var id;
if(resourceid && resourceid == "other_resource") {
id = resourceid;
}
else {
id = "repeating_resource_" + resourceid;
};
if(newresource) {
update[id + "_itemid"] = itemid;
} ;
if(!v[inventory + itemid + "_itemname"]) {
update[inventory + itemid + "_useasresource"] = 0;
update[inventory + itemid + "_itemresourceid"] = "";
remove_resource(resourceid);
};
if(v[inventory + itemid + "_itemname"] && v[inventory + itemid + "_itemname"] != "") {
update[id + "_name"] = v[inventory + itemid + "_itemname"];
};
if(v[inventory + itemid + "_itemcount"] && v[inventory + itemid + "_itemcount"] != "") {
update[id] = v[inventory + itemid + "_itemcount"];
};
setAttrs(update, {silent: true});
});
};
var update_item_from_resource = function(resourceid, itemid) {
var update = {};
var inventory = "repeating_inventory_";
getAttrs(["repeating_hiddeninventory_" + itemid + "_itemname"], function(x) {
if(x["repeating_hiddeninventory_" + itemid + "_itemname"]) {
inventory = "repeating_hiddeninventory_";
}
});
getAttrs([resourceid, resourceid + "_name"], function(v) {
update[inventory + itemid + "_itemcount"] = v[resourceid];
update[inventory + itemid + "_itemname"] = v[resourceid + "_name"];
setAttrs(update, {silent: true}, function() {update_weight()});
});
};
var create_attack_from_power = function(lvl, powerid, character_id) {
var update = {};
var newrowid = generateRowID();
update["repeating_power-" + lvl + "_" + powerid + "_powerattackid"] = newrowid;
update["repeating_power-" + lvl + "_" + powerid + "_rollcontent"] = "%{" + character_id + "|repeating_attack_" + newrowid + "_attack}";
setAttrs(update, {}, update_attack_from_power(lvl, powerid, newrowid, true));
}
var update_attack_from_power = function(lvl, powerid, attackid, newattack) {
getAttrs(["repeating_power-" + lvl + "_" + powerid + "_powername",
"repeating_power-" + lvl + "_" + powerid + "_powerrange",
"repeating_power-" + lvl + "_" + powerid + "_powertarget",
"repeating_power-" + lvl + "_" + powerid + "_powerattack",
"repeating_power-" + lvl + "_" + powerid + "_powerdamage",
"repeating_power-" + lvl + "_" + powerid + "_powerdamage2",
"repeating_power-" + lvl + "_" + powerid + "_powerdamagetype",
"repeating_power-" + lvl + "_" + powerid + "_powerdamagetype2",
"repeating_power-" + lvl + "_" + powerid + "_powerhealing",
"repeating_power-" + lvl + "_" + powerid + "_powerdmgmod",
"repeating_power-" + lvl + "_" + powerid + "_powersave",
"repeating_power-" + lvl + "_" + powerid + "_powersavesuccess",
"repeating_power-" + lvl + "_" + powerid + "_powerhldie",
"repeating_power-" + lvl + "_" + powerid + "_powerhldietype",
"repeating_power-" + lvl + "_" + powerid + "_powerhlbonus",
"repeating_power-" + lvl + "_" + powerid + "_powerlevel",
"repeating_power-" + lvl + "_" + powerid + "_includedesc",
"repeating_power-" + lvl + "_" + powerid + "_powerdescription",
"repeating_power-" + lvl + "_" + powerid + "_powerathigherlevels",
"repeating_power-" + lvl + "_" + powerid + "_power_damage_progression",
"repeating_power-" + lvl + "_" + powerid + "_innate",
"repeating_power-" + lvl + "_" + powerid + "_power_ability",
"powercasting_ability",
"character_id"], function(v) {
var update = {};
var description = "";
var powerAbility = v["repeating_power-" + lvl + "_" + powerid + "_power_ability"] != "power" ? v["repeating_power-" + lvl + "_" + powerid + "_power_ability"].slice(0, -1) : "power";
update["repeating_attack_" + attackid + "_atkattr_base"] = powerAbility;
if(newattack) {
update["repeating_attack_" + attackid + "_options-flag"] = "0";
update["repeating_attack_" + attackid + "_powerid"] = powerid;
update["repeating_attack_" + attackid + "_powerlevel"] = lvl;
} else {
update["repeating_power-" + lvl + "_" + powerid + "_rollcontent"] = "%{" + v["character_id"] + "|repeating_attack_" + attackid + "_attack}";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_power_ability"] == "power") {
update["repeating_attack_" + attackid + "_savedc"] = "(@{power_save_dc})";
} else if (v["repeating_power-" + lvl + "_" + powerid + "_power_ability"]) {
update["repeating_attack_" + attackid + "_savedc"] = "(" + powerAbility + "+8+@{power_dc_mod}+@{pb})";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powername"] && v["repeating_power-" + lvl + "_" + powerid + "_powername"] != "") {
update["repeating_attack_" + attackid + "_atkname"] = v["repeating_power-" + lvl + "_" + powerid + "_powername"];
}
if(!v["repeating_power-" + lvl + "_" + powerid + "_powerattack"] || v["repeating_power-" + lvl + "_" + powerid + "_powerattack"] === "None") {
update["repeating_attack_" + attackid + "_atkflag"] = "0";
}
else {
update["repeating_attack_" + attackid + "_atkflag"] = "{{attack=1}}";
description = description + v["repeating_power-" + lvl + "_" + powerid + "_powerattack"] + " Power Attack. ";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] && v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] != "") {
update["repeating_attack_" + attackid + "_dmgflag"] = "{{damage=1}} {{dmg1flag=1}}";
if(v["repeating_power-" + lvl + "_" + powerid + "_power_damage_progression"] && v["repeating_power-" + lvl + "_" + powerid + "_power_damage_progression"] === "Cantrip Dice") {
update["repeating_attack_" + attackid + "_dmgbase"] = "[[round((@{level} + 1) / 6 + 0.5)]]" + v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"].substring(1);
}
else {
update["repeating_attack_" + attackid + "_dmgbase"] = v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"];
}
}
else {
update["repeating_attack_" + attackid + "_dmgflag"] = "0"
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerdmgmod"] && v["repeating_power-" + lvl + "_" + powerid + "_powerdmgmod"] === "Yes") {
update["repeating_attack_" + attackid + "_dmgattr"] = powerAbility;
}
else {
update["repeating_attack_" + attackid + "_dmgattr"] = "0";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype"]) {
update["repeating_attack_" + attackid + "_dmgtype"] = v["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype"];
}
else {
update["repeating_attack_" + attackid + "_dmgtype"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"]) {
update["repeating_attack_" + attackid + "_dmg2base"] = v["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"];
update["repeating_attack_" + attackid + "_dmg2attr"] = 0;
update["repeating_attack_" + attackid + "_dmg2flag"] = "{{damage=1}} {{dmg2flag=1}}";
}
else {
update["repeating_attack_" + attackid + "_dmg2base"] = "";
update["repeating_attack_" + attackid + "_dmg2attr"] = 0;
update["repeating_attack_" + attackid + "_dmg2flag"] = "0";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype2"]) {
update["repeating_attack_" + attackid + "_dmg2type"] = v["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype2"];
}
else {
update["repeating_attack_" + attackid + "_dmg2type"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerrange"]) {
update["repeating_attack_" + attackid + "_atkrange"] = v["repeating_power-" + lvl + "_" + powerid + "_powerrange"];
}
else {
update["repeating_attack_" + attackid + "_atkrange"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerrange"]) {
update["repeating_attack_" + attackid + "_atkrange"] = v["repeating_power-" + lvl + "_" + powerid + "_powerrange"];
}
else {
update["repeating_attack_" + attackid + "_atkrange"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powersave"]) {
update["repeating_attack_" + attackid + "_saveflag"] = "{{save=1}} {{saveattr=@{saveattr}}} {{savedesc=@{saveeffect}}} {{savedc=[[[[@{savedc}]][SAVE]]]}}";
update["repeating_attack_" + attackid + "_saveattr"] = v["repeating_power-" + lvl + "_" + powerid + "_powersave"];
}
else {
update["repeating_attack_" + attackid + "_saveflag"] = "0";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powersavesuccess"]) {
update["repeating_attack_" + attackid + "_saveeffect"] = v["repeating_power-" + lvl + "_" + powerid + "_powersavesuccess"];
}
else {
update["repeating_attack_" + attackid + "_saveeffect"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerhldie"] && v["repeating_power-" + lvl + "_" + powerid + "_powerhldie"] != "" && v["repeating_power-" + lvl + "_" + powerid + "_powerhldietype"] && v["repeating_power-" + lvl + "_" + powerid + "_powerhldietype"] != "") {
var bonus = "";
var powerlevel = v["repeating_power-" + lvl + "_" + powerid + "_powerlevel"];
var query = "?{Cast at what level?";
for(i = 0; i < 10-powerlevel; i++) {
query = query + "|Level " + (parseInt(i, 10) + parseInt(powerlevel, 10)) + "," + i;
}
query = query + "}";
if(v["repeating_power-" + lvl + "_" + powerid + "_powerhlbonus"] && v["repeating_power-" + lvl + "_" + powerid + "_powerhlbonus"] != "") {
bonus = "+(" + v["repeating_power-" + lvl + "_" + powerid + "_powerhlbonus"] + "*" + query + ")";
}
update["repeating_attack_" + attackid + "_hldmg"] = "{{hldmg=[[(" + v["repeating_power-" + lvl + "_" + powerid + "_powerhldie"] + "*" + query + ")" + v["repeating_power-" + lvl + "_" + powerid + "_powerhldietype"] + bonus + "]]}}";
}
else {
update["repeating_attack_" + attackid + "_hldmg"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powerhealing"] && v["repeating_power-" + lvl + "_" + powerid + "_powerhealing"] != "") {
if(!v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] || v["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] === "") {
update["repeating_attack_" + attackid + "_dmgbase"] = v["repeating_power-" + lvl + "_" + powerid + "_powerhealing"];
update["repeating_attack_" + attackid + "_dmgflag"] = "{{damage=1}} {{dmg1flag=1}}";
update["repeating_attack_" + attackid + "_dmgtype"] = "Healing";
}
else if(!v["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"] || v["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"] === "") {
update["repeating_attack_" + attackid + "_dmg2base"] = v["repeating_power-" + lvl + "_" + powerid + "_powerhealing"];
update["repeating_attack_" + attackid + "_dmg2flag"] = "{{damage=1}} {{dmg2flag=1}}";
update["repeating_attack_" + attackid + "_dmg2type"] = "Healing";
}
}
if(v["repeating_power-" + lvl + "_" + powerid + "_innate"]) {
update["repeating_attack_" + attackid + "_power_innate"] = v["repeating_power-" + lvl + "_" + powerid + "_innate"];
}
else {
update["repeating_attack_" + attackid + "_power_innate"] = "";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_powertarget"]) {
description = description + v["repeating_power-" + lvl + "_" + powerid + "_powertarget"] + ". ";
}
if(v["repeating_power-" + lvl + "_" + powerid + "_includedesc"] && v["repeating_power-" + lvl + "_" + powerid + "_includedesc"] === "on") {
description = v["repeating_power-" + lvl + "_" + powerid + "_powerdescription"];
if(v["repeating_power-" + lvl + "_" + powerid + "_powerathigherlevels"] && v["repeating_power-" + lvl + "_" + powerid + "_powerathigherlevels"] != "") {
description = description + "\n\nAt Higher Levels: " + v["repeating_power-" + lvl + "_" + powerid + "_powerathigherlevels"];
}
}
else if(v["repeating_power-" + lvl + "_" + powerid + "_includedesc"] && v["repeating_power-" + lvl + "_" + powerid + "_includedesc"] === "off") {
description = "";
};
update["repeating_attack_" + attackid + "_atk_desc"] = description;
var callback = function() {update_attacks(attackid, "power")};
setAttrs(update, {silent: true}, callback);
});
};
var update_attacks = function(update_id, source) {
console.log("DOING UPDATE_ATTACKS: " + update_id);
if(update_id.substring(0,1) === "-" && update_id.length === 20) {
do_update_attack([update_id], source);
}
else if(["strength","dexterity","constitution","intelligence","wisdom","charisma","powers","all"].indexOf(update_id) > -1) {
getSectionIDs("repeating_attack", function(idarray) {
if(update_id === "all") {
do_update_attack(idarray);
}
else if(update_id === "powers") {
var attack_attribs = [];
_.each(idarray, function(id) {
attack_attribs.push("repeating_attack_" + id + "_powerid", "repeating_attack_" + id + "_powerlevel");
});
getAttrs(attack_attribs, function(v) {
var filteredIds = _.filter(idarray, function(id) {
return v["repeating_attack_" + id + "_powerid"] && v["repeating_attack_" + id + "_powerid"] != "";
});
var power_attacks = {};
_.each(filteredIds, function(attack_id) {
power_attacks[attack_id] = {
power_id: v["repeating_attack_" + attack_id + "_powerid"],
power_lvl: v["repeating_attack_" + attack_id + "_powerlevel"]
};
});
_.each(power_attacks, function(data, attack_id) { update_attack_from_power(data.power_lvl, data.power_id, attack_id); });
});
}
else {
var attack_attribs = ["powercasting_ability"];
_.each(idarray, function(id) {
attack_attribs.push("repeating_attack_" + id + "_atkattr_base");
attack_attribs.push("repeating_attack_" + id + "_dmgattr");
attack_attribs.push("repeating_attack_" + id + "_dmg2attr");
attack_attribs.push("repeating_attack_" + id + "_savedc");
});
getAttrs(attack_attribs, function(v) {
var attr_attack_ids = [];
_.each(idarray, function(id) {
if((v["repeating_attack_" + id + "_atkattr_base"] && v["repeating_attack_" + id + "_atkattr_base"].indexOf(update_id) > -1) || (v["repeating_attack_" + id + "_dmgattr"] && v["repeating_attack_" + id + "_dmgattr"].indexOf(update_id) > -1) || (v["repeating_attack_" + id + "_dmg2attr"] && v["repeating_attack_" + id + "_dmg2attr"].indexOf(update_id) > -1) || (v["repeating_attack_" + id + "_savedc"] && v["repeating_attack_" + id + "_savedc"].indexOf(update_id) > -1) || (v["repeating_attack_" + id + "_savedc"] && v["repeating_attack_" + id + "_savedc"] === "(@{power_save_dc})" && v["powercasting_ability"] && v["powercasting_ability"].indexOf(update_id) > -1)) {
attr_attack_ids.push(id);
}
});
if(attr_attack_ids.length > 0) {
do_update_attack(attr_attack_ids);
}
});
};
});
};
};
var do_update_attack = function(attack_array, source) {
var attack_attribs = ["level","d20","pb","pb_type","pbd_safe","dtype","globalpowermod","strength_mod","dexterity_mod","constitution_mod","intelligence_mod","wisdom_mod","charisma_mod","powercasting_ability","power_save_dc","power_attack_mod", "power_dc_mod", "global_damage_mod_roll", "global_damage_mod_crit"];
_.each(attack_array, function(attackid) {
attack_attribs.push("repeating_attack_" + attackid + "_atkflag");
attack_attribs.push("repeating_attack_" + attackid + "_atkname");
attack_attribs.push("repeating_attack_" + attackid + "_atkattr_base");
attack_attribs.push("repeating_attack_" + attackid + "_atkmod");
attack_attribs.push("repeating_attack_" + attackid + "_atkprofflag");
attack_attribs.push("repeating_attack_" + attackid + "_atkpower");
attack_attribs.push("repeating_attack_" + attackid + "_dmgflag");
attack_attribs.push("repeating_attack_" + attackid + "_dmgbase");
attack_attribs.push("repeating_attack_" + attackid + "_dmgattr");
attack_attribs.push("repeating_attack_" + attackid + "_dmgmod");
attack_attribs.push("repeating_attack_" + attackid + "_dmgtype");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2flag");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2base");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2attr");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2mod");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2type");
attack_attribs.push("repeating_attack_" + attackid + "_dmgcustcrit");
attack_attribs.push("repeating_attack_" + attackid + "_dmg2custcrit");
attack_attribs.push("repeating_attack_" + attackid + "_saveflag");
attack_attribs.push("repeating_attack_" + attackid + "_savedc");
attack_attribs.push("repeating_attack_" + attackid + "_saveeffect");
attack_attribs.push("repeating_attack_" + attackid + "_saveflat");
attack_attribs.push("repeating_attack_" + attackid + "_hldmg");
attack_attribs.push("repeating_attack_" + attackid + "_powerid");
attack_attribs.push("repeating_attack_" + attackid + "_powerlevel");
attack_attribs.push("repeating_attack_" + attackid + "_atkrange");
attack_attribs.push("repeating_attack_" + attackid + "_itemid");
attack_attribs.push("repeating_attack_" + attackid + "_ammo");
attack_attribs.push("repeating_attack_" + attackid + "_global_damage_mod_field");
attack_attribs.push("npc");
});
getAttrs(attack_attribs, function(v) {
var isShipAttack = v.npc === "2";
_.each(attack_array, function(attackid) {
console.log("UPDATING ATTACK: " + attackid);
var callbacks = [];
var update = {};
var hbonus = "";
var hdmg1 = "";
var hdmg2 = "";
var dmg = "";
var dmg2 = "";
var rollbase = "";
var powerattack = false;
var powerattackmod = 0;
var powersavemod = 0;
var atkattr_abrev = "";
var dmgattr_abrev = "";
var dmg2attr_abrev = "";
var pbd_safe = v["pbd_safe"] ? v["pbd_safe"] : "";
var global_crit = v["repeating_attack_" + attackid + "_global_damage_mod_field"] && v["repeating_attack_" + attackid + "_global_damage_mod_field"] != "" ? "@{global_damage_mod_crit}" : "";
var hldmgcrit = v["repeating_attack_" + attackid + "_hldmg"] && v["repeating_attack_" + attackid + "_hldmg"] != "" ? v["repeating_attack_" + attackid + "_hldmg"].slice(0, 7) + "crit" + v["repeating_attack_" + attackid + "_hldmg"].slice(7) : "";
if(v["repeating_attack_" + attackid + "_powerid"] && v["repeating_attack_" + attackid + "_powerid"] != "") {
powerattack = true;
powerattackmod = v["power_attack_mod"] && !isNaN(parseInt(v["power_attack_mod"],10)) ? parseInt(v["power_attack_mod"],10) : 0;
powersavemod = v["power_dc_mod"] && !isNaN(parseInt(v["power_dc_mod"],10)) ? parseInt(v["power_dc_mod"],10) : 0;
};
if(!v["repeating_attack_" + attackid + "_atkattr_base"] || v["repeating_attack_" + attackid + "_atkattr_base"] === "0") {
atkattr_base = 0
} else if(v["repeating_attack_" + attackid + "_atkattr_base"] && v["repeating_attack_" + attackid + "_atkattr_base"] === "power") {
atkattr_base = parseInt(v[v["powercasting_ability"].substring(2, v["powercasting_ability"].length - 2)], 10);
atkattr_abrev = v["powercasting_ability"].substring(2, 5).toUpperCase();
} else {
atkattr_base = parseInt(v[v["repeating_attack_" + attackid + "_atkattr_base"].substring(2, v["repeating_attack_" + attackid + "_atkattr_base"].length - 1)], 10);
atkattr_abrev = v["repeating_attack_" + attackid + "_atkattr_base"].substring(2, 5).toUpperCase();
};
if(!v["repeating_attack_" + attackid + "_dmgattr"] || v["repeating_attack_" + attackid + "_dmgattr"] === "0") {
dmgattr = 0;
} else if(v["repeating_attack_" + attackid + "_dmgattr"] && v["repeating_attack_" + attackid + "_dmgattr"] === "power") {
dmgattr = parseInt(v[v["powercasting_ability"].substring(2, v["powercasting_ability"].length - 2)], 10);
dmgattr_abrev = v["powercasting_ability"].substring(2, 5).toUpperCase();
} else {
dmgattr = parseInt(v[v["repeating_attack_" + attackid + "_dmgattr"].substring(2, v["repeating_attack_" + attackid + "_dmgattr"].length - 1)], 10);
dmgattr_abrev =v["repeating_attack_" + attackid + "_dmgattr"].substring(2, 5).toUpperCase();
};
if(!v["repeating_attack_" + attackid + "_dmg2attr"] || v["repeating_attack_" + attackid + "_dmg2attr"] === "0") {
dmg2attr = 0;
} else if(v["repeating_attack_" + attackid + "_dmg2attr"] && v["repeating_attack_" + attackid + "_dmg2attr"] === "power") {
dmg2attr = parseInt(v[v["powercasting_ability"].substring(2, v["powercasting_ability"].length - 2)], 10);
dmg2attr_abrev = v["powercasting_ability"].substring(2, 5).toUpperCase();
} else {
dmg2attr = parseInt(v[v["repeating_attack_" + attackid + "_dmg2attr"].substring(2, v["repeating_attack_" + attackid + "_dmg2attr"].length - 1)], 10);
dmg2attr_abrev =v["repeating_attack_" + attackid + "_dmg2attr"].substring(2, 5).toUpperCase();
};
var dmgbase = v["repeating_attack_" + attackid + "_dmgbase"] && v["repeating_attack_" + attackid + "_dmgbase"] != "" ? v["repeating_attack_" + attackid + "_dmgbase"] : 0;
var dmg2base = v["repeating_attack_" + attackid + "_dmg2base"] && v["repeating_attack_" + attackid + "_dmg2base"] != "" ? v["repeating_attack_" + attackid + "_dmg2base"] : 0;
var dmgmod = v["repeating_attack_" + attackid + "_dmgmod"] && isNaN(parseInt(v["repeating_attack_" + attackid + "_dmgmod"],10)) === false ? parseInt(v["repeating_attack_" + attackid + "_dmgmod"],10) : 0;
var dmg2mod = v["repeating_attack_" + attackid + "_dmg2mod"] && isNaN(parseInt(v["repeating_attack_" + attackid + "_dmg2mod"],10)) === false ? parseInt(v["repeating_attack_" + attackid + "_dmg2mod"],10) : 0;
var dmgtype = v["repeating_attack_" + attackid + "_dmgtype"] ? v["repeating_attack_" + attackid + "_dmgtype"] + " " : "";
var dmg2type = v["repeating_attack_" + attackid + "_dmg2type"] ? v["repeating_attack_" + attackid + "_dmg2type"] + " " : "";
var pb = v["repeating_attack_" + attackid + "_atkprofflag"] && v["repeating_attack_" + attackid + "_atkprofflag"] != 0 && v.pb ? v.pb : 0;
/* if(isShipAttack) {
pb = 0;
} */
var atkmod = v["repeating_attack_" + attackid + "_atkmod"] && v["repeating_attack_" + attackid + "_atkmod"] != "" ? parseInt(v["repeating_attack_" + attackid + "_atkmod"],10) : 0;
var atkmag = v["repeating_attack_" + attackid + "_atkpower"] && v["repeating_attack_" + attackid + "_atkpower"] != "" ? parseInt(v["repeating_attack_" + attackid + "_atkpower"],10) : 0;
var dmgmag = isNaN(atkmag) === false && atkmag != 0 && ((v["repeating_attack_" + attackid + "_dmgflag"] && v["repeating_attack_" + attackid + "_dmgflag"] != 0) || (v["repeating_attack_" + attackid + "_dmg2flag"] && v["repeating_attack_" + attackid + "_dmg2flag"] != 0)) ? "+ " + atkmag + " Power Bonus" : "";
if(v["repeating_attack_" + attackid + "_atkflag"] && v["repeating_attack_" + attackid + "_atkflag"] != 0) {
bonus_mod = atkattr_base + atkmod + atkmag + powerattackmod;
if(v["pb_type"] && v["pb_type"] === "die") {
plus_minus = bonus_mod > -1 ? "+" : "";
bonus = bonus_mod + "+" + pb;
}
else {
bonus_mod = bonus_mod + parseInt(pb, 10);
plus_minus = bonus_mod > -1 ? "+" : "";
bonus = plus_minus + bonus_mod;
};
}
else if(v["repeating_attack_" + attackid + "_saveflag"] && v["repeating_attack_" + attackid + "_saveflag"] != 0) {
if(!v["repeating_attack_" + attackid + "_savedc"] || (v["repeating_attack_" + attackid + "_savedc"] && v["repeating_attack_" + attackid + "_savedc"] === "(@{power_save_dc})")) {
var tempdc = v["power_save_dc"];
}
else if(v["repeating_attack_" + attackid + "_savedc"] && v["repeating_attack_" + attackid + "_savedc"] === "(@{saveflat})") {
var tempdc = isNaN(parseInt(v["repeating_attack_" + attackid + "_saveflat"])) === false ? parseInt(v["repeating_attack_" + attackid + "_saveflat"]) : "0";
}
else {
var savedcattr = v["repeating_attack_" + attackid + "_savedc"].replace(/^[^{]*{/,"").replace(/\_.*$/,"");
var safe_pb = v["pb_type"] && v["pb_type"] === "die" ? parseInt(pb.substring(1), 10) / 2 : parseInt(pb,10);
var safe_attr = v[savedcattr + "_mod"] ? parseInt(v[savedcattr + "_mod"],10) : 0;
var tempdc = 8 + safe_attr + safe_pb + powersavemod;
};
bonus = "DC" + tempdc;
}
else {
bonus = "-";
}
if(v["repeating_attack_" + attackid + "_dmgflag"] && v["repeating_attack_" + attackid + "_dmgflag"] != 0) {
if(powerattack === true && dmgbase.indexOf("[[round((@{level} + 1) / 6 + 0.5)]]") > -1) {
// SPECIAL CANTRIP DAMAGE
dmgdiestring = Math.round(((parseInt(v["level"], 10) + 1) / 6) + 0.5).toString()
dmg = dmgdiestring + dmgbase.substring(dmgbase.lastIndexOf("d"));
if(dmgattr + dmgmod != 0) {
dmg = dmg + "+" + (dmgattr + dmgmod);
}
dmg = dmg + " " + dmgtype;
}
else {
if(dmgbase === 0 && (dmgattr + dmgmod === 0)){
dmg = 0;
}
if(dmgbase != 0) {
dmg = dmgbase;
}
if(dmgbase != 0 && (dmgattr + dmgmod != 0)){
dmg = dmgattr + dmgmod > 0 ? dmg + "+" : dmg;
}
if(dmgattr + dmgmod != 0) {
dmg = dmg + (dmgattr + dmgmod);
}
dmg = dmg + " " + dmgtype;
}
}
else {
dmg = "";
};
if(v["repeating_attack_" + attackid + "_dmg2flag"] && v["repeating_attack_" + attackid + "_dmg2flag"] != 0) {
if(dmg2base === 0 && (dmg2attr + dmg2mod === 0)){
dmg2 = 0;
}
if(dmg2base != 0) {
dmg2 = dmg2base;
}
if(dmg2base != 0 && (dmg2attr + dmg2mod != 0)){
dmg2 = dmg2attr + dmg2mod > 0 ? dmg2 + "+" : dmg2;
}
if(dmg2attr + dmg2mod != 0) {
dmg2 = dmg2 + (dmg2attr + dmg2mod);
}
dmg2 = dmg2 + " " + dmg2type;
}
else {
dmg2 = "";
};
dmgspacer = v["repeating_attack_" + attackid + "_dmgflag"] && v["repeating_attack_" + attackid + "_dmgflag"] != 0 && v["repeating_attack_" + attackid + "_dmg2flag"] && v["repeating_attack_" + attackid + "_dmg2flag"] != 0 ? "+ " : "";
crit1 = v["repeating_attack_" + attackid + "_dmgcustcrit"] && v["repeating_attack_" + attackid + "_dmgcustcrit"] != "" ? v["repeating_attack_" + attackid + "_dmgcustcrit"] : dmgbase;
crit2 = v["repeating_attack_" + attackid + "_dmg2custcrit"] && v["repeating_attack_" + attackid + "_dmg2custcrit"] != "" ? v["repeating_attack_" + attackid + "_dmg2custcrit"] : dmg2base;
r1 = v["repeating_attack_" + attackid + "_atkflag"] && v["repeating_attack_" + attackid + "_atkflag"] != 0 ? "@{d20}" : "0d20";
r2 = v["repeating_attack_" + attackid + "_atkflag"] && v["repeating_attack_" + attackid + "_atkflag"] != 0 ? "@{rtype}" : "{{r2=[[0d20";
if(v["repeating_attack_" + attackid + "_atkflag"] && v["repeating_attack_" + attackid + "_atkflag"] != 0) {
if(powerattackmod != 0) {hbonus = " + " + powerattackmod + "[POWERATK]" + hbonus};
if(atkmag != 0) {hbonus = " + " + atkmag + "[POWER]" + hbonus};
if(pb != 0) {hbonus = " + " + pb + pbd_safe + "[PROF]" + hbonus};
if(atkmod != 0) {hbonus = " + " + atkmod + "[MOD]" + hbonus};
if(atkattr_base != 0) {hbonus = " + " + atkattr_base + "[" + atkattr_abrev + "]" + hbonus};
}
else {
hbonus = "";
}
if(v["repeating_attack_" + attackid + "_dmgflag"] && v["repeating_attack_" + attackid + "_dmgflag"] != 0) {
if(atkmag != 0) {hdmg1 = " + " + atkmag + "[POWER]" + hdmg1};
if(dmgmod != 0) {hdmg1 = " + " + dmgmod + "[MOD]" + hdmg1};
if(dmgattr != 0) {hdmg1 = " + " + dmgattr + "[" + dmgattr_abrev + "]" + hdmg1};
hdmg1 = dmgbase + hdmg1;
}
else {
hdmg1 = "0";
}
if(v["repeating_attack_" + attackid + "_dmg2flag"] && v["repeating_attack_" + attackid + "_dmg2flag"] != 0) {
if(dmg2mod != 0) {hdmg2 = " + " + dmg2mod + "[MOD]" + hdmg2};
if(dmg2attr != 0) {hdmg2 = " + " + dmg2attr + "[" + dmg2attr_abrev + "]" + hdmg2};
hdmg2 = dmg2base + hdmg2;
}
else {
hdmg2 = "0";
}
var globaldamage = `[[${v.global_damage_mod_roll && v.global_damage_mod_roll !== "" ? v.global_damage_mod_roll : "0"}]]`;
var globaldamagecrit = `[[${v.global_damage_mod_crit && v.global_damage_mod_crit !== "" ? v.global_damage_mod_crit : "0"}]]`;
if(v.dtype === "full") {
pickbase = "full";
rollbase = "@{wtype}&{template:atkdmg} {{mod=@{atkbonus}}} {{rname=@{atkname}}} {{r1=[[" + r1 + "cs>@{atkcritrange}" + hbonus + "]]}} " + r2 + "cs>@{atkcritrange}" + hbonus + "]]}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[" + hdmg1 + "]]}} {{dmg1type=" + dmgtype + "}} @{dmg2flag} {{dmg2=[[" + hdmg2 + "]]}} {{dmg2type=" + dmg2type + "}} {{crit1=[[" + crit1 + "[CRIT]]]}} {{crit2=[[" + crit2 + "[CRIT]]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} " + hldmgcrit + " {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} {{globalattack=@{global_attack_mod}}} {{globaldamage=" + globaldamage + "}} {{globaldamagecrit=" + globaldamagecrit + "}} {{globaldamagetype=@{global_damage_mod_type}}} ammo=@{ammo} @{charname_output}";
}
else if(v["repeating_attack_" + attackid + "_atkflag"] && v["repeating_attack_" + attackid + "_atkflag"] != 0) {
pickbase = "pick";
rollbase = "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[" + r1 + "cs>@{atkcritrange}" + hbonus + "]]}} " + r2 + "cs>@{atkcritrange}" + hbonus + "]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}";
}
else if(v["repeating_attack_" + attackid + "_dmgflag"] && v["repeating_attack_" + attackid + "_dmgflag"] != 0) {
pickbase = "dmg";
rollbase = "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[" + hdmg1 + "]]}} {{dmg1type=" + dmgtype + "}} @{dmg2flag} {{dmg2=[[" + hdmg2 + "]]}} {{dmg2type=" + dmg2type + "}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} {{globaldamage=" + globaldamage + "}} {{globaldamagetype=@{global_damage_mod_type}}} ammo=@{ammo} @{charname_output}"
}
else {
pickbase = "empty";
rollbase = "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{saveflag} {{desc=@{atk_desc}}} {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} ammo=@{ammo} @{charname_output}"
}
update["repeating_attack_" + attackid + "_rollbase_dmg"] = "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[" + hdmg1 + "]]}} {{dmg1type=" + dmgtype + "}} @{dmg2flag} {{dmg2=[[" + hdmg2 + "]]}} {{dmg2type=" + dmg2type + "}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} {{globaldamage=" + globaldamage + "}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}";
update["repeating_attack_" + attackid + "_rollbase_crit"] = "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[" + hdmg1 + "]]}} {{dmg1type=" + dmgtype + "}} @{dmg2flag} {{dmg2=[[" + hdmg2 + "]]}} {{dmg2type=" + dmg2type + "}} {{crit1=[[" + crit1 + "]]}} {{crit2=[[" + crit2 + "]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} " + hldmgcrit + " {{powerlevel=@{powerlevel}}} {{innate=@{power_innate}}} {{globaldamage=" + globaldamage + "}} {{globaldamagecrit=" + globaldamagecrit + "}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}"
update["repeating_attack_" + attackid + "_atkbonus"] = bonus;
update["repeating_attack_" + attackid + "_atkdmgtype"] = dmg + dmgspacer + dmg2 + dmgmag + " ";
update["repeating_attack_" + attackid + "_rollbase"] = rollbase;
if(v["repeating_attack_" + attackid + "_powerid"] && v["repeating_attack_" + attackid + "_powerid"] != "" && (!source || source && source != "power") && v["repeating_attack_" + attackid + "_powerid"].length == 20) {
var powerid = v["repeating_attack_" + attackid + "_powerid"];
var lvl = v["repeating_attack_" + attackid + "_powerlevel"];
callbacks.push( function() {update_power_from_attack(lvl, powerid, attackid);} );
}
if(v["repeating_attack_" + attackid + "_itemid"] && v["repeating_attack_" + attackid + "_itemid"] != "" && (!source || source && source != "item")) {
var itemid = v["repeating_attack_" + attackid + "_itemid"];
callbacks.push( function() {update_item_from_attack(itemid, attackid);} );
}
setAttrs(update, {silent: true}, function() {callbacks.forEach(function(callback) {callback(); })} );
});
});
};
var update_power_from_attack = function(lvl, powerid, attackid) {
var update = {};
getAttrs(["repeating_attack_" + attackid + "_atkname", "repeating_attack_" + attackid + "_atkrange", "repeating_attack_" + attackid + "_atkflag", "repeating_attack_" + attackid + "_atkattr_base", "repeating_attack_" + attackid + "_dmgbase", "repeating_attack_" + attackid + "_dmgtype", "repeating_attack_" + attackid + "_dmg2base", "repeating_attack_" + attackid + "_dmg2type", "repeating_attack_" + attackid + "_saveflag", "repeating_attack_" + attackid + "_saveattr", "repeating_attack_" + attackid + "_saveeffect"], function(v) {
update["repeating_power-" + lvl + "_" + powerid + "_powername"] = v["repeating_attack_" + attackid + "_atkname"];
if(v["repeating_attack_" + attackid + "_atkrange"] && v["repeating_attack_" + attackid + "_atkrange"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerrange"] = v["repeating_attack_" + attackid + "_atkrange"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powerrange"] = "";
};
if(v["repeating_attack_" + attackid + "_dmgtype"] && v["repeating_attack_" + attackid + "_dmgtype"].toLowerCase() == "healing") {
if(v["repeating_attack_" + attackid + "_dmgbase"] && v["repeating_attack_" + attackid + "_dmgbase"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerhealing"] = v["repeating_attack_" + attackid + "_dmgbase"];
}
}
else {
if(v["repeating_attack_" + attackid + "_dmgbase"] && v["repeating_attack_" + attackid + "_dmgbase"] != "" && v["repeating_attack_" + attackid + "_dmgbase"].indexOf("[[round((@{level} + 1) / 6 + 0.5)]]") === -1) {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] = v["repeating_attack_" + attackid + "_dmgbase"];
}
else if(!v["repeating_attack_" + attackid + "_dmgbase"] || v["repeating_attack_" + attackid + "_dmgbase"] === "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamage"] = "";
}
if(v["repeating_attack_" + attackid + "_dmgtype"] && v["repeating_attack_" + attackid + "_dmgtype"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype"] = v["repeating_attack_" + attackid + "_dmgtype"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype"] = "";
}
};
if(v["repeating_attack_" + attackid + "_dmg2type"] && v["repeating_attack_" + attackid + "_dmg2type"].toLowerCase() == "healing") {
if(v["repeating_attack_" + attackid + "_dmgbase"] && v["repeating_attack_" + attackid + "_dmgbase"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerhealing"] = v["repeating_attack_" + attackid + "_dmgbase"];
}
}
else {
if(v["repeating_attack_" + attackid + "_dmg2base"] && v["repeating_attack_" + attackid + "_dmg2base"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"] = v["repeating_attack_" + attackid + "_dmg2base"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamage2"] = "";
}
if(v["repeating_attack_" + attackid + "_dmg2type"] && v["repeating_attack_" + attackid + "_dmg2type"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype2"] = v["repeating_attack_" + attackid + "_dmg2type"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powerdamagetype2"] = "";
}
};
if(v["repeating_attack_" + attackid + "_saveflag"] && v["repeating_attack_" + attackid + "_saveflag"] != "0") {
update["repeating_power-" + lvl + "_" + powerid + "_powersave"] = v["repeating_attack_" + attackid + "_saveattr"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powersave"] = "";
};
if(v["repeating_attack_" + attackid + "_saveeffect"] && v["repeating_attack_" + attackid + "_saveeffect"] != "") {
update["repeating_power-" + lvl + "_" + powerid + "_powersavesuccess"] = v["repeating_attack_" + attackid + "_saveeffect"];
}
else {
update["repeating_power-" + lvl + "_" + powerid + "_powersavesuccess"] = "";
};
setAttrs(update, {silent: true});
});
};
var update_item_from_attack = function(itemid, attackid) {
var inventory = "repeating_inventory_";
getAttrs(["repeating_hiddeninventory_" + itemid + "_itemname"], function(x){
if(x["repeating_hiddeninventory_" + itemid + "_itemname"]) {
inventory = "repeating_hiddeninventory_";
}
});
getAttrs(["repeating_attack_" + attackid + "_atkname", "repeating_attack_" + attackid + "_dmgbase", "repeating_attack_" + attackid + "_dmg2base", "repeating_attack_" + attackid + "_dmgtype", "repeating_attack_" + attackid + "_dmg2type", "repeating_attack_" + attackid + "_atkrange", "repeating_attack_" + attackid + "_atkmod", "repeating_attack_" + attackid + "_dmgmod", inventory + itemid + "_itemmodifiers", "repeating_attack_" + attackid + "_versatile_alt", inventory + itemid + "_itemproperties", "repeating_attack_" + attackid + "_atkpower"], function(v) {
var update = {};
var mods = v[inventory + itemid + "_itemmodifiers"];
var damage = v["repeating_attack_" + attackid + "_dmgbase"] ? v["repeating_attack_" + attackid + "_dmgbase"] : 0;
var damage2 = v["repeating_attack_" + attackid + "_dmg2base"] ? v["repeating_attack_" + attackid + "_dmg2base"] : 0;
var damagetype = v["repeating_attack_" + attackid + "_dmgtype"] ? v["repeating_attack_" + attackid + "_dmgtype"] : 0;
var damagetype2 = v["repeating_attack_" + attackid + "_dmg2type"] ? v["repeating_attack_" + attackid + "_dmg2type"] : 0;
var range = v["repeating_attack_" + attackid + "_atkrange"] ? v["repeating_attack_" + attackid + "_atkrange"] : 0;
var attackmod = v["repeating_attack_" + attackid + "_atkmod"] ? v["repeating_attack_" + attackid + "_atkmod"] : 0;
var damagemod = v["repeating_attack_" + attackid + "_dmgmod"] ? v["repeating_attack_" + attackid + "_dmgmod"] : 0;
var powermod = v["repeating_attack_" + attackid + "_atkpower"] ? v["repeating_attack_" + attackid + "_atkpower"] : 0;
var atktype = "";
var altprefix = v["repeating_attack_" + attackid + "_versatile_alt"] === "1" ? "Alternate " : "";
if(/Alternate Damage:/i.test(v[inventory + itemid + "_itemmodifiers"])) {
update[inventory + itemid + "_itemname"] = v["repeating_attack_" + attackid + "_atkname"].replace(/\s*(?:\(One-Handed\)|\(Two-Handed\))/, "");
} else {
update[inventory + itemid + "_itemname"] = v["repeating_attack_" + attackid + "_atkname"];
}
var attack_type_regex = /(?:^|,)\s*Item Type: (Melee|Ranged) Weapon(?:,|$)/i;
var attack_type_results = attack_type_regex.exec(v[inventory + itemid + "_itemmodifiers"]);
atktype = attack_type_results ? attack_type_results[1] : "";
if(mods) {
mods = mods.split(",");
} else {
mods = [];
}
var damage_regex = new RegExp("^\\s*" + altprefix + "Damage:\\s*(.+)$", "i");
var damage_found = false;
for(var i = 0; i < mods.length; i++) {
if(damage_found = damage_regex.exec(mods[i])) {
if(damage !== 0) {
mods[i] = mods[i].replace(damage_found[1], damage);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!damage_found && damage !== 0) {
mods.push(altprefix + "Damage: " + damage);
}
var damage2_regex = new RegExp("^\\s*" + altprefix + "Secondary Damage:\\s*(.+)$", "i");
var damage2_found = false;
for(var i = 0; i < mods.length; i++) {
if(damage2_found = damage2_regex.exec(mods[i])) {
if(damage2 !== 0) {
mods[i] = mods[i].replace(damage2_found[1], damage2);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!damage2_found && damage2 !== 0) {
mods.push(altprefix + "Secondary Damage: " + damage2);
}
var dmgtype_regex = new RegExp("^\\s*" + altprefix + "Damage Type:\\s*(.+)$", "i");
var dmgtype_found = false;
for(var i = 0; i < mods.length; i++) {
if(dmgtype_found = dmgtype_regex.exec(mods[i])) {
if(damagetype !== 0) {
mods[i] = mods[i].replace(dmgtype_found[1], damagetype);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!dmgtype_found && damagetype !== 0) {
mods.push(altprefix + "Damage Type: " + damagetype);
}
var dmgtype2_regex = new RegExp("^\\s*" + altprefix + "Secondary Damage Type:\\s*(.+)$", "i");
var dmgtype2_found = false;
for(var i = 0; i < mods.length; i++) {
if(dmgtype2_found = dmgtype2_regex.exec(mods[i])) {
if(damagetype2 !== 0) {
mods[i] = mods[i].replace(dmgtype_found[1], damagetype);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!dmgtype2_found && damagetype2 !== 0) {
mods.push(altprefix + "Secondary Damage Type: " + damagetype2);
}
var range_found = false;
for(var i = 0; i < mods.length; i++) {
if(range_found = /^\s*Range:\s*(.+)$/i.exec(mods[i])) {
if(range !== 0) {
mods[i] = mods[i].replace(range_found[1], range);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!range_found && range !== 0) {
mods.push("Range: " + range);
}
var attackmod_regex = new RegExp("^\\s*(?:" + (atktype !== "" ? atktype + "|" : "") + "Weapon) Attacks \\+?(.+)$", "i");
var attackmod_found = false;
for(var i = 0; i < mods.length; i++) {
if(attackmod_found = attackmod_regex.exec(mods[i])) {
if(powermod !== 0 || attackmod !== 0) {
mods[i] = mods[i].replace(attackmod_found[1], powermod !== 0 ? powermod : attackmod);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!attackmod_found && (powermod !== 0 || attackmod !== 0)) {
var properties = v[inventory + itemid + "_itemproperties"];
if(properties && /Thrown/i.test(properties)) {
mods.push("Weapon Attacks: " + (powermod !== 0 ? powermod : attackmod));
}
else {
mods.push(atktype + " Attacks: " + (powermod !== 0 ? powermod : attackmod));
}
}
var damagemod_regex = new RegExp("^\\s*(?:" + (atktype !== "" ? atktype + "|" : "") + "Weapon) Damage \\+?(.+)$", "i");
var damagemod_found = false;
for(var i = 0; i < mods.length; i++) {
if(damagemod_found = damagemod_regex.exec(mods[i])) {
if(powermod !== 0 || damagemod !== 0) {
mods[i] = mods[i].replace(damagemod_found[1], powermod !== 0 ? powermod : attackmod);
} else {
mods.splice(i, 1);
}
break;
}
}
if(!damagemod_found && (powermod !== 0 || damagemod !== 0)) {
var properties = v[inventory + itemid + "_itemproperties"];
if(properties && /Thrown/i.test(properties)) {
mods.push("Weapon Damage: " + (powermod !== 0 ? powermod : damagemod));
}
else {
mods.push(atktype + " Damage: " + (powermod !== 0 ? powermod : damagemod));
}
}
update[inventory + itemid + "_itemmodifiers"] = mods.join(",");
setAttrs(update, {silent: true});
});
};
var remove_attack = function(attackid) {
removeRepeatingRow("repeating_attack_" + attackid);
};
var remove_resource = function(id) {
var update = {};
getAttrs([id + "_itemid"], function(v) {
var itemid = v[id + "_itemid"];
if(itemid) {
var inventory = "repeating_inventory_";
getAttrs(["repeating_hiddeninventory_" + itemid + "_itemname"], function(x){
if(x["repeating_hiddeninventory_" + itemid + "_itemname"]) {
inventory = "repeating_hiddeninventory_";
}
});
update[inventory + itemid + "_useasresource"] = 0;
update[inventory + itemid + "_itemresourceid"] = "";
};
if(id == "other_resource") {
update["other_resource"] = "";
update["other_resource_name"] = "";
update["other_resource_itemid"] = "";
setAttrs(update, {silent: true});
}
else {
var baseid = id.replace("repeating_resource_", "").substring(0,20);
var resource_names = ["repeating_resource_" + baseid + "_resource_left_name", "repeating_resource_" + baseid + "_resource_right_name"];
getAttrs(resource_names, function(v) {
if((id.indexOf("left") > -1 && !v["repeating_resource_" + baseid + "_resource_right_name"]) || (id.indexOf("right") > -1 && !v["repeating_resource_" + baseid + "_resource_left_name"])) {
removeRepeatingRow("repeating_resource_" + baseid);
}
else {
update["repeating_resource_" + id.replace("repeating_resource_", "")] = "";
update["repeating_resource_" + id.replace("repeating_resource_", "") + "_name"] = "";
};
setAttrs(update, {silent: true});
});
};
});
};
var update_weight = function() {
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_weight_change("repeating_inventory_", idarray, "weighttotal");
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_weight_change("repeating_hiddeninventory_", idarray, "hiddenweighttotal");
});
};
var update_inventory_from_weight_change = function (inventory, idarray, weightAttrToUpdate){
var update = {};
var wtotal = 0;
var weight_attrs = ["cp","sp","ep","gp","pp","encumberance_setting","strength","size","carrying_capacity_mod"];
_.each(idarray, function(currentID, i) {
weight_attrs.push(inventory + currentID + "_itemweight");
weight_attrs.push(inventory + currentID + "_itemcount");
});
getAttrs(weight_attrs, function(v) {
cp = isNaN(parseInt(v.cp, 10)) === false ? parseInt(v.cp, 10) : 0;
sp = isNaN(parseInt(v.sp, 10)) === false ? parseInt(v.sp, 10) : 0;
ep = isNaN(parseInt(v.ep, 10)) === false ? parseInt(v.ep, 10) : 0;
gp = isNaN(parseInt(v.gp, 10)) === false ? parseInt(v.gp, 10) : 0;
pp = isNaN(parseInt(v.pp, 10)) === false ? parseInt(v.pp, 10) : 0;
wtotal = wtotal + ((cp + sp + ep + gp + pp) / 50);
_.each(idarray, function(currentID, i) {
if(v[inventory + currentID + "_itemweight"] && isNaN(parseInt(v[inventory + currentID + "_itemweight"], 10)) === false) {
count = v[inventory + currentID + "_itemcount"] && isNaN(parseFloat(v[inventory + currentID + "_itemcount"])) === false ? parseFloat(v[inventory + currentID + "_itemcount"]) : 1;
wtotal = wtotal + (parseFloat(v[inventory + currentID + "_itemweight"]) * count);
}
});
update[weightAttrToUpdate] = wtotal;
var str_base = parseInt(v.strength, 10);
var size_multiplier = 1;
if(v["size"] && v["size"] != "") {
if(v["size"].toLowerCase().trim() == "tiny") {size_multiplier = .5}
else if(v["size"].toLowerCase().trim() == "large") {size_multiplier = 2}
else if(v["size"].toLowerCase().trim() == "huge") {size_multiplier = 4}
else if(v["size"].toLowerCase().trim() == "gargantuan") {size_multiplier = 8}
}
var str = str_base*size_multiplier;
if(v.carrying_capacity_mod) {
var operator = v.carrying_capacity_mod.substring(0,1);
var value = v.carrying_capacity_mod.substring(1);
if(["*","x","+","-"].indexOf(operator) > -1 && isNaN(parseInt(value,10)) === false) {
if(operator == "*" || operator == "x") {str = str*parseInt(value,10);}
else if(operator == "+") {str = str+parseInt(value,10);}
else if(operator == "-") {str = str-parseInt(value,10);}
}
}
if(!v.encumberance_setting || v.encumberance_setting === "off") {
if(wtotal > str*15) {
update["encumberance"] = "OVER CARRYING CAPACITY";
}
else {
update["encumberance"] = " ";
}
}
else if(v.encumberance_setting === "on") {
if(wtotal > str*15) {
update["encumberance"] = "IMMOBILE";
}
else if(wtotal > str*10) {
update["encumberance"] = "HEAVILY ENCUMBERED";
}
else if(wtotal > str*5) {
update["encumberance"] = "ENCUMBERED";
}
else {
update["encumberance"] = " ";
}
}
else {
update["encumberance"] = " ";
}
setAttrs(update, {silent: true});
});
};
var update_shield_points = function() {
getAttrs(["hp_max", "ship_shield_capacity", "ship_shield_max", "ship_shield_active_flag"], function(attrs) {
if(attrs.ship_shield_active_flag == "1") {
var tryParseShieldCapacity = parseFloat(attrs.ship_shield_capacity);
if(!isNaN(tryParseShieldCapacity)) {
var update = {};
update.ship_shield_max = Math.ceil(tryParseShieldCapacity * attrs.hp_max);
setAttrs(update, {silent: true});
}
}
});
}
var update_shield_regen = function() {
getAttrs(["ship_size", "ship_shield_regen_rate_coefficient", "ship_shield_active_flag"], function(attrs) {
if(attrs.ship_shield_active_flag == "1") {
var tryParseShieldCoefficient = isNaN(parseFloat(attrs.ship_shield_regen_rate_coefficient)) == false ? parseFloat(attrs.ship_shield_regen_rate_coefficient) : 0;
var shipSizeHitDie = 0;
switch(attrs.ship_size) {
case "Tiny":
shipSizeHitDie = 4;
break;
case "Small":
shipSizeHitDie = 6;
break;
case "Medium":
shipSizeHitDie = 8;
break;
case "Large":
shipSizeHitDie = 10;
break;
case "Huge":
shipSizeHitDie = 12;
break;
case "Gargantuan":
shipSizeHitDie = 20;
break;
}
setAttrs({
ship_shield_regen_rate: Math.ceil(tryParseShieldCoefficient * shipSizeHitDie)
}, {silent: true});
}
})
}
var update_ship_dice = function() {
getAttrs(["ship_size", "hulldie_final", "hull_dice_max", "shielddie_final", "shield_dice_max", "base_ship_tier", "pwrdie_final", "hp_max", "hp", "constitution_mod", "strength_mod", "ship_shield", "ship_shield_points", "ship_shield_max", "ship_armor", "ship_armor_active_flag", "ship_armor_hp_per_hit_die", "ship_shield_capacity", "ship_shield_regen_rate_coefficient", "ship_shield_active_flag", "ship_shield_regen_rate"], function(attrs) {
if(true) {
var shipSizeDie = 0;
var shipSizeDiceMax = 0;
var shipSizeHullPoints = 0;
var shipSizeShieldPoints = 0;
var shipHullPointsAfterFirst = 0;
var armorHpPerHitDieMod = 0;
var shieldCapacity = 0;
var shieldRegenRate = 0;
var tierDieMultiplier = 0;
var shipPwrDie = 0;
var sTier = isNaN(parseInt(attrs.base_ship_tier)) == false ? parseInt(attrs.base_ship_tier) : 0;
var localCon = isNaN(parseInt(attrs.constitution_mod)) == false ? parseInt(attrs.constitution_mod) : 0;
var localStr = isNaN(parseInt(attrs.strength_mod)) == false ? parseInt(attrs.strength_mod) : 0;
switch(attrs.ship_size) {
case "Tiny":
shipSizeDie = 4;
shipSizeDiceMax = 1;
tierDieMultiplier = 1;
shipHullPointsAfterFirst = 3;
break;
case "Small":
shipSizeDie = 6;
shipSizeDiceMax = 3;
tierDieMultiplier = 1;
shipHullPointsAfterFirst = 4;
break;
case "Medium":
shipSizeDie = 8;
shipSizeDiceMax = 5;
tierDieMultiplier = 1;
shipHullPointsAfterFirst = 5;
break;
case "Large":
shipSizeDie = 10;
shipSizeDiceMax = 7;
tierDieMultiplier = 1;
shipHullPointsAfterFirst = 6;
break;
case "Huge":
shipSizeDie = 12;
shipSizeDiceMax = 9;
tierDieMultiplier = 2;
shipHullPointsAfterFirst = 7;
break;
case "Gargantuan":
shipSizeDie = 20;
shipSizeDiceMax = 11;
tierDieMultiplier = 2;
shipHullPointsAfterFirst = 11;
break;
}
switch(sTier){
case 0:
shipPwrDie = 1;
break;
case 1:
shipPwrDie = 4;
break;
case 2:
shipPwrDie = 6;
break;
case 3:
shipPwrDie = 8;
break;
case 4:
shipPwrDie = 10;
break;
case 5:
shipPwrDie = 12;
break;
}
switch(attrs.ship_armor){
case "none":
break;
case "deflection":
break;
case "lightweight":
armorHpPerHitDieMod = -1
break;
case "reinforced":
armorHpPerHitDieMod = 1
break;
case "customshiparmor":
if(attrs.ship_armor_active_flag == "1") {
var tempHpAttrBonus = attrs["ship_armor_hp_per_hit_die"]
var tryParseHpBonus = parseInt(tempHpAttrBonus);
if(!isNaN(tryParseHpBonus)) {
armorHpPerHitDieMod = tryParseHpBonus;
}
}
break;
}
switch(attrs.ship_shield){
case "none":
break;
case "directional":
shieldCapacity = 1;
shieldRegenRate = 1;
break;
case "fortress":
shieldCapacity = 3/2;
shieldRegenRate = 2/3;
break;
case "quickcharge":
shieldCapacity = 2/3;
shieldRegenRate = 3/2;
break;
case "customshipshield":
if(attrs.ship_shield_active_flag == "1") {
shieldCapacity = isNaN(parseFloat(attrs.ship_shield_capacity)) == false ? parseFloat(attrs.ship_shield_capacity) : 0;
shieldRegenRate = isNaN(parseFloat(attrs.ship_shield_regen_rate_coefficient)) == false ? parseFloat(attrs.ship_shield_regen_rate_coefficient) : 0;
}
break;
}
var adjustedTierDies = shipSizeDiceMax + (sTier * tierDieMultiplier);
shipSizeHullPoints = shipSizeDie + localCon + ((adjustedTierDies-1) * shipHullPointsAfterFirst) + ((adjustedTierDies-1) * localCon) + (adjustedTierDies * armorHpPerHitDieMod);
shipSizeShieldPoints = Math.floor(((shipSizeDie + localStr) + ((adjustedTierDies-1) * shipHullPointsAfterFirst) + ((adjustedTierDies-1) * localStr)) * shieldCapacity);
var shipSizeShieldRegen = Math.floor(shipSizeDie * shieldRegenRate);
setAttrs({hulldie_final: shipSizeDie}, {silent: true});
setAttrs({hull_dice_max: adjustedTierDies}, {silent: true});
setAttrs({shielddie_final: shipSizeDie}, {silent: true});
setAttrs({shield_dice_max: adjustedTierDies}, {silent: true});
setAttrs({pwrdie_final: shipPwrDie}, {silent: true});
setAttrs({hp_max: shipSizeHullPoints}, {silent: true});
setAttrs({hp: shipSizeHullPoints}, {silent: true});
setAttrs({ship_shield_max: shipSizeShieldPoints}, {silent: true});
setAttrs({ship_shield_points: shipSizeShieldPoints}, {silent: true});
setAttrs({ship_shield_regen_rate: shipSizeShieldRegen}, {silent: true});
}
else {
setAttrs({hull_dice_max: 0}, {silent: true});
}
})
};
var update_pwr_die_recovery = function() {
getAttrs(["pwrdie_recovery", "ship_reactor", "pwrdie_mod"], function(attrs) {
if(true) {
var pwrDieRecov = 0;
var pwrDieMod = 0;
switch(attrs.ship_reactor) {
case "none":
pwrDieRecov = 0;
break;
case "fuelcell":
pwrDieRecov = 1;
break;
case "ionization":
pwrDieRecov = 2;
pwrDieMod = 1;
break;
case "powercore":
pwrDieRecov = 2;
break;
}
setAttrs({pwrdie_recovery: pwrDieRecov}, {silent: true});
setAttrs({pwrdie_mod: pwrDieMod}, {silent: true});
}
else {
setAttrs({pwrdie_recovery: 0}, {silent: true});
setAttrs({pwrdie_mod: 0}, {silent: true});
}
})
};
var update_pwr_die_capacity = function() {
getAttrs(["ship_pwr_coupling", "pwr_s_storage", "pwr_c_storage"], function(attrs) {
if(true) {
var pwrCentralStore = 0;
var pwrSystemStore = 0;
switch(attrs.ship_pwr_coupling) {
case "none":
pwrCentralStore = 0;
pwrSystemStore = 0;
break;
case "direct":
pwrCentralStore = 4;
pwrSystemStore = 0;
break;
case "distributed":
pwrCentralStore = 0;
pwrSystemStore = 2;
break;
case "hubspoke":
pwrCentralStore = 2;
pwrSystemStore = 1;
break;
}
setAttrs({pwr_s_storage: pwrSystemStore}, {silent: true});
setAttrs({pwr_c_storage: pwrCentralStore}, {silent: true});
}
else {
setAttrs({pwr_s_storage: 0}, {silent: true});
setAttrs({pwr_c_storage: 0}, {silent: true});
}
})
};
var update_ship_capacity = function() {
getAttrs(["ship_size", "ship_fuel_max", "ship_food_max", "ship_reg_cargo_max", "ship_fuel_cost", "ship_reactor"], function(attrs) {
if(true) {
var shipCargoCap = 0;
var shipFuelCap = 0;
var shipFoodCap = 0;
var shipFuelCost = 0;
var shipFuelMod = 0;
switch(attrs.ship_reactor) {
case "none":
shipFuelMod = 1;
break;
case "fuelcell":
shipFuelMod = 1;
break;
case "ionization":
shipFuelMod = 2/3;
break;
case "powercore":
shipFuelMod = 3/2;
break;
}
switch(attrs.ship_size) {
case "Tiny":
shipCargoCap = 0;
shipFoodCap = 0;
shipFuelCap = 5;
shipFuelCost = 25;
break;
case "Small":
shipCargoCap = 2;
shipFoodCap = 10;
shipFuelCap = 10;
shipFuelCost = 50;
break;
case "Medium":
shipCargoCap = 25;
shipFoodCap = 120;
shipFuelCap = 30;
shipFuelCost = 100;
break;
case "Large":
shipCargoCap = 500;
shipFoodCap = 240000;
shipFuelCap = 300;
shipFuelCost = 1000;
break;
case "Huge":
shipCargoCap = 10000;
shipFoodCap = 9600000;
shipFuelCap = 600;
shipFuelCost = 10000;
break;
case "Gargantuan":
shipCargoCap = 200000;
shipFoodCap = 576000000;
shipFuelCap = 1800;
shipFuelCost = 100000;
break;
}
setAttrs({ship_fuel_max: shipFuelCap}, {silent: true});
setAttrs({ship_food_max: shipFoodCap}, {silent: true});
setAttrs({ship_reg_cargo_max: shipCargoCap}, {silent: true});
setAttrs({ship_fuel_cost: Math.ceil(shipFuelCost * shipFuelMod)}, {silent: true})
}
else {
setAttrs({ship_fuel_max: 0}, {silent: true});
setAttrs({ship_food_max: 0}, {silent: true});
setAttrs({ship_reg_cargo_max: 0}, {silent: true});
setAttrs({ship_fuel_cost: 0}, {silent: true})
}
})
};
var update_ship_suite_capacity = function() {
getAttrs(["ship_size", "attr_ship_suites_max", "attr_ship_mod_max", "constitution_mod"], function(attrs) {
if(true) {
var shipModCap = 0;
var shipSuiteCap = 0;
var cons_mod = attrs.constitution_mod
switch(attrs.ship_size) {
case "Tiny":
shipModCap = 10;
shipSuiteCap = 0;
break;
case "Small":
shipModCap = 20;
shipSuiteCap = -1 + cons_mod;
break;
case "Medium":
shipModCap = 30;
shipSuiteCap = 3 + cons_mod;
break;
case "Large":
shipModCap = 50;
shipSuiteCap = 3 + (2*cons_mod);
break;
case "Huge":
shipModCap = 60;
shipSuiteCap = 6 + (3*cons_mod);
break;
case "Gargantuan":
shipModCap = 70;
shipSuiteCap = 10 + (4*cons_mod);
break;
}
setAttrs({ship_suites_max: shipSuiteCap}, {silent: true});
setAttrs({ship_mod_max: shipModCap}, {silent: true});
}
else {
setAttrs({ship_suites_max: 0}, {silent: true});
setAttrs({ship_mod_max: 0}, {silent: true});
}
})
};
var update_ship_tier_cost = function() {
getAttrs(["ship_size", "base_ship_tier", "ship_cr_next"], function(attrs) {
if(true) {
var sTier = isNaN(parseInt(attrs.base_ship_tier)) == false ? parseInt(attrs.base_ship_tier) : 0;
var shipTierCostMod = 0;
var shipTierCostFinal = 0;
switch(attrs.ship_size) {
case "Tiny":
shipTierCostMod = 1/2;
break;
case "Small":
shipTierCostMod = 1;
break;
case "Medium":
shipTierCostMod = 2;
break;
case "Large":
shipTierCostMod = 10;
break;
case "Huge":
shipTierCostMod = 100;
break;
case "Gargantuan":
shipTierCostMod = 1000;
break;
}
switch(sTier) {
case 0:
shipTierCostFinal = 3900*shipTierCostMod;
break;
case 1:
shipTierCostFinal = 77500*shipTierCostMod;
break;
case 2:
shipTierCostFinal = 297000*shipTierCostMod;
break;
case 3:
shipTierCostFinal = 620000*shipTierCostMod;
break;
case 4:
shipTierCostFinal = 1150000*shipTierCostMod;
break;
case 5:
shipTierCostFinal = "N/A";
}
setAttrs({ship_cr_next: shipTierCostFinal}, {silent: true});
}
else {
setAttrs({ship_cr_next: 0}, {silent: true});
}
})
};
var update_ac = function() {
getAttrs(["custom_ac_flag","npc"], function(v) {
if(v.custom_ac_flag === "2") {
return;
}
else if(v.custom_ac_flag === "1" && v.npc !== "2") {
getAttrs(["custom_ac_base","custom_ac_part1","custom_ac_part2","strength_mod","dexterity_mod","constitution_mod","intelligence_mod","wisdom_mod","charisma_mod"], function(b) {
var base = isNaN(parseInt(b.custom_ac_base, 10)) === false ? parseInt(b.custom_ac_base, 10) : 10;
var part1attr = b.custom_ac_part1.toLowerCase();
var part2attr = b.custom_ac_part2.toLowerCase();
var part1 = part1attr === "none" ? 0 : b[part1attr + "_mod"];
var part2 = part2attr === "none" ? 0 : b[part2attr + "_mod"];
var total = base + part1 + part2;
setAttrs({ac: total});
});
}
else {
var ac_attrs = ["simpleinventory","dexterity_mod","globalacmod","npc","ship_size","pilot_skill", "ship_armor_ac_bonus", "ship_armor_active_flag", "ship_armor"];
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_ac_change("repeating_inventory_", idarray, ac_attrs);
});
if(v.npc === "2") {
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_ac_change("repeating_hiddeninventory_", idarray, ac_attrs);
});
}
};
});
};
var update_inventory_from_ac_change = function(inventory, idarray, ac_attrs) {
var update = {};
_.each(idarray, function(currentID, i) {
ac_attrs.push(inventory + currentID + "_equipped");
ac_attrs.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(ac_attrs, function(b) {
var globalacmod = isNaN(parseInt(b.globalacmod, 10)) === false ? parseInt(b.globalacmod, 10) : 0;
var dexmod = +b["dexterity_mod"];
var total = 10 + dexmod;
var armorcount = 0;
var shieldcount = 0;
var armoritems = [];
if(b.simpleinventory === "complex") {
_.each(idarray, function(currentID, i) {
if(b[inventory + currentID + "_equipped"] && b[inventory + currentID + "_equipped"] === "1" && b[inventory + currentID + "_itemmodifiers"] && b[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf("ac") > -1) {
var mods = b[inventory + currentID + "_itemmodifiers"].split(",");
var ac = 0;
var type = "mod";
_.each(mods, function(mod) {
if(mod.substring(0,10) === "Item Type:") {
type = mod.substring(11, mod.length).trim().toLowerCase();
}
if(mod.toLowerCase().indexOf("ac:") > -1 || mod.toLowerCase().indexOf("ac +") > -1 || mod.toLowerCase().indexOf("ac+") > -1) {
var regex = mod.replace(/[^0-9]/g, "");
var bonus = regex && regex.length > 0 && isNaN(parseInt(regex,10)) === false ? parseInt(regex,10) : 0;
ac = ac + bonus;
}
if(mod.toLowerCase().indexOf("ac -") > -1 || mod.toLowerCase().indexOf("ac-") > -1) {
var regex = mod.replace(/[^0-9]/g, "");
var bonus = regex && regex.length > 0 && isNaN(parseInt(regex,10)) === false ? parseInt(regex,10) : 0;
ac = ac - bonus;
}
});
armoritems.push({type: type, ac: ac});
}
});
armorcount = armoritems.filter(function(item){ return item["type"].indexOf("armor") > -1 }).length;
shieldcount = armoritems.filter(function(item){ return item["type"].indexOf("shield") > -1 }).length;
if(b.npc === "2") {
var modac = 0;
_.each(armoritems, function(item) {
modac = modac + item["ac"];
})
switch(b.ship_armor){
case "none":
break;
case "deflection":
break;
case "lightweight":
modac += 2
break;
case "reinforced":
modac += -2
break;
case "customshiparmor":
if(b.ship_armor_active_flag == "1") {
var acArmor = b["ship_armor_ac_bonus"]
var tryParseAcBonus = parseInt(acArmor, 10);
if(!isNaN(tryParseAcBonus)) {
modac += tryParseAcBonus;
}
}
break;
}
var pilotSkill = isNaN(parseInt(b.pilot_skill, 10)) === false ? parseInt(b.pilot_skill, 10) : 0;
var shipSizeACBase = 0;
switch(b.ship_size) {
case "Tiny":
shipSizeACBase = 10;
break;
case "Small":
shipSizeACBase = 9;
break;
case "Medium":
shipSizeACBase = 8;
break;
case "Large":
shipSizeACBase = 7;
break;
case "Huge":
shipSizeACBase = 6;
break;
case "Gargantuan":
shipSizeACBase = 5;
break;
default:
shipSizeACBase = 0;
break;
}
total = shipSizeACBase + pilotSkill + modac;
}
else {
var base = dexmod;
var armorac = 10;
var shieldac = 0;
var modac = 0;
_.each(armoritems, function(item) {
if(item["type"].indexOf("light armor") > -1) {
armorac = item["ac"];
base = dexmod;
}
else if(item["type"].indexOf("medium armor") > -1) {
armorac = item["ac"];
base = Math.min(dexmod, 2);
}
else if(item["type"].indexOf("heavy armor") > -1) {
armorac = item["ac"];
base = 0;
}
else if(item["type"].indexOf("shield") > -1) {
shieldac = item["ac"];
}
else {
modac = modac + item["ac"];
}
})
total = base + armorac + shieldac + modac;
}
};
if(armorcount > 1 || shieldcount > 1) {
update["armorwarningflag"] = "show";
update["armorwarning"] = "0";
}
else {
update["armorwarningflag"] = "hide";
update["armorwarning"] = "0";
}
console.log("total: " + total);
update["ac"] = total + globalacmod;
setAttrs(update, {silent: true});
});
};
var check_customac = function(attr) {
getAttrs(["custom_ac_flag","custom_ac_part1","custom_ac_part2"], function(v) {
if(v["custom_ac_flag"] && v["custom_ac_flag"] === "1" && ((v["custom_ac_part1"] && v["custom_ac_part1"] === attr) || (v["custom_ac_part2"] && v["custom_ac_part2"] === attr))) {
update_ac();
}
});
};
/* Todo, there is a bug here... for a pc, hiddeninventory does not exist and overwrite the correct value of inventory...
* Do player really uses the mod field?*/
var update_initiative = function() {
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_initiative_change("repeating_inventory_", idarray);
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_initiative_change("repeating_hiddeninventory_", idarray);
});
};
var update_inventory_from_initiative_change = function(inventory, idarray) {
var attrs_to_get = ["dexterity","dexterity_mod","initmod","jack_of_all_trades","jack","init_tiebreaker","pb_type"];
_.each(idarray, function(currentID, i) {
attrs_to_get.push(inventory + currentID + "_equipped");
attrs_to_get.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(attrs_to_get, function(v) {
var update = {};
var final_init = parseInt(v["dexterity_mod"], 10);
if(v["initmod"] && !isNaN(parseInt(v["initmod"], 10))) {
final_init = final_init + parseInt(v["initmod"], 10);
}
if(v["init_tiebreaker"] && v["init_tiebreaker"] != 0) {
final_init = final_init + (parseInt(v["dexterity"], 10)/100);
}
if(v["jack_of_all_trades"] && v["jack_of_all_trades"] != 0) {
if(v["pb_type"] && v["pb_type"] === "die" && v["jack"]) {
// final_init = final_init + Math.floor(parseInt(v["jack"].substring(1),10)/2);
final_init = final_init + "+" + v["jack"];
}
else if(v["jack"] && !isNaN(parseInt(v["jack"], 10))) {
final_init = final_init + parseInt(v["jack"], 10);
}
}
_.each(idarray, function(currentID){
if(v[inventory + currentID + "_equipped"] && v[inventory + currentID + "_equipped"] === "1" && v[inventory + currentID + "_itemmodifiers"] && v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf("ability checks") > -1) {
var mods = v[inventory + currentID + "_itemmodifiers"].toLowerCase().split(",");
_.each(mods, function(mod) {
if(mod.indexOf("ability checks") > -1) {
if(mod.indexOf("-") > -1) {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
final_init = new_mod ? final_init - new_mod : final_init;
}
else {
var new_mod = !isNaN(parseInt(mod.replace(/[^0-9]/g, ""), 10)) ? parseInt(mod.replace(/[^0-9]/g, ""), 10) : false;
final_init = new_mod ? final_init + new_mod : final_init;
}
}
});
}
});
if(final_init % 1 != 0) {
final_init = parseFloat(final_init.toPrecision(12)); // ROUNDING ERROR BUGFIX
}
update["initiative_bonus"] = final_init;
setAttrs(update, {silent: true});
});
};
var update_class = function() {
getAttrs(["class","base_level","custom_class","cust_classname","cust_hitdietype","cust_powercasting_ability","cust_strength_save_prof","cust_dexterity_save_prof","cust_constitution_save_prof","cust_intelligence_save_prof","cust_wisdom_save_prof","cust_charisma_save_prof","strength_save_prof","dexterity_save_prof","constitution_save_prof","intelligence_save_prof","wisdom_save_prof","charisma_save_prof","subclass","multiclass1","multiclass1_subclass","multiclass2","multiclass2_subclass","multiclass3","multiclass3_subclass","npc"], function(v) {
if(v.npc && v.npc == "1") {
return;
}
if(v.custom_class && v.custom_class != "0") {
setAttrs({
hitdietype: v.cust_hitdietype,
powercasting_ability: v.cust_powercasting_ability,
strength_save_prof: v.cust_strength_save_prof,
dexterity_save_prof: v.cust_dexterity_save_prof,
constitution_save_prof: v.cust_constitution_save_prof,
intelligence_save_prof: v.cust_intelligence_save_prof,
wisdom_save_prof: v.cust_wisdom_save_prof,
charisma_save_prof: v.cust_charisma_save_prof
});
}
else {
update = {};
switch(v.class) {
case "":
update["hitdietype"] = 6;
update["powercasting_ability"] = "0*";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "";
break;
case "Berserker":
update["hitdietype"] = 12;
update["powercasting_ability"] = "0*";
update["strength_save_prof"] = "(@{pb})";
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = "(@{pb})";
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "Rage";
break;
case "Scholar":
update["hitdietype"] = 8;
update["powercasting_ability"] = "@{intelligence_mod}+";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = "(@{pb})";
update["wisdom_save_prof"] = "(@{pb})";
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "Superiority Dice";
break;
case "Engineer":
update["hitdietype"] = 8;
update["powercasting_ability"] = "@{intelligence_mod}+";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = "(@{pb})";
update["intelligence_save_prof"] = "(@{pb})";
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "Potent Aptitude";
break;
case "Fighter":
update["hitdietype"] = 10;
update["powercasting_ability"] = "0*";
update["strength_save_prof"] = "(@{pb})";
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = "(@{pb})";
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "Second Wind";
break;
case "Monk":
update["hitdietype"] = 8;
update["powercasting_ability"] = "0*";
update["strength_save_prof"] = "(@{pb})";
update["dexterity_save_prof"] = "(@{pb})";
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "Ki";
break;
case "Guardian":
update["hitdietype"] = 10;
update["powercasting_ability"] = "@{wisdom_mod}+";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = "(@{pb})";
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = "(@{pb})";
update["class_resource_name"] = "Channel The Force";
break;
case "Scout":
update["hitdietype"] = 10;
update["powercasting_ability"] = "@{intelligence_mod}+";
update["strength_save_prof"] = "(@{pb})";
update["dexterity_save_prof"] = "(@{pb})";
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "";
break;
case "Operative":
update["hitdietype"] = 8;
update["powercasting_ability"] = "0*";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = "(@{pb})";
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = "(@{pb})";
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = 0;
update["class_resource_name"] = "";
break;
case "Sentinel":
update["hitdietype"] = 8;
update["powercasting_ability"] = "@{wisdom_mod}+";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = "(@{pb})";
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = 0;
update["charisma_save_prof"] = "(@{pb})";
update["class_resource_name"] = "Force Points";
break;
case "Consular":
update["hitdietype"] = 6;
update["powercasting_ability"] = "@{wisdom_mod}+";
update["strength_save_prof"] = 0;
update["dexterity_save_prof"] = 0;
update["constitution_save_prof"] = 0;
update["intelligence_save_prof"] = 0;
update["wisdom_save_prof"] = "(@{pb})";
update["charisma_save_prof"] = "(@{pb})";
update["class_resource_name"] = "";
break;
}
setAttrs(update, {silent: true});
};
});
set_level();
};
var set_level = function() {
getAttrs(["base_level","multiclass1_flag","multiclass2_flag","multiclass3_flag","multiclass1_lvl","multiclass2_lvl","multiclass3_lvl","class","multiclass1","multiclass2","multiclass3", "tech_fighter", "tech_operative", "custom_class", "cust_powerslots", "cust_classname", "level_calculations", "class", "subclass", "multiclass1_subclass","multiclass2_subclass","multiclass3_subclass"], function(v) {
var update = {};
var callbacks = [];
var multiclass = (v.multiclass1_flag && v.multiclass1_flag === "1") || (v.multiclass2_flag && v.multiclass2_flag === "1") || (v.multiclass3_flag && v.multiclass3_flag === "1") ? true : false;
var finalclass = v["custom_class"] && v["custom_class"] != "0" ? v["cust_powerslots"] : v["class"];
var finallevel = (v.base_level && v.base_level > 0) ? parseInt(v.base_level,10) : 1;
var charclass = v.custom_class && v.custom_class != "0" ? v["cust_classname"] : v["class"];
var hitdie_final = multiclass ? "?{Hit Die Class|" + charclass + ",@{hitdietype}" : "@{hitdietype}";
var subclass = v.subclass ? v.subclass + " " : "";
var class_display = subclass + charclass + " " + finallevel;
// This nested array is used to determine the overall powercasting level for the character.
var classes = [ [finalclass.toLowerCase(), v["base_level"]] ];
if(v.multiclass1_flag && v.multiclass1_flag === "1") {
var multiclasslevel = (v["multiclass1_lvl"] && v["multiclass1_lvl"] > 0) ? parseInt(v["multiclass1_lvl"], 10) : 1;
finallevel = finallevel + multiclasslevel;
hitdie_final = hitdie_final + "|" + v["multiclass1"].charAt(0).toUpperCase() + v["multiclass1"].slice(1) + "," + checkHitDie(v["multiclass1"]);
classes.push([ v["multiclass1"], multiclasslevel ]);
var subclass = v.multiclass1_subclass ? v.multiclass1_subclass + " " : "";
class_display = class_display + ", " + subclass + v.multiclass1 + " " + multiclasslevel;
};
if(v.multiclass2_flag && v.multiclass2_flag === "1") {
var multiclasslevel = (v["multiclass2_lvl"] && v["multiclass2_lvl"] > 0) ? parseInt(v["multiclass2_lvl"], 10) : 1;
finallevel = finallevel + multiclasslevel;
hitdie_final = hitdie_final + "|" + v["multiclass2"].charAt(0).toUpperCase() + v["multiclass2"].slice(1) + "," + checkHitDie(v["multiclass2"]);
classes.push([ v["multiclass2"], multiclasslevel ]);
var subclass = v.multiclass2_subclass ? v.multiclass2_subclass + " " : "";
class_display = class_display + ", " + subclass + v.multiclass2 + " " + multiclasslevel;
};
if(v.multiclass3_flag && v.multiclass3_flag === "1") {
var multiclasslevel = (v["multiclass3_lvl"] && v["multiclass3_lvl"] > 0) ? parseInt(v["multiclass3_lvl"], 10) : 1;
finallevel = finallevel + multiclasslevel;
hitdie_final = hitdie_final + "|" + v["multiclass3"].charAt(0).toUpperCase() + v["multiclass3"].slice(1) + "," + checkHitDie(v["multiclass3"]);
classes.push([ v["multiclass3"], multiclasslevel ]);
var subclass = v.multiclass3_subclass ? v.multiclass3_subclass + " " : "";
class_display = class_display + ", " + subclass + v.multiclass3 + " " + multiclasslevel;
};
var casterlevel = checkCasterLevel(classes, v["tech_fighter"], v["tech_operative"]);
update["hitdie_final"] = multiclass ? hitdie_final + "}" : hitdie_final;
update["level"] = finallevel;
update["caster_level"] = casterlevel;
update["class_display"] = class_display;
if(!v["level_calculations"] || v["level_calculations"] == "on") {
update["hit_dice_max"] = finallevel;
callbacks.push( function() {update_power_slots();} );
}
callbacks.push( function() {update_pb();} );
setAttrs(update, {silent: true}, function() {callbacks.forEach(function(callback) {callback(); })} );
});
};
var isMultiCaster = function(classes, tech_fighter, tech_operative) {
var singlecaster = false;
var multicaster = false;
_.each(classes, function(multiclass) {
var caster = getCasterType(multiclass[0], multiclass[1], tech_fighter, tech_operative) > 0;
if(caster && singlecaster) {
multicaster = true;
} else if(caster) {
singlecaster = true;
}
});
return multicaster;
};
var getCasterType = function(class_string, levels, tech_fighter, tech_operative) {
var full = ["scholar","engineer","druid","sorcerer","consular","full"];
var half = ["guardian","scout","half"];
if(full.indexOf(class_string) != -1) {
return 1;
} else if(half.indexOf(class_string) != -1) {
return (levels == 1) ? 0 : (1/2);
} else if(class_string === "third" || (class_string === "fighter" && tech_fighter === "1") || (class_string === "operative" && tech_operative === "1")) {
return (levels == 1 || levels == 2) ? 0 : (1/3);
} else {
return 0;
}
};
var checkCasterLevel = function(classes, tech_fighter, tech_operative) {
console.log("CHECKING CASTER LEVEL");
var multicaster = isMultiCaster(classes, tech_fighter, tech_operative);
var totalcasterlevel = 0;
_.each(classes, function(multiclass) {
var casterlevel = parseInt(multiclass[1], 10) * getCasterType(multiclass[0], multiclass[1], tech_fighter, tech_operative);
// Characters with multiple powercasting classes round down the casting level for that class
// Character with a single powercasting class round up the casting level
totalcasterlevel = totalcasterlevel + (multicaster ? Math.floor(casterlevel) : Math.ceil(casterlevel));
});
return totalcasterlevel;
};
var checkHitDie = function(class_string) {
var d10class = ["fighter","guardian","scout"];
var d8class = ["scholar","engineer","druid","monk","operative","sentinel"];
var d6class = ["sorcerer","consular"];
if(class_string === "berserker") {return "12"}
else if (d10class.indexOf(class_string) != -1) {return "10"}
else if (d8class.indexOf(class_string) != -1) {return "8"}
else if (d6class.indexOf(class_string) != -1) {return "6"}
else {return "0"};
};
var update_power_slots = function() {
getAttrs(["lvl1_slots_mod","lvl2_slots_mod","lvl3_slots_mod","lvl4_slots_mod","lvl5_slots_mod","lvl6_slots_mod","lvl7_slots_mod","lvl8_slots_mod","lvl9_slots_mod","caster_level"], function(v) {
var update = {};
var lvl = v["caster_level"] && !isNaN(parseInt(v["caster_level"], 10)) ? parseInt(v["caster_level"], 10) : 0;
var l1 = v["lvl1_slots_mod"] && !isNaN(parseInt(v["lvl1_slots_mod"], 10)) ? parseInt(v["lvl1_slots_mod"], 10) : 0;
var l2 = v["lvl2_slots_mod"] && !isNaN(parseInt(v["lvl2_slots_mod"], 10)) ? parseInt(v["lvl2_slots_mod"], 10) : 0;
var l3 = v["lvl3_slots_mod"] && !isNaN(parseInt(v["lvl3_slots_mod"], 10)) ? parseInt(v["lvl3_slots_mod"], 10) : 0;
var l4 = v["lvl4_slots_mod"] && !isNaN(parseInt(v["lvl4_slots_mod"], 10)) ? parseInt(v["lvl4_slots_mod"], 10) : 0;
var l5 = v["lvl5_slots_mod"] && !isNaN(parseInt(v["lvl5_slots_mod"], 10)) ? parseInt(v["lvl5_slots_mod"], 10) : 0;
var l6 = v["lvl6_slots_mod"] && !isNaN(parseInt(v["lvl6_slots_mod"], 10)) ? parseInt(v["lvl6_slots_mod"], 10) : 0;
var l7 = v["lvl7_slots_mod"] && !isNaN(parseInt(v["lvl7_slots_mod"], 10)) ? parseInt(v["lvl7_slots_mod"], 10) : 0;
var l8 = v["lvl8_slots_mod"] && !isNaN(parseInt(v["lvl8_slots_mod"], 10)) ? parseInt(v["lvl8_slots_mod"], 10) : 0;
var l9 = v["lvl9_slots_mod"] && !isNaN(parseInt(v["lvl9_slots_mod"], 10)) ? parseInt(v["lvl9_slots_mod"], 10) : 0;
if(lvl > 0) {
l1 = l1 + Math.min((lvl + 1),4);
if(lvl < 3) {l2 = l2 + 0;} else if(lvl === 3) {l2 = l2 + 2;} else {l2 = l2 + 3;};
if(lvl < 5) {l3 = l3 + 0;} else if(lvl === 5) {l3 = l3 + 2;} else {l3 = l3 + 3;};
if(lvl < 7) {l4 = l4 + 0;} else if(lvl === 7) {l4 = l4 + 1;} else if(lvl === 8) {l4 = l4 + 2;} else {l4 = l4 + 3;};
if(lvl < 9) {l5 = l5 + 0;} else if(lvl === 9) {l5 = l5 + 1;} else if(lvl < 18) {l5 = l5 + 2;} else {l5 = l5 + 3;};
if(lvl < 11) {l6 = l6 + 0;} else if(lvl < 19) {l6 = l6 + 1;} else {l6 = l6 + 2;};
if(lvl < 13) {l7 = l7 + 0;} else if(lvl < 20) {l7 = l7 + 1;} else {l7 = l7 + 2;};
if(lvl < 15) {l8 = l8 + 0;} else {l8 = l8 + 1;};
if(lvl < 17) {l9 = l9 + 0;} else {l9 = l9 + 1;};
};
update["lvl1_slots_total"] = l1;
update["lvl2_slots_total"] = l2;
update["lvl3_slots_total"] = l3;
update["lvl4_slots_total"] = l4;
update["lvl5_slots_total"] = l5;
update["lvl6_slots_total"] = l6;
update["lvl7_slots_total"] = l7;
update["lvl8_slots_total"] = l8;
update["lvl9_slots_total"] = l9;
setAttrs(update, {silent: true});
});
};
var update_pb = function() {
callbacks = [];
getAttrs(["level","pb_type","pb_custom","npc"], function(v) {
if(v.npc !== "2") {
var update = {};
var pb = 2;
var lvl = parseInt(v["level"],10);
if(lvl < 5) {pb = "2"} else if(lvl < 9) {pb = "3"} else if(lvl < 13) {pb = "4"} else if(lvl < 17) {pb = "5"} else {pb = "6"}
var jack = Math.floor(pb/2);
if(v["pb_type"] === "die") {
update["jack"] = "d" + pb;
update["pb"] = "d" + pb*2;
update["pbd_safe"] = "cs0cf0";
}
else if(v["pb_type"] === "custom" && v["pb_custom"] && v["pb_custom"] != "") {
update["pb"] = v["pb_custom"]
update["jack"] = !isNaN(parseInt(v["pb_custom"],10)) ? Math.floor(parseInt(v["pb_custom"],10)/2) : jack;
update["pbd_safe"] = "";
}
else {
update["pb"] = pb;
update["jack"] = jack;
update["pbd_safe"] = "";
};
}
callbacks.push( function() {update_attacks("all");} );
callbacks.push( function() {update_power_info();} );
callbacks.push( function() {update_jack_attr();} );
callbacks.push( function() {update_initiative();} );
callbacks.push( function() {update_tool("all");} );
callbacks.push( function() {update_all_saves();} );
callbacks.push( function() {update_skills(["athletics", "acrobatics", "sleight_of_hand", "stealth", "technology", "lore", "investigation", "nature", "piloting", "animal_handling", "insight", "medicine", "perception", "survival","deception", "intimidation", "performance", "persuasion", "ship_boost", "ship_ram", "ship_hide", "ship_maneuvering", "ship_patch", "ship_regulation", "ship_astrogation", "ship_data", "ship_probe", "ship_scan", "ship_impress", "ship_interfere", "ship_menace", "ship_swindle"]);} );
setAttrs(update, {silent: true}, function() {callbacks.forEach(function(callback) {callback(); })} );
});
};
var update_jack_attr = function() {
var update = {};
getAttrs(["jack_of_all_trades","jack"], function(v) {
if(v["jack_of_all_trades"] && v["jack_of_all_trades"] != 0) {
update["jack_bonus"] = "+" + v["jack"];
update["jack_attr"] = "+" + v["jack"] + "@{pbd_safe}";
}
else {
update["jack_bonus"] = "";
update["jack_attr"] = "";
}
setAttrs(update, {silent: true});
});
};
var update_power_info = function(attr) {
var update = {};
getAttrs(["powercasting_ability","power_dc_mod","globalpowermod","strength_mod","dexterity_mod","constitution_mod","intelligence_mod","wisdom_mod","charisma_mod"], function(v) {
if(attr && v["powercasting_ability"] && v["powercasting_ability"].indexOf(attr) === -1) {
return
};
if(!v["powercasting_ability"] || (v["powercasting_ability"] && v["powercasting_ability"] === "0*")) {
update["power_attack_bonus"] = "0";
update["power_save_dc"] = "0";
var callback = function() {update_attacks("powers")};
setAttrs(update, {silent: true}, callback);
return
};
var attr = attr ? attr : "";
console.log("UPDATING POWER INFO: " + attr);
var ability = parseInt(v[v["powercasting_ability"].substring(2,v["powercasting_ability"].length-2)],10);
var power_mod = v["globalpowermod"] && !isNaN(parseInt(v["globalpowermod"], 10)) ? parseInt(v["globalpowermod"], 10) : 0;
var atk = v["globalpowermod"] && !isNaN(parseInt(v["globalpowermod"], 10)) ? ability + parseInt(v["globalpowermod"], 10) : ability;
var dc = v["power_dc_mod"] && !isNaN(parseInt(v["power_dc_mod"], 10)) ? 8 + ability + parseInt(v["power_dc_mod"], 10) : 8 + ability;
var itemfields = ["pb_type","pb"];
getSectionIDs("repeating_inventory", function(idarray) {
update_inventory_from_power_info_change("repeating_inventory_", idarray, power_mod, atk, dc, itemfields, update);
});
getSectionIDs("repeating_hiddeninventory", function(idarray) {
update_inventory_from_power_info_change("repeating_hiddeninventory_", idarray, power_mod, atk, dc, itemfields, update);
});
});
};
var update_inventory_from_power_info_change = function(inventory, idarray, power_mod, atk, dc, itemfields, update) {
_.each(idarray, function(currentID, i) {
itemfields.push(inventory + currentID + "_equipped");
itemfields.push(inventory + currentID + "_itemmodifiers");
});
getAttrs(itemfields, function(v) {
_.each(idarray, function(currentID) {
if((!v[inventory + currentID + "_equipped"] || v[inventory + currentID + "_equipped"] === "1") && v[inventory + currentID + "_itemmodifiers"] && v[inventory + currentID + "_itemmodifiers"].toLowerCase().indexOf("power" > -1)) {
var mods = v[inventory + currentID + "_itemmodifiers"].toLowerCase().split(",");
_.each(mods, function(mod) {
if(mod.indexOf("power attack") > -1) {
var substr = mod.slice(mod.lastIndexOf("power attack") + "power attack".length);
atk = substr && substr.length > 0 && !isNaN(parseInt(substr,10)) ? atk + parseInt(substr,10) : atk;
power_mod = substr && substr.length > 0 && !isNaN(parseInt(substr,10)) ? power_mod + parseInt(substr,10) : power_mod;
};
if(mod.indexOf("power dc") > -1) {
var substr = mod.slice(mod.lastIndexOf("power dc") + "power dc".length);
dc = substr && substr.length > 0 && !isNaN(parseInt(substr,10)) ? dc + parseInt(substr,10) : dc;
};
});
};
});
if(v["pb_type"] && v["pb_type"] === "die") {
atk = atk + "+" + v["pb"];
dc = dc + parseInt(v["pb"].substring(1), 10) / 2;
}
else {
atk = parseInt(atk, 10) + parseInt(v["pb"], 10);
dc = parseInt(dc, 10) + parseInt(v["pb"], 10);
};
update["power_attack_mod"] = power_mod;
update["power_attack_bonus"] = atk;
update["power_save_dc"] = dc;
var callback = function() {update_attacks("powers")};
setAttrs(update, {silent: true}, callback);
});
};
var update_passive_perception = function() {
getAttrs(["pb_type","passiveperceptionmod","perception_bonus"], function(v) {
var passive_perception = 10;
var mod = !isNaN(parseInt(v["passiveperceptionmod"],10)) ? parseInt(v["passiveperceptionmod"],10) : 0;
var bonus = !isNaN(parseInt(v["perception_bonus"],10)) ? parseInt(v["perception_bonus"],10) : 0;
if(v["pb_type"] && v["pb_type"] === "die" && v["perception_bonus"] && isNaN(v["perception_bonus"]) && v["perception_bonus"].indexOf("+") > -1) {
var pieces = v["perception_bonus"].split(/\+|d/);
var base = !isNaN(parseInt(pieces[0],10)) ? parseInt(pieces[0],10) : 0;
var num_dice = !isNaN(parseInt(pieces[1],10)) ? parseInt(pieces[1],10) : 1;
var half_pb_die = !isNaN(parseInt(pieces[2],10)) ? parseInt(pieces[2],10)/2 : 2;
bonus = base + (num_dice * half_pb_die);
}
passive_perception = passive_perception + bonus + mod;
setAttrs({passive_wisdom: passive_perception})
});
};
var update_race_display = function() {
getAttrs(["race", "subrace"], function(v) {
var final_race = "";
final_race = v.subrace ? v.subrace : v.race;
if(v.race.toLowerCase() === "dragonborn") { final_race = v.race; };
setAttrs({race_display: final_race});
});
};
var organize_section_proficiencies = function() {
getSectionIDs("proficiencies", function(ids) {
var attribs = ["_reporder_repeating_proficiencies"];
_.each(ids, function(id) {
attribs.push("repeating_proficiencies_" + id + "_prof_type");
attribs.push("repeating_proficiencies_" + id + "_name");
});
getAttrs(attribs, function(v) {
var final_array = _(ids).chain().sortBy(function(id) {
return v["repeating_proficiencies_" + id + "_name"];
}).sortBy(function(id) {
return v["repeating_proficiencies_" + id + "_prof_type"];
}).value();
_.each(final_array, function(id) {
});
if(final_array && final_array.length > 0) {
setSectionOrder("proficiencies", final_array);
};
});
});
};
var update_challenge = function() {
getAttrs(["npc_challenge"], function(v) {
var update = {};
var xp = 0;
var pb = 0;
switch(v.npc_challenge) {
case "0":
xp = "10";
pb = 2;
break;
case "1/8":
xp = "25";
pb = 2;
break;
case "1/4":
xp = "50";
pb = 2;
break;
case "1/2":
xp = "100";
pb = 2;
break;
case "1":
xp = "200";
pb = 2;
break;
case "2":
xp = "450";
pb = 2;
break;
case "3":
xp = "700";
pb = 2;
break;
case "4":
xp = "1100";
pb = 2;
break;
case "5":
xp = "1800";
pb = 3;
break;
case "6":
xp = "2300";
pb = 3;
break;
case "7":
xp = "2900";
pb = 3;
break;
case "8":
xp = "3900";
pb = 3;
break;
case "9":
xp = "5000";
pb = 4;
break;
case "10":
xp = "5900";
pb = 4;
break;
case "11":
xp = "7200";
pb = 4;
break;
case "12":
xp = "8400";
pb = 4;
break;
case "13":
xp = "10000";
pb = 5;
break;
case "14":
xp = "11500";
pb = 5;
break;
case "15":
xp = "13000";
pb = 5;
break;
case "16":
xp = "15000";
pb = 5;
break;
case "17":
xp = "18000";
pb = 6;
break;
case "18":
xp = "20000";
pb = 6;
break;
case "19":
xp = "22000";
pb = 6;
break;
case "20":
xp = "25000";
pb = 6;
break;
case "21":
xp = "33000";
pb = 7;
break;
case "22":
xp = "41000";
pb = 7;
break;
case "23":
xp = "50000";
pb = 7;
break;
case "24":
xp = "62000";
pb = 7;
break;
case "25":
xp = "75000";
pb = 8;
break;
case "26":
xp = "90000";
pb = 8;
break;
case "27":
xp = "105000";
pb = 8;
break;
case "28":
xp = "120000";
pb = 8;
break;
case "29":
xp = "";
pb = 9;
break;
case "30":
xp = "155000";
pb = 9;
break;
}
update["npc_xp"] = xp;
update["pb_custom"] = pb;
update["pb_type"] = "custom";
setAttrs(update, {silent: true}, function() {update_pb()});
});
};
var update_npc_saves = function() {
getAttrs(["npc_str_save_base","npc_dex_save_base","npc_con_save_base","npc_int_save_base","npc_wis_save_base","npc_cha_save_base"], function(v) {
var update = {};
var last_save = 0; var cha_save_flag = 0; var cha_save = ""; var wis_save_flag = 0; var wis_save = ""; var int_save_flag = 0; var int_save = ""; var con_save_flag = 0; var con_save = ""; var dex_save_flag = 0; var dex_save = ""; var str_save_flag = 0; var str_save = "";
// 1 = Positive, 2 = Last, 3 = Negative, 4 = Last Negative
if(v.npc_cha_save_base && v.npc_cha_save_base != "@{charisma_mod}") {cha_save = parseInt(v.npc_cha_save_base, 10); if(last_save === 0) {last_save = 1; cha_save_flag = cha_save < 0 ? 4 : 2;} else {cha_save_flag = cha_save < 0 ? 3 : 1;} } else {cha_save_flag = 0; cha_save = "";};
if(v.npc_wis_save_base && v.npc_wis_save_base != "@{wisdom_mod}") {wis_save = parseInt(v.npc_wis_save_base, 10); if(last_save === 0) {last_save = 1; wis_save_flag = wis_save < 0 ? 4 : 2;} else {wis_save_flag = wis_save < 0 ? 3 : 1;} } else {wis_save_flag = 0; wis_save = "";};
if(v.npc_int_save_base && v.npc_int_save_base != "@{intelligence_mod}") {int_save = parseInt(v.npc_int_save_base, 10); if(last_save === 0) {last_save = 1; int_save_flag = int_save < 0 ? 4 : 2;} else {int_save_flag = int_save < 0 ? 3 : 1;} } else {int_save_flag = 0; int_save = "";};
if(v.npc_con_save_base && v.npc_con_save_base != "@{constitution_mod}") {con_save = parseInt(v.npc_con_save_base, 10); if(last_save === 0) {last_save = 1; con_save_flag = con_save < 0 ? 4 : 2;} else {con_save_flag = con_save < 0 ? 3 : 1;} } else {con_save_flag = 0; con_save = "";};
if(v.npc_dex_save_base && v.npc_dex_save_base != "@{dexterity_mod}") {dex_save = parseInt(v.npc_dex_save_base, 10); if(last_save === 0) {last_save = 1; dex_save_flag = dex_save < 0 ? 4 : 2;} else {dex_save_flag = dex_save < 0 ? 3 : 1;} } else {dex_save_flag = 0; dex_save = "";};
if(v.npc_str_save_base && v.npc_str_save_base != "@{strength_mod}") {str_save = parseInt(v.npc_str_save_base, 10); if(last_save === 0) {last_save = 1; str_save_flag = str_save < 0 ? 4 : 2;} else {str_save_flag = str_save < 0 ? 3 : 1;} } else {str_save_flag = 0; str_save = "";};
update["npc_saving_flag"] = "" + cha_save + wis_save + int_save + con_save + dex_save + str_save;
update["npc_str_save"] = str_save;
update["npc_str_save_flag"] = str_save_flag;
update["npc_dex_save"] = dex_save;
update["npc_dex_save_flag"] = dex_save_flag;
update["npc_con_save"] = con_save;
update["npc_con_save_flag"] = con_save_flag;
update["npc_int_save"] = int_save;
update["npc_int_save_flag"] = int_save_flag;
update["npc_wis_save"] = wis_save;
update["npc_wis_save_flag"] = wis_save_flag;
update["npc_cha_save"] = cha_save;
update["npc_cha_save_flag"] = cha_save_flag;
setAttrs(update, {silent: true});
});
};
var update_npc_skills = function() {
getAttrs(["npc_acrobatics_base","npc_animal_handling_base","npc_technology_base","npc_athletics_base","npc_deception_base","npc_lore_base","npc_insight_base","npc_intimidation_base","npc_investigation_base","npc_medicine_base","npc_nature_base","npc_perception_base","npc_performance_base","npc_persuasion_base","npc_piloting_base","npc_sleight_of_hand_base","npc_stealth_base","npc_survival_base"], function(v) {
var update = {};
var last_skill = 0;
var survival_flag = 0; var survival = ""; var stealth_flag = 0; var stealth = ""; var sleight_of_hand_flag = 0; var sleight_of_hand = ""; var piloting_flag = 0; var piloting = ""; var persuasion_flag = 0; var persuasion = ""; var performance_flag = 0; var sperformance = ""; var perception_flag = 0; var perception = ""; var perception_flag = 0; var perception = ""; var nature_flag = 0; var nature = ""; var medicine_flag = 0; var medicine = ""; var investigation_flag = 0; var investigation = ""; var intimidation_flag = 0; var intimidation = ""; var insight_flag = 0; var insight = ""; var lore_flag = 0; var lore = ""; var deception_flag = 0; var deception = ""; var athletics_flag = 0; var athletics = ""; var technology_flag = 0; var technology = ""; var animal_handling_flag = 0; var animal_handling = ""; var acrobatics_flag = 0; var acrobatics = "";
// 1 = Positive, 2 = Last, 3 = Negative, 4 = Last Negative
if(v.npc_survival_base && v.npc_survival_base != "@{wisdom_mod}") {survival = parseInt(v.npc_survival_base, 10); if(last_skill === 0) {last_skill = 1; survival_flag = survival < 0 ? 4 : 2;} else {survival_flag = survival < 0 ? 3 : 1;} } else {survival_flag = 0; survival = "";};
if(v.npc_stealth_base && v.npc_stealth_base != "@{dexterity_mod}") {stealth = parseInt(v.npc_stealth_base, 10); if(last_skill === 0) {last_skill = 1; stealth_flag = stealth < 0 ? 4 : 2;} else {stealth_flag = stealth < 0 ? 3 : 1;} } else {stealth_flag = 0; stealth = "";};
if(v.npc_sleight_of_hand_base && v.npc_sleight_of_hand_base != "@{dexterity_mod}") {sleight_of_hand = parseInt(v.npc_sleight_of_hand_base, 10); if(last_skill === 0) {last_skill = 1; sleight_of_hand_flag = sleight_of_hand < 0 ? 4 : 2;} else {sleight_of_hand_flag = sleight_of_hand < 0 ? 3 : 1;} } else {sleight_of_hand_flag = 0; sleight_of_hand = "";};
if(v.npc_piloting_base && v.npc_piloting_base != "@{intelligence_mod}") {piloting = parseInt(v.npc_piloting_base, 10); if(last_skill === 0) {last_skill = 1; piloting_flag = piloting < 0 ? 4 : 2;} else {piloting_flag = piloting < 0 ? 3 : 1;} } else {piloting_flag = 0; piloting = "";};
if(v.npc_persuasion_base && v.npc_persuasion_base != "@{charisma_mod}") {persuasion = parseInt(v.npc_persuasion_base, 10); if(last_skill === 0) {last_skill = 1; persuasion_flag = persuasion < 0 ? 4 : 2;} else {persuasion_flag = persuasion < 0 ? 3 : 1;} } else {persuasion_flag = 0; persuasion = "";};
if(v.npc_performance_base && v.npc_performance_base != "@{charisma_mod}") {sperformance = parseInt(v.npc_performance_base, 10); if(last_skill === 0) {last_skill = 1; performance_flag = sperformance < 0 ? 4 : 2;} else {performance_flag = sperformance < 0 ? 3 : 1;} } else {performance_flag = 0; sperformance = "";};
if(v.npc_perception_base && v.npc_perception_base != "@{wisdom_mod}") {perception = parseInt(v.npc_perception_base, 10); if(last_skill === 0) {last_skill = 1; perception_flag = perception < 0 ? 4 : 2;} else {perception_flag = perception < 0 ? 3 : 1;} } else {perception_flag = 0; perception = "";};
if(v.npc_nature_base && v.npc_nature_base != "@{intelligence_mod}") {nature = parseInt(v.npc_nature_base, 10); if(last_skill === 0) {last_skill = 1; nature_flag = nature < 0 ? 4 : 2;} else {nature_flag = nature < 0 ? 3 : 1;} } else {nature_flag = 0; nature = "";};
if(v.npc_medicine_base && v.npc_medicine_base != "@{wisdom_mod}") {medicine = parseInt(v.npc_medicine_base, 10); if(last_skill === 0) {last_skill = 1; medicine_flag = medicine < 0 ? 4 : 2;} else {medicine_flag = medicine < 0 ? 3 : 1;} } else {medicine_flag = 0; medicine = "";};
if(v.npc_investigation_base && v.npc_investigation_base != "@{intelligence_mod}") {investigation = parseInt(v.npc_investigation_base, 10); if(last_skill === 0) {last_skill = 1; investigation_flag = investigation < 0 ? 4 : 2;} else {investigation_flag = investigation < 0 ? 3 : 1;} } else {investigation_flag = 0; investigation = "";};
if(v.npc_intimidation_base && v.npc_intimidation_base != "@{charisma_mod}") {intimidation = parseInt(v.npc_intimidation_base, 10); if(last_skill === 0) {last_skill = 1; intimidation_flag = intimidation < 0 ? 4 : 2;} else {intimidation_flag = intimidation < 0 ? 3 : 1;} } else {intimidation_flag = 0; intimidation = "";};
if(v.npc_insight_base && v.npc_insight_base != "@{wisdom_mod}") {insight = parseInt(v.npc_insight_base, 10); if(last_skill === 0) {last_skill = 1; insight_flag = insight < 0 ? 4 : 2;} else {insight_flag = insight < 0 ? 3 : 1;} } else {insight_flag = 0; insight = "";};
if(v.npc_lore_base && v.npc_lore_base != "@{intelligence_mod}") {lore = parseInt(v.npc_lore_base, 10); if(last_skill === 0) {last_skill = 1; lore_flag = lore < 0 ? 4 : 2;} else {lore_flag = lore < 0 ? 3 : 1;} } else {lore_flag = 0; lore = "";};
if(v.npc_deception_base && v.npc_deception_base != "@{charisma_mod}") {deception = parseInt(v.npc_deception_base, 10); if(last_skill === 0) {last_skill = 1; deception_flag = deception < 0 ? 4 : 2;} else {deception_flag = deception < 0 ? 3 : 1;} } else {deception_flag = 0; deception = "";};
if(v.npc_athletics_base && v.npc_athletics_base != "@{strength_mod}") {athletics = parseInt(v.npc_athletics_base, 10); if(last_skill === 0) {last_skill = 1; athletics_flag = athletics < 0 ? 4 : 2;} else {athletics_flag = athletics < 0 ? 3 : 1;} } else {athletics_flag = 0; athletics = "";};
if(v.npc_technology_base && v.npc_technology_base != "@{intelligence_mod}") {technology = parseInt(v.npc_technology_base, 10); if(last_skill === 0) {last_skill = 1; technology_flag = technology < 0 ? 4 : 2;} else {technology_flag = technology < 0 ? 3 : 1;} } else {technology_flag = 0; technology = "";};
if(v.npc_animal_handling_base && v.npc_animal_handling_base != "@{wisdom_mod}") {animal_handling = parseInt(v.npc_animal_handling_base, 10); if(last_skill === 0) {last_skill = 1; animal_handling_flag = animal_handling < 0 ? 4 : 2;} else {animal_handling_flag = animal_handling < 0 ? 3 : 1;} } else {animal_handling_flag = 0; animal_handling = "";};
if(v.npc_acrobatics_base && v.npc_acrobatics_base != "@{dexterity_mod}") {acrobatics = parseInt(v.npc_acrobatics_base, 10); if(last_skill === 0) {last_skill = 1; acrobatics_flag = acrobatics < 0 ? 4 : 2;} else {acrobatics_flag = acrobatics < 0 ? 3 : 1;} } else {acrobatics_flag = 0; acrobatics = "";};
update["npc_skills_flag"] = "" + acrobatics + animal_handling + technology + athletics + deception + lore + insight + intimidation + investigation + medicine + nature + perception + sperformance + persuasion + piloting + sleight_of_hand + stealth + survival;
update["npc_stealth_flag"] = stealth_flag;
update["npc_survival"] = survival;;
update["npc_acrobatics"] = acrobatics;
update["npc_acrobatics_flag"] = acrobatics_flag;
update["npc_animal_handling"] = animal_handling;
update["npc_animal_handling_flag"] = animal_handling_flag;
update["npc_technology"] = technology;
update["npc_technology_flag"] = technology_flag;
update["npc_athletics"] = athletics;
update["npc_athletics_flag"] = athletics_flag;
update["npc_deception"] = deception;
update["npc_deception_flag"] = deception_flag;
update["npc_lore"] = lore;
update["npc_lore_flag"] = lore_flag;
update["npc_insight"] = insight;
update["npc_insight_flag"] = insight_flag;
update["npc_intimidation"] = intimidation;
update["npc_intimidation_flag"] = intimidation_flag;
update["npc_investigation"] = investigation;
update["npc_investigation_flag"] = investigation_flag;
update["npc_medicine"] = medicine;
update["npc_medicine_flag"] = medicine_flag;
update["npc_nature"] = nature;
update["npc_nature_flag"] = nature_flag;
update["npc_perception"] = perception;
update["npc_perception_flag"] = perception_flag;
update["npc_performance"] = sperformance;
update["npc_performance_flag"] = performance_flag;
update["npc_persuasion"] = persuasion;
update["npc_persuasion_flag"] = persuasion_flag;
update["npc_piloting"] = piloting;
update["npc_piloting_flag"] = piloting_flag;
update["npc_sleight_of_hand"] = sleight_of_hand;
update["npc_sleight_of_hand_flag"] = sleight_of_hand_flag;
update["npc_stealth"] = stealth;
update["npc_stealth_flag"] = stealth_flag;
update["npc_survival"] = survival;
update["npc_survival_flag"] = survival_flag;
setAttrs(update, {silent: true});
});
};
var update_npc_action = function(update_id, legendary) {
if(update_id.substring(0,1) === "-" && update_id.length === 20) {
do_update_npc_action([update_id], legendary);
}
else if(update_id === "all") {
var legendary_array = [];
var actions_array = [];
getSectionIDs("repeating_npcaction-l", function(idarray) {
legendary_array = idarray;
if(legendary_array.length > 0) {
do_update_npc_action(legendary_array, true);
}
getSectionIDs("repeating_npcaction", function(idarray) {
actions_array = idarray.filter(function(i) {return legendary_array.indexOf(i) < 0;});
if(actions_array.length > 0) {
do_update_npc_action(actions_array, false);
};
});
});
};
};
var do_update_npc_action = function(action_array, legendary) {
var repvar = legendary ? "repeating_npcaction-l_" : "repeating_npcaction_";
var action_attribs = ["dtype"];
_.each(action_array, function(actionid) {
action_attribs.push(repvar + actionid + "_attack_flag");
action_attribs.push(repvar + actionid + "_attack_type");
action_attribs.push(repvar + actionid + "_attack_range");
action_attribs.push(repvar + actionid + "_attack_target");
action_attribs.push(repvar + actionid + "_attack_tohit");
action_attribs.push(repvar + actionid + "_attack_damage");
action_attribs.push(repvar + actionid + "_attack_damagetype");
action_attribs.push(repvar + actionid + "_attack_damage2");
action_attribs.push(repvar + actionid + "_attack_damagetype2");
});
getAttrs(action_attribs, function(v) {
_.each(action_array, function(actionid) {
console.log("UPDATING NPC ACTION: " + actionid);
var callbacks = [];
var update = {};
var onhit = "";
var damage_flag = "";
var range = "";
var attack_flag = v[repvar + actionid + "_attack_flag"] && v[repvar + actionid + "_attack_flag"] != "0" ? "{{attack=1}}" : "";
var tohit = v[repvar + actionid + "_attack_tohit"] && isNaN(parseInt(v[repvar + actionid + "_attack_tohit"], 10)) === false ? parseInt(v[repvar + actionid + "_attack_tohit"], 10) : 0;
if(v[repvar + actionid + "_attack_type"] && v[repvar + actionid + "_attack_range"]) {
if(v[repvar + actionid + "_attack_type"] === "Melee") {var rangetype = "Reach";} else {var rangetype = "Range";};
range = ", " + rangetype + " " + v[repvar + actionid + "_attack_range"];
}
var target = v[repvar + actionid + "_attack_target"] && v[repvar + actionid + "_attack_target"] != "" ? ", " + v[repvar + actionid + "_attack_target"] : ""
var attack_tohitrange = "+" + tohit + range + target;
var dmg1 = v[repvar + actionid + "_attack_damage"] && v[repvar + actionid + "_attack_damage"] != "" ? v[repvar + actionid + "_attack_damage"] : "";
var dmg1type = v[repvar + actionid + "_attack_damagetype"] && v[repvar + actionid + "_attack_damagetype"] != "" ? " " + v[repvar + actionid + "_attack_damagetype"] : "";
var dmg2 = v[repvar + actionid + "_attack_damage2"] && v[repvar + actionid + "_attack_damage2"] != "" ? v[repvar + actionid + "_attack_damage2"] : "";
var dmg2type = v[repvar + actionid + "_attack_damagetype2"] && v[repvar + actionid + "_attack_damagetype2"] != "" ? " " + v[repvar + actionid + "_attack_damagetype2"] : "";
var dmgspacer = dmg1 != "" && dmg2 != "" ? " plus " : "";
var parsed_dmg1 = parse_roll_string(dmg1);
var parsed_dmg2 = parse_roll_string(dmg2);
if(dmg1 != "") {
onhit = onhit + parsed_dmg1.avg + " (" + dmg1 + ")" + dmg1type + " damage";
};
dmgspacer = dmg1 != "" && dmg2 != "" ? " plus " : "";
onhit = onhit + dmgspacer;
if(dmg2 != "") {
onhit = onhit + parsed_dmg2.avg + " (" + dmg2 + ")" + dmg2type + " damage";
};
if(dmg1 != "" || dmg2 != "") {damage_flag = damage_flag + "{{damage=1}} "};
if(dmg1 != "") {damage_flag = damage_flag + "{{dmg1flag=1}} "};
if(dmg2 != "") {damage_flag = damage_flag + "{{dmg2flag=1}} "};
var crit1 = "";
if(parsed_dmg1.rolls.length > 0){
parsed_dmg1.rolls.forEach(function(value) {
crit1 += parsed_dmg1.array[value] + "+";
});
crit1 = crit1.substring(0, crit1.length - 1);
}
var crit2 = "";
if(parsed_dmg2.rolls.length > 0){
parsed_dmg2.rolls.forEach(function(value) {
crit2 += parsed_dmg2.array[value] + "+";
});
crit2 = crit2.substring(0, crit2.length - 1);
}
var rollbase = "";
if(v.dtype === "full") {
rollbase = "@{wtype}&{template:npcaction} " + attack_flag + " @{damage_flag} @{npc_name_flag} {{rname=@{name}}} {{r1=[[@{d20}+(@{attack_tohit}+0)]]}} @{rtype}+(@{attack_tohit}+0)]]}} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}} {{crit1=[[@{attack_crit}+0]]}} {{crit2=[[@{attack_crit2}+0]]}} {{description=@{show_desc}}} @{charname_output}";
}
else if(v[repvar + actionid + "_attack_flag"] && v[repvar + actionid + "_attack_flag"] != "0") {
if(legendary) {
rollbase = "@{wtype}&{template:npcatk} " + attack_flag + " @{damage_flag} @{npc_name_flag} {{rname=[@{name}](~repeating_npcaction-l_npc_dmg)}} {{rnamec=[@{name}](~repeating_npcaction-l_npc_crit)}} {{type=[Attack](~repeating_npcaction-l_npc_dmg)}} {{typec=[Attack](~repeating_npcaction-l_npc_crit)}} {{r1=[[@{d20}+(@{attack_tohit}+0)]]}} @{rtype}+(@{attack_tohit}+0)]]}} {{description=@{show_desc}}} @{charname_output}"
}
else {
rollbase = "@{wtype}&{template:npcatk} " + attack_flag + " @{damage_flag} @{npc_name_flag} {{rname=[@{name}](~repeating_npcaction_npc_dmg)}} {{rnamec=[@{name}](~repeating_npcaction_npc_crit)}} {{type=[Attack](~repeating_npcaction_npc_dmg)}} {{typec=[Attack](~repeating_npcaction_npc_crit)}} {{r1=[[@{d20}+(@{attack_tohit}+0)]]}} @{rtype}+(@{attack_tohit}+0)]]}} {{description=@{show_desc}}} @{charname_output}";
}
}
else if(dmg1 || dmg2) {
rollbase = "@{wtype}&{template:npcdmg} @{damage_flag} {{dmg1=[[@{attack_damage}+0]]}} {{dmg1type=@{attack_damagetype}}} {{dmg2=[[@{attack_damage2}+0]]}} {{dmg2type=@{attack_damagetype2}}} {{crit1=[[@{attack_crit}+0]]}} {{crit2=[[@{attack_crit2}+0]]}} @{charname_output}"
}
else {
rollbase = "@{wtype}&{template:npcaction} @{npc_name_flag} {{rname=@{name}}} {{description=@{show_desc}}} @{charname_output}"
}
update[repvar + actionid + "_attack_tohitrange"] = attack_tohitrange;
update[repvar + actionid + "_attack_onhit"] = onhit;
update[repvar + actionid + "_damage_flag"] = damage_flag;
update[repvar + actionid + "_attack_crit"] = crit1;
update[repvar + actionid + "_attack_crit2"] = crit2;
update[repvar + actionid + "_rollbase"] = rollbase;
setAttrs(update, {silent: true});
});
});
};
var parse_roll_string = function(rollstring) {
var out = {array: [], avg: 0, rolls: []};
if(!rollstring || rollstring === "") {
return out;
}
var rs_regex_initial = /(\-?\d+(?:d\d+)?)/ig;
var rs_regex_repeating = /([\+\-])(\-?\d+(?:d\d+)?)/ig;
var rs_nospace = rollstring.replace(/\s/g, '');
var rs_initial = rs_regex_initial.exec(rs_nospace);
if(rs_initial) {
out.array.push(rs_initial[1]);
rs_regex_repeating.lastIndex = rs_regex_initial.lastIndex;
var rs_repeating;
while(rs_repeating = rs_regex_repeating.exec(rs_nospace)) {
out.array.push(rs_repeating[1], rs_repeating[2]);
}
}
var add = true;
var dice_regex = /(\d+)d(\d+)/i;
var dice;
out.array.forEach(function(value, index, array) {
if(value === "+") {
add = true;
} else if(value === "-") {
add = false;
} else if(dice = dice_regex.exec(value)){
// this value is a die roll
var dice_avg = Math.floor(+dice[1] * (+dice[2] / 2 + 0.5));
out.avg += add ? dice_avg : -dice_avg;
out.rolls.push(index);
} else {
// this value is a number
out.avg += add ? +value : -+value;
}
})
return out;
};
var get_class_level = function(class_name, callback) {
getAttrs(["class", "base_level", "multiclass1_flag", "multiclass1", "multiclass1_lvl", "multiclass2_flag", "multiclass2", "multiclass2_lvl", "multiclass3_flag", "multiclass3", "multiclass3_lvl"], function(attrs) {
var regex = new RegExp(class_name, "i");
if(regex.test(attrs["class"])) {
callback(attrs.base_level);
} else if(attrs.multiclass1_flag && attrs.multiclass1_flag !== "0" && regex.test(attrs.multiclass1)) {
callback(attrs.multiclass1_lvl);
} else if(attrs.multiclass2_flag && attrs.multiclass2_flag !== "0" && regex.test(attrs.multiclass2)) {
callback(attrs.multiclass2_lvl);
} else if(attrs.multiclass3_flag && attrs.multiclass3_flag !== "0" && regex.test(attrs.multiclass3)) {
callback(attrs.multiclass3_lvl);
} else {
callback("0");
}
});
};
var update_globaldamage = function(callback) {
getSectionIDs("damagemod", function(ids) {
if(ids) {
var fields = {};
var attr_name_list = [];
ids.forEach(function(id) {
fields[id] = {};
attr_name_list.push(`repeating_damagemod_${id}_global_damage_active_flag`, `repeating_damagemod_${id}_global_damage_rollstring`, `repeating_damagemod_${id}_global_damage_type`);
});
getAttrs(attr_name_list, function(attrs) {
var regex = /^repeating_damagemod_(.+)_global_damage_(active_flag|rollstring|type)$/;
_.each(attrs, function(obj, name) {
var r = regex.exec(name);
if(r) {
fields[r[1]][r[2]] = obj;
}
});
var update = {global_damage_mod_roll: "", global_damage_mod_crit: "", global_damage_mod_type: ""};
_.each(fields, function(element) {
if(element.active_flag != "0") {
if(element.rollstring && element.rollstring !== "") { update["global_damage_mod_roll"] += element.rollstring + "+"; }
if(element.type && element.type !== "") { update["global_damage_mod_type"] += element.type + "/"; }
}
});
update["global_damage_mod_roll"] = update["global_damage_mod_roll"].replace(/\+(?=$)/, '');
update["global_damage_mod_type"] = update["global_damage_mod_type"].replace(/\/(?=$)/, '');
// Remove any non-roll damage modifiers from the global damage modifier for the crit rolls
// Will also remove any labels attached to these non-roll damage modifiers
update["global_damage_mod_crit"] = update["global_damage_mod_roll"].replace(/(?:[+\-*\/%]|\*\*|^)\s*\d+(?:\[.*?])?(?!d\d+)/gi, '')
// If what was just replace removed the first damage modifier, remove any now precending plus signs
.replace(/(?:^\+)/i, '');
setAttrs(update, {silent:true}, function() {
update_attacks("all");
if(typeof callback == "function") callback();
});
});
}
});
};
var update_globalattack = function(callback) {
getSectionIDs("tohitmod", function(ids) {
if(ids) {
var fields = {};
var attr_name_list = [];
ids.forEach(function(id) {
fields[id] = {};
attr_name_list.push(`repeating_tohitmod_${id}_global_attack_active_flag`, `repeating_tohitmod_${id}_global_attack_rollstring`);
});
getAttrs(attr_name_list, function(attrs) {
var regex = /^repeating_tohitmod_(.+)_global_attack_(active_flag|rollstring)$/;
_.each(attrs, function(obj, name) {
var r = regex.exec(name);
if(r) {
fields[r[1]][r[2]] = obj;
}
});
var update = {global_attack_mod: ""};
_.each(fields, function(element) {
if(element.active_flag != "0") {
if(element.rollstring && element.rollstring !== "") { update["global_attack_mod"] += element.rollstring + "+"; }
}
});
if(update["global_attack_mod"] !== "") {
update["global_attack_mod"] = "[[" + update["global_attack_mod"].replace(/\+(?=$)/, '') + "]]";
}
setAttrs(update, {silent:true}, function() {
if(typeof callback == "function") callback();
});
});
}
});
};
var update_globalsaves = function(callback) {
getSectionIDs("savemod", function(ids) {
if(ids) {
var fields = {};
var attr_name_list = [];
ids.forEach(function(id) {
fields[id] = {};
attr_name_list.push(`repeating_savemod_${id}_global_save_active_flag`, `repeating_savemod_${id}_global_save_rollstring`);
});
getAttrs(attr_name_list, function(attrs) {
var regex = /^repeating_savemod_(.+)_global_save_(active_flag|rollstring)$/;
_.each(attrs, function(obj, name) {
var r = regex.exec(name);
if(r) {
fields[r[1]][r[2]] = obj;
}
});
var update = {global_save_mod: ""};
_.each(fields, function(element) {
if(element.active_flag != "0") {
if(element.rollstring && element.rollstring !== "") { update["global_save_mod"] += element.rollstring + "+"; }
}
});
if(update["global_save_mod"] !== "") {
update["global_save_mod"] = "[[" + update["global_save_mod"].replace(/\+(?=$)/, '') + "]]";
}
setAttrs(update, {silent:true}, function() {
if(typeof callback == "function") callback();
});
});
}
});
};
var update_globalskills = function(callback) {
getSectionIDs("skillmod", function(ids) {
if(ids) {
var fields = {};
var attr_name_list = [];
ids.forEach(function(id) {
fields[id] = {};
attr_name_list.push(`repeating_skillmod_${id}_global_skill_active_flag`, `repeating_skillmod_${id}_global_skill_rollstring`);
});
getAttrs(attr_name_list, function(attrs) {
var regex = /^repeating_skillmod_(.+)_global_skill_(active_flag|rollstring)$/;
_.each(attrs, function(obj, name) {
var r = regex.exec(name);
if(r) {
fields[r[1]][r[2]] = obj;
}
});
var update = {global_skill_mod: ""};
_.each(fields, function(element) {
if(element.active_flag != "0") {
if(element.rollstring && element.rollstring !== "") { update["global_skill_mod"] += element.rollstring + "+"; }
}
});
if(update["global_skill_mod"] !== "") {
update["global_skill_mod"] = "[[" + update["global_skill_mod"].replace(/\+(?=$)/, '') + "]]";
}
setAttrs(update, {silent:true}, function() {
if(typeof callback == "function") callback();
});
});
}
});
};
on("change:strength_base change:strength_bonus", function() {
update_attr("strength");
});
on("change:strength", function() {
update_mod("strength");
check_customac("Strength");
update_weight();
});
on("change:dexterity_base change:dexterity_bonus", function() {
update_attr("dexterity");
update_initiative();
});
on("change:dexterity", function() {
update_mod("dexterity");
check_customac("Dexterity");
});
on("change:constitution_base change:constitution_bonus", function() {
update_attr("constitution");
});
on("change:constitution", function() {
update_mod("constitution");
check_customac("Constitution");
});
on("change:intelligence_base change:intelligence_bonus", function() {
update_attr("intelligence");
});
on("change:intelligence", function() {
update_mod("intelligence");
check_customac("Intelligence");
});
on("change:wisdom_base change:wisdom_bonus", function() {
update_attr("wisdom");
});
on("change:wisdom", function() {
update_mod("wisdom");
check_customac("Wisdom");
});
on("change:charisma_base change:charisma_bonus", function() {
update_attr("charisma");
});
on("change:charisma", function() {
update_mod("charisma");
check_customac("Charisma");
});
on("change:strength_mod", function() {
update_save("strength");
update_skills(["athletics"]);
update_attacks("strength");
update_tool("strength");
update_power_info("strength");
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_boost", "ship_ram"]);
update_ship_dice();
}
else {
return;
}
});
});
on("change:dexterity_mod", function() {
update_save("dexterity");
update_skills(["acrobatics", "sleight_of_hand", "stealth", "ship_hide", "ship_maneuvering"]);
update_attacks("dexterity");
update_tool("dexterity");
update_power_info("dexterity");
update_ac();
update_initiative();
});
on("change:constitution_mod", function() {
update_save("constitution");
update_attacks("constitution");
update_tool("constitution");
update_power_info("constitution");
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_patch", "ship_regulation"]);
update_ship_suite_capacity();
update_ship_dice();
}
else {
return;
}
});
});
on("change:intelligence_mod", function() {
update_save("intelligence");
update_skills(["technology", "lore", "investigation", "nature", "piloting", "ship_astrogation", "ship_data", "ship_probe"]);
update_attacks("intelligence");
update_tool("intelligence");
update_power_info("intelligence");
});
on("change:wisdom_mod", function() {
update_save("wisdom");
update_skills(["animal_handling", "insight", "medicine", "perception", "survival", "ship_scan"]);
update_attacks("wisdom");
update_tool("wisdom");
update_power_info("wisdom");
});
on("change:charisma_mod", function() {
update_save("charisma");
update_skills(["deception", "intimidation", "performance", "persuasion", "ship_impress", "ship_interfere", "ship_menace", "ship_swindle"]);
update_attacks("charisma");
update_tool("charisma");
update_power_info("charisma");
});
on("change:strength_save_prof change:strength_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("strength");
});
on("change:dexterity_save_prof change:dexterity_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("dexterity");
});
on("change:constitution_save_prof change:constitution_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("constitution");
});
on("change:intelligence_save_prof change:intelligence_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("intelligence");
});
on("change:wisdom_save_prof change:wisdom_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("wisdom");
});
on("change:charisma_save_prof change:charisma_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("charisma");
});
on("change:globalsavemod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_all_saves();
});
on("change:death_save_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
update_save("death");
});
on("change:acrobatics_prof change:acrobatics_type change:acrobatics_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["acrobatics"]);
}
});
});
on("change:animal_handling_prof change:animal_handling_type change:animal_handling_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["animal_handling"]);
}
});
});
on("change:technology_prof change:technology_type change:technology_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["technology"]);
}
});
});
on("change:athletics_prof change:athletics_type change:athletics_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["athletics"]);
}
});
});
on("change:deception_prof change:deception_type change:deception_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["deception"]);
}
});
});
on("change:lore_prof change:lore_type change:lore_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["lore"]);
}
});
});
on("change:insight_prof change:insight_type change:insight_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["insight"]);
}
});
});
on("change:intimidation_prof change:intimidation_type change:intimidation_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["intimidation"]);
}
});
});
on("change:investigation_prof change:investigation_type change:investigation_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["investigation"]);
}
});
});
on("change:medicine_prof change:medicine_type change:medicine_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["medicine"]);
}
});
});
on("change:nature_prof change:nature_type change:nature_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["nature"]);
}
});
});
on("change:perception_prof change:perception_type change:perception_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["perception"]);
}
});
});
on("change:performance_prof change:performance_type change:performance_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["performance"]);
}
});
});
on("change:persuasion_prof change:persuasion_type change:persuasion_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["persuasion"]);
}
});
});
on("change:piloting_prof change:piloting_type change:piloting_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["piloting"]);
}
});
});
on("change:sleight_of_hand_prof change:sleight_of_hand_type change:sleight_of_hand_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["sleight_of_hand"]);
}
});
});
on("change:stealth_prof change:stealth_type change:stealth_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["stealth"]);
}
});
});
on("change:survival_prof change:survival_type change:survival_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_skills(["survival"]);
}
});
});
//Begin ship based skill proficency change CATCHERS
on("change:ship_boost_prof change:ship_boost_type change:ship_boost_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_boost"]);
}
else {
return;
}
});
});
on("change:ship_ram_prof change:ship_ram_type change:ship_ram_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_ram"]);
}
else {
return;
}
});
});
on("change:ship_maneuvering_prof change:ship_maneuvering_type change:ship_maneuvering_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_maneuvering"]);
}
else {
return;
}
});
});
on("change:ship_patch_prof change:ship_patch_type change:ship_patch_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_patch"]);
}
else {
return;
}
});
});
on("change:ship_hide_prof change:ship_hide_type change:ship_hide_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_hide"]);
}
else {
return;
}
});
});
on("change:ship_regulation_prof change:ship_regulation_type change:ship_regulation_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_regulation"]);
}
else {
return;
}
});
});
on("change:ship_astrogation_prof change:ship_astrogation_type change:ship_astrogation_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_astrogation"]);
}
else {
return;
}
});
});
on("change:ship_data_prof change:ship_data_type change:ship_data_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_data"]);
}
else {
return;
}
});
});
on("change:ship_probe_prof change:ship_probe_type change:ship_probe_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_probe"]);
}
else {
return;
}
});
});
on("change:ship_scan_prof change:ship_scan_type change:ship_scan_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_scan"]);
}
else {
return;
}
});
});
on("change:ship_impress_prof change:ship_impress_type change:ship_impress_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_impress"]);
}
else {
return;
}
});
});
on("change:ship_interfere_prof change:ship_interfere_type change:ship_interfere_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_interfere"]);
}
else {
return;
}
});
});
on("change:ship_menace_prof change:ship_menace_type change:ship_menace_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_menace"]);
}
else {
return;
}
});
});
on("change:ship_swindle_prof change:ship_swindle_type change:ship_swindle_flat", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_skills(["ship_swindle"]);
}
else {
return;
}
});
});
on("change:ship_reactor", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_pwr_die_recovery();
update_ship_capacity();
}
else {
return;
}
});
});
on("change:ship_pwr_coupling", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {return;};
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
update_pwr_die_capacity();
}
else {
return;
}
});
});
on("change:repeating_tool:toolname change:repeating_tool:toolbonus_base change:repeating_tool:toolattr_base change:repeating_tool:tool_mod", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {
return;
}
var tool_id = eventinfo.sourceAttribute.substring(15, 35);
update_tool(tool_id);
});
on("change:repeating_attack:atkname change:repeating_attack:atkflag change:repeating_attack:atkattr_base change:repeating_attack:atkmod change:repeating_attack:atkpower change:repeating_attack:atkprofflag change:repeating_attack:dmgflag change:repeating_attack:dmgbase change:repeating_attack:dmgattr change:repeating_attack:dmgmod change:repeating_attack:dmgtype change:repeating_attack:dmg2flag change:repeating_attack:dmg2base change:repeating_attack:dmg2attr change:repeating_attack:dmg2mod change:repeating_attack:dmg2type change:repeating_attack:saveflag change:repeating_attack:savedc change:repeating_attack:saveflat change:repeating_attack:dmgcustcrit change:repeating_attack:dmg2custcrit change:repeating_attack:ammo change:repeating_attack:saveattr change:repeating_attack:atkrange", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {
return;
}
var source = eventinfo.sourceAttribute.substr(38);
var attackid = eventinfo.sourceAttribute.substring(17, 37);
if(source == "atkattr_base" || source == "savedc") {
getAttrs(["repeating_attack_powerid", "repeating_attack_powerlevel"], function(v) {
set = {};
if(v.repeating_attack_powerid && v.repeating_attack_powerid != "" && v.repeating_attack_powerlevel && v.repeating_attack_powerlevel != "") {
var newVal = eventinfo.newValue == "power" ? "power" : _.last(eventinfo.newValue.split("_")[0].split("{"));
set["repeating_attack_atkattr_base"] = newVal == "power" ? "power" : "@{" + newVal + "_mod}";
set["repeating_attack_savedc"] = newVal == "power" ? "power" : "(@{" + newVal + "_mod}+8+@{pb})";
set["repeating_power-" + v.repeating_attack_powerlevel + "_" + v.repeating_attack_powerid + "_power_ability"] = newVal == "power" ? "power" : "@{" + newVal + "_mod}+";
}
setAttrs(set, function() {
update_attacks(attackid);
});
});
} else {
update_attacks(attackid);
}
});
on("change:repeating_damagemod remove:repeating_damagemod", function(eventinfo) {
update_globaldamage();
});
on("change:global_damage_mod_flag", function(eventinfo) {
if(eventinfo.newValue === "1") {
getSectionIDs("damagemod", function(ids) {
if(!ids || ids.length === 0) {
var update = {};
var rowid = generateRowID();
update[`repeating_damagemod_${rowid}_global_damage_active_flag`] = "1";
update[`repeating_damagemod_${rowid}_global_damage_rollstring`] = "1d6[SNEAK ATTACK]";
update[`repeating_damagemod_${rowid}_global_damage_type`] = "Sneak";
setAttrs(update);
}
});
}
});
on("change:exhaustion_toggle", function(eventinfo) {
if(eventinfo.newValue !== "0") {
getAttrs(["exhaustion_level"], function(attrs) {
if(!attrs.exhaustion_level || attrs.exhaustion_level === "") {
var update = {};
update.exhaustion_level = "0";
setAttrs(update);
}
});
}
});
on("change:exhaustion_level", function() {
var update = {
"exhaustion_1": "",
"exhaustion_2": "",
"exhaustion_3": "",
"exhaustion_4": "",
"exhaustion_5": "",
"exhaustion_6": ""
};
getAttrs(["exhaustion_level"], function(attrs) {
switch(attrs["exhaustion_level"]) {
case "6":
update["exhaustion_6"] = "• " + getTranslationByKey("exhaustion-6");
case "5":
update["exhaustion_5"] = "• " + getTranslationByKey("exhaustion-5");
case "4":
update["exhaustion_4"] = "• " + getTranslationByKey("exhaustion-4");
case "3":
update["exhaustion_3"] = "• " + getTranslationByKey("exhaustion-3");
case "2":
update["exhaustion_2"] = "• " + getTranslationByKey("exhaustion-2");
case "1":
update["exhaustion_1"] = "• " + getTranslationByKey("exhaustion-1");
break;
default:
update["exhaustion_1"] = "• " + getTranslationByKey("exhaustion-0");
break;
}
setAttrs(update, {silent: true});
});
});
on("change:race change:subrace", function(eventinfo) {
update_race_display();
});
on("change:repeating_inventory:hasattack", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_inventory_" + itemid + "_hasattack", "repeating_inventory_" + itemid + "_itemattackid"], function(v) {
var attackid = v["repeating_inventory_" + itemid + "_itemattackid"];
var hasattack = v["repeating_inventory_" + itemid + "_hasattack"];
if(attackid && attackid != "" && hasattack == 0) {
remove_attack(attackid);
}
else if(hasattack == 1) {
create_attack_from_item(itemid);
};
});
})
on("change:repeating_hiddeninventory:hasattack", function(eventinfo) {
if(eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_hiddeninventory_" + itemid + "_hasattack", "repeating_hiddeninventory_" + itemid + "_itemattackid"], function(v) {
var attackid = v["repeating_hiddeninventory_" + itemid + "_itemattackid"];
var hasattack = v["repeating_hiddeninventory_" + itemid + "_hasattack"];
if(attackid && attackid != "" && hasattack == 0) {
remove_attack(attackid);
}
else if(hasattack == 1) {
create_attack_from_item(itemid, {hidden: true});
};
});
})
on("change:repeating_hiddeninventory:itemname change:repeating_hiddeninventory:itemproperties change:repeating_hiddeninventory:itemmodifiers change:repeating_hiddeninventory:itemcount", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_hiddeninventory_" + itemid + "_itemattackid", "repeating_hiddeninventory_" + itemid + "_itemresourceid"], function(v) {
var attackid = v["repeating_hiddeninventory_" + itemid + "_itemattackid"];
var resourceid = v["repeating_hiddeninventory_" + itemid + "_itemresourceid"];
if(attackid) {
update_attack_from_item(itemid, attackid, {hidden: true});
}
if(resourceid) {
update_resource_from_item(itemid, resourceid, false, {hidden: true});
}
});
});
on("change:repeating_hiddeninventory:useasresource", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_hiddeninventory_" + itemid + "_useasresource", "repeating_hiddeninventory_" + itemid + "_itemresourceid"], function(v) {
var useasresource = v["repeating_hiddeninventory_" + itemid + "_useasresource"];
var resourceid = v["repeating_hiddeninventory_" + itemid + "_itemresourceid"];
if(useasresource == 1) {
create_resource_from_item(itemid, {hidden: true});
}
else {
remove_resource(resourceid);
};
});
});
on("change:repeating_inventory:itemname change:repeating_inventory:itemproperties change:repeating_inventory:itemmodifiers change:repeating_inventory:itemcount", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_inventory_" + itemid + "_itemattackid", "repeating_inventory_" + itemid + "_itemresourceid"], function(v) {
var attackid = v["repeating_inventory_" + itemid + "_itemattackid"];
var resourceid = v["repeating_inventory_" + itemid + "_itemresourceid"];
if(attackid) {
update_attack_from_item(itemid, attackid);
}
if(resourceid) {
update_resource_from_item(itemid, resourceid);
}
});
});
on("change:repeating_inventory:useasresource", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_inventory_" + itemid + "_useasresource", "repeating_inventory_" + itemid + "_itemresourceid"], function(v) {
var useasresource = v["repeating_inventory_" + itemid + "_useasresource"];
var resourceid = v["repeating_inventory_" + itemid + "_itemresourceid"];
if(useasresource == 1) {
create_resource_from_item(itemid);
}
else {
remove_resource(resourceid);
};
});
});
on("change:other_resource change:other_resource_name change:repeating_resource:resource_left change:repeating_resource:resource_left_name change:repeating_resource:resource_right change:repeating_resource:resource_right_name", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var resourceid = eventinfo.sourceAttribute;
if(eventinfo.sourceAttribute.indexOf("other") > -1) {
resourceid = "other_resource";
}
else if(eventinfo.sourceAttribute.substring(eventinfo.sourceAttribute.length - 5) == "_name") {
resourceid = eventinfo.sourceAttribute.substring(0, eventinfo.sourceAttribute.length - 5);
};
getAttrs([resourceid, resourceid + "_name", resourceid + "_itemid"], function(v) {
if(!v[resourceid + "_name"]) {
remove_resource(resourceid);
}
else if(v[resourceid + "_itemid"] && v[resourceid + "_itemid"] != ""){
update_item_from_resource(resourceid, v[resourceid + "_itemid"]);
};
});
});
on("change:repeating_inventory:itemweight change:repeating_inventory:itemcount change:cp change:sp change:ep change:gp change:pp change:encumberance_setting change:size change:carrying_capacity_mod change:repeating_hiddeninventory:itemweight change:repeating_hiddeninventory:itemcount", function() {
update_weight();
});
on("change:repeating_inventory:itemmodifiers change:repeating_inventory:equipped", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_inventory_" + itemid + "_itemmodifiers"], function(v) {
if(v["repeating_inventory_" + itemid + "_itemmodifiers"]) {
check_itemmodifiers(v["repeating_inventory_" + itemid + "_itemmodifiers"], eventinfo.previousValue);
};
});
});
on("change:repeating_hiddeninventory:itemmodifiers change:repeating_hiddeninventory:equipped", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var itemid = eventinfo.sourceAttribute.substring(20, 40);
getAttrs(["repeating_hiddeninventory_" + itemid + "_itemmodifiers"], function(v) {
if(v["repeating_hiddeninventory_" + itemid + "_itemmodifiers"]) {
check_itemmodifiers(v["repeating_hiddeninventory_" + itemid + "_itemmodifiers"], eventinfo.previousValue);
};
});
});
on("change:globalacmod change:custom_ac_flag change:custom_ac_base change:custom_ac_part1 change:custom_ac_part2", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ac();
});
on("change:repeating_power-cantrip:powername change:repeating_power-1:powername change:repeating_power-1:powerprepared change:repeating_power-2:powername change:repeating_power-2:powerprepared change:repeating_power-3:powername change:repeating_power-3:powerprepared change:repeating_power-4:powername change:repeating_power-4:powerprepared change:repeating_power-5:powername change:repeating_power-5:powerprepared change:repeating_power-6:powername change:repeating_power-6:powerprepared change:repeating_power-7:powername change:repeating_power-7:powerprepared change:repeating_power-8:powername change:repeating_power-8:powerprepared change:repeating_power-9:powername change:repeating_power-9:powerprepared change:repeating_power-cantrip:powerrange change:repeating_power-1:powerrange change:repeating_power-2:powerrange change:repeating_power-3:powerrange change:repeating_power-4:powerrange change:repeating_power-5:powerrange change:repeating_power-6:powerrange change:repeating_power-7:powerrange change:repeating_power-8:powerrange change:repeating_power-9:powerrange change:repeating_power-cantrip:powertarget change:repeating_power-1:powertarget change:repeating_power-2:powertarget change:repeating_power-3:powertarget change:repeating_power-4:powertarget change:repeating_power-5:powertarget change:repeating_power-6:powertarget change:repeating_power-7:powertarget change:repeating_power-8:powertarget change:repeating_power-9:powertarget change:repeating_power-cantrip:powerdamage change:repeating_power-1:powerdamage change:repeating_power-2:powerdamage change:repeating_power-3:powerdamage change:repeating_power-4:powerdamage change:repeating_power-5:powerdamage change:repeating_power-6:powerdamage change:repeating_power-7:powerdamage change:repeating_power-8:powerdamage change:repeating_power-9:powerdamage change:repeating_power-cantrip:powerdamagetype change:repeating_power-1:powerdamagetype change:repeating_power-2:powerdamagetype change:repeating_power-3:powerdamagetype change:repeating_power-4:powerdamagetype change:repeating_power-5:powerdamagetype change:repeating_power-6:powerdamagetype change:repeating_power-7:powerdamagetype change:repeating_power-8:powerdamagetype change:repeating_power-9:powerdamagetype change:repeating_power-cantrip:powerdamage2 change:repeating_power-1:powerdamage2 change:repeating_power-2:powerdamage2 change:repeating_power-3:powerdamage2 change:repeating_power-4:powerdamage2 change:repeating_power-5:powerdamage2 change:repeating_power-6:powerdamage2 change:repeating_power-7:powerdamage2 change:repeating_power-8:powerdamage2 change:repeating_power-9:powerdamage2 change:repeating_power-cantrip:powerdamagetype2 change:repeating_power-1:powerdamagetype2 change:repeating_power-2:powerdamagetype2 change:repeating_power-3:powerdamagetype2 change:repeating_power-4:powerdamagetype2 change:repeating_power-5:powerdamagetype2 change:repeating_power-6:powerdamagetype2 change:repeating_power-7:powerdamagetype2 change:repeating_power-8:powerdamagetype2 change:repeating_power-9:powerdamagetype2 change:repeating_power-cantrip:powerhealing change:repeating_power-1:powerhealing change:repeating_power-2:powerhealing change:repeating_power-3:powerhealing change:repeating_power-4:powerhealing change:repeating_power-5:powerhealing change:repeating_power-6:powerhealing change:repeating_power-7:powerhealing change:repeating_power-8:powerhealing change:repeating_power-9:powerhealing change:repeating_power-cantrip:powerdmgmod change:repeating_power-1:powerdmgmod change:repeating_power-2:powerdmgmod change:repeating_power-3:powerdmgmod change:repeating_power-4:powerdmgmod change:repeating_power-5:powerdmgmod change:repeating_power-6:powerdmgmod change:repeating_power-7:powerdmgmod change:repeating_power-8:powerdmgmod change:repeating_power-9:powerdmgmod change:repeating_power-cantrip:powersave change:repeating_power-1:powersave change:repeating_power-2:powersave change:repeating_power-3:powersave change:repeating_power-4:powersave change:repeating_power-5:powersave change:repeating_power-6:powersave change:repeating_power-7:powersave change:repeating_power-8:powersave change:repeating_power-9:powersave change:repeating_power-cantrip:powersavesuccess change:repeating_power-1:powersavesuccess change:repeating_power-2:powersavesuccess change:repeating_power-3:powersavesuccess change:repeating_power-4:powersavesuccess change:repeating_power-5:powersavesuccess change:repeating_power-6:powersavesuccess change:repeating_power-7:powersavesuccess change:repeating_power-8:powersavesuccess change:repeating_power-9:powersavesuccess change:repeating_power-cantrip:powerhldie change:repeating_power-1:powerhldie change:repeating_power-2:powerhldie change:repeating_power-3:powerhldie change:repeating_power-4:powerhldie change:repeating_power-5:powerhldie change:repeating_power-6:powerhldie change:repeating_power-7:powerhldie change:repeating_power-8:powerhldie change:repeating_power-9:powerhldie change:repeating_power-cantrip:powerhldietype change:repeating_power-1:powerhldietype change:repeating_power-2:powerhldietype change:repeating_power-3:powerhldietype change:repeating_power-4:powerhldietype change:repeating_power-5:powerhldietype change:repeating_power-6:powerhldietype change:repeating_power-7:powerhldietype change:repeating_power-8:powerhldietype change:repeating_power-9:powerhldietype change:repeating_power-cantrip:power_updateflag change:repeating_power-1:power_updateflag change:repeating_power-2:power_updateflag change:repeating_power-3:power_updateflag change:repeating_power-4:power_updateflag change:repeating_power-5:power_updateflag change:repeating_power-6:power_updateflag change:repeating_power-7:power_updateflag change:repeating_power-8:power_updateflag change:repeating_power-9:power_updateflag change:repeating_power-cantrip:powerattack change:repeating_power-1:powerattack change:repeating_power-2:powerattack change:repeating_power-3:powerattack change:repeating_power-4:powerattack change:repeating_power-5:powerattack change:repeating_power-6:powerattack change:repeating_power-7:powerattack change:repeating_power-8:powerattack change:repeating_power-9:powerattack change:repeating_power-cantrip:powerhlbonus change:repeating_power-1:powerhlbonus change:repeating_power-2:powerhlbonus change:repeating_power-3:powerhlbonus change:repeating_power-4:powerhlbonus change:repeating_power-5:powerhlbonus change:repeating_power-6:powerhlbonus change:repeating_power-7:powerhlbonus change:repeating_power-8:powerhlbonus change:repeating_power-9:powerhlbonus change:repeating_power-cantrip:includedesc change:repeating_power-1:includedesc change:repeating_power-2:includedesc change:repeating_power-3:includedesc change:repeating_power-4:includedesc change:repeating_power-5:includedesc change:repeating_power-6:includedesc change:repeating_power-7:includedesc change:repeating_power-8:includedesc change:repeating_power-9:includedesc change:repeating_power-cantrip:powerathigherlevels change:repeating_power-1:powerathigherlevels change:repeating_power-2:powerathigherlevels change:repeating_power-3:powerathigherlevels change:repeating_power-4:powerathigherlevels change:repeating_power-5:powerathigherlevels change:repeating_power-6:powerathigherlevels change:repeating_power-7:powerathigherlevels change:repeating_power-8:powerathigherlevels change:repeating_power-9:powerathigherlevels change:repeating_power-cantrip:powerdescription change:repeating_power-1:powerdescription change:repeating_power-2:powerdescription change:repeating_power-3:powerdescription change:repeating_power-4:powerdescription change:repeating_power-5:powerdescription change:repeating_power-6:powerdescription change:repeating_power-7:powerdescription change:repeating_power-8:powerdescription change:repeating_power-9:powerdescription change:repeating_power-cantrip:innate change:repeating_power-1:innate change:repeating_power-2:innate change:repeating_power-3:innate change:repeating_power-4:innate change:repeating_power-5:innate change:repeating_power-6:innate change:repeating_power-7:innate change:repeating_power-8:innate change:repeating_power-9:innate change:repeating_power-cantrip:power_ability change:repeating_power-1:power_ability change:repeating_power-2:power_ability change:repeating_power-3:power_ability change:repeating_power-4:power_ability change:repeating_power-5:power_ability change:repeating_power-6:power_ability change:repeating_power-7:power_ability change:repeating_power-8:power_ability change:repeating_power-9:power_ability", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var regex_result = /^(repeating_power-(?:cantrip|\d)_[^_]+)_.+$/.exec(eventinfo.sourceAttribute);
if(regex_result) {
var repeating_source = regex_result[1];
getAttrs([repeating_source + "_powerattackid", repeating_source + "_powerlevel"], function(v) {
var powerid = repeating_source.slice(-20);
var attackid = v[repeating_source + "_powerattackid"];
var lvl = v[repeating_source + "_powerlevel"];
if(attackid && lvl && powerid) {
update_attack_from_power(lvl, powerid, attackid)
}
});
}
});
on("change:repeating_power-cantrip:poweroutput change:repeating_power-1:poweroutput change:repeating_power-2:poweroutput change:repeating_power-3:poweroutput change:repeating_power-4:poweroutput change:repeating_power-5:poweroutput change:repeating_power-6:poweroutput change:repeating_power-7:poweroutput change:repeating_power-8:poweroutput change:repeating_power-9:poweroutput", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var repeating_source = eventinfo.sourceAttribute.substring(0, eventinfo.sourceAttribute.lastIndexOf('_'));
getAttrs([repeating_source + "_powerattackid", repeating_source + "_powerlevel", repeating_source + "_poweroutput", repeating_source + "_powerattackid", repeating_source + "_powerathigherlevels","character_id"], function(v) {
var update = {};
var poweroutput = v[repeating_source + "_poweroutput"];
var powerid = repeating_source.slice(-20);
var attackid = v[repeating_source + "_powerattackid"];
var lvl = v[repeating_source + "_powerlevel"];
if(poweroutput && poweroutput === "ATTACK") {
create_attack_from_power(lvl, powerid, v["character_id"]);
}
else if(poweroutput && poweroutput === "POWERCARD" && attackid && attackid != "") {
remove_attack(attackid);
var powerlevel = "@{powerlevel}";
if(v[repeating_source + "_powerathigherlevels"]) {
var lvl = parseInt(v[repeating_source + "_powerlevel"],10);
powerlevel = "?{Cast at what level?";
for(i = 0; i < 10-lvl; i++) {
powerlevel = powerlevel + "|Level " + (parseInt(i, 10) + parseInt(lvl, 10)) + "," + (parseInt(i, 10) + parseInt(lvl, 10));
}
powerlevel = powerlevel + "}";
}
update[repeating_source + "_rollcontent"] = "@{wtype}&{template:power} {{level=@{powerschool} " + powerlevel + "}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}";
}
setAttrs(update, {silent: true});
});
});
on("change:repeating_power-cantrip:powerathigherlevels change:repeating_power-1:powerathigherlevels change:repeating_power-2:powerathigherlevels change:repeating_power-3:powerathigherlevels change:repeating_power-4:powerathigherlevels change:repeating_power-5:powerathigherlevels change:repeating_power-6:powerathigherlevels change:repeating_power-7:powerathigherlevels change:repeating_power-8:powerathigherlevels change:repeating_power-9:powerathigherlevels", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
var repeating_source = eventinfo.sourceAttribute.substring(0, eventinfo.sourceAttribute.lastIndexOf('_'));
getAttrs([repeating_source + "_powerlevel", repeating_source + "_poweroutput", repeating_source + "_powerathigherlevels"], function(v) {
var update = {};
var poweroutput = v[repeating_source + "_poweroutput"];
var lvl = v[repeating_source + "_powerlevel"];
if(poweroutput && poweroutput === "POWERCARD") {
var powerlevel = "@{powerlevel}";
if(v[repeating_source + "_powerathigherlevels"]) {
var lvl = parseInt(v[repeating_source + "_powerlevel"],10);
powerlevel = "?{Cast at what level?";
for(i = 0; i < 10-lvl; i++) {
powerlevel = powerlevel + "|Level " + (parseInt(i, 10) + parseInt(lvl, 10)) + "," + (parseInt(i, 10) + parseInt(lvl, 10));
}
powerlevel = powerlevel + "}";
}
update[repeating_source + "_rollcontent"] = "@{wtype}&{template:power} {{level=@{powerschool} " + powerlevel + "}} {{name=@{powername}}} {{castingtime=@{powercastingtime}}} {{range=@{powerrange}}} {{target=@{powertarget}}} {{duration=@{powerduration}}} {{description=@{powerdescription}}} {{athigherlevels=@{powerathigherlevels}}} {{innate=@{innate}}} @{powerconcentration} @{charname_output}";
}
setAttrs(update, {silent: true});
});
});
on("change:class change:custom_class change:cust_classname change:cust_hitdietype change:cust_powercasting_ability change:cust_powerslots change:cust_strength_save_prof change:cust_dexterity_save_prof change:cust_constitution_save_prof change:cust_intelligence_save_prof change:cust_wisdom_save_prof change:cust_charisma_save_prof change:subclass change:multiclass1 change:multiclass1_subclass change:multiclass2 change:multiclass2_subclass change:multiclass3 change:multiclass3_subclass" , function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
getAttrs(["npc"], function(v) {
if(v.npc === "2") {
return;
}
else {
update_class();
}
});
});
on("change:base_level change:multiclass1_flag change:multiclass1 change:multiclass1_lvl change:multiclass2_flag change:multiclass2 change:multiclass2_lvl change:multiclass3_flag change:multiclass3 change:multiclass3_lvl change:tech_fighter change:tech_operative", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
set_level();
});
on("change:level_calculations change:caster_level change:lvl1_slots_mod change:lvl2_slots_mod change:lvl3_slots_mod change:lvl4_slots_mod change:lvl5_slots_mod change:lvl6_slots_mod change:lvl7_slots_mod change:lvl8_slots_mod change:lvl9_slots_mod", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
getAttrs(["level_calculations"], function(v) {
if(!v["level_calculations"] || v["level_calculations"] == "on") {
update_power_slots();
};
});
});
on("change:caster_level", function(eventinfo) {
getAttrs(["caster_level","npc"], function(v) {
var casterlvl = v["caster_level"] && !isNaN(parseInt(v["caster_level"], 10)) ? parseInt(v["caster_level"], 10) : 0;
if(v["npc"] && v["npc"] == 1 && casterlvl > 0) {
setAttrs({level: casterlvl})
};
});
});
on("change:pb", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
getAttrs(["npc"], function(v) {
if(v.npc === "2"){
update_pb();
}
});
});
on("change:pb_type change:pb_custom", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
getAttrs(["npc"], function(v) {
if(v.npc !== "2"){
update_pb();
}
});
});
on("change:dtype", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_attacks("all");
update_npc_action("all");
});
on("change:jack_of_all_trades", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_jack_attr();
update_all_ability_checks();
});
on("change:initmod change:init_tiebreaker", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_initiative();
});
on("change:powercasting_ability change:power_dc_mod change:globalpowermod", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_power_info();
});
on("change:npc_challenge", function() {
update_challenge();
});
on("change:npc_str_save_base change:npc_dex_save_base change:npc_con_save_base change:npc_int_save_base change:npc_wis_save_base change:npc_cha_save_base", function(eventinfo) {
update_npc_saves();
});
on("change:npc_acrobatics_base change:npc_animal_handling_base change:npc_technology_base change:npc_athletics_base change:npc_deception_base change:npc_lore_base change:npc_insight_base change:npc_intimidation_base change:npc_investigation_base change:npc_medicine_base change:npc_nature_base change:npc_perception_base change:npc_performance_base change:npc_persuasion_base change:npc_piloting_base change:npc_sleight_of_hand_base change:npc_stealth_base change:npc_survival_base", function(eventinfo) {
update_npc_skills();
});
on("change:repeating_npcaction:attack_flag change:repeating_npcaction:attack_type change:repeating_npcaction:attack_range change:repeating_npcaction:attack_target change:repeating_npcaction:attack_tohit change:repeating_npcaction:attack_damage change:repeating_npcaction:attack_damagetype change:repeating_npcaction:attack_damage2 change:repeating_npcaction:attack_damagetype2 change:repeating_npcaction-l:attack_flag change:repeating_npcaction-l:attack_type change:repeating_npcaction-l:attack_range change:repeating_npcaction-l:attack_target change:repeating_npcaction-l:attack_tohit change:repeating_npcaction-l:attack_damage change:repeating_npcaction-l:attack_damagetype change:repeating_npcaction-l:attack_damage2 change:repeating_npcaction-l:attack_damagetype2 change:repeating_npcaction:show_desc change:repeating_npcaction-l:show_desc change:repeating_npcaction:description change:repeating_npcaction-l:description", function(eventinfo) {
var actionid = eventinfo.sourceAttribute.substring(20, 40);
var legendary = eventinfo.sourceAttribute.indexOf("npcaction-l") > -1 ? true : false;
if(legendary) {
actionid = eventinfo.sourceAttribute.substring(22, 42);
}
update_npc_action(actionid, legendary);
});
on("change:core_die change:precognition_flag", function() {
getAttrs(["core_die","precognition_flag"], function(v) {
core = v.core_die && v.core_die != "" ? v.core_die : "1d20";
luck = v.precognition_flag && v.precognition_flag === "1" ? "ro<1" : "";
update = {};
update["d20"] = core + luck;
if(!v.core_die || v.core_die === "") {
update["core_die"] = "1d20";
}
setAttrs(update);
});
});
on("change:repeating_skillmod", function(eventinfo) {
update_globalskills();
});
on("change:global_skill_mod_flag", function(eventinfo) {
if(eventinfo.newValue === "1") {
getSectionIDs("skillmod", function(ids) {
if(!ids || ids.length === 0) {
var update = {};
var rowid = generateRowID();
update[`repeating_skillmod_${rowid}_global_skill_rollstring`] = "1d4[GUIDANCE]";
update[`repeating_skillmod_${rowid}_global_skill_active_flag`] = "1";
setAttrs(update);
}
});
}
});
on("change:repeating_savemod", function(eventinfo) {
update_globalsaves();
});
on("change:global_save_mod_flag", function(eventinfo) {
if(eventinfo.newValue === "1") {
getSectionIDs("savemod", function(ids) {
if(!ids || ids.length === 0) {
var update = {};
var rowid = generateRowID();
update[`repeating_savemod_${rowid}_global_save_rollstring`] = "1d4[BLESS]";
update[`repeating_savemod_${rowid}_global_save_active_flag`] = "1";
setAttrs(update);
}
});
}
});
on("change:repeating_tohitmod", function(eventinfo) {
update_globalattack();
});
on("change:global_attack_mod_flag", function(eventinfo) {
if(eventinfo.newValue === "1") {
getSectionIDs("tohitmod", function(ids) {
if(!ids || ids.length === 0) {
var update = {};
var rowid = generateRowID();
update[`repeating_tohitmod_${rowid}_global_attack_rollstring`] = "1d4[BLESS]";
update[`repeating_tohitmod_${rowid}_global_attack_active_flag`] = "1";
setAttrs(update);
}
});
}
});
on("change:passiveperceptionmod", function(eventinfo) {
update_passive_perception();
});
on("remove:repeating_inventory", function(eventinfo) {
var itemid = eventinfo.sourceAttribute.substring(20, 40);
var attackids = eventinfo.removedInfo && eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemattackid"] ? eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemattackid"] : undefined;
var resourceid = eventinfo.removedInfo && eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemresourceid"] ? eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemresourceid"] : undefined;
if(attackids) {
_.each(attackids.split(","), function(value) { remove_attack(value); });
}
if(resourceid) {
remove_resource(resourceid);
}
if(eventinfo.removedInfo && eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemmodifiers"]) {
check_itemmodifiers(eventinfo.removedInfo["repeating_inventory_" + itemid + "_itemmodifiers"]);
}
update_weight();
});
on("remove:repeating_hiddeninventory", function(eventinfo) {
var itemid = eventinfo.sourceAttribute.substring(20, 40);
var attackids = eventinfo.removedInfo && eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemattackid"] ? eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemattackid"] : undefined;
var resourceid = eventinfo.removedInfo && eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemresourceid"] ? eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemresourceid"] : undefined;
if(attackids) {
_.each(attackids.split(","), function(value) { remove_attack(value); });
}
if(resourceid) {
remove_resource(resourceid);
}
if(eventinfo.removedInfo && eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemmodifiers"]) {
check_itemmodifiers(eventinfo.removedInfo["repeating_hiddeninventory_" + itemid + "_itemmodifiers"]);
}
update_weight();
});
on("remove:repeating_attack", function(eventinfo) {
var attackid = eventinfo.sourceAttribute.substring(17, 37);
var itemid = eventinfo.removedInfo["repeating_attack_" + attackid + "_itemid"];
var powerid = eventinfo.removedInfo["repeating_attack_" + attackid + "_powerid"];
var powerlvl = eventinfo.removedInfo["repeating_attack_" + attackid + "_powerlevel"];
if(itemid) {
getAttrs(["repeating_inventory_" + itemid + "_hasattack"], function(v) {
if(v["repeating_inventory_" + itemid + "_hasattack"] && v["repeating_inventory_" + itemid + "_hasattack"] == 1) {
var update = {};
update["repeating_inventory_" + itemid + "_itemattackid"] = "";
update["repeating_inventory_" + itemid + "_hasattack"] = 0;
setAttrs(update, {silent: true});
}
});
getAttrs(["repeating_hiddeninventory_" + itemid + "_hasattack"], function(v) {
if(v["repeating_hiddeninventory_" + itemid + "_hasattack"] && v["repeating_hiddeninventory_" + itemid + "_hasattack"] == 1) {
var update = {};
update["repeating_hiddeninventory_" + itemid + "_itemattackid"] = "";
update["repeating_hiddeninventory_" + itemid + "_hasattack"] = 0;
setAttrs(update, {silent: true});
}
});
};
if(powerid && powerlvl) {
getAttrs(["repeating_power-" + powerlvl + "_" + powerid + "_poweroutput"], function(v) {
if(v["repeating_power-" + powerlvl + "_" + powerid + "_poweroutput"] && v["repeating_power-" + powerlvl + "_" + powerid + "_poweroutput"] == "ATTACK") {
var update = {};
update["repeating_power-" + powerlvl + "_" + powerid + "_powerattackid"] = "";
update["repeating_power-" + powerlvl + "_" + powerid + "_poweroutput"] = "POWERCARD";
setAttrs(update, {silent: true});
}
});
};
});
on("remove:repeating_resource", function(eventinfo) {
var resourceid = eventinfo.sourceAttribute.substring(19, 39);
var inventory = "repeating_inventory_";
var update = {};
var left_itemid = eventinfo.removedInfo["repeating_resource_" + resourceid + "_resource_left_itemid"];
getAttrs(["repeating_hiddeninventory_" + left_itemid + "_itemname"], function(x) {
if(x["repeating_hiddeninventory_" + left_itemid + "_itemname"]) {
inventory = "repeating_hiddeninventory_";
}
});
if(left_itemid) {
update[inventory + left_itemid + "_useasresource"] = 0;
update[inventory + left_itemid + "_itemresourceid"] = "";
}
inventory = "repeating_inventory_";
var right_itemid = eventinfo.removedInfo["repeating_resource_" + resourceid + "_resource_right_itemid"];
getAttrs(["repeating_hiddeninventory_" + right_itemid + "_itemname"], function(y) {
if(y["repeating_hiddeninventory_" + right_itemid + "_itemname"]) {
inventory = "repeating_hiddeninventory_";
}
});
if(right_itemid) {
update[inventory + right_itemid + "_useasresource"] = 0;
update[inventory + right_itemid + "_itemresourceid"] = "";
}
setAttrs(update, {silent: true});
});
on("remove:repeating_power-cantrip remove:repeating_power-1 remove:repeating_power-2 remove:repeating_power-3 remove:repeating_power-4 remove:repeating_power-5 remove:repeating_power-6 remove:repeating_power-7 remove:repeating_power-8 remove:repeating_power-9", function(eventinfo) {
var attackid = eventinfo.removedInfo[eventinfo.sourceAttribute + "_powerattackid"];
if(attackid) {
remove_attack(attackid);
}
});
on("change:ship_size", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ac();
update_ship_speeds();
update_ship_dice();
update_ship_capacity();
update_ship_suite_capacity();
update_ship_tier_cost();
});
on("change:base_ship_tier", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ship_dice();
update_ship_tier_cost();
});
on("change:pilot_skill", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ac();
});
on("change:system_dmg_lvl", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
switch(eventinfo.newValue) {
case "0":
setAttrs({system_dmg: "None"});
break;
case "1":
setAttrs({system_dmg: "Disadvantage on ability checks."});
break;
case "2":
setAttrs({system_dmg: "Flying speed halved and turning speed doubled."});
break;
case "3":
setAttrs({system_dmg: "Disadvantage on attack rolls and saving throws."});
break;
case "4":
setAttrs({system_dmg: "Hit point maximum, shield point maximum, and shield regeneration rate halved."});
break;
case "5":
setAttrs({system_dmg: "Ship becomes permanently \"used\"."});
break;
case "6":
setAttrs({system_dmg: "Ship suffers catastrophic power failure. All primary systems fail."});
break;
default:
setAttrs({system_dmg: "None"});
break;
}
});
on("change:ship_armor_active_flag change:ship_armor_ac_bonus", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ac();
});
on("change:ship_shield_active_flag change:ship_shield_capacity change:hp_max", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_shield_points();
});
on("change:ship_shield_active_flag change:ship_shield_regen_rate_coefficient change:ship_size", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_shield_regen();
});
on("change:ship_armor change:ship_size", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ac();
update_ship_dice();
});
on("change:ship_shield change:ship_size", function(eventinfo) {
if(eventinfo.sourceType && eventinfo.sourceType === "sheetworker") {
return;
}
update_ship_dice();
});
on("sheet:opened",(eventInfo) =>{
getAttrs(["version"], function(attrs) {
let version = attrs["version"];
update(version);
});
});
/* Update method, will call itself asynchronously to do upgrade of the sheet if needed
Logic is the following :
- Execute the
*/
let update = (fromVersion) => {
let newVersion
switch (fromVersion){
case "2.5":
case "3.0b":
case "3.0-beta":
//Upgrade from 2.5 to 3.0
setAttrs({version:"3.0"},false,update("3.0"))
return;
case "3.0":
default:
console.log("Sw5e sheet updated itself");
return;
}
}
on("clicked:adv_advantage", () =>{
setAttrs({"advantagetoggle":"{{query=1}} {{advantage=1}} {{r2=[[@{d20}"});
});
on("clicked:adv_normal", () =>{
setAttrs({"advantagetoggle":"{{query=1}} {{normal=1}} {{r2=[[0d20"});
});
on("clicked:adv_disadvantage", () =>{
setAttrs({"advantagetoggle":"{{query=1}} {{disadvantage=1}} {{r2=[[@{d20}"});
});
on("clicked:wtype_public", () =>{
setAttrs({"whispertoggle":""});
});
on("clicked:wtype_whisper", () =>{
setAttrs({"whispertoggle":"/w gm"});
});
on("clicked:tab_core", () => {
setAttrs({"tab":"core"});
});
on("clicked:tab_bio", () => {
setAttrs({"tab":"bio"});
});
on("clicked:tab_powers", () => {
setAttrs({"tab":"powers"});
});
on("clicked:tab_options", () => {
setAttrs({"tab":"options"});
});
on("clicked:ship_tab_options", () => {
setAttrs({"ship_tab":"ship-options"});
});
on("clicked:ship_tab_core", () => {
setAttrs({"ship_tab":"ship-core"});
});
on("clicked:ship_tab_mods", () => {
setAttrs({"ship_tab":"ship-mods"});
});
on("clicked:ship_tab_cargo", () => {
setAttrs({"ship_tab":"ship-cargo"});
});
on("clicked:ship_tab_suites", () => {
setAttrs({"ship_tab":"ship-suites"});
});
</script>