mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-11 09:32:33 +00:00
405 lines
567 KiB
HTML
405 lines
567 KiB
HTML
<div class="wrapper relative"><input class="slide-input-pc" type="checkbox" name="attr_is_npc" value="1"><label class="slide-toggle-pc"><span class="slide-cover">···</span><span class="slide-toggle-pc-left" data-i18n="PC"></span><span class="slide-toggle-pc-right" data-i18n="NPC"></span></label><span class="small-label bold pad-l-sm">Shaped v<span name="attr_version" class="bold small-label"></span></span><div class="core-header pc"><div class="shaped-row"><div class="col-40"><div class="dnd-image-wrapper"><img src="http://i.imgur.com/X44kw8b.png" alt="Dungeons & Dragons (5th edition)"></div><div class="character-name"><input type="text" name="attr_character_name"><div class="wrap-box-label" data-i18n="CHARACTER_NAME"></div></div></div><div class="col-60 header-info"><div class="wrap-box"><div class="shaped-row"><div class="col-70 pad-r-lg"><input type="text" name="attr_class_and_level" data-i18n-placeholder="CLASS_AND_LEVEL_PLACEHOLDER" readonly="readonly"> <button type="roll" name="roll_shaped_class" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CLASS_AND_LEVEL}}} {{text_big=@{class_and_level}}}"><div class="wrap-box-label" data-i18n="CLASS_AND_LEVEL"></div></button></div><div class="col-30"><input type="text" name="attr_background"> <button type="roll" name="roll_shaped_background" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{BACKGROUND}}} {{text_big=@{background}}}"><div class="wrap-box-label" data-i18n="BACKGROUND"></div></button></div></div><div class="shaped-row"><div class="col-35 pad-r-lg"><input type="text" name="attr_race"> <button type="roll" name="roll_shaped_race" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{RACE}}} {{text_big=@{race}}}"><div class="wrap-box-label" data-i18n="RACE"></div></button></div><div class="col-35 pad-r-lg"><input type="text" name="attr_alignment"> <button type="roll" name="roll_shaped_alignment" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ALIGNMENT}}} {{text_big=@{alignment}}}"><div class="wrap-box-label" data-i18n="ALIGNMENT"></div></button></div><div class="col-30"><div class="shaped-row flex-end"><div class="col-47"><input type="number" name="attr_xp" class="no-spin" min="0" step="1"></div><div class="col-06 center">/</div><div class="col-47"><span name="attr_xp_next_level" class="pseudo-input border-bottom center"></span></div></div><button type="roll" name="roll_shaped_xp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{EXPERIENCE_POINTS}}} {{text_big=[[@{xp}]]/[[@{xp_next_level}]] for level [[@{level} + 1]]}}"><div class="wrap-box-label" data-i18n="EXPERIENCE_POINTS"></div></button></div></div></div></div></div></div><div class="mar-t-md"></div><input type="radio" name="attr_tab" class="toggle-page-core" value="core" checked="checked"><span class="toggle-page-core button" data-i18n="CORE"></span> <input type="radio" name="attr_tab" class="toggle-page-spells" value="spells"><span class="toggle-page-spells button" data-i18n="SPELLS"></span> <input type="radio" name="attr_tab" class="toggle-page-equipment pc" value="equipment"><span class="toggle-page-equipment button pc" data-i18n="EQUIPMENT"></span> <input type="radio" name="attr_tab" class="toggle-page-character pc" value="character"><span class="toggle-page-character button pc" data-i18n="CHARACTER"></span> <input type="radio" name="attr_tab" class="toggle-page-settings" value="settings"><span class="toggle-page-settings button pictos">y</span> <input type="radio" name="attr_tab" class="toggle-page-all" value="all"><span class="toggle-page-all button" data-i18n="ALL"></span> <input type="checkbox" name="attr_edit_mode" class="toggle-edit-mode mar-l-lg negative-mar-t-eight"><span class="toggle-edit-mode pictos negative-mar-t-eight">p</span><div class="float-right mar-t-smd"><input type="radio" name="attr_roll_setting" class="toggle-roll-normal" value="{{ignore=[[0" checked="checked"><span class="toggle-roll-normal button" data-i18n="NORMAL"></span> <input type="radio" name="attr_roll_setting" class="toggle-roll-advantage" value="adv {{ignore=[[0"><span class="toggle-roll-advantage button" data-i18n="ADVANTAGE"></span> <input type="radio" name="attr_roll_setting" class="toggle-roll-disadvantage" value="dis {{ignore=[[0"><span class="toggle-roll-disadvantage button" data-i18n="DISADVANTAGE"></span></div><input type="hidden" name="attr_has_sorcerer_levels" class="has-sorcerer-levels hidden"> <input type="hidden" name="attr_has_warlock_levels" class="has-warlock-levels hidden"> <input type="checkbox" name="attr_spell_slots_l0_toggle" class="toggle-spell-level-0 hidden"> <input type="checkbox" name="attr_spell_slots_l1_toggle" class="toggle-spell-level-1 hidden"> <input type="checkbox" name="attr_spell_slots_l2_toggle" class="toggle-spell-level-2 hidden"> <input type="checkbox" name="attr_spell_slots_l3_toggle" class="toggle-spell-level-3 hidden"> <input type="checkbox" name="attr_spell_slots_l4_toggle" class="toggle-spell-level-4 hidden"> <input type="checkbox" name="attr_spell_slots_l5_toggle" class="toggle-spell-level-5 hidden"> <input type="checkbox" name="attr_spell_slots_l6_toggle" class="toggle-spell-level-6 hidden"> <input type="checkbox" name="attr_spell_slots_l7_toggle" class="toggle-spell-level-7 hidden"> <input type="checkbox" name="attr_spell_slots_l8_toggle" class="toggle-spell-level-8 hidden"> <input type="checkbox" name="attr_spell_slots_l9_toggle" class="toggle-spell-level-9 hidden"> <input type="hidden" name="attr_roll_info"> <input type="hidden" name="attr_shaped_d20" value="d20"> <input type="hidden" name="attr_d20_mod"> <input type="hidden" name="attr_use_custom_saving_throws" class="toggle-use-custom-saving-throws hidden"><div class="spacer-smd"></div><div class="section-core pc"><div class="shaped-row"><div class="col-30 pad-r-sm"><div class="shaped-row mar-b-smd"><div class="col-29 pad-r-sm"><input type="hidden" name="attr_finesse_mod"><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_strength_check_mod_formula"> <button type="roll" name="roll_shaped_strength_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{STRENGTH} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{strength_check_mod_formula}]]}} @{roll_setting} + @{strength_check_mod_formula}]]}} @{hide_gm_info} @{attacher_strength_check}" tabindex="-1"><div><span class="ability-name" data-i18n="STRENGTH"></span> <input type="hidden" name="attr_strength_mod"> <span name="attr_strength_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_strength_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_strength_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_strength_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_strength" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_strength_bonus" class="no-spin no-border" value="0" step="1"></div></div></div><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_dexterity_check_mod_formula"> <button type="roll" name="roll_shaped_dexterity_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DEXTERITY} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{dexterity_check_mod_formula}]]}} @{roll_setting} + @{dexterity_check_mod_formula}]]}} @{hide_gm_info} @{attacher_dexterity_check}" tabindex="-1"><div><span class="ability-name" data-i18n="DEXTERITY"></span> <input type="hidden" name="attr_dexterity_mod"> <span name="attr_dexterity_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_dexterity_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_dexterity_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_dexterity_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_dexterity" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_dexterity_bonus" class="no-spin no-border" value="0" step="1"></div></div></div><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_constitution_check_mod_formula"> <button type="roll" name="roll_shaped_constitution_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONSTITUTION} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{constitution_check_mod_formula}]]}} @{roll_setting} + @{constitution_check_mod_formula}]]}} @{hide_gm_info} @{attacher_constitution_check}" tabindex="-1"><div><span class="ability-name" data-i18n="CONSTITUTION"></span> <input type="hidden" name="attr_constitution_mod"> <span name="attr_constitution_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_constitution_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_constitution_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_constitution_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_constitution" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_constitution_bonus" class="no-spin no-border" value="0" step="1"></div></div></div><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_intelligence_check_mod_formula"> <button type="roll" name="roll_shaped_intelligence_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INTELLIGENCE} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{intelligence_check_mod_formula}]]}} @{roll_setting} + @{intelligence_check_mod_formula}]]}} @{hide_gm_info} @{attacher_intelligence_check}" tabindex="-1"><div><span class="ability-name" data-i18n="INTELLIGENCE"></span> <input type="hidden" name="attr_intelligence_mod"> <span name="attr_intelligence_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_intelligence_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_intelligence_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_intelligence_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_intelligence" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_intelligence_bonus" class="no-spin no-border" value="0" step="1"></div></div></div><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_wisdom_check_mod_formula"> <button type="roll" name="roll_shaped_wisdom_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WISDOM} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{wisdom_check_mod_formula}]]}} @{roll_setting} + @{wisdom_check_mod_formula}]]}} @{hide_gm_info} @{attacher_wisdom_check}" tabindex="-1"><div><span class="ability-name" data-i18n="WISDOM"></span> <input type="hidden" name="attr_wisdom_mod"> <span name="attr_wisdom_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_wisdom_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_wisdom_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_wisdom_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_wisdom" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_wisdom_bonus" class="no-spin no-border" value="0" step="1"></div></div></div><div class="ability-wrapper wrap-box center"><input type="hidden" name="attr_charisma_check_mod_formula"> <button type="roll" name="roll_shaped_charisma_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CHARISMA} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{charisma_check_mod_formula}]]}} @{roll_setting} + @{charisma_check_mod_formula}]]}} @{hide_gm_info} @{attacher_charisma_check}" tabindex="-1"><div><span class="ability-name" data-i18n="CHARISMA"></span> <input type="hidden" name="attr_charisma_mod"> <span name="attr_charisma_mod_with_sign" class="ability-modifier block center"></span></div></button><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_charisma_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_charisma_check_mod"></span></div><div class="ability-score-wrapper shaped-row no-wrap center vert-center"><span name="attr_charisma_calculated" class="presentation small-label"></span><div class="edit"><input type="number" name="attr_charisma" class="no-spin no-border" min="1" step="1"></div><div class="edit">+</div><div class="edit"><input type="number" name="attr_charisma_bonus" class="no-spin no-border" value="0" step="1"></div></div></div></div><div class="col-71 pad-l-sm"><div class="inspiration wrap-box relative pc mar-b-md"><div class="shaped-row vert-center"><label class="checkbox-label"><input type="checkbox" name="attr_inspiration" value="1"><span></span></label><button type="roll" name="roll_shaped_inspiration" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INSPIRATION}}} {{text_big=[[@{inspiration}]]}}" tabindex="-1"><div class="wrap-box-title" data-i18n="INSPIRATION"></div></button></div></div><div class="proficiency-bonus wrap-box relative mar-t-sm mar-b-md"><button type="roll" name="roll_shaped_pb" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PROFICIENCY_BONUS}}} {{text_big=[[@{pb}]]}}" tabindex="-1"><div class="shaped-row vert-center"><div class="proficiency-bonus-wrapper center"><input type="number" name="attr_PB" class="big-font no-border" readonly="readonly" tabindex="-1"> <input type="hidden" name="attr_exp"> <input type="hidden" name="attr_h_PB" value="[[floor(@{PB}/2)]]"></div><div class="wrap-box-title pad-l-sm" data-i18n="PROFICIENCY_BONUS"></div></div></button></div><div class="saving-throw wrap-box mar-b-smd"><div class="default-saving-throw"><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_strength_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_strength_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_strength_saving_throw_mod"> <button type="roll" name="roll_shaped_strength_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{STRENGTH} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{strength_saving_throw_mod}]]}} @{roll_setting} + @{strength_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_strength_saving_throw}" tabindex="-1"><span name="attr_strength_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="STRENGTH"></span></button></div><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_dexterity_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_dexterity_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_dexterity_saving_throw_mod"> <button type="roll" name="roll_shaped_dexterity_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DEXTERITY} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{dexterity_saving_throw_mod}]]}} @{roll_setting} + @{dexterity_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_dexterity_saving_throw}" tabindex="-1"><span name="attr_dexterity_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="DEXTERITY"></span></button></div><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_constitution_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_constitution_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_constitution_saving_throw_mod"> <button type="roll" name="roll_shaped_constitution_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONSTITUTION} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{constitution_saving_throw_mod}]]}} @{roll_setting} + @{constitution_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_constitution_saving_throw}" tabindex="-1"><span name="attr_constitution_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="CONSTITUTION"></span></button></div><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_intelligence_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_intelligence_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_intelligence_saving_throw_mod"> <button type="roll" name="roll_shaped_intelligence_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INTELLIGENCE} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{intelligence_saving_throw_mod}]]}} @{roll_setting} + @{intelligence_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_intelligence_saving_throw}" tabindex="-1"><span name="attr_intelligence_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="INTELLIGENCE"></span></button></div><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_wisdom_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_wisdom_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_wisdom_saving_throw_mod"> <button type="roll" name="roll_shaped_wisdom_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WISDOM} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{wisdom_saving_throw_mod}]]}} @{roll_setting} + @{wisdom_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_wisdom_saving_throw}" tabindex="-1"><span name="attr_wisdom_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="WISDOM"></span></button></div><div class="shaped-row flex-end"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_charisma_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_charisma_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_charisma_saving_throw_mod"> <button type="roll" name="roll_shaped_charisma_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CHARISMA} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{charisma_saving_throw_mod}]]}} @{roll_setting} + @{charisma_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_charisma_saving_throw}" tabindex="-1"><span name="attr_charisma_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="CHARISMA"></span></button></div></div><div class="custom-saving-throw"><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_fortitude_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_fortitude_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_fortitude_saving_throw_mod"> <button type="roll" name="roll_shaped_fortitude_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{FORTITUDE} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{fortitude_saving_throw_mod}]]}} @{roll_setting} + @{fortitude_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_fortitude_saving_throw}" tabindex="-1"><span name="attr_fortitude_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="FORTITUDE"></span></button></div><div class="shaped-row flex-end pad-b-sm"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_reflex_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_reflex_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_reflex_saving_throw_mod"> <button type="roll" name="roll_shaped_reflex_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{REFLEX} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{reflex_saving_throw_mod}]]}} @{roll_setting} + @{reflex_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_reflex_saving_throw}" tabindex="-1"><span name="attr_reflex_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="REFLEX"></span></button></div><div class="shaped-row flex-end"><div class="center pad-l-sm pad-r-sm"><input type="checkbox" name="attr_will_save_prof" value="@{PB}"></div><div class="col-12 edit"><input type="number" name="attr_will_save_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_will_saving_throw_mod"> <button type="roll" name="roll_shaped_will_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WILL} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{will_saving_throw_mod}]]}} @{roll_setting} + @{will_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_will_saving_throw}" tabindex="-1"><span name="attr_will_saving_throw_mod_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span class="ability-saving-throw-name" data-i18n="WILL"></span></button></div></div><button type="roll" name="roll_shaped_saving_throw" class="wrapper-button" value="/w @{character_name} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SAVING_THROWS}}} {{text_big=@{saving_throw_macro_var_to_use}}}"><div class="wrap-box-title center" data-i18n="SAVING_THROWS"></div></button></div><div class="skills wrap-box mar-b-smd"><input type="checkbox" name="attr_show_passive_skills" class="item-shown hidden"><fieldset class="repeating_skill"><div class="shaped-row no-wrap flex-end"><div class="col-10 no-shrink edit pad-r-sm"><select name="attr_skill_d20"><option value="@{shaped_d20}" data-i18n="NORMAL"></option><option value="2d20@{d20_mod}kh1" data-i18n="ADVANTAGE"></option><option value="2d20@{d20_mod}kl1" data-i18n="DISADVANTAGE"></option></select></div><div class="col-08 skill-select-wrapper no-shrink"><select name="attr_proficiency" class="no-border"><option value="unproficient" data-i18n="SKILL_SELECT_UNPROFICIENT"></option><option value="proficient" data-i18n="SKILL_SELECT_PROFICIENT"></option><option value="expertise" data-i18n="SKILL_SELECT_EXPERTISE"></option></select></div><div class="col-09 edit no-shrink"><input type="number" name="attr_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_skill" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name} (^{@{ability_key}})}} @{roll_info} @{skill_info} {{roll1=[[@{skill_d20} + @{formula}]]}} @{roll_setting} + @{formula}]]}} @{attacher_skill}" tabindex="-1"><div class="shaped-row no-wrap flex-end"><span name="attr_total_with_sign" class="col-2-em input-like center bold border-bottom"></span> <span name="attr_name" class="skill-name presentation pad-l-sm"></span></div></button><div class="col-50 edit"><input type="text" name="attr_name" class="skill-name"></div><input type="hidden" name="attr_formula"> <input type="hidden" name="attr_skill_info"> <input type="hidden" name="attr_ability_key"><div class="skills-ability-selector-wrapper no-shrink pad-l-sm"><div class="shaped-row no-wrap vert-center"><span>(</span><select name="attr_ability" class="skills-ability-selector"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select><span>)</span></div></div><div class="col-09 edit no-shrink"><input type="number" name="attr_passive_bonus" class="no-spin small-label" value="0" step="1"></div><input type="hidden" name="attr_passive"> <button type="roll" name="roll_passive" class="item-to-show" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PASSIVE} @{name} (<span data-i18n=@{ability_key}>@{ability_key}<span>)}} @{roll_info} {{roll1=[[@{passive}]]}} @{hide_gm_info} @{attacher_skill}" tabindex="-1"><div class="shaped-row no-wrap flex-end"><span name="attr_passive" class="col-1-3-em input-like small-label center border-bottom"></span></div></button></div></fieldset><div class="mar-t-sm"></div><input type="checkbox" name="attr_generate_skills" class="toggle-pseudo-button edit"><span class="toggle-pseudo-button button edit" data-i18n="GENERATE_SKILLS"></span><div class="mar-t-sm"><input type="checkbox" name="attr_show_passive_skills" class="edit item-shown"><span class="edit" data-i18n="SHOW_PASSIVE"></span></div><button type="roll" name="roll_shaped_ability_checks" class="wrapper-button" value="/w @{character_name} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ABILITY_CHECKS}}} {{@{ability_checks_text_size}=@{ability_checks_macro_var}}}"><div class="wrap-box-title center" data-i18n="SKILLS"></div></button></div><div class="resistances-immunities wrap-box"><div class="damage-vulnerabilities"><input type="hidden" name="attr_damage_vulnerabilities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_vulnerabilities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_VULNERABILITIES}}} {{text=@{damage_vulnerabilities}}}"><span class="heading" data-i18n="DAMAGE_VULNERABILITIES">.</span> <span name="attr_damage_vulnerabilities" class="presentation pre-line"></span></button><textarea name="attr_damage_vulnerabilities" class="edit two-line-textarea no-border"></textarea></div><div class="damage-resistances"><input type="hidden" name="attr_damage_resistances_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_resistances" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_RESISTANCES}}} {{text=@{damage_resistances}}}"><span class="heading" data-i18n="DAMAGE_RESISTANCES">.</span> <span name="attr_damage_resistances" class="presentation pre-line"></span></button><textarea name="attr_damage_resistances" class="edit two-line-textarea no-border"></textarea></div><div class="damage-immunities"><input type="hidden" name="attr_damage_immunities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_immunities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_IMMUNITIES}}} {{text=@{damage_immunities}}}"><span class="heading" data-i18n="DAMAGE_IMMUNITIES">.</span> <span name="attr_damage_immunities" class="presentation pre-line"></span></button><textarea name="attr_damage_immunities" class="edit two-line-textarea no-border"></textarea></div><div class="condition-immunities"><input type="hidden" name="attr_condition_immunities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_condition_immunities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONDITION_IMMUNITIES}}} {{text=@{condition_immunities}}}"><span class="heading" data-i18n="CONDITION_IMMUNITIES">.</span> <span name="attr_condition_immunities" class="presentation pre-line"></span></button><textarea name="attr_condition_immunities" class="edit two-line-textarea no-border"></textarea></div><div class="wrap-box-title center" data-i18n="RESISTANCES_AND_IMMUNITIES"></div></div></div></div><div><div class="wrap-box languages-proficiencies"><div class="proficienciess"><button type="roll" name="roll_shaped_proficiencies" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PROFICIENCIES}}} {{text=@{proficiencies}}}"><span class="heading" data-i18n="PROFICIENCIES">.</span> <span name="attr_proficiencies" class="presentation pre-line"></span></button><textarea name="attr_proficiencies" class="five-line-textarea no-border edit"></textarea></div><div class="languages"><button type="roll" name="roll_shaped_languages" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{LANGUAGES}}} {{text_big=@{languages}}}"><span class="heading" data-i18n="LANGUAGES">.</span> <span name="attr_languages" class="presentation pre-line"></span></button><textarea name="attr_languages" class="two-line-textarea no-border edit"></textarea></div><div class="wrap-box-title center" data-i18n="OTHER_PROFICIENCIES_AND_LANGUAGES"></div></div></div></div><div class="col-38 pad-l-sm pad-r-sm"><div class="shaped-row"><div class="col-58 pad-r-sm"><div class="shaped-row center"><div class="ac col-33 center"><button type="roll" name="roll_shaped_ac" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{AC}}} {{text_big=[[@{ac}]]}}"><div class="shield"><span name="attr_AC" class="big-text block center"></span><div class="wrap-box-title center" data-i18n="ARMOR_CLASS"></div></div></button></div><div class="col-30 center"><div class="wrap-box initiative"><input type="hidden" name="attr_initiative_formula"><div class="edit shaped-row no-wrap vert-center"><div>+</div><input type="text" name="attr_initiative_bonus" class="center no-border" value="0"><div>=</div><span name="attr_initiative" class="big-text block center"></span></div><button type="roll" name="roll_shaped_initiative" value="@{initiative_output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INITIATIVE}}} {{roll1=[[@{initiative_roll} + @{initiative_to_tracker} + @{initiative_tie_breaker}]]}} @{attacher_initiative}"><span name="attr_initiative" class="presentation big-text block center initiative-total"></span><div class="wrap-box-title center" data-i18n="INITIATIVE"></div></button></div></div><div class="col-29 center pad-l-md"><div class="wrap-box center speed"><div class="edit"><input type="number" name="attr_speed" class="big-text center no-spin no-border" step="1"></div><button type="roll" name="roll_shaped_speed" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SPEED}}} {{text_big=[[@{speed}]]}}"><span name="attr_speed" class="presentation big-text block center"></span><div class="wrap-box-title" data-i18n="SPEED"></div></button></div></div></div><div class="shaped-row"><div class="col-60 center"><div class="heart mar-b-smd"><div class="shaped-row center flex-end no-wrap pad-t-seven"><div class="col-40"><input type="number" name="attr_HP" class="big-text no-spin no-border" step="1"></div><div class="heart-divider pad-l-sm pad-r-sm">/</div><div class="col-40"><input type="number" name="attr_HP_max" class="big-text no-spin no-border" min="1" step="1"></div></div><button type="roll" name="roll_shaped_hp" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{HIT_POINTS}}} {{text_big=[[@{HP}]]/[[@{HP|max}]]}}"><div class="shaped-row center"><div class="wrap-box-title col-70" data-i18n="HIT_POINTS"></div></div></button></div></div><div class="col-40 center"><div class="temp-heart mar-b-smd"><div class="shaped-row center pad-t-lg"><div class="col-40"><input type="number" name="attr_temp_HP" class="no-spin no-border" min="0" step="1"></div></div><button type="roll" name="roll_shaped_temp_hp" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{HIT_POINTS_TEMPORARY}}} {{text_big=[[@{temp_HP}]]}}"><div class="shaped-row center"><div class="wrap-box-title col-70" data-i18n="HIT_POINTS_TEMP"></div></div></button></div></div></div><div class="shaped-row"><div class="col-37 pad-r-sm"><div class="hit-dice wrap-box center mar-b-smd"><div class="hit-dice-container"><input type="checkbox" name="attr_hd_d2_toggle" value="1" class="toggle-hd-d2 hidden"> <input type="checkbox" name="attr_hd_d4_toggle" value="1" class="toggle-hd-d4 hidden"> <input type="checkbox" name="attr_hd_d6_toggle" value="1" class="toggle-hd-d6 hidden"> <input type="checkbox" name="attr_hd_d8_toggle" value="1" class="toggle-hd-d8 hidden"> <input type="checkbox" name="attr_hd_d10_toggle" value="1" class="toggle-hd-d10 hidden"> <input type="checkbox" name="attr_hd_d12_toggle" value="1" class="toggle-hd-d12 hidden"> <input type="checkbox" name="attr_hd_d20_toggle" value="1" class="toggle-hd-d20 hidden"><div class="shaped-row center flex-end toggle-hd-d2"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d2" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d2_max" class="center"></span></div><input type="hidden" name="attr_hd_d2_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d2" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d2_query}d2 ^{HIT_DICE}}} {{uses=@{hd_d2}}} {{uses_max=@{hd_d2|max}}} @{roll_info} {{roll1=[[{((@{hd_d2_query})d2[d2 * hd] + ((@{hd_d2_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d2</button></div></div><div class="shaped-row center flex-end toggle-hd-d4"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d4" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d4_max" class="center"></span></div><input type="hidden" name="attr_hd_d4_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d4" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d4_query}d4 ^{HIT_DICE}}} {{uses=@{hd_d4}}} {{uses_max=@{hd_d4|max}}} @{roll_info} {{roll1=[[{((@{hd_d4_query})d4[d4 * hd] + ((@{hd_d4_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d4</button></div></div><div class="shaped-row center flex-end toggle-hd-d6"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d6" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d6_max" class="center"></span></div><input type="hidden" name="attr_hd_d6_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d6" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d6_query}d6 ^{HIT_DICE}}} {{uses=@{hd_d6}}} {{uses_max=@{hd_d6|max}}} @{roll_info} {{roll1=[[{((@{hd_d6_query})d6[d6 * hd] + ((@{hd_d6_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d6</button></div></div><div class="shaped-row center flex-end toggle-hd-d8"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d8" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d8_max" class="center"></span></div><input type="hidden" name="attr_hd_d8_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d8" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d8_query}d8 ^{HIT_DICE}}} {{uses=@{hd_d8}}} {{uses_max=@{hd_d8|max}}} @{roll_info} {{roll1=[[{((@{hd_d8_query})d8[d8 * hd] + ((@{hd_d8_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d8</button></div></div><div class="shaped-row center flex-end toggle-hd-d10"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d10" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d10_max" class="center"></span></div><input type="hidden" name="attr_hd_d10_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d10" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d10_query}d10 ^{HIT_DICE}}} {{uses=@{hd_d10}}} {{uses_max=@{hd_d10|max}}} @{roll_info} {{roll1=[[{((@{hd_d10_query})d10[d10 * hd] + ((@{hd_d10_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d10</button></div></div><div class="shaped-row center flex-end toggle-hd-d12"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d12" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d12_max" class="center"></span></div><input type="hidden" name="attr_hd_d12_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d12" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d12_query}d12 ^{HIT_DICE}}} {{uses=@{hd_d12}}} {{uses_max=@{hd_d12|max}}} @{roll_info} {{roll1=[[{((@{hd_d12_query})d12[d12 * hd] + ((@{hd_d12_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d12</button></div></div><div class="shaped-row center flex-end toggle-hd-d20"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d20" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d20_max" class="center"></span></div><input type="hidden" name="attr_hd_d20_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d20" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d20_query}d20 ^{HIT_DICE}}} {{uses=@{hd_d20}}} {{uses_max=@{hd_d20|max}}} @{roll_info} {{roll1=[[{((@{hd_d20_query})d20[d20 * hd] + ((@{hd_d20_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d20</button></div></div></div><div class="wrap-box-title" data-i18n="HIT_DICE"></div></div></div><div class="col-63 pad-l-sm"><div class="death-saving-throw wrap-box center mar-b-smd"><div class="edit"><label class="checkbox-wrap"><input type="checkbox" name="attr_death_saving_throw_prof" value="@{PB}"> <span data-i18n="PROFICIENT"></span></label></div><div class="shaped-row vert-center death-success"><div class="col-50 small-label right" data-i18n="SUCCESSES"></div><div class="col-50 center inline-block-wrapper relative"><input type="radio" name="attr_death_saving_throw_successes" value="0" checked="checked"><span>✖</span> <input type="radio" name="attr_death_saving_throw_successes" value="1"><span></span> <input type="radio" name="attr_death_saving_throw_successes" value="2"><span></span> <input type="radio" name="attr_death_saving_throw_successes" value="3"><span></span><hr class="absolute death-saving-throw-hr"></div></div><div class="shaped-row vert-center death-saving-throw death-fail"><div class="col-50 small-label right" data-i18n="FAILURES"></div><div class="col-50 center inline-block-wrapper relative"><input type="radio" name="attr_death_saving_throw_failures" value="0" checked="checked"><span>✖</span> <input type="radio" name="attr_death_saving_throw_failures" value="1"><span></span> <input type="radio" name="attr_death_saving_throw_failures" value="2"><span></span> <input type="radio" name="attr_death_saving_throw_failures" value="3"><span></span><hr class="absolute death-saving-throw-hr"></div></div><button type="roll" name="roll_shaped_death_saving_throw" value="@{death_save_output_option} &{template:5e-shaped} {{death_saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} @{show_character_name} {{title=^{DEATH_SAVING_THROW}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{death_saving_throw_prof}[proficient] + (@{global_saving_throw_bonus})[global saving throw bonus]]]}} @{roll_setting} + (@{global_saving_throw_bonus})[global saving throw bonus]]]}} {{death_saving_throw_successes=@{death_saving_throw_successes}}} {{death_saving_throw_failures=@{death_saving_throw_failures}}} @{attacher_death_saving_throw}"><div class="wrap-box-title center" data-i18n="DEATH_SAVES"></div></button></div></div></div></div><div class="col-42 pad-l-sm"><div class="spell-slots-points wrap-box center mar-b-smd"><input type="checkbox" name="attr_spell_slots_toggle" class="toggle-spell-slots edit" checked="checked"><span class="toggle-spell-slots edit button" data-i18n="SPELL_SLOTS"></span> <input type="checkbox" name="attr_spell_points_toggle" class="toggle-spell-points edit"><span class="toggle-spell-points edit button" data-i18n="SPELL_POINTS"></span> <input type="checkbox" name="attr_spell_slots_all" class="toggle-spell-slots-all edit"><span class="toggle-spell-slots-all edit button" data-i18n="ALL"></span><div class="spell-slots"><div class="shaped-row spell-level-1 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="1ST"></div><div class="col-23"><input type="number" name="attr_spell_slots_l1" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l1_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l1_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l1_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="2ND"></div><div class="col-23"><input type="number" name="attr_spell_slots_l2" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l2_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l2_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l2_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="3RD"></div><div class="col-23"><input type="number" name="attr_spell_slots_l3" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l3_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l3_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l3_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="4TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l4" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l4_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l4_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l4_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="5TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l5" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l5_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l5_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l5_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="6TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l6" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l6_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l6_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l6_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="7TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l7" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l7_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l7_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l7_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="8TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l8" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l8_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l8_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l8_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="9TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l9" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l9_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l9_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l9_max" class="pseudo-input center border-bottom"></span></div></div><button type="roll" name="roll_shaped_spells" class="wrapper-button" value="@{spells_macro_var}"><div class="wrap-box-title center" data-i18n="SPELL_SLOTS_TITLE"></div></button></div><div class="spell-points"><div class="shaped-row spell-level-1 center vert-center"><div class="col-20 center" data-i18n="1ST"></div><div class="col-20 center pad-l-sm"><span>2</span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-20 center" data-i18n="2ND"></div><div class="col-20 center pad-l-sm"><span>3</span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-20 center" data-i18n="3RD"></div><div class="col-20 center pad-l-sm"><span>5</span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-20 center" data-i18n="4TH"></div><div class="col-20 center pad-l-sm"><span>6</span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-20 center" data-i18n="5TH"></div><div class="col-20 center pad-l-sm"><span>7</span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-20 center" data-i18n="6TH"></div><div class="col-20 center pad-l-sm"><span>9</span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-20 center" data-i18n="7TH"></div><div class="col-20 center pad-l-sm"><span>10</span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-20 center" data-i18n="8TH"></div><div class="col-20 center pad-l-sm"><span>11</span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-20 center" data-i18n="9TH"></div><div class="col-20 center pad-l-sm"><span>13</span></div></div><div class="shaped-row center no-background"><div class="col-35 center pad-r-sm"><input type="number" name="attr_spell_points" value="0"></div><div class="col-05 center">/</div><div class="col-35 center pad-l-sm"><input type="number" name="attr_spell_points_max" value="0" min="0"></div></div><div class="wrap-box-title center"><span class="spell-points" data-i18n="SPELL_POINTS_TITLE"></span></div></div></div><div class="exhaustion wrap-box relative mar-b-smd"><div class="shaped-row vert-center"><div class="exhaustion-wrapper"><input type="number" name="attr_exhaustion_level" class="no-spin big-font no-border" min="0" value="0" max="6"></div><button type="roll" name="roll_shaped_exhaustion" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{EXHAUSTION_LEVEL}}} {{text_big=[[@{exhaustion_level}]]}}"><div class="wrap-box-title white-space-no-wrap" data-i18n="EXHAUSTION_LEVEL"></div></button></div><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label"><table><thead><tr><th data-i18n="LEVEL"></th><th data-i18n="EFFECT"></th></tr></thead><tbody><tr><td class="center">1</td><td data-i18n="EXHAUSTION_LEVEL_1"></td></tr><tr><td class="center">2</td><td data-i18n="EXHAUSTION_LEVEL_2"></td></tr><tr><td class="center">3</td><td data-i18n="EXHAUSTION_LEVEL_3"></td></tr><tr><td class="center">4</td><td data-i18n="EXHAUSTION_LEVEL_4"></td></tr><tr><td class="center">5</td><td data-i18n="EXHAUSTION_LEVEL_5"></td></tr><tr><td class="center">6</td><td data-i18n="EXHAUSTION_LEVEL_6"></td></tr></tbody></table></div></div></div></div><input type="checkbox" name="attr_show_rests" class="hidden item-shown"><div class="wrap-box no-wrap relative mar-b-smd item-to-show"><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">A</div><div class="tooltip-content-left small-label" data-i18n="REQUIRES_API"></div></div></div><div class="shaped-row"><div class="pad-r-sm"><button type="roll" name="roll_shaped_short_rest" class="visible-button" value="!shaped-rest --short --id @{character_id}"><span data-i18n="SHORT_REST"></span></button></div><div class="pad-l-sm"><button type="roll" name="roll_shaped_long_rest" class="visible-button" value="!shaped-rest --long --id @{character_id}"><span data-i18n="LONG_REST"></span></button></div></div><div class="wrap-box-title center" data-i18n="RESTS"></div></div></div></div><div><div class="attacks wrap-box mar-b-smd"><div class="shaped-row"><div class="col-35 wrap-box-label light-label pad-r-sm" data-i18n="ATTACK"></div><div class="col-08 wrap-box-label light-label center pad-r-sm" data-i18n="ATK"></div><div class="col-57 wrap-box-label light-label" data-i18n="DAMAGE"></div></div><fieldset class="repeating_attack"><div class="attack compendium-drop-target relative mar-b-sm"><input type="hidden" name="attr_modifiers" accept="Modifiers"> <input type="hidden" name="attr_properties" accept="Properties"> <input type="hidden" name="attr_freetext" accept="Content"> <input type="hidden" name="attr_weight" accept="Weight"> <button type="roll" name="roll_attack" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} @{roll_toggle} @{ammo_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} {{uses=@{uses}}} {{uses_max=@{uses|max}}} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><div class="shaped-row vert-center"><div class="col-35 pad-r-sm"><input type="text" name="attr_name" readonly="readonly"></div><div class="col-08 pad-r-sm"><input type="text" name="attr_to_hit" class="center" readonly="readonly"></div><div class="col-57"><input type="text" name="attr_damage_string" readonly="readonly"></div></div></button> <input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><div class="shaped-row"><div class="col-40 center"><input type="text" name="attr_name" class="center" data-i18n-placeholder="NAME" accept="Name"><div class="small-label" data-i18n="NAME"></div></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type" accept="Item Type"><option value="Other" data-i18n="OTHER"></option><option value="Melee Weapon" data-i18n="MELEE"></option><option value="Ranged Weapon" data-i18n="RANGED"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center" accept="Range"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 pad-l-sm"><div class="shaped-row vert-center no-wrap"><div class="pad-r-sm"><input type="number" name="attr_uses" class="no-spin" step="1"></div><div>/</div><div class="pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin" step="1"></div></div><div class="small-label center" data-i18n="USES"></div></div></div><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle" checked="checked"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="hidden" name="attr_ammo_toggle_var"> <input type="checkbox" name="attr_ammo_toggle" value="@{ammo_toggle_var}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="AMMO"></span>.</div><div class="attack-toggle col-35 pad-l-sm ad-r-sm"><input type="text" name="attr_ammo_field_name"><div class="small-label center" data-i18n="FIELD"></div></div><div class="attack-toggle col-12 pad-l-sm"><input type="number" name="attr_ammo_used" value="1" step="1"><div class="small-label center" data-i18n="USED"></div></div></div></div></div></fieldset><div class="ammo mar-t-md"><div class="edit wrap-box-label light-label mar-b-sm" data-i18n="AMMO"></div><fieldset class="repeating_ammo"><div class="shaped-row compendium-drop-target no-wrap"><div><input type="number" name="attr_qty" min="0" step="1"><div class="small-label edit center" data-i18n="QTY"></div></div><div class="edit pad-l-sm"><input type="number" name="attr_weight" class="no-spin" value=".05" step=".005" accept="Weight"><div class="small-label center" data-i18n="WEIGHT"></div></div></div><div class="small-label center"><button type="roll" name="roll_ammo" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{text_big=@{qty}}}" tabindex="-1"><span name="attr_name" class="pseudo-input"></span></button> <input type="text" name="attr_name" class="edit center small-label no-border" data-i18n-placeholder="ARROWS" accept="Name"></div></fieldset></div><button type="roll" name="roll_shaped_attacks" class="wrapper-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ATTACKS}}} {{action=1}} {{text_big=@{attacks_macro_var}}}"><div class="wrap-box-title center" data-i18n="ATTACKS"></div></button></div></div><div><div class="wrap-box"><div class="shaped-row"><div class="col-22"><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_cp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{COPPER_PIECES}}} {{text_big=[[@{cp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_CP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_cp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_sp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SILVER_PIECES}}} {{text_big=[[@{sp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_SP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_sp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_ep" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ELECTRUM_PIECES}}} {{text_big=[[@{ep}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_EP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_ep" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_gp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{GOLD_PIECES}}} {{text_big=[[@{gp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_GP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_gp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_pp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PLATINUM_PIECES}}} {{text_big=[[@{pp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_PP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_pp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_total_gp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{TOTAL_GOLD_VALUE}}} {{text_big=[[@{total_gp}]]}}" tabindex="-1"><div class="light-label bold pad-r-sm" data-i18n="COINS_GP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_total_gp" class="bold no-border" value="0" readonly="readonly"></div></div></div><div class="col-78 core-equipment pad-l-sm"><div><div class="shaped-row"><div class="col-06"></div><div class="col-57 wrap-box-label light-label pad-l-sm pad-r-sm" data-i18n="ARMOR"></div><div class="col-25 wrap-box-label light-label center pad-r-sm" data-i18n="USES"></div><div class="col-12 wrap-box-label light-label center" data-i18n="AC"></div></div><fieldset class="repeating_armor"><div class="shaped-row compendium-drop-target vert-center"><div class="col-06 center"><input type="checkbox" name="attr_worn" checked="checked"></div><div class="col-57 pad-l-sm pad-r-sm"><button type="roll" name="roll_armor" class="presentation wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{armor=1}} {{text_big=AC [[@{ac_base}[ac] + @{ac_bonus}[bonus ac]]]}} {{uses=@{uses}}} {{uses_max=@{uses|max}}}"><span name="attr_name"></span></button> <input type="text" name="attr_name" class="edit" accept="Name"> <input type="hidden" name="attr_type" accept="Item Type"> <input type="hidden" name="attr_ac_base" accept="AC"> <input type="hidden" name="attr_ac_bonus"> <input type="hidden" name="attr_modifiers" accept="Modifiers"> <input type="hidden" name="attr_strength_requirements"> <input type="hidden" name="attr_stealth" accept="Stealth"> <input type="hidden" name="attr_weight" accept="Weight"></div><div class="col-25 shaped-row flex-end no-wrap pad-r-sm"><div class="shaped-row flex-end no-wrap"><input type="checkbox" name="attr_show_uses" class="edit small-checkbox show-uses" value="1"><div class="col-42 show-uses pad-r-sm"><input type="number" name="attr_uses" class="no-spin no-border" step="1"></div><div class="show-uses">/</div><div class="col-42 show-uses pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin no-border" step="1"></div></div></div><div class="col-12 center pad-r-sm"><span name="attr_ac_total"></span></div></div></fieldset></div><hr><div class="mar-t-md"><div class="shaped-row"><div class="col-06"></div><div class="col-57 wrap-box-label light-label pad-l-sm pad-r-sm" data-i18n="EQUIPMENT"></div><div class="col-25 wrap-box-label light-label center pad-r-sm" data-i18n="USES"></div><div class="col-12 wrap-box-label light-label center" data-i18n="QTY"></div></div><div class="equipment-wrapper"><fieldset class="repeating_equipment"><div class="shaped-row compendium-drop-target vert-center"><div class="col-06 center"><input type="checkbox" name="attr_carried" checked="checked"></div><div class="col-57 pad-l-sm pad-r-sm"><button type="roll" name="roll_equipment" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{equipment=1}} {{text=@{content}}} {{uses=@{uses}}} {{uses_max=@{uses|max}}}"><span name="attr_name"></span></button> <input type="text" name="attr_name" class="edit" accept="Name"> <input type="hidden" name="attr_content" accept="Content"> <input type="hidden" name="attr_weight" accept="Weight"></div><div class="col-25 pad-r-sm"><div class="shaped-row flex-end no-wrap"><input type="checkbox" name="attr_show_uses" class="edit small-checkbox show-uses" value="1"><div class="col-42 show-uses pad-r-sm"><input type="number" name="attr_uses" class="no-spin no-border" step="1"></div><div class="show-uses">/</div><div class="col-42 show-uses pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin no-border" step="1"></div></div></div><div class="col-12"><input type="number" name="attr_qty" class="no-spin no-border" value="1" min="0" step="1"></div></div></fieldset></div></div></div></div><div class="wrap-box-title center" data-i18n="EQUIPMENT"></div></div></div></div><div class="col-32 pad-l-sm"><div class="wrap-box personality-traits center mar-b-sm"><textarea class="four-line-textarea background-textarea no-border edit" name="attr_personality_traits"></textarea><button type="roll" name="roll_shaped_personality_traits" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PERSONALITY_TRAITS}}} {{text=@{personality_traits}}}"><span name="attr_personality_traits" class="presentation pre-line background-text"></span><div class="wrap-box-title center" data-i18n="PERSONALITY_TRAITS"></div></button></div><div class="wrap-box ideals center mar-b-sm"><textarea class="four-line-textarea background-textarea no-border edit" name="attr_ideals"></textarea><button type="roll" name="roll_shaped_ideals" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{IDEALS}}} {{text=@{ideals}}}"><span name="attr_ideals" class="presentation pre-line background-text"></span><div class="wrap-box-title center" data-i18n="IDEALS"></div></button></div><div class="wrap-box bonds center mar-b-sm"><textarea class="four-line-textarea background-textarea no-border edit" name="attr_bonds"></textarea><button type="roll" name="roll_shaped_bonds" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{BONDS}}} {{text=@{bonds}}}"><span name="attr_bonds" class="presentation pre-line background-text"></span><div class="wrap-box-title center" data-i18n="BONDS"></div></button></div><div class="wrap-box flaws center mar-b-smd"><textarea class="four-line-textarea background-textarea no-border edit" name="attr_flaws"></textarea><button type="roll" name="roll_shaped_flaws" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{FLAWS}}} {{text=@{flaws}}}"><span name="attr_flaws" class="presentation pre-line background-text"></span><div class="wrap-box-title center" data-i18n="FLAWS"></div></button></div><div class="wrap-box"><input type="hidden" name="attr_traits_exist" class="item-toggle"><div class="item-to-toggle"><fieldset class="repeating_trait"><div class="relative mar-b-sm"><input type="hidden" name="attr_has_uses" class="item-toggle"><div class="col-17 absolute"><input type="hidden" name="attr_has_uses" class="item-toggle"><div class="item-to-toggle gray-bg small-label pad-l-sm"><div class="shaped-row vert-center no-wrap"><div><input type="number" name="attr_uses" class="no-spin no-border gray-bg no-pad" step="1"></div><div>/</div><div><input type="number" name="attr_uses_max" class="no-spin no-border gray-bg no-pad" step="1"></div></div><div class="edit small-label center" data-i18n="USES"></div></div></div><button type="roll" name="roll_trait" class="presentation trait wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{trait=1}} {{recharge=@{recharge}}} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} {{uses=@{uses}}} {{uses_max=@{uses|max}}} @{heal_toggle} @{hide_gm_info} @{extras_toggle}"><span class="heading"></span> <span name="attr_name" class="bold italic"></span><span name="attr_recharge_display" class="bold italic"></span><span class="bold italic">.</span> <span name="attr_display_text" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-17"></div><div class="col-34 center pad-l-sm"><input type="text" name="attr_name" class="bold italic" data-i18n-placeholder="AMPHIBIOUS"></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-26 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><div class="col-100 center"><textarea class="two-line-textarea" name="attr_display_text"></textarea><div class="small-label" data-i18n="DISPLAY_TEXT"></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_heal_formula"><div class="shaped-row vert-center mar-t-sm"><input type="checkbox" name="attr_heal_toggle" value="{{heal=[[@{heal_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="HEAL"></span>.</div><div class="attack-toggle col-12"><input type="text" name="attr_heal" class="center" accept="Healing" placeholder="1d6"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10"><select name="attr_heal_ability"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center"><input type="number" name="attr_heal_bonus"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle center"><input type="checkbox" name="attr_heal_query_toggle" value="?{Heal Bonus Amount|}" class="toggle-query"><span class="toggle-query button" data-i18n="QUERY"></span></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><button type="roll" name="roll_shaped_traits" class="wrapper-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{TRAITS}}} {{text_big=@{traits_macro_var}}}"><div class="wrap-box-title center" data-i18n="FEATURES_AND_TRAITS"></div></button></div></div></div></div><div class="section-npc"><div class="bar"></div><div class="npc-content-wrap"><div class="compendium-drop-target"><input type="hidden" name="attr_content_srd" accept="Content"> <input type="hidden" name="attr_spells_srd" accept="Spell Book"><div class="shaped-row"><div class="col-50 pad-r-md"><div><span name="attr_character_name" class="creature-name presentation"></span> <input type="text" name="attr_character_name" class="edit creature-name no-border" accept="Name" data-i18n-placeholder="DRAGON"></div><div class="shaped-row edit"><div class="col-20 pad-r-sm"><select name="attr_size" class="italic no-border" accept="Size"><option value="Tiny" data-i18n="TINY"></option><option value="Small" data-i18n="SMALL"></option><option value="Medium" data-i18n="MEDIUM"></option><option value="Large" data-i18n="LARGE" selected="selected"></option><option value="Huge" data-i18n="HUGE"></option><option value="Gargantuan" data-i18n="GARGANTUAN"></option></select></div><div class="col-30 pad-l-sm pad-r-sm"><input type="text" name="attr_type" class="italic no-border" data-i18n-placeholder="DRAGON" accept="Type"></div><div class="col-23 pad-l-sm"><input type="text" name="attr_alignment" class="italic no-border" data-i18n-placeholder="LAWFUL_EVIL" accept="Alignment"></div></div><span class="italic presentation"><span name="attr_size"></span> <span name="attr_type"></span>, <span name="attr_alignment"></span></span><div class="divider"></div><div class="top-stats"><div class="ac shaped-row flex-end"><button type="roll" name="roll_shaped_ac" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{AC}}} {{text_top=[[@{ac}]]}} {{text_center=@{ac_note}}}"><span class="heading" data-i18n="ARMOR_CLASS"></span> <span class="presentation"><span name="attr_AC"></span> (<span name="attr_ac_note"></span>)</span></button><div class="col-06 edit pad-l-sm"><input type="hidden" name="attr_ac_srd" accept="AC"> <input type="number" name="attr_AC" class="no-border no-spin"></div><div class="col-38 edit pad-l-md"><div class="shaped-row no-wrap"><span>(</span> <input type="text" name="attr_ac_note" class="no-border"> <span>)</span></div></div></div><div class="shaped-row flex-end no-wrap"><button type="roll" name="roll_shaped_initiative" value="@{initiative_output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INITIATIVE}}} {{roll1=[[@{initiative_roll} + @{initiative_to_tracker} + @{initiative_tie_breaker}]]}} @{attacher_initiative}"><span class="heading" data-i18n="INITIATIVE"></span> <span name="attr_initiative" class="presentation"></span></button><div class="edit">+</div><div class="col-06 edit"><input type="text" name="attr_initiative_bonus" class="center no-border" value="0"></div><div class="edit">=</div><span name="attr_initiative" class="edit"></span></div><div class="shaped-row flex-end"><input type="hidden" name="attr_hp_srd" accept="HP"> <button type="roll" name="roll_shaped_hp" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{HIT_POINTS}}} {{text_big=[[@{HP}]]/[[@{HP|max}]]}}"><span class="heading" data-i18n="HIT_POINTS"></span> <span name="attr_HP" class="presentation"></span></button> <span class="presentation pad-l-sm"><button type="roll" name="roll_shaped_npc_hp" value="/w GM &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{HIT_POINTS_ROLLED}}}{{text_top=[[@{hp_formula}]] (Average [[@{HP}]])}}">(<span name="attr_hp_formula"></span>)</button></span><div class="col-40 pad-l-sm edit"><div class="shaped-row"><div class="col-18 pad-r-sm"><input type="number" name="attr_hit_dice" class="no-border no-spin" class="no-spin" step="1"></div><div class="col-18 pad-r-sm"><select name="attr_hit_die" class="no-border"><option>d2</option><option>d4</option><option>d6</option><option>d8</option><option>d10</option><option>d12</option><option>d20</option></select></div><div class="col-64 pad-l-sm"><input type="text" name="attr_hp_extra" class="no-border"></div></div></div><div class="col-20 pad-l-lg"><input type="checkbox" name="attr_hd_d2_toggle" value="1" class="toggle-hd-d2 hidden"> <input type="checkbox" name="attr_hd_d4_toggle" value="1" class="toggle-hd-d4 hidden"> <input type="checkbox" name="attr_hd_d6_toggle" value="1" class="toggle-hd-d6 hidden"> <input type="checkbox" name="attr_hd_d8_toggle" value="1" class="toggle-hd-d8 hidden"> <input type="checkbox" name="attr_hd_d10_toggle" value="1" class="toggle-hd-d10 hidden"> <input type="checkbox" name="attr_hd_d12_toggle" value="1" class="toggle-hd-d12 hidden"> <input type="checkbox" name="attr_hd_d20_toggle" value="1" class="toggle-hd-d20 hidden"><div class="shaped-row center flex-end toggle-hd-d2"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d2" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d2_max" class="center"></span></div><input type="hidden" name="attr_hd_d2_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d2" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d2_query}d2 ^{HIT_DICE}}} {{uses=@{hd_d2}}} {{uses_max=@{hd_d2|max}}} @{roll_info} {{roll1=[[{((@{hd_d2_query})d2[d2 * hd] + ((@{hd_d2_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d2</button></div></div><div class="shaped-row center flex-end toggle-hd-d4"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d4" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d4_max" class="center"></span></div><input type="hidden" name="attr_hd_d4_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d4" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d4_query}d4 ^{HIT_DICE}}} {{uses=@{hd_d4}}} {{uses_max=@{hd_d4|max}}} @{roll_info} {{roll1=[[{((@{hd_d4_query})d4[d4 * hd] + ((@{hd_d4_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d4</button></div></div><div class="shaped-row center flex-end toggle-hd-d6"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d6" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d6_max" class="center"></span></div><input type="hidden" name="attr_hd_d6_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d6" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d6_query}d6 ^{HIT_DICE}}} {{uses=@{hd_d6}}} {{uses_max=@{hd_d6|max}}} @{roll_info} {{roll1=[[{((@{hd_d6_query})d6[d6 * hd] + ((@{hd_d6_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d6</button></div></div><div class="shaped-row center flex-end toggle-hd-d8"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d8" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d8_max" class="center"></span></div><input type="hidden" name="attr_hd_d8_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d8" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d8_query}d8 ^{HIT_DICE}}} {{uses=@{hd_d8}}} {{uses_max=@{hd_d8|max}}} @{roll_info} {{roll1=[[{((@{hd_d8_query})d8[d8 * hd] + ((@{hd_d8_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d8</button></div></div><div class="shaped-row center flex-end toggle-hd-d10"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d10" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d10_max" class="center"></span></div><input type="hidden" name="attr_hd_d10_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d10" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d10_query}d10 ^{HIT_DICE}}} {{uses=@{hd_d10}}} {{uses_max=@{hd_d10|max}}} @{roll_info} {{roll1=[[{((@{hd_d10_query})d10[d10 * hd] + ((@{hd_d10_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d10</button></div></div><div class="shaped-row center flex-end toggle-hd-d12"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d12" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d12_max" class="center"></span></div><input type="hidden" name="attr_hd_d12_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d12" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d12_query}d12 ^{HIT_DICE}}} {{uses=@{hd_d12}}} {{uses_max=@{hd_d12|max}}} @{roll_info} {{roll1=[[{((@{hd_d12_query})d12[d12 * hd] + ((@{hd_d12_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d12</button></div></div><div class="shaped-row center flex-end toggle-hd-d20"><div class="col-29 pad-r-sm"><input type="number" name="attr_hd_d20" class="no-spin no-border" min="0" step="1"></div><div class="col-05">/</div><div class="col-29"><span name="attr_hd_d20_max" class="center"></span></div><input type="hidden" name="attr_hd_d20_query"><div class="col-37 center"><button type="roll" name="roll_shaped_hd_d20" class="bold" value="@{hit_dice_output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{hd_d20_query}d20 ^{HIT_DICE}}} {{uses=@{hd_d20}}} {{uses_max=@{hd_d20|max}}} @{roll_info} {{roll1=[[{((@{hd_d20_query})d20[d20 * hd] + ((@{hd_d20_query}) * @{constitution_mod})[con mod * hd]), 0d0+1}kh1[minimum of 1]]]}} @{attacher_hit_dice}">d20</button></div></div></div></div><div class="shaped-row flex-end"><button type="roll" name="roll_shaped_npc_speed" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SPEED}}} {{text_big=@{npc_speed}}}"><span class="heading" data-i18n="SPEED"></span> <span name="attr_npc_speed" class="presentation"></span></button><div class="col-80 pad-l-sm edit"><input type="text" name="attr_npc_speed" class="no-border" accept="Speed"></div></div><div class="divider"></div><div class="shaped-row"><div class="col-16 center pad-r-sm"><button type="roll" name="roll_shaped_strength_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{STRENGTH} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{strength_check_mod_formula}]]}} @{roll_setting} + @{strength_check_mod_formula}]]}} @{hide_gm_info} @{attacher_strength_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="STR"></div><div class="presentation mar-t-sm"><span name="attr_strength" class="center"></span> (<span name="attr_strength_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_strength_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_strength" class="no-border no-spin" accept="STR"></div><div>+</div><div><input type="number" name="attr_strength_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_strength_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_strength_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_strength_check_mod"></span></div></div><div class="col-16 center pad-l-sm pad-r-sm"><button type="roll" name="roll_shaped_dexterity_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DEXTERITY} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{dexterity_check_mod_formula}]]}} @{roll_setting} + @{dexterity_check_mod_formula}]]}} @{hide_gm_info} @{attacher_dexterity_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="DEX"></div><div class="presentation mar-t-sm"><span name="attr_dexterity" class="center"></span> (<span name="attr_dexterity_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_dexterity_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_dexterity" class="no-border no-spin" accept="DEX"></div><div>+</div><div><input type="number" name="attr_dexterity_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_dexterity_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_dexterity_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_dexterity_check_mod"></span></div></div><div class="col-16 center pad-l-sm pad-r-sm"><button type="roll" name="roll_shaped_constitution_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONSTITUTION} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{constitution_check_mod_formula}]]}} @{roll_setting} + @{constitution_check_mod_formula}]]}} @{hide_gm_info} @{attacher_constitution_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="CON"></div><div class="presentation mar-t-sm"><span name="attr_constitution" class="center"></span> (<span name="attr_constitution_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_constitution_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_constitution" class="no-border no-spin" accept="CON"></div><div>+</div><div><input type="number" name="attr_constitution_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_constitution_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_constitution_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_constitution_check_mod"></span></div></div><div class="col-16 center pad-l-sm pad-r-sm"><button type="roll" name="roll_shaped_intelligence_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INTELLIGENCE} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{intelligence_check_mod_formula}]]}} @{roll_setting} + @{intelligence_check_mod_formula}]]}} @{hide_gm_info} @{attacher_intelligence_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="INT"></div><div class="presentation mar-t-sm"><span name="attr_intelligence" class="center"></span> (<span name="attr_intelligence_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_intelligence_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_intelligence" class="no-border no-spin" accept="INT"></div><div>+</div><div><input type="number" name="attr_intelligence_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_intelligence_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_intelligence_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_intelligence_check_mod"></span></div></div><div class="col-16 center pad-l-sm pad-r-sm"><button type="roll" name="roll_shaped_wisdom_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WISDOM} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{wisdom_check_mod_formula}]]}} @{roll_setting} + @{wisdom_check_mod_formula}]]}} @{hide_gm_info} @{attacher_wisdom_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="WIS"></div><div class="presentation mar-t-sm"><span name="attr_wisdom" class="center"></span> (<span name="attr_wisdom_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_wisdom_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_wisdom" class="no-border no-spin" accept="WIS"></div><div>+</div><div><input type="number" name="attr_wisdom_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_wisdom_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_wisdom_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_wisdom_check_mod"></span></div></div><div class="col-16 center pad-l-sm"><button type="roll" name="roll_shaped_charisma_check" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CHARISMA} ^{CHECK}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{charisma_check_mod_formula}]]}} @{roll_setting} + @{charisma_check_mod_formula}]]}} @{hide_gm_info} @{attacher_charisma_check}" tabindex="-1"><div class="heading uppercase center" data-i18n="CHA"></div><div class="presentation mar-t-sm"><span name="attr_charisma" class="center"></span> (<span name="attr_charisma_mod_with_sign" class="center"></span>)</div></button> <input type="hidden" name="attr_charisma_mod"><div class="shaped-row center edit no-wrap"><div><input type="number" name="attr_charisma" class="no-border no-spin" accept="CHA"></div><div>+</div><div><input type="number" name="attr_charisma_bonus" class="edit no-spin no-border" value="0" step="1"></div><div>(<span name="attr_charisma_mod_with_sign" class="center"></span>)</div></div><div class="edit shaped-row no-wrap vert-center small-label"><span data-i18n="CHECK"></span><div>+</div><div><input type="number" name="attr_charisma_check_bonus" class="no-spin no-border" value="0" step="1"></div><div>=</div><span class="mar-l-sm" name="attr_charisma_check_mod"></span></div></div></div><div class="divider"></div><input type="hidden" name="attr_saving_throws_srd" accept="Saving Throws"><div class="saving-throws shaped-row flex-end"><button type="roll" name="roll_shaped_saving_throw" value="/w @{character_name} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SAVING_THROWS}}} {{text_big=@{saving_throw_macro_var_to_use}}}"><span class="heading" data-i18n="SAVING_THROWS"></span></button> <span class="pad-l-sm"></span><div class="shaped-row default-saving-throw"><span class="edit"><input type="checkbox" name="attr_strength_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_strength_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_strength_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{STRENGTH} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{strength_saving_throw_mod}]]}} @{roll_setting} + @{strength_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_strength_saving_throw}" tabindex="-1"><span data-i18n="STR"></span> <span name="attr_strength_saving_throw_mod_with_sign" class="inline-block center"></span></button> <span class="pad-r-sm">,</span></div><div class="shaped-row default-saving-throw"><span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_dexterity_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_dexterity_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_dexterity_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DEXTERITY} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{dexterity_saving_throw_mod}]]}} @{roll_setting} + @{dexterity_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_dexterity_saving_throw}" tabindex="-1"><span data-i18n="DEX"></span> <span name="attr_dexterity_saving_throw_mod_with_sign" class="inline-block center"></span></button> <span class="pad-r-sm">,</span> <span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_constitution_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_constitution_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_constitution_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONSTITUTION} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{constitution_saving_throw_mod}]]}} @{roll_setting} + @{constitution_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_constitution_saving_throw}" tabindex="-1"><span data-i18n="CON"></span> <span name="attr_constitution_saving_throw_mod_with_sign" class="inline-block center"></span></button> <span class="pad-r-sm">,</span></div><div class="shaped-row default-saving-throw"><span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_intelligence_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_intelligence_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_intelligence_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{INTELLIGENCE} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{intelligence_saving_throw_mod}]]}} @{roll_setting} + @{intelligence_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_intelligence_saving_throw}" tabindex="-1"><span data-i18n="INT"></span> <span name="attr_intelligence_saving_throw_mod_with_sign" class="inline-block center"></span></button> <span class="pad-r-sm">,</span> <span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_wisdom_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_wisdom_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_wisdom_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WISDOM} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{wisdom_saving_throw_mod}]]}} @{roll_setting} + @{wisdom_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_wisdom_saving_throw}" tabindex="-1"><span data-i18n="WIS"></span> <span name="attr_wisdom_saving_throw_mod_with_sign" class="inline-block center"></span></button> <span class="pad-r-sm">,</span></div><div class="shaped-row default-saving-throw"><span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_charisma_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_charisma_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_charisma_saving_throw" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CHARISMA} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{charisma_saving_throw_mod}]]}} @{roll_setting} + @{charisma_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_charisma_saving_throw}" tabindex="-1"><span data-i18n="CHA"></span> <span name="attr_charisma_saving_throw_mod_with_sign" class="inline-block center"></span></button></div><div class="shaped-row custom-saving-throw"><span class="edit"><input type="checkbox" name="attr_fortitude_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_fortitude_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_fortitude_saving_throw" class="inline" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{FORTITUDE} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{fortitude_saving_throw_mod}]]}} @{roll_setting} + @{fortitude_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_fortitude_saving_throw}" tabindex="-1"><span data-i18n="FORTITUDE"></span> <span name="attr_fortitude_saving_throw_mod_with_sign" class="inline-block center"></span></button></div><div class="shaped-row custom-saving-throw"><span class="pad-r-sm">,</span> <span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_reflex_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_reflex_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_reflex_saving_throw" class="inline" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{REFLEX} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{reflex_saving_throw_mod}]]}} @{roll_setting} + @{reflex_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_reflex_saving_throw}" tabindex="-1"><span data-i18n="REFLEX"></span> <span name="attr_reflex_saving_throw_mod_with_sign" class="inline-block center"></span></button></div><div class="shaped-row custom-saving-throw"><span class="pad-r-sm">,</span> <span class="edit border-left pad-l-sm"><input type="checkbox" name="attr_will_save_prof" value="@{PB}"></span><div class="col-1-3-em edit"><input type="number" name="attr_will_save_bonus" class="no-spin small-label" value="0" step="1"></div><button type="roll" name="roll_shaped_will_saving_throw" class="inline" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{WILL} ^{SAVE}}} @{roll_info} {{roll1=[[@{shaped_d20} + @{will_saving_throw_mod}]]}} @{roll_setting} + @{will_saving_throw_mod}]]}} @{hide_gm_info} @{attacher_will_saving_throw}" tabindex="-1"><span data-i18n="WILL"></span> <span name="attr_will_saving_throw_mod_with_sign" class="inline-block center"></span></button></div></div><input type="hidden" name="attr_skills_srd" accept="Skills"><div class="shaped-row skills vert-top"><button type="roll" name="roll_shaped_ability_checks" value="/w @{character_name} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ABILITY_CHECKS}}} {{@{ability_checks_text_size}=@{ability_checks_macro_var}}}"><span class="heading" data-i18n="SKILLS"></span></button><div class="col-90 pad-l-sm"><fieldset class="repeating_skill"><div class="shaped-row no-wrap vert-center"><div class="col-1-3-em no-shrink edit"><select name="attr_skill_d20"><option value="@{shaped_d20}" data-i18n="NORMAL"></option><option value="2d20@{d20_mod}kh1" data-i18n="ADVANTAGE"></option><option value="2d20@{d20_mod}kl1" data-i18n="DISADVANTAGE"></option></select></div><div class="col-1-3-em skill-select-wrapper edit"><select name="attr_proficiency" class="no-border"><option value="unproficient" data-i18n="SKILL_SELECT_UNPROFICIENT"></option><option value="proficient" data-i18n="SKILL_SELECT_PROFICIENT"></option><option value="expertise" data-i18n="SKILL_SELECT_EXPERTISE"></option></select></div><div class="col-1-3-em edit"><input type="number" name="attr_bonus" class="no-spin small-label" value="0" step="1"></div><div class="col-6-em edit"><input type="text" name="attr_name"></div><button type="roll" name="roll_skill" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name} (^{@{ability_key}})}} @{roll_info} @{skill_info} {{roll1=[[@{skill_d20} + @{formula}]]}} @{roll_setting} + @{formula}]]}} @{hide_gm_info} @{attacher_skill}" tabindex="-1"><div class="shaped-row no-wrap flex-end"><span name="attr_name" class="presentation skill-name white-space-no-wrap pad-r-sm"></span> <span name="attr_total_with_sign" class="inline-block center"></span></div></button> <input type="hidden" name="attr_formula"> <input type="hidden" name="attr_skill_info"> <input type="hidden" name="attr_ability_key"><div class="skills-ability-selector-wrapper edit pad-l-sm"><div class="shaped-row no-wrap vert-center"><span>(</span><select name="attr_ability" class="skills-ability-selector"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select><span>)</span></div></div><div class="pad-r-sm comma">,</div></div></fieldset><input type="checkbox" name="attr_generate_skills" class="toggle-pseudo-button edit"><span class="toggle-pseudo-button button edit" data-i18n="GENERATE_SKILLS"></span></div></div><div class="damage-vulnerabilities"><input type="hidden" name="attr_damage_vulnerabilities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_vulnerabilities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_VULNERABILITIES}}} {{text=@{damage_vulnerabilities}}}"><span class="heading" data-i18n="DAMAGE_VULNERABILITIES"></span> <span name="attr_damage_vulnerabilities" class="presentation pre-line"></span></button><textarea name="attr_damage_vulnerabilities" class="edit two-line-textarea no-border" accept="Vulnerabilities"></textarea></div><div class="damage-resistances"><input type="hidden" name="attr_damage_resistances_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_resistances" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_RESISTANCES}}} {{text=@{damage_resistances}}}"><span class="heading" data-i18n="DAMAGE_RESISTANCES"></span> <span name="attr_damage_resistances" class="presentation pre-line"></span></button><textarea name="attr_damage_resistances" class="edit two-line-textarea no-border" accept="Resistances"></textarea></div><div class="damage-immunities"><input type="hidden" name="attr_damage_immunities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_damage_immunities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{DAMAGE_IMMUNITIES}}} {{text=@{damage_immunities}}}"><span class="heading" data-i18n="DAMAGE_IMMUNITIES"></span> <span name="attr_damage_immunities" class="presentation pre-line"></span></button><textarea name="attr_damage_immunities" class="edit two-line-textarea no-border" accept="Immunities"></textarea></div><div class="condition-immunities"><input type="hidden" name="attr_condition_immunities_exist" class="item-toggle"> <button type="roll" name="roll_shaped_condition_immunities" class="wrapper-button item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CONDITION_IMMUNITIES}}} {{text=@{condition_immunities}}}"><span class="heading" data-i18n="CONDITION_IMMUNITIES"></span> <span name="attr_condition_immunities" class="presentation pre-line"></span></button><textarea name="attr_condition_immunities" class="edit two-line-textarea no-border" accept="Condition Immunities"></textarea></div><div class="shaped-row vert-center"><input type="hidden" name="attr_senses_exist" class="item-toggle"> <button type="roll" name="roll_shaped_senses" class="item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SENSES}}} {{text_big=@{senses}}}"><span class="heading" data-i18n="SENSES"></span> <span name="attr_senses" class="presentation"></span></button><div class="col-80 pad-l-sm edit"><input type="text" name="attr_senses" class="no-border" accept="Senses"></div></div><div class="shaped-row vert-center"><input type="hidden" name="attr_languages_exist" class="item-toggle"> <button type="roll" name="roll_shaped_languages" class="item-to-toggle" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{LANGUAGES}}} {{text_big=@{languages}}}"><span class="heading" data-i18n="LANGUAGES"></span> <span name="attr_languages" class="presentation"></span></button><div class="col-80 pad-l-sm edit"><input type="text" name="attr_languages" class="no-border" accept="Languages"></div></div><div class="shaped-row vert-center"><button type="roll" name="roll_shaped_challenge" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{CHALLENGE}}} {{text_top=@{challenge} (@{xp_readable} XP)}}" tabindex="-1"><span class="heading" data-i18n="CHALLENGE"></span> <span class="presentation"><span name="attr_challenge"></span> (<span name="attr_xp_readable"></span> XP)</span></button> <input type="hidden" name="attr_xp"> <input type="hidden" name="attr_xp_readable"><div class="col-05 edit pad-l-sm"><input type="text" name="attr_challenge" class="no-border no-spin" accept="Challenge Rating"></div></div><div><button type="roll" name="roll_shaped_pb" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PROFICIENCY_BONUS}}} {{text_big=[[@{pb}]]}}" tabindex="-1"><span class="heading" data-i18n="PROFICIENCY_BONUS"></span> <span name="attr_PB"></span></button></div><div class="divider"></div></div></div><div class="col-50 pad-l-md"><input type="hidden" name="attr_traits_exist" class="item-toggle"><div class="item-to-toggle"><fieldset class="repeating_trait"><div class="relative mar-b-sm"><input type="hidden" name="attr_has_uses" class="item-toggle"><div class="col-17 absolute"><input type="hidden" name="attr_has_uses" class="item-toggle"><div class="item-to-toggle gray-bg small-label pad-l-sm"><div class="shaped-row vert-center no-wrap"><div><input type="number" name="attr_uses" class="no-spin no-border gray-bg no-pad" step="1"></div><div>/</div><div><input type="number" name="attr_uses_max" class="no-spin no-border gray-bg no-pad" step="1"></div></div><div class="edit small-label center" data-i18n="USES"></div></div></div><button type="roll" name="roll_trait" class="presentation trait wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{trait=1}} {{recharge=@{recharge}}} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} {{uses=@{uses}}} {{uses_max=@{uses|max}}} @{heal_toggle} @{hide_gm_info} @{extras_toggle}"><span class="heading"></span> <span name="attr_name" class="bold italic"></span><span name="attr_recharge_display" class="bold italic"></span><span class="bold italic">.</span> <span name="attr_display_text" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-17"></div><div class="col-34 center pad-l-sm"><input type="text" name="attr_name" class="bold italic" data-i18n-placeholder="AMPHIBIOUS"></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-26 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><div class="col-100 center"><textarea class="two-line-textarea" name="attr_display_text"></textarea><div class="small-label" data-i18n="DISPLAY_TEXT"></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_heal_formula"><div class="shaped-row vert-center mar-t-sm"><input type="checkbox" name="attr_heal_toggle" value="{{heal=[[@{heal_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="HEAL"></span>.</div><div class="attack-toggle col-12"><input type="text" name="attr_heal" class="center" accept="Healing" placeholder="1d6"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10"><select name="attr_heal_ability"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center"><input type="number" name="attr_heal_bonus"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle center"><input type="checkbox" name="attr_heal_query_toggle" value="?{Heal Bonus Amount|}" class="toggle-query"><span class="toggle-query button" data-i18n="QUERY"></span></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><input type="hidden" name="attr_actions_exist" class="item-toggle"><div class="item-to-toggle"><h3 data-i18n="ACTIONS"></h3><fieldset class="repeating_action"><div class="relative mar-b-sm"><button type="roll" name="roll_action" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} {{recharge=@{recharge}}} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><span class="bold italic"><span name="attr_name"></span><span name="attr_recharge_display"></span>. </span><span name="attr_freetext" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-40 center"><input type="text" name="attr_name" class="bold italic" data-i18n-placeholder="BITE"></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle" checked="checked"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><input type="hidden" name="attr_reactions_exist" class="item-toggle"><div class="item-to-toggle"><h3 data-i18n="REACTIONS"></h3><fieldset class="repeating_reaction"><div class="relative mar-b-sm"><button type="roll" name="roll_action" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} {{recharge=@{recharge}}} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><span class="bold italic"><span name="attr_name"></span><span name="attr_recharge_display"></span>. </span><span name="attr_freetext" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-40 center"><input type="text" name="attr_name" class="bold italic" data-i18n-placeholder="BITE"></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle" checked="checked"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><input type="hidden" name="attr_legendaryactions_exist" class="item-toggle"><div class="item-to-toggle"><h3 data-i18n="LEGENDARY_ACTIONS"></h3><div class="mar-b-md"><span data-i18n="LEGENDARY_ACTIONS_TEXT_1"></span> <span name="attr_character_name"></span> <span data-i18n="LEGENDARY_ACTIONS_TEXT_2"></span> <span name="attr_legendary_action_amount" class="presentation"></span><div class="col-2-em inline-block edit"><input type="number" name="attr_legendary_action_amount" class="no-border no-spin"></div> <span data-i18n="LEGENDARY_ACTIONS_TEXT_3"></span> <span name="attr_character_name"></span> <span data-i18n="LEGENDARY_ACTIONS_TEXT_4"></span></div><fieldset class="repeating_legendaryaction"><div class="relative mar-b-sm"><button type="roll" name="roll_action" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} {{recharge=@{recharge}}} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><span class="bold italic"><span name="attr_name"></span><span name="attr_recharge_display"></span>. </span><span name="attr_freetext" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-40 center"><input type="text" name="attr_name" class="bold italic" data-i18n-placeholder="BITE"></div><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle" checked="checked"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><input type="hidden" name="attr_lairactions_exist" class="item-toggle"><div class="item-to-toggle"><h3 data-i18n="LAIR_ACTIONS"></h3><fieldset class="repeating_lairaction"><div class="relative mar-b-sm"><button type="roll" name="roll_action" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} {{recharge=@{recharge}}} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><span name="attr_freetext" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div><input type="hidden" name="attr_regionaleffects_exist" class="item-toggle"><div class="item-to-toggle"><h3 data-i18n="REGIONAL_EFFECTS"></h3><fieldset class="repeating_regionaleffect"><div class="relative mar-b-sm"><button type="roll" name="roll_action" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{action=1}} {{reach=@{reach}}} {{range=@{range}}} {{recharge=@{recharge}}} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{attacher_attack} @{hide_gm_info} @{extras_toggle}"><span name="attr_freetext" class="pre-line"></span></button><div class="shaped-row edit"><div class="col-17 center pad-l-sm pad-r-sm"><select name="attr_type"><option value="Other" data-i18n="OTHER_TYPE"></option><option value="Melee Weapon" data-i18n="MELEE_WEAPON"></option><option value="Ranged Weapon" data-i18n="RANGED_WEAPON"></option></select><div class="small-label" data-i18n="TYPE"></div></div><div class="col-10 center pad-l-sm pad-r-sm"><input type="text" name="attr_reach" class="center"><div class="small-label" data-i18n="REACH"></div></div><div class="col-18 center pad-l-sm pad-r-sm"><input type="text" name="attr_range" class="center"><div class="small-label" data-i18n="RANGE"></div></div><div class="col-15 center pad-l-sm"><input type="text" name="attr_recharge" class="center"><div class="small-label" data-i18n="RECHARGE"></div></div></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit"><span class="toggle-icon-settings pictos edit">y</span><div class="details edit"><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="SLASHING" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div></div></fieldset></div></div></div><input type="hidden" name="attr_character_name"></div></div><div class="bar"></div></div><div class="section-spells"><input type="hidden" name="attr_cast_as_level_0"> <input type="hidden" name="attr_cast_as_level_1"> <input type="hidden" name="attr_cast_as_level_2"> <input type="hidden" name="attr_cast_as_level_3"> <input type="hidden" name="attr_cast_as_level_4"> <input type="hidden" name="attr_cast_as_level_5"> <input type="hidden" name="attr_cast_as_level_6"> <input type="hidden" name="attr_cast_as_level_7"> <input type="hidden" name="attr_cast_as_level_8"> <input type="hidden" name="attr_cast_as_level_9"> <input type="hidden" name="attr_higher_level_query_0"> <input type="hidden" name="attr_higher_level_query_1"> <input type="hidden" name="attr_higher_level_query_2"> <input type="hidden" name="attr_higher_level_query_3"> <input type="hidden" name="attr_higher_level_query_4"> <input type="hidden" name="attr_higher_level_query_5"> <input type="hidden" name="attr_higher_level_query_6"> <input type="hidden" name="attr_higher_level_query_7"> <input type="hidden" name="attr_higher_level_query_8"><div class="shaped-row mar-b-sm"><div class="col-80"><div class="wrap-box"><input type="checkbox" name="attr_spell_display_filters" class="toggle-spell-filters" value="1" checked="checked"><span class="toggle-spell-filters button" data-i18n="FILTERS"></span> <input type="checkbox" name="attr_spell_contents" class="toggle-spells-filter-content presentation"><span class="toggle-spells-filter-content presentation button" data-i18n="CONTENT"></span> <input type="checkbox" name="attr_spell_condensed" class="toggle-spells-filter-condense presentation"><span class="toggle-spells-filter-condense presentation button" data-i18n="CONDENSE"></span> <input type="checkbox" name="attr_spell_only_show_prepared" class="toggle-spells-filter-prepared"><span class="toggle-spells-filter-prepared button" data-i18n="PREPARED"></span> <input type="checkbox" name="attr_spell_only_show_rituals" class="toggle-spells-filter-ritual"><span class="toggle-spells-filter-ritual button" data-i18n="RITUAL"></span> <input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-cantrips" value="0"><span class="toggle-spells-filter-level-cantrips button" data-i18n="CANTRIPS"></span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-1 spell-level-1" value="1"><span class="toggle-spells-filter-level-1 spell-level-1 button border-left">1</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-2 spell-level-2" value="2"><span class="toggle-spells-filter-level-2 spell-level-2 button border-left">2</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-3 spell-level-3" value="3"><span class="toggle-spells-filter-level-3 spell-level-3 button border-left">3</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-4 spell-level-4" value="4"><span class="toggle-spells-filter-level-4 spell-level-4 button border-left">4</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-5 spell-level-5" value="5"><span class="toggle-spells-filter-level-5 spell-level-5 button border-left">5</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-6 spell-level-6" value="6"><span class="toggle-spells-filter-level-6 spell-level-6 button border-left">6</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-7 spell-level-7" value="7"><span class="toggle-spells-filter-level-7 spell-level-7 button border-left">7</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-8 spell-level-8" value="8"><span class="toggle-spells-filter-level-8 spell-level-8 button border-left">8</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-9 spell-level-9" value="9"><span class="toggle-spells-filter-level-9 spell-level-9 button border-left">9</span><input type="radio" name="attr_spell_level_filter" class="toggle-spells-filter-level-all" value="all" checked="checked"><span class="toggle-spells-filter-level-all button border-left" data-i18n="ALL"></span> <input type="hidden" name="attr_spell_level_filter" class="toggle-spells-filter-level"> <input type="radio" name="attr_spell_casting_time_only_show" class="toggle-spells-filter-casting-time-reaction" value="reaction"><span class="toggle-spells-filter-casting-time-reaction button" data-i18n="REACTION"></span><input type="radio" name="attr_spell_casting_time_only_show" class="toggle-spells-filter-casting-time-bonus" value="bonus"><span class="toggle-spells-filter-casting-time-bonus button border-left" data-i18n="BONUS"></span><input type="radio" name="attr_spell_casting_time_only_show" class="toggle-spells-filter-casting-time-action" value="action"><span class="toggle-spells-filter-casting-time-action button border-left" data-i18n="ACTION"></span><input type="radio" name="attr_spell_casting_time_only_show" class="toggle-spells-filter-casting-time-all" value="all" checked="checked"><span class="toggle-spells-filter-casting-time-all button border-left" data-i18n="ALL"></span> <input type="checkbox" name="attr_spell_only_show_concentration" class="toggle-spells-filter-concentration" checked="checked"><span class="toggle-spells-filter-concentration button" data-i18n="CONCENTRATION"></span> <input type="checkbox" name="attr_spell_only_show_verbal" class="toggle-spells-filter-verbal" checked="checked"><span class="toggle-spells-filter-verbal button" data-i18n="COMPONENTS_V"></span> <input type="checkbox" name="attr_spell_only_show_somatic" class="toggle-spells-filter-somatic" checked="checked"><span class="toggle-spells-filter-somatic button" data-i18n="COMPONENTS_S"></span> <input type="checkbox" name="attr_spell_only_show_material" class="toggle-spells-filter-material" checked="checked"><span class="toggle-spells-filter-material button" data-i18n="COMPONENTS_M"></span><div class="mar-t-sm"></div><fieldset class="repeating_spell"><input type="hidden" name="attr_spell_level" class="toggle-spell-level"> <input type="checkbox" name="attr_is_prepared" class="toggle-spells-prepared hidden"> <input type="hidden" name="attr_ritual" class="toggle-spells-ritual"> <input type="hidden" name="attr_concentration" class="toggle-spells-concentration"> <input type="hidden" name="attr_casting_time" class="toggle-casting-time"> <input type="hidden" name="attr_components" class="toggle-components"><div class="spell compendium-drop-target relative"><input type="hidden" name="attr_add_casting_modifier" accept="Add Casting Modifier"> <input type="hidden" name="attr_type" accept="Spell Attack"> <input type="hidden" name="attr_cast_as_level"> <input type="hidden" name="attr_spell_level_from_srd" accept="Level"> <input type="hidden" name="attr_school_from_srd" accept="School"> <input type="hidden" name="attr_casting_time_from_srd" accept="Casting Time"> <input type="hidden" name="attr_components_from_srd" accept="Components"> <input type="hidden" name="attr_duration_from_srd" accept="Duration"> <input type="hidden" name="attr_saving_throw_vs_ability_from_srd" accept="Save"><div class="presentation"><button type="roll" name="roll_spell" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{spell=1}} @{attacher_spell} {{spell_level=^{@{spell_level}}}} {{school=^{@{school}}}} {{casting_time=^{@{casting_time}}}} @{ritual_output} {{range=@{range}}} {{components=^{@{components}}}} {{materials=@{materials}}} {{duration=^{@{duration}}}} {{target=@{target}}} @{content_toggle} @{roll_toggle} @{saving_throw_toggle} @{damage_toggle} @{second_damage_toggle} @{heal_toggle} {{cast_as_level=@{cast_as_level}}} @{higher_level_toggle} @{hide_gm_info} @{special_effects_toggle} @{extras_toggle}"><div class="no-overflow"><span name="attr_name" class="spell-name"></span></div><div class="no-overflow condense"><span name="attr_spell_level" data-i18n-dynamic class="italic"></span> <span name="attr_school" data-i18n-dynamic class="italic"></span> <span class="show-ritual italic lowercase">(<span data-i18n="RITUAL"></span>)</span></div><div class="no-overflow condense"><span class="bold mar-r-sm"><span data-i18n="CASTING_TIME"></span>:</span> <span name="attr_casting_time" data-i18n-dynamic></span></div><div class="no-overflow condense"><span class="bold mar-r-sm"><span data-i18n="RANGE"></span>:</span> <span name="attr_range"></span></div><div class="no-overflow condense"><span class="bold mar-r-sm"><span data-i18n="COMPONENTS"></span>:</span> <span name="attr_components" data-i18n-dynamic></span> <input type="checkbox" name="attr_materials_show" value="1" class="show-materials hidden"> <span class="show-materials">(<span name="attr_materials" class="small-label"></span>)</span></div><div class="no-overflow condense"><span class="bold mar-r-sm"><span data-i18n="DURATION"></span>:</span> <span name="attr_duration" data-i18n-dynamic></span></div><div class="no-overflow condense"><span class="bold mar-r-sm"><span data-i18n="TARGET"></span>:</span> <span name="attr_target"></span></div><div class="condense content"><span name="attr_content"></span></div></button></div><input type="checkbox" name="attr_is_prepared" class="toggle-spells-prepared"><span class="toggle-spells-prepared" data-i18n="PREPARED"></span> <input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings edit" checked="checked"><span class="toggle-icon-settings pictos edit">y</span> <input type="text" name="attr_name" class="spell-name edit" data-i18n-placeholder="NAME" accept="Name"><div class="details edit"><div class="shaped-row vert-center"><div class="col-18"><select name="attr_spell_level" class="italic no-border" accept="Level"><option value="CANTRIP" data-i18n="CANTRIP"></option><option value="1ST_LEVEL" data-i18n="1ST_LEVEL"></option><option value="2ND_LEVEL" data-i18n="2ND_LEVEL"></option><option value="3RD_LEVEL" data-i18n="3RD_LEVEL"></option><option value="4TH_LEVEL" data-i18n="4TH_LEVEL"></option><option value="5TH_LEVEL" data-i18n="5TH_LEVEL"></option><option value="6TH_LEVEL" data-i18n="6TH_LEVEL"></option><option value="7TH_LEVEL" data-i18n="7TH_LEVEL"></option><option value="8TH_LEVEL" data-i18n="8TH_LEVEL"></option><option value="9TH_LEVEL" data-i18n="9TH_LEVEL"></option></select></div><div class="col-26 center"><select name="attr_school" class="italic no-border"><option value="ABJURATION" data-i18n="ABJURATION"></option><option value="CONJURATION" data-i18n="CONJURATION"></option><option value="DIVINATION" data-i18n="DIVINATION"></option><option value="ENCHANTMENT" data-i18n="ENCHANTMENT"></option><option value="EVOCATION" data-i18n="EVOCATION"></option><option value="ILLUSION" data-i18n="ILLUSION"></option><option value="NECROMANCY" data-i18n="NECROMANCY"></option><option value="TRANSMUTATION" data-i18n="TRANSMUTATION"></option></select></div><div class="mar-l-lg"><input type="hidden" name="attr_ritual_output"> <input type="checkbox" name="attr_ritual" class="toggle-spells-ritual" value="Yes" accept="Ritual"><span class="toggle-spells-ritual" data-i18n="RITUAL"></span></div></div><div class="shaped-row vert-center"><span class="bold mar-r-sm"><span data-i18n="CASTING_TIME"></span>:</span><div class="flex-grow center pad-l-sm"><select name="attr_casting_time" class="no-border"><option value="1_ACTION" data-i18n="1_ACTION"></option><option value="1_BONUS_ACTION" data-i18n="1_BONUS_ACTION"></option><option value="1_REACTION" data-i18n="1_REACTION"></option><option value="1_MINUTE" data-i18n="1_MINUTE"></option><option value="10_MINUTES" data-i18n="10_MINUTES"></option><option value="1_HOUR" data-i18n="1_HOUR"></option><option value="8_HOURS" data-i18n="8_HOURS"></option><option value="12_HOURS" data-i18n="12_HOURS"></option><option value="24_HOURS" data-i18n="24_HOURS"></option></select></div></div><div class="shaped-row vert-center"><span class="bold mar-r-sm"><span data-i18n="RANGE"></span>:</span><div class="flex-grow center pad-l-sm"><input type="text" name="attr_range" class="no-border" placeholder="90ft" accept="Range"></div></div><div class="shaped-row vert-center"><span class="bold mar-r-sm"><span data-i18n="COMPONENTS"></span>:</span><div class="col-14 center pad-l-sm"><select name="attr_components" class="no-border"><option value="COMPONENTS_V_S_M" data-i18n="COMPONENTS_V_S_M"></option><option value="COMPONENTS_V_S" data-i18n="COMPONENTS_V_S"></option><option value="COMPONENTS_V_M" data-i18n="COMPONENTS_V_M"></option><option value="COMPONENTS_V" data-i18n="COMPONENTS_V"></option><option value="COMPONENTS_S_M" data-i18n="COMPONENTS_S_M"></option><option value="COMPONENTS_S" data-i18n="COMPONENTS_S"></option><option value="COMPONENTS_M" data-i18n="COMPONENTS_M"></option></select></div><div class="flex-grow pad-l-sm"><div class="shaped-row no-wrap small-label vert-center"><span>(</span> <input type="text" name="attr_materials" class="no-border small-label" accept="Material"> <span>)</span></div></div></div><div class="shaped-row vert-center"><span class="bold mar-r-sm"><span data-i18n="DURATION"></span>:</span><div class="flex-grow center pad-l-sm"><select name="attr_duration" class="no-border"><option value="INSTANTANEOUS" data-i18n="INSTANTANEOUS"></option><option value="INSTANTANEOUS_OR_1_HOUR" data-i18n="INSTANTANEOUS_OR_1_HOUR"></option><option value="1_ROUND" data-i18n="1_ROUND"></option><option value="1_MINUTE" data-i18n="1_MINUTE"></option><option value="10_MINUTES" data-i18n="10_MINUTES"></option><option value="1_HOUR" data-i18n="1_HOUR"></option><option value="8_HOURS" data-i18n="8_HOURS"></option><option value="12_HOURS" data-i18n="12_HOURS"></option><option value="24_HOURS" data-i18n="24_HOURS"></option><option value="CONCENTRATION_UP_TO_1_ROUND" data-i18n="CONCENTRATION_UP_TO_1_ROUND"></option><option value="CONCENTRATION_UP_TO_6_ROUNDS" data-i18n="CONCENTRATION_UP_TO_6_ROUNDS"></option><option value="CONCENTRATION_UP_TO_1_MINUTE" data-i18n="CONCENTRATION_UP_TO_1_MINUTE"></option><option value="CONCENTRATION_UP_TO_10_MINUTES" data-i18n="CONCENTRATION_UP_TO_10_MINUTES"></option><option value="CONCENTRATION_UP_TO_1_HOUR" data-i18n="CONCENTRATION_UP_TO_1_HOUR"></option><option value="CONCENTRATION_UP_TO_2_HOURS" data-i18n="CONCENTRATION_UP_TO_2_HOURS"></option><option value="CONCENTRATION_UP_TO_8_HOURS" data-i18n="CONCENTRATION_UP_TO_8_HOURS"></option><option value="CONCENTRATION_UP_TO_12_HOURS" data-i18n="CONCENTRATION_UP_TO_12_HOURS"></option><option value="CONCENTRATION_UP_TO_24_HOURS" data-i18n="CONCENTRATION_UP_TO_24_HOURS"></option><option value="7_DAYS" data-i18n="7_DAYS"></option><option value="10_DAYS" data-i18n="10_DAYS"></option><option value="30_DAYS" data-i18n="30_DAYS"></option><option value="UNTIL_DISPELLED" data-i18n="UNTIL_DISPELLED"></option><option value="UNTIL_DISPELLED_OR_TRIGGERED" data-i18n="UNTIL_DISPELLED_OR_TRIGGERED"></option><option value="SPECIAL" data-i18n="SPECIAL"></option></select></div></div><div class="shaped-row vert-center"><span class="bold mar-r-sm"><span data-i18n="TARGET"></span>:</span><div class="flex-grow center pad-l-sm"><input type="text" name="attr_target" class="no-border" data-i18n-placeholder="ONE_CREATURE" accept="Target"></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_content_toggle" value="{{content=@{content}}}" class="attack-toggle" checked="checked"><div class="bold italic mar-r-sm"><span data-i18n="CONTENT"></span>.</div><div class="col-80 attack-toggle"><textarea name="attr_content" class="three-line-textarea" accept="Content"></textarea></div></div><input type="hidden" name="attr_attack_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_roll_toggle" value="{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="ATTACK"></span>.</div><div class="attack-toggle col-08 center pad-r-sm"><input type="checkbox" name="attr_proficiency" checked="checked"><div class="small-label" data-i18n="PROF"></div></div><div class="attack-toggle col-10 center pad-r-sm"><select name="attr_attack_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_attack_bonus" class="center"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="number" name="attr_crit_range" class="center" value="20" step="1" min="1" max="20"><div class="small-label" data-i18n="CRIT_RANGE"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_saving_throw_toggle" value="{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SAVING_THROW"></span>.</div><div class="attack-toggle col-65"><textarea class="one-line-textarea" name="attr_saving_throw_condition" data-i18n-placeholder="IF_THE_TARGET_IS"></textarea></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-10 center"><select name="attr_saving_throw_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_saving_throw_bonus"></div><div class="attack-toggle center pad-l-sm pad-r-sm">=</div><div class="attack-toggle center pad-l-sm pad-r-sm" data-i18n="DC"></div><div class="attack-toggle col-09 center"><input type="number" name="attr_saving_throw_dc" readonly="readonly"></div><div class="attack-toggle col-20 center"><select name="attr_saving_throw_vs_ability"><option value="STRENGTH" data-i18n="STRENGTH" class="default-saving-throw"></option><option value="DEXTERITY" data-i18n="DEXTERITY" class="default-saving-throw"></option><option value="CONSTITUTION" data-i18n="CONSTITUTION" class="default-saving-throw"></option><option value="INTELLIGENCE" data-i18n="INTELLIGENCE" class="default-saving-throw"></option><option value="WISDOM" data-i18n="WISDOM" class="default-saving-throw"></option><option value="CHARISMA" data-i18n="CHARISMA" class="default-saving-throw"></option><option value="FORTITUDE" data-i18n="FORTITUDE" class="custom-saving-throw"></option><option value="REFLEX" data-i18n="REFLEX" class="custom-saving-throw"></option><option value="WILL" data-i18n="WILL" class="custom-saving-throw"></option></select></div><div class="attack-toggle col-100"></div><div class="attack-toggle col-50 pad-r-sm"><textarea class="one-line-textarea" name="attr_saving_throw_failure" data-i18n-placeholder="OR"></textarea></div><div class="attack-toggle col-50 pad-l-sm"><textarea class="one-line-textarea" name="attr_saving_throw_success" data-i18n-placeholder="HALF_DAMAGE" accept="Save Success"></textarea></div></div><input type="hidden" name="attr_damage_formula"> <input type="hidden" name="attr_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_damage_toggle" value="{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_damage" class="center" accept="Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_second_damage_formula"> <input type="hidden" name="attr_second_damage_crit_formula"><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_second_damage_toggle" value="{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="DAMAGE"></span>.</div><div class="attack-toggle col-12 center"><input type="text" name="attr_second_damage" class="center" accept="Secondary Damage" placeholder="1d6"></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center"><select name="attr_second_damage_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle center pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10 center pad-r-sm"><input type="number" name="attr_second_damage_bonus"></div><div class="attack-toggle col-18 center pad-r-sm"><input type="text" name="attr_second_damage_type" class="center" data-i18n-placeholder="FIRE" accept="Secondary Damage Type"></div><div class="attack-toggle col-16 center pad-l-sm"><input type="text" name="attr_second_damage_crit" class="center"><div class="small-label relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_DAMAGE_TOOLTIP"></div></div></div></div></div></div><input type="hidden" name="attr_heal_formula"><div class="shaped-row vert-center mar-t-sm"><input type="checkbox" name="attr_heal_toggle" value="{{heal=[[@{heal_formula}]]}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="HEAL"></span>.</div><div class="attack-toggle col-12"><input type="text" name="attr_heal" class="center" accept="Healing" placeholder="1d6"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-10"><select name="attr_heal_ability"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle col-12 center"><input type="number" name="attr_heal_bonus"></div><div class="attack-toggle pad-l-sm pad-r-sm">+</div><div class="attack-toggle center"><input type="checkbox" name="attr_heal_query_toggle" value="?{Heal Bonus Amount|}" class="toggle-query"><span class="toggle-query button" data-i18n="QUERY"></span></div></div><div class="shaped-row vert-top mar-t-sm"><input type="hidden" name="attr_higher_level_query"> <input type="checkbox" name="attr_higher_level_toggle" value="{{cast_as_level=@{higher_level_query}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="HIGHER_LEVEL"></span>.</div><div class="attack-toggle col-12 center pad-r-sm"><input type="number" name="attr_higher_level_dice" class="no-spin" accept="Higher Spell Slot Dice" step="0.01"><div class="small-label" data-i18n="DICE"></div></div><div class="attack-toggle col-10 border-right center pad-l-sm pad-r-sm"><select name="attr_higher_level_die" accept="Higher Spell Slot Die"><option value="d0">—</option><option>d2</option><option>d4</option><option>d6</option><option>d8</option><option>d10</option><option>d12</option><option>d20</option></select><div class="small-label" data-i18n="DIE"></div></div><div class="attack-toggle col-12 center pad-l-sm pad-r-sm"><input type="number" name="attr_second_higher_level_dice" class="no-spin" accept="Secondary Higher Spell Slot Dice" step="0.01"><div class="small-label"><span data-i18n="2ND"></span> <span data-i18n="DICE"></span></div></div><div class="attack-toggle col-10 border-right center pad-l-sm pad-r-sm"><select name="attr_second_higher_level_die" accept="Secondary Higher Spell Slot Die"><option value="d0">—</option><option>d2</option><option>d4</option><option>d6</option><option>d8</option><option>d10</option><option>d12</option><option>d20</option></select><div class="small-label"><span data-i18n="2ND"></span> <span data-i18n="DIE"></span></div></div><div class="attack-toggle col-12 center pad-l-sm"><input type="text" name="attr_higher_level_heal" class="center" accept="Higher Level Healing"><div class="small-label" data-i18n="FLAT_HEAL"></div></div></div><div class="shaped-row vert-top mar-t-sm"><input type="checkbox" name="attr_extras_toggle" value="{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="EXTRAS"></span>.</div><div class="attack-toggle col-75 center mar-b-sm"><textarea class="one-line-textarea" name="attr_emote"></textarea><div class="small-label" data-i18n="EMOTE"></div></div><div class="attack-toggle col-100 center"><textarea name="attr_freetext" class="two-line-textarea"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="attack-toggle col-100 center mar-t-sm"><textarea name="attr_freeform" class="one-line-textarea"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div><div class="shaped-row vert-top mar-t-sm relative"><input type="checkbox" name="attr_special_effects_toggle" value="{{fx=@{special_effects_type}-@{special_effects_color} @{special_effects_points_of_origin}}}" class="attack-toggle"><div class="bold italic mar-r-sm"><span data-i18n="SPECIAL_EFFECTS"></span>.</div><div class="attack-toggle col-15 center mar-b-sm"><input type="text" name="attr_special_effects_type" class="center" data-i18n-placeholder="EXPLODE"><div class="small-label" data-i18n="TYPE"></div></div><div class="attack-toggle col-15 center pad-l-sm mar-b-sm"><input type="text" name="attr_special_effects_color" class="center" data-i18n-placeholder="FIRE"><div class="small-label" data-i18n="COLOR"></div></div><div class="attack-toggle col-30 center pad-l-sm mar-b-sm"><select name="attr_special_effects_points_of_origin"><option value="sourceToTarget @{target|token_id}" data-i18n="SOURCE_TO_TARGET"></option><option value="target @{target|token_id}" data-i18n="TARGET"></option><option value="source" data-i18n="SOURCE"></option><option value="targetToSource @{target|token_id}" data-i18n="TARGET_TO_SOURCE"></option></select><div class="small-label" data-i18n="POINTS_OF_ORIGIN"></div></div><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">A</div><div class="tooltip-content-left small-label" data-i18n="REQUIRES_API"></div></div></div></div></div></div></fieldset><div class="center small-label italic" data-i18n="TURN_OFF_FILTERING"></div><button type="roll" name="roll_shaped_spells" class="wrapper-button" value="@{spells_macro_var}"><div class="wrap-box-title center" data-i18n="SPELLS"></div></button></div></div><div class="col-20 spell-slots-points right pad-l-smd"><div class="spell-slots-points wrap-box center mar-b-smd"><input type="checkbox" name="attr_spell_slots_toggle" class="toggle-spell-slots edit" checked="checked"><span class="toggle-spell-slots edit button" data-i18n="SPELL_SLOTS"></span> <input type="checkbox" name="attr_spell_points_toggle" class="toggle-spell-points edit"><span class="toggle-spell-points edit button" data-i18n="SPELL_POINTS"></span> <input type="checkbox" name="attr_spell_slots_all" class="toggle-spell-slots-all edit"><span class="toggle-spell-slots-all edit button" data-i18n="ALL"></span><div class="spell-slots"><div class="shaped-row spell-level-1 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="1ST"></div><div class="col-23"><input type="number" name="attr_spell_slots_l1" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l1_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l1_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l1_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="2ND"></div><div class="col-23"><input type="number" name="attr_spell_slots_l2" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l2_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l2_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l2_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="3RD"></div><div class="col-23"><input type="number" name="attr_spell_slots_l3" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l3_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l3_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l3_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="4TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l4" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l4_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l4_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l4_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="5TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l5" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l5_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l5_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l5_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="6TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l6" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l6_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l6_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l6_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="7TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l7" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l7_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l7_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l7_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="8TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l8" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l8_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l8_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l8_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="9TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l9" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l9_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l9_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l9_max" class="pseudo-input center border-bottom"></span></div></div><button type="roll" name="roll_shaped_spells" class="wrapper-button" value="@{spells_macro_var}"><div class="wrap-box-title center" data-i18n="SPELL_SLOTS_TITLE"></div></button></div><div class="spell-points"><div class="shaped-row spell-level-1 center vert-center"><div class="col-20 center" data-i18n="1ST"></div><div class="col-20 center pad-l-sm"><span>2</span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-20 center" data-i18n="2ND"></div><div class="col-20 center pad-l-sm"><span>3</span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-20 center" data-i18n="3RD"></div><div class="col-20 center pad-l-sm"><span>5</span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-20 center" data-i18n="4TH"></div><div class="col-20 center pad-l-sm"><span>6</span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-20 center" data-i18n="5TH"></div><div class="col-20 center pad-l-sm"><span>7</span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-20 center" data-i18n="6TH"></div><div class="col-20 center pad-l-sm"><span>9</span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-20 center" data-i18n="7TH"></div><div class="col-20 center pad-l-sm"><span>10</span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-20 center" data-i18n="8TH"></div><div class="col-20 center pad-l-sm"><span>11</span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-20 center" data-i18n="9TH"></div><div class="col-20 center pad-l-sm"><span>13</span></div></div><div class="shaped-row center no-background"><div class="col-35 center pad-r-sm"><input type="number" name="attr_spell_points" value="0"></div><div class="col-05 center">/</div><div class="col-35 center pad-l-sm"><input type="number" name="attr_spell_points_max" value="0" min="0"></div></div><div class="wrap-box-title center"><span class="spell-points" data-i18n="SPELL_POINTS_TITLE"></span></div></div></div><div class="general-bonuses center mar-b-smd"><div class="wrap-box"><div class="wrap-box-label light-label center" data-i18n="SPELLCASTING"></div><div class="shaped-row no-wrap mar-b-sm"><div class="center pad-r-sm"><input type="text" name="attr_global_spell_attack_bonus" class="center" value="0"><div class="small-label" data-i18n="ATTACK"></div></div><div class="center"><input type="text" name="attr_global_spell_damage_bonus" class="center" value="0"><div class="small-label" data-i18n="DAMAGE"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_spell_dc_bonus" class="center" value="0"><div class="small-label" data-i18n="SAVING_DC"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_spell_heal_bonus" class="center" value="0"><div class="small-label" data-i18n="HEAL"></div></div></div><div class="wrap-box-title" data-i18n="BONUSES_AND_PENALTIES"></div></div></div><div class="shaped-row center"><div class="col-50 pad-r-sm"><div class="wrap-box relative"><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="DEFAULT_ABILITY_TOOLTIP"></div></div></div><select name="attr_default_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select><div class="wrap-box-title center" data-i18n="DEFAULT_ABILITY"></div></div></div><div class="col-50 npc pad-l-sm"><div class="wrap-box"><input type="number" name="attr_caster_level" min="0" step="1"><div class="wrap-box-title center" data-i18n="SPELLCASTING_LEVEL"></div></div></div></div></div></div></div><div class="section-equipment pc"><div class="shaped-row mar-b-smd"><div class="col-70 pad-r-md"><div class="wrap-box"><div class="shaped-row"><div class="col-03 small-label"></div><div class="col-20 wrap-box-label light-label pad-r-sm" data-i18n="ARMOR"></div><div class="col-17 wrap-box-label light-label center pad-r-sm" data-i18n="TYPE"></div><div class="edit col-05 wrap-box-label light-label center" data-i18n="AC"></div><div class="edit col-02"></div><div class="edit col-07 wrap-box-label light-label center" data-i18n="BONUS"></div><div class="edit col-02"></div><div class="col-06 wrap-box-label light-label center" data-i18n="TOTAL"></div><div class="col-11 wrap-box-label light-label pad-l-md" data-i18n="STRENGTH"></div><div class="col-09 wrap-box-label light-label center pad-l-md" data-i18n="STEALTH"></div><div class="col-10 wrap-box-label light-label center" data-i18n="USES"></div><div class="col-08 wrap-box-label light-label center pad-l-md" data-i18n="WEIGHT"></div></div><fieldset class="repeating_armor"><div class="shaped-row compendium-drop-target vert-center"><input type="hidden" name="attr_modifiers" accept="Modifiers"><div class="col-03 center"><input type="checkbox" name="attr_worn" checked="checked"></div><div class="col-20 pad-r-sm"><input type="text" name="attr_name" accept="Name"></div><div class="col-17 center pad-r-sm"><select name="attr_type" accept="Item Type"><option value="Light Armor" data-i18n="LIGHT_ARMOR"></option><option value="Medium Armor" data-i18n="MEDIUM_ARMOR"></option><option value="Heavy Armor" data-i18n="HEAVY_ARMOR"></option><option value="Armored" data-i18n="OTHER_ARMOR"></option><option value="Shield" data-i18n="SHIELD"></option><option value="AC" data-i18n="ARMORED_AND_UNARMORED"></option><option value="Unarmored" data-i18n="UNARMORED"></option></select></div><div class="edit col-05 center"><input type="number" name="attr_ac_base" class="no-spin" value="0" step="1" accept="AC"></div><div class="edit col-02 center">+</div><div class="edit col-07 center"><input type="number" name="attr_ac_bonus" class="no-spin" value="0" step="1"></div><div class="edit col-02 center">=</div><div class="col-06 center"><span name="attr_ac_total" class="pseudo-input center border-bottom"></span></div><div class="col-11 pad-l-md"><select name="attr_strength_requirements"><option value="no">—</option><option value="Str 13" data-i18n="STR_13"></option><option value="Str 15" data-i18n="STR_15"></option></select></div><div class="col-09 center pad-l-md"><input type="checkbox" name="attr_stealth" value="Disadvantage" accept="Stealth"></div><div class="col-10"><div class="shaped-row vert-center no-wrap"><div class="pad-r-sm"><input type="number" name="attr_uses" class="no-spin" step="1"></div><div>/</div><div class="pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin" step="1"></div></div></div><div class="col-08 center pad-l-md"><input type="number" name="attr_weight" class="no-spin" step="1" accept="Weight"></div></div></fieldset><div class="shaped-row center pad-t-md pad-b-md"><div class="col-12 center pad-r-md"><span name="attr_ac_armored_calc" class="pseudo-input center border-bottom"></span><div class="small-label" data-i18n="AC_ARMORED"></div></div><div class="col-12 center pad-r-md"><select name="attr_ac_unarmored_ability"><option value="" selected="selected">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select><div class="small-label" data-i18n="AC_UNARMORED_ABILITY"></div></div><div class="col-12 center pad-r-md"><span name="attr_ac_unarmored_calc" class="pseudo-input center border-bottom"></span><div class="small-label" data-i18n="AC_UNARMORED"></div></div><div class="col-15 center"><button type="roll" name="roll_shaped_ac" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{AC}}} {{text_big=[[@{ac}]]}}"><div class="shield"><span name="attr_AC" class="pseudo-input center big-text"></span><div class="wrap-box-title center" data-i18n="ARMOR_CLASS"></div></div></button></div></div><div class="wrap-box-title center" data-i18n="ARMOR"></div></div></div><div class="col-30 pad-r-sm"><div class="shaped-row"><div class="col-50 pad-r-sm"><div class="wrap-box"><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="ATTACKS"></div><div class="col-50"><span name="attr_weight_attacks" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="AMMO"></div><div class="col-50"><span name="attr_weight_ammo" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="ARMOR"></div><div class="col-50"><span name="attr_weight_armor" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="EQUIPMENT"></div><div class="col-50"><span name="attr_weight_equipment" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="COINAGE"></div><div class="col-50"><span name="attr_weight_coinage" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row vert-center"><div class="col-50 small-label" data-i18n="TOTAL"></div><div class="col-50"><span name="attr_weight_total" class="pseudo-input center border-bottom bold"></span></div></div><div class="wrap-box-title center" data-i18n="WEIGHT"></div></div></div><div class="col-50 pad-l-sm"><div class="wrap-box"><div class="shaped-row edit"><div class="col-75 small-label" data-i18n="MULTIPLIER"></div><div class="col-25"><input type="number" name="attr_weight_multiplier" class="no-spin" value="1" step=".05"></div></div><div class="shaped-row"><div class="col-75 small-label" data-i18n="CARRYING_CAPACITY"></div><div class="col-25"><span name="attr_carrying_capacity" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row"><div class="col-75 small-label" data-i18n="CARRYING_PUSH_DRAG_LIFT"></div><div class="col-25"><span name="attr_max_push_drag_lift" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row"><div class="col-75 small-label" data-i18n="ENCUMBERED"></div><div class="col-25"><span name="attr_encumbered" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row"><div class="col-75 small-label" data-i18n="ENCUMBERED_HEAVILY"></div><div class="col-25"><span name="attr_heavily_encumbered" class="pseudo-input center border-bottom"></span></div></div><div class="wrap-box-title center" data-i18n="CARRYING_CAPACITY"></div></div></div></div></div></div><div class="wrap-box"><div class="shaped-row"><div class="col-10"><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_cp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{COPPER_PIECES}}} {{text_big=[[@{cp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_CP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_cp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_sp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SILVER_PIECES}}} {{text_big=[[@{sp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_SP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_sp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_ep" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ELECTRUM_PIECES}}} {{text_big=[[@{ep}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_EP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_ep" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_gp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{GOLD_PIECES}}} {{text_big=[[@{gp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_GP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_gp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_pp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{PLATINUM_PIECES}}} {{text_big=[[@{pp}]]}}" tabindex="-1"><div class="light-label pad-r-sm" data-i18n="COINS_PP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_pp" class="no-spin no-border" value="0" min="0" step="1"></div></div><div class="coin shaped-row no-wrap vert-center mar-t-md"><div class="wrap-box col-38"><button type="roll" name="roll_shaped_coinage_total_gp" class="wrapper-button" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{TOTAL_GOLD_VALUE}}} {{text_big=[[@{total_gp}]]}}" tabindex="-1"><div class="light-label bold pad-r-sm" data-i18n="COINS_GP"></div></button></div><div class="shaped-row wrap-box coin-value-wrap"><input type="number" name="attr_total_gp" class="bold no-border" value="0" readonly="readonly"></div></div></div><div class="col-90 pad-l-md"><div class="shaped-row"><div class="col-02"></div><div class="col-20 wrap-box-label light-label pad-r-sm" data-i18n="EQUIPMENT"></div><div class="col-45 wrap-box-label light-label pad-r-sm" data-i18n="CONTENT"></div><div class="col-10 wrap-box-label light-label center" data-i18n="USES"></div><div class="col-07 wrap-box-label light-label center pad-l-md" data-i18n="QTY"></div><div class="col-01"></div><div class="col-07 wrap-box-label light-label center" data-i18n="WEIGHT"></div><div class="col-01"></div><div class="col-07 wrap-box-label light-label center" data-i18n="TOTAL"></div></div><fieldset class="repeating_equipment"><div class="shaped-row compendium-drop-target vert-center"><div class="col-02 center"><input type="checkbox" name="attr_carried" checked="checked"></div><div class="col-20 pad-r-sm"><input type="text" name="attr_name" accept="Name"></div><div class="col-45 pad-r-sm"><textarea name="attr_content" class="one-line-textarea" accept="Content"></textarea></div><div class="col-10"><div class="shaped-row vert-center no-wrap"><div class="pad-r-sm"><input type="number" name="attr_uses" class="no-spin" step="1"></div><div>/</div><div class="pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin" step="1"></div></div></div><div class="col-07 center pad-l-md"><input type="number" name="attr_qty" value="1" min="0" step="1"></div><div class="col-01 center">×</div><div class="col-07 center"><input type="number" name="attr_weight" value="0" step="0.01" accept="Weight"></div><div class="col-01 center">=</div><div class="col-07 center"><span name="attr_weight_total" class="pseudo-input center border-bottom"></span></div></div></fieldset><hr><div class="shaped-row vert-center mar-t-md"><div class="col-02"></div><div class="col-20 wrap-box-label light-label pad-r-sm" data-i18n="ATTACK"></div><div class="col-45 wrap-box-label light-label pad-r-sm" data-i18n="FREETEXT"></div><div class="col-10 wrap-box-label light-label center" data-i18n="USES"></div><div class="col-07 wrap-box-label light-label center pad-l-md" data-i18n="QTY"></div><div class="col-01"></div><div class="col-07 wrap-box-label light-label center" data-i18n="WEIGHT"></div><div class="col-01"></div><div class="col-07 wrap-box-label light-label center" data-i18n="TOTAL"></div></div><fieldset class="repeating_attack"><div class="shaped-row compendium-drop-target vert-center"><input type="hidden" name="attr_type" accept="Item Type"> <input type="hidden" name="attr_modifiers" accept="Modifiers"> <input type="hidden" name="attr_properties" accept="Properties"> <input type="hidden" name="attr_damage_type" accept="Damage Type"> <input type="hidden" name="attr_damage" accept="Damage"> <input type="hidden" name="attr_second_damage" accept="Secondary Damage"> <input type="hidden" name="attr_range" accept="Range"><div class="col-02 center"><input type="checkbox" name="attr_carried" checked="checked"></div><div class="col-20 pad-r-sm"><input type="text" name="attr_name" accept="Name"></div><div class="col-45 pad-r-sm"><textarea name="attr_freetext" class="one-line-textarea" accept="Content"></textarea></div><div class="col-10"><div class="shaped-row vert-center no-wrap"><div class="pad-r-sm"><input type="number" name="attr_uses" class="no-spin" step="1"></div><div>/</div><div class="pad-l-sm"><input type="number" name="attr_uses_max" class="no-spin" step="1"></div></div></div><div class="col-07 center pad-l-md"><input type="number" name="attr_qty" value="1" min="0" step="1"></div><div class="col-01 center">×</div><div class="col-07 center"><input type="number" name="attr_weight" value="0" step=".25" accept="Weight"></div><div class="col-01 center">=</div><div class="col-07 center"><span name="attr_weight_total" class="pseudo-input center border-bottom"></span></div></div></fieldset><div class="ammo mar-t-md"><div class="edit wrap-box-label light-label mar-b-sm" data-i18n="AMMO"></div><fieldset class="repeating_ammo"><div class="shaped-row compendium-drop-target no-wrap"><div><input type="number" name="attr_qty" min="0" step="1"><div class="small-label edit center" data-i18n="QTY"></div></div><div class="edit pad-l-sm"><input type="number" name="attr_weight" class="no-spin" value=".05" step=".005" accept="Weight"><div class="small-label center" data-i18n="WEIGHT"></div></div></div><div class="small-label center"><button type="roll" name="roll_ammo" class="presentation" value="@{output_option} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=@{name}}} {{text_big=@{qty}}}" tabindex="-1"><span name="attr_name" class="pseudo-input"></span></button> <input type="text" name="attr_name" class="edit center small-label no-border" data-i18n-placeholder="ARROWS" accept="Name"></div></fieldset></div></div></div><div class="wrap-box-title center" data-i18n="EQUIPMENT"></div></div></div><div class="section-character pc"><div class="shaped-row mar-b-smd"><input type="hidden" attr="attr_caster_level"><div class="col-70 pad-r-sm"><div class="wrap-box mar-b-smd"><input type="hidden" name="attr_level"><div class="shaped-row vert-center"><div class="col-12 wrap-box-label light-label center pad-r-sm" data-i18n="CLASS"></div><div class="col-10 wrap-box-label light-label center pad-l-sm pad-r-sm" data-i18n="LEVEL"></div><div class="col-10 wrap-box-label light-label center pad-l-sm pad-r-sm" data-i18n="HIT_DICE"></div><div class="col-40 wrap-box-label light-label center pad-l-sm" data-i18n="SPELLCASTING"></div><div class="col-20 wrap-box-label light-label center pad-l-sm pad-r-sm" data-i18n="CUSTOM_NAME"></div></div><fieldset class="repeating_class"><div class="shaped-row vert-center"><div class="col-12 pad-r-sm"><select name="attr_name"><option value="barbarian" data-i18n="BARBARIAN"></option><option value="bard" data-i18n="BARD"></option><option value="cleric" data-i18n="CLERIC"></option><option value="druid" data-i18n="DRUID"></option><option value="fighter" data-i18n="FIGHTER"></option><option value="monk" data-i18n="MONK"></option><option value="paladin" data-i18n="PALADIN"></option><option value="ranger" data-i18n="RANGER"></option><option value="rogue" data-i18n="ROGUE"></option><option value="sorcerer" data-i18n="SORCERER"></option><option value="warlock" data-i18n="WARLOCK"></option><option value="wizard" data-i18n="WIZARD"></option><option value="custom" data-i18n="CUSTOM"></option></select></div><div class="col-10 pad-l-sm pad-r-sm"><input type="number" name="attr_level"></div><div class="col-10 pad-l-sm pad-r-sm"><select name="attr_hd"><option value="d0">—</option><option>d2</option><option>d4</option><option>d6</option><option>d8</option><option>d10</option><option selected="selected">d12</option><option>d20</option></select></div><div class="col-40 pad-l-sm"><select name="attr_spellcasting"><option value="none">—</option><option value="full" data-i18n="CASTERS_FULL"></option><option value="half" data-i18n="CASTERS_HALF"></option><option value="third" data-i18n="CASTERS_THIRD"></option><option value="warlock" data-i18n="WARLOCK"></option></select></div><div class="col-20 pad-l-sm pad-r-sm"><input type="checkbox" name="attr_custom_class_toggle" class="toggle-custom-class hidden"> <input type="text" name="attr_custom_name" class="custom-class"></div></div></fieldset><div class="wrap-box-title center" data-i18n="CLASS_LEVELS"></div></div><div class="col-12 float-right mar-b-smd mar-r-sm"><div class="wrap-box relative"><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="DEFAULT_ABILITY_TOOLTIP"></div></div></div><select name="attr_default_ability"><option value="0">—</option><option value="finesse" data-i18n="FINESSE"></option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select><div class="wrap-box-title center" data-i18n="DEFAULT_ABILITY"></div></div></div></div><div class="col-30 pad-l-sm"><div class="spell-slots-points wrap-box center mar-b-smd"><input type="checkbox" name="attr_spell_slots_toggle" class="toggle-spell-slots edit" checked="checked"><span class="toggle-spell-slots edit button" data-i18n="SPELL_SLOTS"></span> <input type="checkbox" name="attr_spell_points_toggle" class="toggle-spell-points edit"><span class="toggle-spell-points edit button" data-i18n="SPELL_POINTS"></span> <input type="checkbox" name="attr_spell_slots_all" class="toggle-spell-slots-all edit"><span class="toggle-spell-slots-all edit button" data-i18n="ALL"></span><div class="spell-slots"><div class="shaped-row spell-level-1 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="1ST"></div><div class="col-23"><input type="number" name="attr_spell_slots_l1" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l1_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l1_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l1_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="2ND"></div><div class="col-23"><input type="number" name="attr_spell_slots_l2" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l2_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l2_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l2_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="3RD"></div><div class="col-23"><input type="number" name="attr_spell_slots_l3" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l3_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l3_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l3_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="4TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l4" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l4_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l4_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l4_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="5TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l5" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l5_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l5_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l5_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="6TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l6" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l6_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l6_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l6_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="7TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l7" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l7_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l7_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l7_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="8TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l8" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l8_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l8_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l8_max" class="pseudo-input center border-bottom"></span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-17 center pad-r-sm" data-i18n="9TH"></div><div class="col-23"><input type="number" name="attr_spell_slots_l9" value="0"></div><div class="pad-l-sm pad-r-sm">/</div><div class="pc edit col-13"><span name="attr_spell_slots_l9_calc" class="pseudo-input center border-bottom"></span></div><div class="pc edit">+</div><div class="edit col-13"><input type="number" name="attr_spell_slots_l9_bonus" class="no-spin" value="0" min="0"></div><div class="pc edit">=</div><div class="col-16"><span name="attr_spell_slots_l9_max" class="pseudo-input center border-bottom"></span></div></div><button type="roll" name="roll_shaped_spells" class="wrapper-button" value="@{spells_macro_var}"><div class="wrap-box-title center" data-i18n="SPELL_SLOTS_TITLE"></div></button></div><div class="spell-points"><div class="shaped-row spell-level-1 center vert-center"><div class="col-20 center" data-i18n="1ST"></div><div class="col-20 center pad-l-sm"><span>2</span></div></div><div class="shaped-row spell-level-2 center vert-center"><div class="col-20 center" data-i18n="2ND"></div><div class="col-20 center pad-l-sm"><span>3</span></div></div><div class="shaped-row spell-level-3 center vert-center"><div class="col-20 center" data-i18n="3RD"></div><div class="col-20 center pad-l-sm"><span>5</span></div></div><div class="shaped-row spell-level-4 center vert-center"><div class="col-20 center" data-i18n="4TH"></div><div class="col-20 center pad-l-sm"><span>6</span></div></div><div class="shaped-row spell-level-5 center vert-center"><div class="col-20 center" data-i18n="5TH"></div><div class="col-20 center pad-l-sm"><span>7</span></div></div><div class="shaped-row spell-level-6 center vert-center"><div class="col-20 center" data-i18n="6TH"></div><div class="col-20 center pad-l-sm"><span>9</span></div></div><div class="shaped-row spell-level-7 center vert-center"><div class="col-20 center" data-i18n="7TH"></div><div class="col-20 center pad-l-sm"><span>10</span></div></div><div class="shaped-row spell-level-8 center vert-center"><div class="col-20 center" data-i18n="8TH"></div><div class="col-20 center pad-l-sm"><span>11</span></div></div><div class="shaped-row spell-level-9 center vert-center"><div class="col-20 center" data-i18n="9TH"></div><div class="col-20 center pad-l-sm"><span>13</span></div></div><div class="shaped-row center no-background"><div class="col-35 center pad-r-sm"><input type="number" name="attr_spell_points" value="0"></div><div class="col-05 center">/</div><div class="col-35 center pad-l-sm"><input type="number" name="attr_spell_points_max" value="0" min="0"></div></div><div class="wrap-box-title center"><span class="spell-points" data-i18n="SPELL_POINTS_TITLE"></span></div></div></div></div></div><div class="wrap-box appearance pc mar-b-smd"><div class="shaped-row mar-b-md"><div class="col-1-8 pad-r-sm"><input type="text" name="attr_gender" class="center"><div class="small-label center" data-i18n="GENDER"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="text" name="attr_size" class="center"><div class="small-label center" data-i18n="SIZE"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="number" name="attr_age" class="center"><div class="small-label center" data-i18n="AGE"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="text" name="attr_height" class="center"><div class="small-label center" data-i18n="HEIGHT"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="text" name="attr_weight" class="center"><div class="small-label center" data-i18n="WEIGHT"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="text" name="attr_eyes" class="center"><div class="small-label center" data-i18n="EYES"></div></div><div class="col-1-8 pad-l-sm pad-r-sm"><input type="text" name="attr_skin" class="center"><div class="small-label center" data-i18n="SKIN"></div></div><div class="col-1-8 pad-l-sm"><input type="text" name="attr_hair" class="center"><div class="small-label center" data-i18n="HAIR"></div></div></div><div class="wrap-box-title center" data-i18n="APPEARANCE"></div></div><div class="shaped-row mar-b-smd"><div class="col-50 pad-r-sm"><div class="wrap-box vision"><div class="shaped-row"><div class="col-25 sense relative pad-r-sm"><label class="checkbox-label-sm absolute"><input type="checkbox" name="attr_blindsight_blind_beyond"><span data-i18n="BLIND_BEYOND"></span></label><input type="text" name="attr_blindsight" class="center mar-t-md"><div class="small-label center" data-i18n="BLINDSIGHT"></div></div><div class="col-25 sense mar-t-md pad-l-sm pad-r-sm"><input type="text" name="attr_darkvision" class="center"><div class="small-label center" data-i18n="DARKVISION"></div></div><div class="col-25 sense mar-t-md pad-l-sm pad-r-sm"><input type="text" name="attr_tremorsense" class="center"><div class="small-label center" data-i18n="TREMORSENSE"></div></div><div class="col-25 sense mar-t-md pad-l-sm"><input type="text" name="attr_truesight" class="center"><div class="small-label center" data-i18n="TRUESIGHT"></div></div></div><div class="wrap-box-title center" data-i18n="VISION"></div></div></div><div class="col-50 pad-l-sm"><div class="wrap-box movement"><div class="shaped-row"><div class="col-25 speed mar-t-md pad-r-sm"><input type="text" name="attr_speed_burrow" class="center"><div class="small-label center" data-i18n="BURROW"></div></div><div class="col-25 speed mar-t-md pad-l-sm pad-r-sm"><input type="text" name="attr_speed_climb" class="center"><div class="small-label center" data-i18n="CLIMB"></div></div><div class="col-25 speed relative pad-l-sm pad-r-sm"><label class="checkbox-label-sm absolute"><input type="checkbox" name="attr_speed_fly_hover"><span data-i18n="HOVER"></span></label><input type="text" name="attr_speed_fly" class="center mar-t-md"><div class="small-label center" data-i18n="FLY"></div></div><div class="col-25 speed mar-t-md pad-l-sm"><input type="text" name="attr_speed_swim" class="center"><div class="small-label center" data-i18n="SWIM"></div></div></div><div class="wrap-box-title center" data-i18n="MOVEMENT"></div></div></div></div><div class="wrap-box center mar-b-smd"><div class="shaped-row"><div class="col-80"><input type="hidden" name="attr_jack_of_all_trades"> <input type="checkbox" name="attr_jack_of_all_trades_toggle" value="@{jack_of_all_trades}" class="toggle-jack-of-all-trades"><span class="toggle-jack-of-all-trades button" data-i18n="JACK_OF_ALL_TRADES"></span> <input type="hidden" name="attr_remarkable_athlete"> <input type="checkbox" name="attr_remarkable_athlete_toggle" value="@{remarkable_athlete}" class="toggle-remarkable-athlete"><span class="toggle-remarkable-athlete button" data-i18n="REMARKABLE_ATHLETE"></span> <input type="checkbox" name="attr_halfling_luck" class="toggle-halfling-luck"><span class="toggle-halfling-luck button" data-i18n="HALFLING_LUCK"></span></div></div><div class="col-20 has-sorcerer-levels"><div class="wrap-box-label light-label" data-i18n="SORCERER"></div><div><input type="checkbox" name="attr_careful_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_CAREFUL_SPELL"></span></div><div><input type="checkbox" name="attr_distant_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_DISTANT_SPELL"></span></div><div><input type="checkbox" name="attr_empowered_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_EMPOWERED_SPELL"></span></div><div><input type="checkbox" name="attr_extended_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_EXTENDED_SPELL"></span></div><div><input type="checkbox" name="attr_heightened_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_HEIGHTENED_SPELL"></span></div><div><input type="checkbox" name="attr_quickened_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_QUICKENED_SPELL"></span></div><div><input type="checkbox" name="attr_subtle_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_SUBTLE_SPELL"></span></div><div><input type="checkbox" name="attr_twinned_spell_toggle" value="1"><span data-i18n="CLASS_FEATURE_METAMAGIC_TWINNED_SPELL"></span></div></div><div class="wrap-box-title" data-i18n="FEATURES"></div></div><div class="wrap-box center"><textarea name="attr_miscellaneous_notes" class="eight-line-textarea"></textarea><div class="wrap-box-title" data-i18n="MISCELLANEOUS_NOTES"></div></div></div><div class="section-settings"><div class="shaped-row mar-b-smd"><div class="col-22 pad-r-sm"><div class="wrap-box"><div class="shaped-row space-between vert-center mar-b-sm"><div class="small-label" data-i18n="SHEET"></div><div class="col-60"><select name="attr_output_option"><option value="" data-i18n="PUBLIC_FOR_ALL" selected="selected">Public for all to see</option><option value="/w GM" data-i18n="WHISPERED_TO_GM">Whispered to the GM</option></select></div></div><div class="shaped-row space-between vert-center mar-b-sm"><div class="small-label" data-i18n="DEATH_SAVES"></div><div class="col-60"><select name="attr_death_save_output_option"><option value="@{output_option}" data-i18n="SHEET_OUTPUT" selected="selected">Sheet output</option><option value="" data-i18n="PUBLIC_FOR_ALL">Public for all to see</option><option value="/w GM" data-i18n="WHISPERED_TO_GM">Whispered to the GM</option></select></div></div><div class="shaped-row space-between vert-center"><div class="small-label" data-i18n="HIT_DICE"></div><div class="col-60"><select name="attr_hit_dice_output_option"><option value="@{output_option}" data-i18n="SHEET_OUTPUT" selected="selected">Sheet output</option><option value="" data-i18n="PUBLIC_FOR_ALL">Public for all to see</option><option value="/w GM" data-i18n="WHISPERED_TO_GM">Whispered to the GM</option></select></div></div><div class="wrap-box-title center" data-i18n="OUTPUT"></div></div></div><div class="col-22 pad-l-sm pad-r-sm"><div class="wrap-box"><div class="shaped-row space-between vert-center mar-b-sm"><span class="small-label" data-i18n="OUTPUT"></span><div class="col-60"><select name="attr_initiative_output_option"><option value="@{output_option}" data-i18n="SHEET_OUTPUT" selected="selected"></option><option value="" data-i18n="PUBLIC_FOR_ALL"></option><option value="/w GM" data-i18n="WHISPERED_TO_GM"></option></select></div></div><div class="shaped-row space-between vert-center mar-b-sm"><span class="small-label" data-i18n="ROLL_OPTIONS"></span><div class="col-60"><select name="attr_initiative_roll"><option value="@{shaped_d20}" data-i18n="NORMAL"></option><option value="2d20@{d20_mod}kh1" data-i18n="ADVANTAGE"></option><option value="2d20@{d20_mod}kl1" data-i18n="DISADVANTAGE"></option></select></div></div><div class="shaped-row space-between vert-center mar-b-sm"><span class="small-label" data-i18n="TRACKER"></span><div class="col-60"><select name="attr_initiative_to_tracker"><option value="@{selected|initiative_formula} &{tracker}" data-i18n="TO_TRACKER" selected="selected"></option><option value="@{initiative_formula}" data-i18n="DONT"></option></select></div></div><div class="shaped-row space-between vert-center mar-b-sm"><span class="small-label" data-i18n="BREAK_TIES"></span> <input type="checkbox" name="attr_initiative_tie_breaker" class="mar-l-md" value="[[@{initiative} / 100]][tie breaker]"></div><div class="shaped-row space-between vert-center"><span class="small-label" data-i18n="INITIATIVE_ABILITY"></span><div class="col-20"><select name="attr_initiative_ability"><option value="0">—</option><option value="strength" data-i18n="STR"></option><option value="dexterity" data-i18n="DEX" selected="selected"></option><option value="constitution" data-i18n="CON"></option><option value="intelligence" data-i18n="INT"></option><option value="wisdom" data-i18n="WIS"></option><option value="charisma" data-i18n="CHA"></option></select></div></div><div class="wrap-box-title center" data-i18n="INITIATIVE"></div></div></div><div class="col-28 pad-l-sm pad-r-sm"><div class="wrap-box"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="CHARACTER_NAME_ON_ROLL_TEMPLATES"></span><div class="col-15"><select name="attr_show_character_name"><option value="" data-i18n="NO" selected="selected">No</option><option value="{{show_character_name=1}}" data-i18n="YES">Yes</option></select></div></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="SHOW_TARGET_AC_ON_ATTACKS"></span><div class="col-15"><select name="attr_attacks_vs_target_ac"><option value="" data-i18n="NO" selected="selected">No</option><option value="[[@{target|AC}]]" data-i18n="YES">Yes</option></select></div></div><div class="shaped-row space-between vert-center no-wrap"><span class="small-label" data-i18n="SHOW_TARGET_NAME_ON_ATTACKS"></span><div class="col-15"><select name="attr_attacks_vs_target_name"><option value="" data-i18n="NO" selected="selected">No</option><option value="@{target|token_name}" data-i18n="YES">Yes</option></select></div></div><div class="wrap-box-title center" data-i18n="ROLL_TEMPLATE"></div></div></div><div class="col-22 pad-l-sm"><div class="wrap-box relative"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="AMMO_AUTO_USE"></span> <input type="checkbox" name="attr_ammo_auto_use" class="mar-l-md no-shrink" value="1"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="AUTO_REVERT_ADV"></span> <input type="checkbox" name="attr_auto_revert_advantage" class="mar-l-md no-shrink"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="SHOW_RESTS"></span> <input type="checkbox" name="attr_show_rests" class="mar-l-md no-shrink"></div><div class="shaped-row space-between vert-center no-wrap"><span class="small-label" data-i18n="EXPERTISE_AS_ADVANTAGE"></span> <input type="checkbox" name="attr_expertise_as_advantage" class="mar-l-md no-shrink" value="1"></div><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">A</div><div class="tooltip-content-left small-label" data-i18n="REQUIRES_API"></div></div></div><div class="wrap-box-title center" data-i18n="API"></div></div></div><div class="pad-l-sm pad-r-sm"><input type="radio" name="attr_roll_setting" class="toggle-roll-two" value="{{roll2=[[d20@{d20_mod}"><span class="toggle-roll-two button" data-i18n="ROLL_2"></span></div></div><div class="shaped-row mar-b-smd"><div class="col-30 pad-r-sm"><div class="general-bonuses wrap-box relative center"><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="BONUSES_AND_PENALTIES_TOOLTIP"></div></div></div><div class="shaped-row"><div class="col-1-3 wrap-box-label light-label center" data-i18n="ATTACKS"></div><div class="col-1-3 wrap-box-label light-label center" data-i18n="MELEE"></div><div class="col-1-3 wrap-box-label light-label center" data-i18n="RANGED"></div></div><div class="shaped-row no-wrap mar-b-sm"><div class="center"><input type="text" name="attr_global_attack_bonus" class="center" value="0"><div class="small-label" data-i18n="ATTACK"></div></div><div class="center pad-r-sm"><input type="text" name="attr_global_damage_bonus" class="center" value="0"><div class="small-label" data-i18n="DAMAGE"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_melee_attack_bonus" class="center" value="0"><div class="small-label" data-i18n="ATTACK"></div></div><div class="center pad-r-sm"><input type="text" name="attr_global_melee_damage_bonus" class="center" value="0"><div class="small-label" data-i18n="DAMAGE"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_ranged_attack_bonus" class="center" value="0"><div class="small-label" data-i18n="ATTACK"></div></div><div class="center"><input type="text" name="attr_global_ranged_damage_bonus" class="center" value="0"><div class="small-label" data-i18n="DAMAGE"></div></div></div><hr><div class="wrap-box-label light-label center" data-i18n="SPELLCASTING"></div><div class="shaped-row no-wrap mar-b-sm"><div class="center pad-r-sm"><input type="text" name="attr_global_spell_attack_bonus" class="center" value="0"><div class="small-label" data-i18n="ATTACK"></div></div><div class="center"><input type="text" name="attr_global_spell_damage_bonus" class="center" value="0"><div class="small-label" data-i18n="DAMAGE"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_spell_dc_bonus" class="center" value="0"><div class="small-label" data-i18n="SAVING_DC"></div></div><div class="center pad-l-sm"><input type="text" name="attr_global_spell_heal_bonus" class="center" value="0"><div class="small-label" data-i18n="HEAL"></div></div></div><hr><div class="shaped-row no-wrap"><div class="pc center pad-r-sm"><input type="number" name="attr_global_ability_bonus" class="no-spin" value="0" step="1"><div class="small-label" data-i18n="ABILITY_SCORES"></div></div><div class="center pad-r-sm"><input type="text" name="attr_global_saving_throw_bonus" class="center" value="0"><div class="small-label" data-i18n="SAVING_THROWS"></div></div><div class="center"><input type="text" name="attr_global_check_bonus" class="center" value="0"><div class="small-label" data-i18n="ABILITY_CHECKS"></div></div></div><div class="wrap-box-title" data-i18n="BONUSES_AND_PENALTIES"></div></div></div><div class="col-22 pad-l-sm pad-r-sm"><div class="wrap-box mar-b-smd"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label center" data-i18n="BASE_DC"></span><div class="col-15"><input type="number" name="attr_base_dc" value="8"></div></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label center" data-i18n="MEDIUM_ARMOR_MAX_DEX"></span><div class="col-15"><input type="number" name="attr_medium_armor_max_dex" value="2"></div></div><div class="wrap-box-title center" data-i18n="HOUSERULES"></div></div><div class="wrap-box"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="ADD_HALF_PROFICIENCY_TO_UNPROFICIENT_SAVING_THROWS"></span> <input type="checkbox" name="attr_saving_throws_half_proficiency" class="mar-l-md no-shrink"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="USE_CUSTOM_SAVING_THROWS"></span> <input type="checkbox" name="attr_use_custom_saving_throws" class="mar-l-md no-shrink" value="1"></div><div class="custom-saving-throw shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="AVERAGE_OF_ABILITIES"></span> <input type="checkbox" name="attr_average_of_abilities" class="mar-l-md no-shrink" value="1"></div><div class="custom-saving-throw shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="FORTITUDE">Fortitude</span><div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="STR">Str</span><input type="checkbox" name="attr_fortitude_strength" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="DEX">Dex</span><input type="checkbox" name="attr_fortitude_dexterity" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CON">Con</span><input type="checkbox" name="attr_fortitude_constitution" value="1"></div></div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="INT">Int</span><input type="checkbox" name="attr_fortitude_intelligence" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="WIS">Wis</span><input type="checkbox" name="attr_fortitude_wisdom" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CHA">Cha</span><input type="checkbox" name="attr_fortitude_charisma" value="1"></div></div></div></div><hr class="custom-saving-throw"><div class="custom-saving-throw shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="REFLEX">Reflex</span><div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="STR">Str</span><input type="checkbox" name="attr_reflex_strength" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="DEX">Dex</span><input type="checkbox" name="attr_reflex_dexterity" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CON">Con</span><input type="checkbox" name="attr_reflex_constitution" value="1"></div></div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="INT">Int</span><input type="checkbox" name="attr_reflex_intelligence" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="WIS">Wis</span><input type="checkbox" name="attr_reflex_wisdom" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CHA">Cha</span><input type="checkbox" name="attr_reflex_charisma" value="1"></div></div></div></div><hr class="custom-saving-throw"><div class="custom-saving-throw shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="WILL">Will</span><div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="STR">Str</span><input type="checkbox" name="attr_will_strength" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="DEX">Dex</span><input type="checkbox" name="attr_will_dexterity" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CON">Con</span><input type="checkbox" name="attr_will_constitution" value="1"></div></div><div class="shaped-row vert-center justify-flex-end no-wrap"><div><span class="small-label" data-i18n="INT">Int</span><input type="checkbox" name="attr_will_intelligence" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="WIS">Wis</span><input type="checkbox" name="attr_will_wisdom" value="1"></div><div class="pad-l-md"><span class="small-label" data-i18n="CHA">Cha</span><input type="checkbox" name="attr_will_charisma" value="1"></div></div></div></div><div class="wrap-box-title center" data-i18n="SAVING_THROWS">Saving throws</div></div></div><div class="col-20 pad-l-sm pad-r-sm"><div class="wrap-box relative"><input type="hidden" name="attr_hide_gm_info" value="@{hide_attack} @{hide_damage} @{hide_ability_checks} @{hide_saving_throws} @{hide_saving_throw_dc} @{hide_spell_content} @{hide_freetext} @{hide_saving_throw_failure} @{hide_saving_throw_success} @{hide_recharge}"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_ABILITY_CHECKS"></span> <input type="checkbox" name="attr_hide_ability_checks" class="mar-l-md" value="{{hide_ability_checks=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_SAVING_THROWS"></span> <input type="checkbox" name="attr_hide_saving_throws" class="mar-l-md" value="{{hide_saving_throws=1}}"></div><hr><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_ATTACK"></span> <input type="checkbox" name="attr_hide_attack" class="mar-l-md" value="{{hide_attack=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_DAMAGE"></span> <input type="checkbox" name="attr_hide_damage" class="mar-l-md" value="{{hide_damage=1}}"></div><hr><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_FREETEXT"></span> <input type="checkbox" name="attr_hide_freetext" class="mar-l-md" value="{{hide_freetext=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_RECHARGE"></span> <input type="checkbox" name="attr_hide_recharge" class="mar-l-md" value="{{hide_recharge=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_SAVING_THROW_DC"></span> <input type="checkbox" name="attr_hide_saving_throw_dc" class="mar-l-md" value="{{hide_saving_throw_dc=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_SAVING_THROW_FAILURE"></span> <input type="checkbox" name="attr_hide_saving_throw_failure" class="mar-l-md" value="{{hide_saving_throw_failure=1}}"></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="HIDE_INFO_SAVING_THROW_SUCCESS"></span> <input type="checkbox" name="attr_hide_saving_throw_success" class="mar-l-md" value="{{hide_saving_throw_success=1}}"></div><div class="shaped-row space-between vert-center no-wrap"><span class="small-label" data-i18n="HIDE_INFO_SPELL_CONTENT"></span> <input type="checkbox" name="attr_hide_spell_content" class="mar-l-md" value="{{hide_spell_content=1}}"></div><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="HIDE_INFO_NOTE"></div></div></div><div class="wrap-box-title center" data-i18n="HIDE_INFO"></div></div></div><div class="col-22 pad-r-sm"><div class="wrap-box"><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="COIN_CONVERSION_GP_PER_CP"></span><div class="col-25"><input type="number" name="attr_copper_per_gold" value="100"></div></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="COIN_CONVERSION_GP_PER_SP"></span><div class="col-25"><input type="number" name="attr_silver_per_gold" value="10"></div></div><div class="shaped-row space-between vert-center no-wrap mar-b-sm"><span class="small-label" data-i18n="COIN_CONVERSION_GP_PER_EP"></span><div class="col-25"><input type="number" name="attr_electrum_per_gold" value="2"></div></div><div class="shaped-row space-between vert-center no-wrap"><span class="small-label" data-i18n="COIN_CONVERSION_GP_PER_PP"></span><div class="col-25"><input type="number" name="attr_platinum_per_gold" value="10"></div></div><div class="wrap-box-title center" data-i18n="CUSTOM_GOLD_VALUES"></div></div></div></div><div class="wrap-box macros-for-consumption center"><div class="shaped-row"><div class="col-20"><div class="shaped-row center"><div class="col-40"><select name="attr_ability_checks_text_size"><option value="text" data-i18n="NORMAL"></option><option value="text_big" data-i18n="BIG" selected="selected"></option></select><div class="small-label" data-i18n="TEXT_SIZE"></div></div></div><div class="mar-t-sm"></div><span data-i18n="SHOW_TOTALS"></span><input type="checkbox" name="attr_ability_checks_show_totals" checked="checked"><div class="mar-t-sm"></div><input type="hidden" name="attr_ability_checks_macro_var"> <button type="roll" name="roll_shaped_ability_checks" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ABILITY_CHECKS}}} {{@{ability_checks_text_size}=@{ability_checks_macro_var}}}" data-i18n="ABILITY_CHECKS"></button><div class="mar-t-sm"></div><button type="roll" name="roll_shaped_ability_checks_small" class="hidden" value="/w @{character_name} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ABILITY_CHECKS}}} {{text=@{ability_checks_macro_var}}}" data-i18n="ABILITY_CHECKS"></button> <input type="hidden" name="attr_ability_checks_query_var"> <button type="roll" name="roll_shaped_ability_checks_query" class="hidden" value="@{output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{character_name}}} @{show_character_name} @{roll_info} @{ability_checks_query_var}" data-i18n="ABILITY_CHECKS_QUERY"></button></div><div class="col-20"><div class="mar-t-sm"></div><div class="shaped-row center"><div class="col-40"><select name="attr_saving_throws_text_size"><option value="text" data-i18n="NORMAL"></option><option value="text_big" data-i18n="BIG" selected="selected"></option></select><div class="small-label" data-i18n="TEXT_SIZE"></div></div></div><div class="mar-t-sm"></div><input type="hidden" name="attr_saving_throw_macro_var" value="[^{STRENGTH}](~shaped_strength_saving_throw), [^{DEXTERITY}](~shaped_dexterity_saving_throw), [^{CONSTITUTION}](~shaped_constitution_saving_throw), [^{INTELLIGENCE}](~shaped_intelligence_saving_throw), [^{WISDOM}](~shaped_wisdom_saving_throw), [^{CHARISMA}](~shaped_charisma_saving_throw), [^{DEATH}](~shaped_death_saving_throw)"> <input type="hidden" name="attr_custom_saving_throw_macro_var" value="[^{FORTITUDE}](~shaped_fortitude_saving_throw), [^{REFLEX}](~shaped_reflex_saving_throw), [^{WILL}](~shaped_will_saving_throw), [^{DEATH}](~shaped_death_saving_throw)"> <input type="hidden" name="attr_saving_throw_macro_var_to_use" value="@{saving_throw_macro_var}"> <button type="roll" name="roll_shaped_saving_throw" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SAVING_THROWS}}} {{@{saving_throws_text_size}=@{saving_throw_macro_var_to_use}}}" data-i18n="SAVING_THROWS"></button><div class="mar-t-sm"></div><button type="roll" name="roll_shaped_saving_throw_small" class="hidden" value="/w @{character_name} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SAVING_THROWS}}} {{text=@{saving_throw_macro_var}}}" data-i18n="SAVING_THROWS"></button> <input type="hidden" name="attr_saving_throw_query_var" value="?{Saving Throw|Strength, {{title=Strength&#125;&#125; {{roll1=[[@{shaped_d20} + @{strength_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{strength_saving_throw_mod}]]&#125;&#125;|Dexterity, {{title=Dexterity&#125;&#125; {{roll1=[[@{shaped_d20} + @{dexterity_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{dexterity_saving_throw_mod}]]&#125;&#125;|Constitution, {{title=Constitution&#125;&#125; {{roll1=[[@{shaped_d20} + @{constitution_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{constitution_saving_throw_mod}]]&#125;&#125;|Intelligence, {{title=Intelligence&#125;&#125; {{roll1=[[@{shaped_d20} + @{intelligence_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{intelligence_saving_throw_mod}]]&#125;&#125;|Wisdom, {{title=Wisdom&#125;&#125; {{roll1=[[@{shaped_d20} + @{wisdom_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{wisdom_saving_throw_mod}]]&#125;&#125;|Charisma, {{title=Charisma&#125;&#125; {{roll1=[[@{shaped_d20} + @{charisma_saving_throw_mod}]]&#125;&#125; @{roll_setting} + @{charisma_saving_throw_mod}]]&#125;&#125;}"> <button type="roll" name="roll_shaped_saving_throw_query" class="hidden" value="@{output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{character_name}}} @{show_character_name} @{roll_info} @{saving_throw_query_var}" data-i18n="SAVING_THROWS_QUERY"></button></div><div class="col-20"><div class="npc"><input type="hidden" name="attr_skills_macro_var"> <input type="hidden" name="attr_languages_chat_var"> <input type="hidden" name="attr_damage_resistances_var"> <input type="hidden" name="attr_traits_chat_var"> <input type="hidden" name="attr_actions_chat_var"> <input type="hidden" name="attr_reactions_chat_var"> <input type="hidden" name="attr_legendaryactions_chat_var"> <input type="hidden" name="attr_lairactions_chat_var"> <input type="hidden" name="attr_regionaleffects_chat_var"> <button type="roll" name="roll_shaped_statblock" class="visible-button" value="/w @{character_name} @{output_option} &{template:5e-shaped} {{title=@{character_name}}} {{subheader=@{size} @{type}, @{alignment}}} {{Armor Class=@{ac} (@{ac_note})}} {{Hit Points=@{HP} (@{hp_formula})}} {{Speed=@{npc_speed}}} {{Abilities=[Str @{strength} (@{strength_mod_with_sign})](~shaped_strength_check), [Dex @{dexterity} (@{dexterity_mod_with_sign})](~shaped_dexterity_check), [Con @{constitution} (@{constitution_mod_with_sign})](~shaped_constitution_check), [Int @{intelligence} (@{intelligence_mod_with_sign})](~shaped_intelligence_check), [Wis @{wisdom} (@{wisdom_mod_with_sign})](~shaped_wisdom_check), [Cha @{charisma} (@{charisma_mod_with_sign})](~shaped_charisma_check)}} {{Saving Throws=[Str @{strength_saving_throw_mod_with_sign}](~shaped_strength_saving_throw), [Dex @{dexterity_saving_throw_mod_with_sign}](~shaped_dexterity_saving_throw), [Con @{constitution_saving_throw_mod_with_sign}](~shaped_constitution_saving_throw), [Int @{intelligence_saving_throw_mod_with_sign}](~shaped_intelligence_saving_throw), [Wis @{wisdom_saving_throw_mod_with_sign}](~shaped_wisdom_saving_throw), [Cha @{charisma_saving_throw_mod_with_sign}](~shaped_charisma_saving_throw)}} {{Skills=@{skills_macro_var}}} @{damage_resistances_var} {{Senses=@{senses}}} @{languages_chat_var} {{Challenge=@{challenge} (@{xp_readable})}} @{traits_chat_var} @{actions_chat_var} @{reactions_chat_var} @{legendaryactions_chat_var} @{lairactions_chat_var} @{regionaleffects_chat_var}" data-i18n="STATBLOCK"></button></div><div class="mar-t-sm"></div><input type="hidden" name="attr_traits_exist" class="item-toggle"><div class="item-to-toggle"><input type="hidden" name="attr_traits_macro_var"> <button type="roll" name="roll_shaped_traits" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{TRAITS}}} {{text_big=@{traits_macro_var}}}" data-i18n="TRAITS"></button></div><div class="mar-t-sm"></div><div class="pc"><input type="hidden" name="attr_attacks_macro_var"> <button type="roll" name="roll_shaped_attacks" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ATTACKS}}} {{text_big=@{attacks_macro_var}}}" data-i18n="ATTACKS"></button></div><input type="hidden" name="attr_actions_exist" class="item-toggle"><div class="npc item-to-toggle"><input type="hidden" name="attr_actions_macro_var"> <button type="roll" name="roll_shaped_actions" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{ACTIONS}}} {{text_big=@{actions_macro_var}}}" data-i18n="ACTIONS"></button></div><div class="mar-t-sm npc"></div><input type="hidden" name="attr_reactions_exist" class="item-toggle"><div class="npc item-to-toggle"><input type="hidden" name="attr_reactions_macro_var"> <button type="roll" name="roll_shaped_reactions" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{REACTIONS}}} {{text_big=@{reactions_macro_var}}}" data-i18n="REACTIONS"></button></div><div class="mar-t-sm npc"></div><input type="hidden" name="attr_legendaryactions_exist" class="item-toggle"><div class="npc item-to-toggle"><input type="hidden" name="attr_legendaryactions_macro_var"> <button type="roll" name="roll_shaped_legendaryactions" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{LEGENDARY_ACTIONS}}} {{text_big=@{legendaryactions_macro_var}}}" data-i18n="LEGENDARY_ACTIONS"></button></div><div class="mar-t-sm npc"></div><input type="hidden" name="attr_lairactions_exist" class="item-toggle"><div class="npc item-to-toggle"><input type="hidden" name="attr_lairactions_macro_var"> <button type="roll" name="roll_shaped_lairactions" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{LAIR_ACTIONS}}} {{text_big=@{lairactions_macro_var}}}" data-i18n="LAIR_ACTIONS"></button></div><div class="mar-t-sm npc"></div><input type="hidden" name="attr_regionaleffects_exist" class="item-toggle"><div class="npc item-to-toggle"><input type="hidden" name="attr_regionaleffects_macro_var"> <button type="roll" name="roll_shaped_regionaleffects" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{REGIONAL_EFFECTS}}} {{text_big=@{regionaleffects_macro_var}}}" data-i18n="REGIONAL_EFFECTS"></button></div></div><div class="col-20"><input type="hidden" name="attr_spells_level_0_macro_var"> <input type="hidden" name="attr_spells_level_1_macro_var"> <input type="hidden" name="attr_spells_level_2_macro_var"> <input type="hidden" name="attr_spells_level_3_macro_var"> <input type="hidden" name="attr_spells_level_4_macro_var"> <input type="hidden" name="attr_spells_level_5_macro_var"> <input type="hidden" name="attr_spells_level_6_macro_var"> <input type="hidden" name="attr_spells_level_7_macro_var"> <input type="hidden" name="attr_spells_level_8_macro_var"> <input type="hidden" name="attr_spells_level_9_macro_var"> <input type="hidden" name="attr_spell_slots_macro_var" value="{{spells_text_size=@{spells_text_size}}} {{spells_level_1_uses=@{spell_slots_l1}/@{spell_slots_l1|max}}} {{spells_level_1_show=@{spells_level_1_show}}} {{spells_level_2_uses=@{spell_slots_l2}/@{spell_slots_l2|max}}} {{spells_level_2_show=@{spells_level_2_show}}}{{spells_level_3_uses=@{spell_slots_l3}/@{spell_slots_l3|max}}} {{spells_level_3_show=@{spells_level_3_show}}} {{spells_level_4_uses=@{spell_slots_l4}/@{spell_slots_l4|max}}} {{spells_level_4_show=@{spells_level_4_show}}} {{spells_level_5_uses=@{spell_slots_l5}/@{spell_slots_l5|max}}} {{spells_level_5_show=@{spells_level_5_show}}} {{spells_level_6_uses=@{spell_slots_l6}/@{spell_slots_l6|max}}} {{spells_level_6_show=@{spells_level_6_show}}} {{spells_level_7_uses=@{spell_slots_l7}/@{spell_slots_l7|max}}} {{spells_level_7_show=@{spells_level_7_show}}} {{spells_level_8_uses=@{spell_slots_l8}/@{spell_slots_l8|max}}} {{spells_level_8_show=@{spells_level_8_show}}} {{spells_level_9_uses=@{spell_slots_l9}/@{spell_slots_l9|max}}} {{spells_level_9_show=@{spells_level_9_show}}}"> <input type="hidden" name="attr_spells_macro_var" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SPELLS}}} {{spell_list=1}} {{cantrips=@{spells_level_0_macro_var}}} @{spell_slots_macro_var} {{spells_level_1=@{spells_level_1_macro_var}}} {{spells_level_2=@{spells_level_2_macro_var}}} {{spells_level_3=@{spells_level_3_macro_var}}} {{spells_level_4=@{spells_level_4_macro_var}}} {{spells_level_5=@{spells_level_5_macro_var}}} {{spells_level_6=@{spells_level_6_macro_var}}} {{spells_level_7=@{spells_level_7_macro_var}}} {{spells_level_8=@{spells_level_8_macro_var}}} {{spells_level_9=@{spells_level_9_macro_var}}}"><div class="shaped-row center"><div class="col-40"><select name="attr_spells_text_size"><option value="" data-i18n="NORMAL"></option><option value="big" data-i18n="BIG"></option></select><div class="small-label" data-i18n="TEXT_SIZE"></div></div></div><div class="mar-t-sm"></div><span data-i18n="SHOW_UNPREPARED_SPELLS"></span><input type="checkbox" name="attr_spells_show_unprepared" checked="checked"><div class="mar-t-sm"></div><span checked="checked" data-i18n="SHOW_SPELL_LEVEL_IF_ALL_SLOTS_ARE_USED"></span><input type="checkbox" name="attr_spells_show_spell_level_if_all_slots_are_used"><div class="mar-t-sm"></div><button type="roll" name="roll_shaped_spells" class="visible-button" value="@{spells_macro_var}" data-i18n="SPELLS"></button><div class="mar-t-sm"></div><button type="roll" name="roll_shaped_spell_slots" class="visible-button" value="/w @{character_name} &{template:5e-shaped} {{character_name=@{character_name}}} @{show_character_name} {{title=^{SPELLS}}} {{spell_list=1}} @{spell_slots_macro_var}" data-i18n="SPELL_SLOTS"></button></div></div><div class="wrap-box-title" data-i18n="MACROS"></div></div><div class="wrap-box relative mar-t-smd mar-b-smd"><fieldset class="repeating_attacher"><div class="shaped-row"><div class="col-95"><input type="text" class="action-name" data-i18n-placeholder="NAME" name="attr_name"></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings" checked="checked"><span class="toggle-icon-settings pictos">y</span></div><input type="checkbox" name="attr_toggle_details" class="toggle-icon-settings hidden" checked="checked"><div class="shaped-row details mar-b-lg"><div class="col-45 pad-r-sm"><div class="shaped-row"><div class="col-50 center pad-l-sm pad-r-sm"><textarea class="eight-line-textarea" name="attr_freetext"></textarea><div class="small-label" data-i18n="FREETEXT"></div></div><div class="col-50 center pad-l-sm pad-r-sm"><textarea class="eight-line-textarea" name="attr_freeform"></textarea><div class="small-label" data-i18n="FREEFORM"></div></div></div></div><div class="col-55 pad-l-sm"><div class="shaped-row center"><div class="col-30 wrap-box-label light-label" data-i18n="ABILITY_CHECKS"></div><div class="col-30 wrap-box-label light-label" data-i18n="SAVING_THROWS"></div><div class="col-20 wrap-box-label light-label" data-i18n="MISC"></div><div class="col-20 wrap-box-label light-label" data-i18n="SKILLS"></div></div><div class="shaped-row"><div class="col-30 pad-l-lg"><div class="zebra-rows"><div class="shaped-row"><div class="col-85" data-i18n="STRENGTH"></div><div class="col-15"><input type="checkbox" name="attr_strength_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="DEXTERITY"></div><div class="col-15"><input type="checkbox" name="attr_dexterity_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="CONSTITUTION"></div><div class="col-15"><input type="checkbox" name="attr_constitution_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="INTELLIGENCE"></div><div class="col-15"><input type="checkbox" name="attr_intelligence_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="WISDOM"></div><div class="col-15"><input type="checkbox" name="attr_wisdom_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="CHARISMA"></div><div class="col-15"><input type="checkbox" name="attr_charisma_check_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="INITIATIVE"></div><div class="col-15"><input type="checkbox" name="attr_initiative_attacher"></div></div></div></div><div class="col-30 pad-l-lg"><div class="zebra-rows"><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="STRENGTH"></div><div class="col-15"><input type="checkbox" name="attr_strength_saving_throw_attacher"></div></div><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="DEXTERITY"></div><div class="col-15"><input type="checkbox" name="attr_dexterity_saving_throw_attacher"></div></div><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="CONSTITUTION"></div><div class="col-15"><input type="checkbox" name="attr_constitution_saving_throw_attacher"></div></div><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="INTELLIGENCE"></div><div class="col-15"><input type="checkbox" name="attr_intelligence_saving_throw_attacher"></div></div><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="WISDOM"></div><div class="col-15"><input type="checkbox" name="attr_wisdom_saving_throw_attacher"></div></div><div class="shaped-row default-saving-throw"><div class="col-85" data-i18n="CHARISMA"></div><div class="col-15"><input type="checkbox" name="attr_charisma_saving_throw_attacher"></div></div><div class="shaped-row custom-saving-throw"><div class="col-85" data-i18n="FORTITUDE"></div><div class="col-15"><input type="checkbox" name="attr_fortitude_saving_throw_attacher"></div></div><div class="shaped-row custom-saving-throw"><div class="col-85" data-i18n="REFLEX"></div><div class="col-15"><input type="checkbox" name="attr_reflex_saving_throw_attacher"></div></div><div class="shaped-row custom-saving-throw"><div class="col-85" data-i18n="WILL"></div><div class="col-15"><input type="checkbox" name="attr_will_saving_throw_attacher"></div></div></div><div class="shaped-row"><div class="col-85" data-i18n="DEATH_SAVES"></div><div class="col-15"><input type="checkbox" name="attr_death_saving_throw_attacher"></div></div></div><div class="col-20 pad-l-lg"><div class="zebra-rows"><div class="shaped-row"><div class="col-85" data-i18n="HIT_DICE"></div><div class="col-15"><input type="checkbox" name="attr_hit_dice_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="ATTACK"></div><div class="col-15"><input type="checkbox" name="attr_attack_attacher"></div></div><div class="shaped-row"><div class="col-85" data-i18n="SPELL"></div><div class="col-15"><input type="checkbox" name="attr_spell_attacher"></div></div><div class="shaped-row"><div class="col-85 relative"><span data-i18n="CRIT"></span><div class="tooltip-position-wrapper"><div class="tooltip"><div class="tooltip-toggle-text center">?</div><div class="tooltip-content-left small-label" data-i18n="CRIT_ATTACHER_TOOLTIP"></div></div></div></div><div class="col-15"><input type="checkbox" name="attr_crit_attacher"></div></div></div></div><div class="col-20 pad-l-lg"><div class="zebra-rows"><div class="shaped-row"><div class="col-85" data-i18n="SKILL"></div><div class="col-15"><input type="checkbox" name="attr_skill_attacher"></div></div></div></div></div></div></div></fieldset><div class="wrap-box-title center" data-i18n="ATTACHERS"></div></div><input type="hidden" name="attr_attacher_strength_saving_throw"> <input type="hidden" name="attr_attacher_dexterity_saving_throw"> <input type="hidden" name="attr_attacher_constitution_saving_throw"> <input type="hidden" name="attr_attacher_intelligence_saving_throw"> <input type="hidden" name="attr_attacher_wisdom_saving_throw"> <input type="hidden" name="attr_attacher_charisma_saving_throw"> <input type="hidden" name="attr_attacher_death_saving_throw"> <input type="hidden" name="attr_attacher_fortitude_saving_throw"> <input type="hidden" name="attr_attacher_reflex_saving_throw"> <input type="hidden" name="attr_attacher_will_saving_throw"> <input type="hidden" name="attr_attacher_strength_check"> <input type="hidden" name="attr_attacher_dexterity_check"> <input type="hidden" name="attr_attacher_constitution_check"> <input type="hidden" name="attr_attacher_intelligence_check"> <input type="hidden" name="attr_attacher_wisdom_check"> <input type="hidden" name="attr_attacher_charisma_check"> <input type="hidden" name="attr_attacher_initiative"> <input type="hidden" name="attr_attacher_hit_dice"> <input type="hidden" name="attr_attacher_attack"> <input type="hidden" name="attr_attacher_spell"> <input type="hidden" name="attr_attacher_skill"> <input type="hidden" name="attr_attacher_crit"></div><hr><div class="center footer"><div><input type="checkbox" name="attr_edit_mode" class="toggle-edit-mode negative-mar-t-eight"><span class="toggle-edit-mode pictos negative-mar-t-eight">p</span></div><div>Documentation: <span class="selectable">https://docs.google.com/document/d/1yPcIZ_bIc3JlnWsKZt2tAB0EQSIVEfeMtT0GifbpJIg</span></div></div><input type="checkbox" name="attr_import_data_present" class="import-data-present hidden"><div class="overlay absolute"><div class="shaped-row fixed pad-l-hundred pad-t-hundred"><div class="pad-r-md"><input type="checkbox" name="attr_reject_import" class="toggle-pseudo-button"><span class="toggle-pseudo-button button" data-i18n="CANCEL"></span></div><div class="pad-l-md"><input type="checkbox" name="attr_accept_import" class="toggle-pseudo-button"><span class="toggle-pseudo-button button" data-i18n="IMPORT"></span></div></div></div></div>
|
|
<script type="text/worker">(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Abilities=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _AbilityChecks=require('./AbilityChecks');var _Actions=require('./Actions');var _Attacks=require('./Attacks');var _Spells=require('./Spells');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var abilityChecks=new _AbilityChecks.AbilityChecks();var actions=new _Actions.Actions();var attacks=new _Attacks.Attacks();var spells=new _Spells.Spells();var Abilities=exports.Abilities=function(){function Abilities(){_classCallCheck(this,Abilities);}_createClass(Abilities,[{key:'updateModifier',value:function updateModifier(ability){var collectionArray=[ability,ability+'_bonus',ability+'_mod',ability+'_mod_with_sign',ability+'_check_mod',ability+'_check_mod_formula',ability+'_check_bonus','global_ability_bonus','strength_mod','dexterity_mod','jack_of_all_trades_toggle','jack_of_all_trades','remarkable_athlete_toggle','remarkable_athlete','global_check_bonus'];if(ability==='strength'||ability==='dexterity'){collectionArray.push('finesse_mod');}if(ability==='strength'){collectionArray.push('weight_multiplier');collectionArray.push('carrying_capacity');collectionArray.push('max_push_drag_lift');collectionArray.push('encumbered');collectionArray.push('heavily_encumbered');}(0,_utilities.getSetItems)('abilities.updateModifier',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var abilityScore=(0,_utilities.getIntValue)(v[ability]);var abilityBonus=(0,_utilities.getIntValue)(v[ability+'_bonus']);var globalAbilityBonus=v.global_ability_bonus;var abilityScoreCalc=abilityScore+abilityBonus;if(!isNaN(globalAbilityBonus)){abilityScoreCalc+=(0,_utilities.getIntValue)(globalAbilityBonus);}var abilityCheckBonus=(0,_utilities.getIntValue)(v[ability+'_check_bonus']);var abilityMod=(0,_utilities.getAbilityMod)(abilityScoreCalc);var abilityCheck=abilityMod;var abilityCheckFormula='';if(abilityMod!==0){abilityCheckFormula=abilityMod+'['+(0,_utilities.firstThree)(ability)+' mod with bonus]';}if((ability==='strength'||ability==='dexterity'||ability==='constitution')&&v.remarkable_athlete_toggle==='@{remarkable_athlete}'){var remarkableAthlete=(0,_utilities.getIntValue)(v.remarkable_athlete);abilityCheck+=remarkableAthlete;abilityCheckFormula+=(0,_utilities.addArithmeticOperator)(abilityCheckFormula,remarkableAthlete)+'[remarkable athlete]';}else if(v.jack_of_all_trades_toggle==='@{jack_of_all_trades}'){var jackOfAllTrades=(0,_utilities.getIntValue)(v.jack_of_all_trades);abilityCheck+=jackOfAllTrades;abilityCheckFormula+=(0,_utilities.addArithmeticOperator)(abilityCheckFormula,jackOfAllTrades)+'[jack of all trades]';}if(abilityCheckBonus){abilityCheck+=abilityCheckBonus;abilityCheckFormula+=(0,_utilities.addArithmeticOperator)(abilityCheckFormula,abilityCheckBonus)+'['+ability+' check bonus]';}if(v.global_check_bonus){if(!isNaN(v.global_check_bonus)){abilityCheck+=(0,_utilities.getIntValue)(v.global_check_bonus);}if(abilityCheckFormula){abilityCheckFormula+=' + ';}abilityCheckFormula+='(@{global_check_bonus})[global check bonus]';}finalSetAttrs[ability+'_calculated']=abilityScoreCalc;finalSetAttrs[ability+'_mod']=abilityMod;finalSetAttrs[ability+'_mod_with_sign']=(0,_utilities.showSign)(abilityMod);finalSetAttrs[ability+'_check_mod']=abilityCheck;finalSetAttrs[ability+'_check_mod_with_sign']=(0,_utilities.showSign)(abilityCheck);finalSetAttrs[ability+'_check_mod_formula']=abilityCheckFormula;if(ability==='strength'){finalSetAttrs.finesse_mod=Math.max(abilityMod,(0,_utilities.getIntValue)(v.dexterity_mod));var weightMultiplier=(0,_utilities.getFloatValue)(v.weight_multiplier,1);finalSetAttrs.carrying_capacity=abilityScore*15*weightMultiplier;finalSetAttrs.max_push_drag_lift=abilityScore*30*weightMultiplier;finalSetAttrs.encumbered=abilityScore*5*weightMultiplier;finalSetAttrs.heavily_encumbered=abilityScore*10*weightMultiplier;}else if(ability==='dexterity'){finalSetAttrs.finesse_mod=Math.max(abilityMod,(0,_utilities.getIntValue)(v.strength_mod));}}});}},{key:'updateModifiers',value:function updateModifiers(){this.updateModifier('strength');this.updateModifier('dexterity');this.updateModifier('constitution');this.updateModifier('intelligence');this.updateModifier('wisdom');this.updateModifier('charisma');}},{key:'setup',value:function setup(){var _this=this;on('change:jack_of_all_trades_toggle change:jack_of_all_trades change:global_ability_bonus change:global_check_bonus',function(){_this.updateModifiers();});on('change:strength change:strength_bonus change:strength_check_mod change:strength_check_bonus change:remarkable_athlete_toggle change:remarkable_athlete change:weight_multiplier',function(){_this.updateModifier('strength');});on('change:dexterity change:dexterity_bonus change:dexterity_check_mod change:dexterity_check_bonus change:remarkable_athlete_toggle change:remarkable_athlete',function(){_this.updateModifier('dexterity');});on('change:constitution change:constitution_bonus change:constitution_check_mod change:constitution_check_bonus change:remarkable_athlete_toggle change:remarkable_athlete',function(){_this.updateModifier('constitution');});on('change:intelligence change:intelligence_bonus change:intelligence_check_mod change:intelligence_check_bonus',function(){_this.updateModifier('intelligence');});on('change:wisdom change:wisdom_bonus change:wisdom_check_mod change:wisdom_check_bonus',function(){_this.updateModifier('wisdom');});on('change:charisma change:charisma_bonus change:charisma_check_mod change:charisma_check_bonus',function(){_this.updateModifier('charisma');});on('change:strength_mod change:dexterity_mod change:constitution_mod change:intelligence_mod change:wisdom_mod change:charisma_mod',function(){abilityChecks.updateSkill();attacks.update();spells.update();actions.updateAll();});}}]);return Abilities;}();
|
|
|
|
},{"./AbilityChecks":2,"./Actions":3,"./Attacks":5,"./Spells":17,"./utilities":23}],2:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.AbilityChecks=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');var _constants=require('./constants');var _ProficiencyBonus=require('./ProficiencyBonus');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var proficiencyBonus=new _ProficiencyBonus.ProficiencyBonus();var AbilityChecks=exports.AbilityChecks=function(){function AbilityChecks(){_classCallCheck(this,AbilityChecks);}_createClass(AbilityChecks,[{key:'updateMacro',value:function updateMacro(){var collectionArray=['ability_checks_query_var','ability_checks_macro_var','ability_checks_show_totals'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push(ability+'_check_mod');collectionArray.push(ability+'_check_mod_with_sign');}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}(0,_utilities.getSetRepeatingItems)('abilityChecks.updateMacro',{repeatingItems:['repeating_skill'],collectionArray:collectionArray,collectionArrayAddItems:['name','ability','total_with_sign'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){finalSetAttrs.ability_checks_query_var='?{Ability Check';finalSetAttrs.ability_checks_macro_var='';finalSetAttrs.skills_macro_var='';var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.ABILITIES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var ability=_step2.value;finalSetAttrs.ability_checks_query_var+='|'+(0,_utilities.capitalize)(ability)+',{{title='+(0,_utilities.capitalize)(ability)+'}} {{roll1=[[@{shaped_d20} + '+v[ability+'_check_mod']+']]}} @{roll_setting} + '+v[ability+'_check_mod']+']]}}';if(v.ability_checks_show_totals==='on'){finalSetAttrs.ability_checks_macro_var+='['+(0,_utilities.capitalize)(ability)+' '+v[ability+'_check_mod_with_sign']+'](~shaped_'+ability+'_check)';}else{finalSetAttrs.ability_checks_macro_var+='['+(0,_utilities.capitalize)(ability)+'](~shaped_'+ability+'_check)';}finalSetAttrs.ability_checks_macro_var+=', ';}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';finalSetAttrs.ability_checks_query_var+='|'+v[repeatingString+'name']+', {{title='+v[repeatingString+'name']+' ('+(0,_utilities.capitalize)((0,_utilities.getAbilityShortName)(v[repeatingString+'ability']))+')}} {{roll1=[[@{shaped_d20} + @{'+repeatingString+'formula}]]}} @{roll_setting} + @{'+repeatingString+'formula}]]}}';if(id!==ids[0]){finalSetAttrs.ability_checks_macro_var+=', ';finalSetAttrs.skills_macro_var+=', ';}var skillButton=void 0;if(v.ability_checks_show_totals==='on'){skillButton='['+v[repeatingString+'name']+' '+v[repeatingString+'total_with_sign']+'](~repeating_skill_'+id+'_skill)';}else{skillButton='['+v[repeatingString+'name']+'](~repeating_skill_'+id+'_skill)';}finalSetAttrs.ability_checks_macro_var+=skillButton;finalSetAttrs.skills_macro_var+=skillButton;}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}finalSetAttrs.ability_checks_query_var+='}';}});}},{key:'updateSkill',value:function updateSkill(rowId){var _this=this;var collectionArray=['jack_of_all_trades_toggle','jack_of_all_trades','remarkable_athlete_toggle','remarkable_athlete','pb','exp','global_check_bonus'];var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=_constants.ABILITIES[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var ability=_step4.value;collectionArray.push(ability+'_mod');collectionArray.push(ability+'_check_bonus');}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}(0,_utilities.getSetRepeatingItems)('abilityChecks.updateSkill',{repeatingItems:['repeating_skill'],collectionArray:collectionArray,collectionArrayAddItems:['skill_d20','skill_info','proficiency','name','storage_name','ability','bonus','ability_key','formula','total','total_with_sign','passive_bonus','passive_total'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=ids[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var id=_step5.value;var repeatingString=repeatingItem+'_'+id+'_';var skillName=v[repeatingString+'name'];if((0,_utilities.isUndefinedOrEmpty)(skillName)){return;}finalSetAttrs[repeatingString+'ability_key']=(0,_utilities.getAbilityShortName)(v[repeatingString+'ability']).toUpperCase();var total=0;var totalFormula='';var proficiency=v[repeatingString+'proficiency'];if(!proficiency||proficiency==='unproficient'){if((v[repeatingString+'ability']==='strength'||v[repeatingString+'ability']==='dexterity'||v[repeatingString+'ability']==='constitution')&&v.remarkable_athlete_toggle==='@{remarkable_athlete}'){var remarkableAthlete=(0,_utilities.getIntValue)(v.remarkable_athlete);total+=remarkableAthlete;totalFormula+=remarkableAthlete+'[remarkable athlete]';}else if(v.jack_of_all_trades_toggle==='@{jack_of_all_trades}'){var jackOfAllTrades=(0,_utilities.getIntValue)(v.jack_of_all_trades);total+=jackOfAllTrades;totalFormula+=jackOfAllTrades+'[jack of all trades]';}}else if(proficiency==='proficient'){var pb=(0,_utilities.getIntValue)(v.pb);total+=pb;totalFormula+=pb+'[proficient]';}else if(proficiency==='expertise'){var exp=(0,_utilities.getIntValue)(v.exp);total+=exp;totalFormula+=exp+'[expertise]';}var abilityValue=(0,_utilities.getAbilityValue)(v,v[repeatingString+'ability'],'strength');if((0,_utilities.exists)(abilityValue)){total+=abilityValue;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,abilityValue)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'ability'])+']';}var skillBonus=(0,_utilities.getIntValue)(v[repeatingString+'bonus']);if((0,_utilities.exists)(skillBonus)){total+=skillBonus;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,skillBonus)+'[bonus]';}if((0,_utilities.exists)(v[repeatingString+'ability'])){var checkBonus=v[v[repeatingString+'ability']+'_check_bonus'];if((0,_utilities.exists)(checkBonus)){checkBonus=(0,_utilities.getIntValue)(checkBonus);total+=checkBonus;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,checkBonus)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'ability'])+' check bonus]';}}var globalCheckBonus=v.global_check_bonus;if((0,_utilities.exists)(globalCheckBonus)){if(!isNaN(globalCheckBonus)){total+=(0,_utilities.getIntValue)(globalCheckBonus);}if(totalFormula){totalFormula+=' + ';}totalFormula+='(@{global_check_bonus})[global check bonus]';}var passiveBonus=(0,_utilities.getIntValue)(v[repeatingString+'passive_bonus']);var advantageOrDisadvantage=0;finalSetAttrs[repeatingString+'skill_info']='';if(v[repeatingString+'skill_d20']&&v[repeatingString+'skill_d20'].indexOf('kh1')!==-1){finalSetAttrs[repeatingString+'skill_info']='{{advantage=1}}';advantageOrDisadvantage=5;}else if(v[repeatingString+'skill_d20']&&v[repeatingString+'skill_d20'].indexOf('kl1')!==-1){finalSetAttrs[repeatingString+'skill_info']='{{disadvantage=1}}';advantageOrDisadvantage=-5;}else{finalSetAttrs[repeatingString+'skill_info']='';}var passiveTotal=10+total+passiveBonus+advantageOrDisadvantage;finalSetAttrs[repeatingString+'total']=total;finalSetAttrs[repeatingString+'passive']=passiveTotal;finalSetAttrs[repeatingString+'total_with_sign']=(0,_utilities.showSign)(total);finalSetAttrs[repeatingString+'formula']=totalFormula;}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}},setFinalAttrsCallback:function setFinalAttrsCallback(){_this.updateMacro();}});}},{key:'updateSkillsFromSRD',value:function updateSkillsFromSRD(){(0,_utilities.getSetRepeatingItems)('abilityChecks.updateSkillsFromSRD',{repeatingItems:['repeating_skill'],collectionArray:['skills_srd','level','challenge','strength_mod','dexterity_mod','constitution_mod','intelligence_mod','wisdom_mod','charisma_mod','expertise_as_advantage'],collectionArrayAddItems:['name','ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var skillsFromSRD=v.skills_srd;var skillsObj={};var pb=proficiencyBonus.get(v.level,v.challenge);var expertise=pb*2;var skillName=void 0;var repeatingString=void 0;if(!(0,_utilities.isUndefinedOrEmpty)(skillsFromSRD)){var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{for(var _iterator6=ids[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){var id=_step6.value;repeatingString=repeatingItem+'_'+id+'_';skillName=v[repeatingString+'name'];skillsObj[skillName]=id;}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}var re=/(\w+)\s?((?:\+|\-)\d+)/gi;var match=void 0;while((match=re.exec(skillsFromSRD))!==null){if(match&&match[1]&&match[2]){skillName=match[1];if(skillsObj[skillName]){var skillId=skillsObj[skillName];repeatingString=repeatingItem+'_'+skillId+'_';var skillAbility=v[repeatingString+'ability'];var abilityValue=(0,_utilities.getAbilityValue)(v,skillAbility);var skillBonus=(0,_utilities.getIntValue)(match[2])-abilityValue;if(skillBonus>=expertise){if(v.expertise_as_advantage==='1'){finalSetAttrs[repeatingString+'skill_d20']='2d20@{d20_mod}kh1';finalSetAttrs[repeatingString+'proficiency']='proficient';}else{finalSetAttrs[repeatingString+'proficiency']='expertise';}if(skillBonus>expertise){finalSetAttrs[repeatingString+'bonus']=skillBonus-expertise;}}else if(skillBonus>=pb){finalSetAttrs[repeatingString+'proficiency']='proficient';if(skillBonus>pb){finalSetAttrs[repeatingString+'bonus']=skillBonus-pb;}}}else{console.warn(skillName+' does not exist in the list of skills');}}}}}});}},{key:'updateInitiative',value:function updateInitiative(){var collectionArray=['initiative','initiative_ability','initiative_formula','initiative_bonus','jack_of_all_trades_toggle','jack_of_all_trades','remarkable_athlete_toggle','remarkable_athlete','global_check_bonus'];var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=_constants.ABILITIES[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var ability=_step7.value;collectionArray.push(ability+'_mod');collectionArray.push(ability+'_check_bonus');}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}(0,_utilities.getSetItems)('abilityChecks.updateInitiative',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){finalSetAttrs.initiative=0;var initiativeAbility=v.initiative_ability;if((0,_utilities.isUndefined)(initiativeAbility)){initiativeAbility='dexterity';}var abilityMod=(0,_utilities.getAbilityValue)(v,initiativeAbility);if((0,_utilities.exists)(abilityMod)){finalSetAttrs.initiative+=abilityMod;}finalSetAttrs.initiative_formula=abilityMod+'['+(0,_utilities.getAbilityShortName)(initiativeAbility)+']';var abilityCheckBonus=(0,_utilities.getIntValue)(v[initiativeAbility+'_check_bonus']);if((0,_utilities.exists)(abilityCheckBonus)){finalSetAttrs.initiative+=abilityCheckBonus;finalSetAttrs.initiative_formula+=(0,_utilities.addArithmeticOperator)(finalSetAttrs.initiative_formula,abilityCheckBonus)+'['+(0,_utilities.getAbilityShortName)(initiativeAbility)+' check bonus]';}var initiativeBonus=v.initiative_bonus;if((0,_utilities.exists)(initiativeBonus)){if(!isNaN(initiativeBonus)){finalSetAttrs.initiative+=(0,_utilities.getIntValue)(initiativeBonus);}finalSetAttrs.initiative_formula+=(0,_utilities.addArithmeticOperator)(finalSetAttrs.initiative_formula,initiativeBonus)+'[initiative bonus]';}if(v.remarkable_athlete_toggle==='@{remarkable_athlete}'){var remarkableAthlete=(0,_utilities.getIntValue)(v.remarkable_athlete);if((0,_utilities.exists)(remarkableAthlete)){finalSetAttrs.initiative+=remarkableAthlete;finalSetAttrs.initiative_formula+=(0,_utilities.addArithmeticOperator)(finalSetAttrs.initiative_formula,remarkableAthlete)+'[remarkable athlete]';}}else if(v.jack_of_all_trades_toggle==='@{jack_of_all_trades}'){var jackOfAllTrades=(0,_utilities.getIntValue)(v.jack_of_all_trades);if((0,_utilities.exists)(jackOfAllTrades)){finalSetAttrs.initiative+=jackOfAllTrades;finalSetAttrs.initiative_formula+=(0,_utilities.addArithmeticOperator)(finalSetAttrs.initiative_formula,jackOfAllTrades)+'[jack of all trades]';}}var globalCheckBonus=v.global_check_bonus;if((0,_utilities.exists)(globalCheckBonus)){if(finalSetAttrs.initiative_formula){finalSetAttrs.initiative_formula+=' + ';}finalSetAttrs.initiative_formula+='(@{global_check_bonus})[global check bonus]';}}});}},{key:'setup',value:function setup(){var _this2=this;on('change:repeating_skill',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_skill',eventInfo);if(repeatingInfo&&repeatingInfo.field!=='ability_key'&&repeatingInfo.field!=='total'&&repeatingInfo.field!=='total_with_sign'&&repeatingInfo.field!=='passive_total'&&repeatingInfo.field!=='passive_total_with_sign'&&repeatingInfo.field!=='formula'){_this2.updateSkill(repeatingInfo.rowId);}});on('change:pb change:jack_of_all_trades_toggle change:jack_of_all_trades change:remarkable_athlete_toggle change:remarkable_athlete change:global_check_bonus change:strength_check_bonus change:dexterity_check_bonus change:constitution_check_bonus change:intelligence_check_bonus change:wisdom_check_bonus change:charisma_check_bonus',function(){_this2.updateSkill();});on('change:skills_srd',function(){_this2.updateSkillsFromSRD();});on('remove:repeating_skill change:ability_checks_show_totals',function(){_this2.updateMacro();});var initiativeWatch=['change:initiative_ability','change:initiative_bonus','change:jack_of_all_trades_toggle','change:jack_of_all_trades','change:remarkable_athlete_toggle','change:remarkable_athlete','change:global_check_bonus'];var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{for(var _iterator8=_constants.ABILITIES[Symbol.iterator](),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){var ability=_step8.value;initiativeWatch.push('change:'+ability+'_mod');initiativeWatch.push('change:'+ability+'_check_bonus');}}catch(err){_didIteratorError8=true;_iteratorError8=err;}finally{try{if(!_iteratorNormalCompletion8&&_iterator8.return){_iterator8.return();}}finally{if(_didIteratorError8){throw _iteratorError8;}}}on(initiativeWatch.join(' '),function(){_this2.updateInitiative();});}}]);return AbilityChecks;}();
|
|
|
|
},{"./ProficiencyBonus":13,"./constants":20,"./utilities":23}],3:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Actions=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _ProficiencyBonus=require('./ProficiencyBonus');var _utilities=require('./utilities');var _updateToggles=require('./updateToggles');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var proficiencyBonus=new _ProficiencyBonus.ProficiencyBonus();var Actions=exports.Actions=function(){function Actions(){_classCallCheck(this,Actions);}_createClass(Actions,[{key:'updateAll',value:function updateAll(){this.update('trait');this.update('action');this.update('reaction');this.update('legendaryaction');this.update('lairaction');this.update('regionaleffect');}},{key:'update',value:function update(type,rowId){var rechargeRegex=/\s*?\((?:Recharge\s*?(\d+\-\d+|\d+)|Recharges\safter\sa\s(.*))\)/gi;var rechargeDayRegex=/\s*?\((\d+\/Day)\)/gi;var collectionArray=['pb','strength_mod','finesse_mod','global_attack_bonus','global_melee_attack_bonus','global_ranged_attack_bonus','global_damage_bonus','global_melee_damage_bonus','global_ranged_damage_bonus','default_ability','base_dc'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push(ability+'_mod');}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}(0,_utilities.getSetRepeatingItems)('actions.update',{repeatingItems:['repeating_'+type],collectionArray:collectionArray,collectionArrayAddItems:['name','type','uses','uses_max','has_uses','roll_toggle','to_hit','attack_formula','proficiency','attack_ability','attack_bonus','saving_throw_toggle','saving_throw_ability','saving_throw_bonus','saving_throw_dc','damage_toggle','damage_formula','damage','damage_ability','damage_bonus','damage_type','damage_crit','second_damage_toggle','second_damage_formula','second_damage','second_damage_ability','second_damage_bonus','second_damage_type','second_damage_crit','damage_string','heal_toggle','heal','heal_ability','heal_bonus','heal_query_toggle','parsed','recharge','recharge_display','extras_toggle','emote','freetext','freeform'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=ids[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var id=_step2.value;var repeatingString=repeatingItem+'_'+id+'_';var actionName=v[repeatingString+'name'];if(!(0,_utilities.isUndefinedOrEmpty)(actionName)){var rechargeResult=rechargeRegex.exec(actionName);if(rechargeResult){finalSetAttrs[repeatingString+'recharge']=rechargeResult[1]||rechargeResult[2];finalSetAttrs[repeatingString+'name']=actionName.replace(rechargeRegex,'');}var rechargeDayResult=rechargeDayRegex.exec(actionName);if(rechargeDayResult){finalSetAttrs[repeatingString+'recharge']=rechargeDayResult[1]||rechargeDayResult[2];finalSetAttrs[repeatingString+'name']=actionName.replace(rechargeDayRegex,'');}}if(v[repeatingString+'uses']||v[repeatingString+'uses_max']){finalSetAttrs[repeatingString+'has_uses']=1;}else if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'has_uses'])){finalSetAttrs[repeatingString+'has_uses']=0;}var recharge=(0,_utilities.fromVOrFinalSetAttrs)(v,finalSetAttrs,repeatingString+'recharge');if((0,_utilities.exists)(recharge)){if(isNaN(recharge)){finalSetAttrs[repeatingString+'recharge_display']=' ('+recharge+')';}else{finalSetAttrs[repeatingString+'recharge_display']=' (Recharge '+recharge+')';}}else if((0,_utilities.exists)(v[repeatingString+'recharge_display'])){finalSetAttrs[repeatingString+'recharge_display']='';}var attackOptions={};if(type!=='trait'){attackOptions={globalAttackBonus:v.global_attack_bonus,globalAttackBonusLabel:'global attack bonus',globalMeleeAttackBonus:v.global_melee_attack_bonus,globalRangedAttackBonus:v.global_ranged_attack_bonus,type:'attack'};}(0,_updateToggles.updateAttackToggle)(v,finalSetAttrs,repeatingString,attackOptions);(0,_updateToggles.updateSavingThrowToggle)(v,finalSetAttrs,repeatingString);var damageOptions={};if(type!=='trait'){damageOptions={globalDamageBonus:v.global_damage_bonus,globalMeleeDamageBonus:v.global_melee_damage_bonus,globalRangedDamageBonus:v.global_ranged_damage_bonus,type:'attack'};}(0,_updateToggles.updateDamageToggle)(v,finalSetAttrs,repeatingString,damageOptions);if(v.damage_type){finalSetAttrs.damage_type=(0,_utilities.lowercaseDamageTypes)(v.damage_type);}if(v.second_damage_type){finalSetAttrs.second_damage_type=(0,_utilities.lowercaseDamageTypes)(v.second_damage_type);}(0,_utilities.setCritDamage)(v,finalSetAttrs,repeatingString);(0,_updateToggles.updateHealToggle)(v,finalSetAttrs,repeatingString);if((0,_utilities.isUndefined)(v[repeatingString+'extras_toggle'])&&(v[repeatingString+'emote']||v[repeatingString+'freetext']||v[repeatingString+'freeform'])){finalSetAttrs[repeatingString+'extras_toggle']=_constants.TOGGLE_VARS.extras;}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}}});}},{key:'updateIfTriggered',value:function updateIfTriggered(type,eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_'+type,eventInfo);if(repeatingInfo&&repeatingInfo.field!=='name'&&repeatingInfo.field!=='freetext'&&repeatingInfo.field!=='to_hit'&&repeatingInfo.field!=='attack_formula'&&repeatingInfo.field!=='damage_formula'&&repeatingInfo.field!=='damage_crit'&&repeatingInfo.field!=='second_damage_formula'&&repeatingInfo.field!=='second_damage_crit'&&repeatingInfo.field!=='damage_string'&&repeatingInfo.field!=='saving_throw_dc'&&repeatingInfo.field!=='parsed'&&repeatingInfo.field!=='recharge_display'){this.update(type,repeatingInfo.rowId);}}},{key:'updateChatMacro',value:function updateChatMacro(type){(0,_utilities.getSetRepeatingItems)('actions.updateChatMacro',{repeatingItems:['repeating_'+type],collectionArray:[type+'s_macro_var',type+'s_chat_var',type+'s_exist'],collectionArrayAddItems:['name','freetext'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){finalSetAttrs[type+'s_macro_var']='';finalSetAttrs[type+'s_chat_var']='';var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';var actionName=v[repeatingString+'name'];var freeText=v[repeatingString+'freetext'];if(id!==ids[0]){finalSetAttrs[type+'s_macro_var']+=', ';}var actionType='action';var title=void 0;if(type==='trait'){title='Traits';actionType='trait';}else if(type==='action'){title='Actions';}else if(type==='reaction'){title='Reactions';}else if(type==='legendaryaction'){title='Legendary Actions';}else if(type==='lairaction'){title='Lair Actions';actionName=freeText;}else if(type==='regionaleffect'){title='Regional Effects';actionName=freeText;}if(actionName&&actionName.length>50){actionName=actionName.substring(0,50)+'...';}finalSetAttrs[type+'s_macro_var']+='['+actionName+'](~repeating_'+type+'_'+id+'_'+actionType+')';finalSetAttrs[type+'s_chat_var']+='{{'+title+'='+finalSetAttrs[type+'s_macro_var']+'}}';}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'findClosest',value:function findClosest(array,goal){return array.reduce(function(prev,curr){return Math.abs(curr-goal)<Math.abs(prev-goal)?curr:prev;});}},{key:'getCorrectAbilityBasedOnBonus',value:function getCorrectAbilityBasedOnBonus(finalSetAttrs,repeatingString,fieldName,bonus,spellMods,meleeMods,spellAttack,rangedAttack,dexMod){var closest=void 0;if(bonus){if(spellAttack){closest=this.findClosest(spellMods,bonus);bonus-=closest;if(closest===spellMods[0]){finalSetAttrs[repeatingString+fieldName]='intelligence';}else if(closest===spellMods[1]){finalSetAttrs[repeatingString+fieldName]='wisdom';}else if(closest===spellMods[2]){finalSetAttrs[repeatingString+fieldName]='charisma';}}else{if(rangedAttack){finalSetAttrs[repeatingString+'attack_ability']='dexterity';bonus-=dexMod;}else{closest=this.findClosest(meleeMods,bonus);bonus-=closest;if(closest===meleeMods[0]){finalSetAttrs[repeatingString+fieldName]='strength';}else if(closest===meleeMods[1]){finalSetAttrs[repeatingString+fieldName]='dexterity';}}}}else{finalSetAttrs[repeatingString+fieldName]=0;}return bonus;}},{key:'getAnyCorrectAbilityBasedOnBonus',value:function getAnyCorrectAbilityBasedOnBonus(finalSetAttrs,repeatingString,fieldName,bonus,abilityMods){var closest=this.findClosest(abilityMods,bonus);if(bonus){bonus-=closest;if(closest===abilityMods[0]){finalSetAttrs[repeatingString+fieldName]='strength';}else if(closest===abilityMods[1]){finalSetAttrs[repeatingString+fieldName]='dexterity';}else if(closest===abilityMods[2]){finalSetAttrs[repeatingString+fieldName]='constitution';}else if(closest===abilityMods[3]){finalSetAttrs[repeatingString+fieldName]='intelligence';}else if(closest===abilityMods[4]){finalSetAttrs[repeatingString+fieldName]='wisdom';}else if(closest===abilityMods[5]){finalSetAttrs[repeatingString+fieldName]='charisma';}}else{finalSetAttrs[repeatingString+fieldName]=0;}return bonus;}},{key:'parseDamage',value:function parseDamage(finalSetAttrs,repeatingString,freetext,regex,name,spellMods,meleeMods,spellAttack,rangedAttack,dexMod){var damageParseRegex=/(\d+d?\d+)(?:\s?(?:\+|\-)\s?(\d+))?/gi;var damage=regex.exec(freetext);var damageBonus=void 0;if(damage){if(damage[1]){var damageParsed=damageParseRegex.exec(damage[1]);if(damageParsed){if(damageParsed[1]){finalSetAttrs[repeatingString+name]=damageParsed[1];}if(damageParsed[2]){damageBonus=damageParsed[2];}}}damageBonus=this.getCorrectAbilityBasedOnBonus(finalSetAttrs,repeatingString,name+'_ability',damageBonus,spellMods,meleeMods,spellAttack,rangedAttack,dexMod);if(damage[2]){finalSetAttrs[''+repeatingString+name+'_type']=damage[2];}if(damageBonus){finalSetAttrs[''+repeatingString+name+'_bonus']=damageBonus;}freetext=freetext.replace(regex,'');finalSetAttrs[''+repeatingString+name+'_toggle']=_constants.TOGGLE_VARS[name];}return freetext;}},{key:'parse',value:function parse(type,rowId){var _this=this;var collectionArray=['level','challenge','global_attack_bonus','global_melee_attack_bonus','global_ranged_attack_bonus','global_damage_bonus','global_melee_damage_bonus','global_ranged_damage_bonus','default_ability'];var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=_constants.ABILITIES[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var ability=_step4.value;collectionArray.push(ability+'_mod');}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}var damageSyntax=/(?:(\d+d?\d+(?:\s\+\s\d+)?)(?:\))?)\s*?/;var damageType=/((?:[a-zA-Z]+|[a-zA-Z]+\s(?:or|and)\s[a-zA-Z]+)(?:\s*?\([a-zA-Z\s]+\))?)\s*damage\s?(\([a-zA-Z'\s]+\))?/;var altDamageSyntax=/(?:,\s*?or\s*?)/;var plus=/\s*?plus\s*?/;var savingThrowRe=/(?:DC)\s*?(\d+)\s*?([a-zA-Z]*)\s*?(?:saving throw)/;var saveSuccess=/or\s(.*)?\son a successful one./;var damageRegex=new RegExp(damageSyntax.source+damageType.source,'i');var damagePlusRegex=new RegExp(plus.source+damageSyntax.source+damageType.source,'i');var altDamageRegex=new RegExp(altDamageSyntax.source+damageSyntax.source+damageType.source,'i');var savingThrowRegex=new RegExp(savingThrowRe.source,'i');var saveSuccessRegex=new RegExp(saveSuccess.source,'i');var typeRegex=/(melee|ranged|melee or ranged)\s*(spell|weapon)\s*attack/gi;var toHitRegex=/:\s?\+\s?(\d+)\s*(?:to hit)/gi;var reachRegex=/(?:reach)\s?(\d+)\s?(?:ft)/gi;var rangeRegex=/(?:range)\s?(\d+)\/(\d+)\s?(ft)/gi;var spellcastingRegex=/(\d+)\w+\slevel\s\((\d+)\s?slot(?:s)?\)/gi;var spellcastingLevelRegex=/(\d+)(?:st|dn|rd|th)-level spellcaster/i;var spellcastingAbilityRegex=/spellcasting ability is (\w+)/i;var spellcastingAbilityRegexSecond=/uses (\w+) as his spellcasting ability/i;(0,_utilities.getSetRepeatingItems)('actions.parse',{repeatingItems:['repeating_'+type],collectionArray:collectionArray,collectionArrayAddItems:['name','freetext','type'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var pb=proficiencyBonus.get(v.level,v.challenge);var strMod=(0,_utilities.getIntValue)(v.strength_mod);var dexMod=(0,_utilities.getIntValue)(v.dexterity_mod);var conMod=(0,_utilities.getIntValue)(v.constitution_mod);var intMod=(0,_utilities.getIntValue)(v.intelligence_mod);var wisMod=(0,_utilities.getIntValue)(v.wisdom_mod);var chaMod=(0,_utilities.getIntValue)(v.charisma_mod);var meleeMods=[strMod,dexMod];var spellMods=[intMod,wisMod,chaMod];var abilityMods=[strMod,dexMod,conMod,intMod,wisMod,chaMod];var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=ids[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var id=_step5.value;var repeatingString=repeatingItem+'_'+id+'_';var rangedAttack=false;var spellAttack=false;var name=v[repeatingString+'name'];var freetext=v[repeatingString+'freetext'];if(name&&name.indexOf('Spellcasting')!==-1){var spellcastingSearch=spellcastingAbilityRegex.exec(freetext);if(spellcastingSearch&&spellcastingSearch[1]){finalSetAttrs.default_ability=spellcastingSearch[1].toLowerCase();}else{var spellcastingSearchSecond=spellcastingAbilityRegexSecond.exec(freetext);if(spellcastingSearchSecond&&spellcastingSearchSecond[1]){finalSetAttrs.default_ability=spellcastingSearchSecond[1].toLowerCase();}}var spellcastingLevelSearch=spellcastingLevelRegex.exec(freetext);if(spellcastingLevelSearch&&spellcastingLevelSearch[1]){finalSetAttrs.caster_level=spellcastingLevelSearch[1];}var match=void 0;while((match=spellcastingRegex.exec(freetext))!==null){if(match&&match[1]&&match[2]){finalSetAttrs['spell_slots_l'+match[1]+'_bonus']=match[2];}}}var actionType=typeRegex.exec(freetext);if(actionType){if(actionType[1]){actionType[1]=actionType[1].toLowerCase();if((0,_utilities.isUndefined)(v[repeatingString+'type'])&&(actionType[1]==='melee'||actionType[1]==='melee or ranged')){finalSetAttrs[repeatingString+'type']='Melee Weapon';}else if((0,_utilities.isUndefined)(v[repeatingString+'type'])&&actionType[1]==='ranged'){finalSetAttrs[repeatingString+'type']='Ranged Weapon';rangedAttack=true;}else{finalSetAttrs[repeatingString+'type']='Other';}}if(actionType[2]){actionType[2]=actionType[2].toLowerCase();if(actionType[2]==='spell'){spellAttack=true;}}freetext=freetext.replace(typeRegex,'');}var reach=reachRegex.exec(freetext);if(reach&&reach[1]){finalSetAttrs[repeatingString+'reach']=reach[1]+'ft.';freetext=freetext.replace(reachRegex,'');}var range=rangeRegex.exec(freetext);if(range&&range[1]&&range[2]){finalSetAttrs[repeatingString+'range']=range[1]+'ft.';freetext=freetext.replace(rangeRegex,'');}var toHit=toHitRegex.exec(freetext);if(toHit&&toHit[1]){var hitBonus=toHit[1];hitBonus-=pb;hitBonus=_this.getCorrectAbilityBasedOnBonus(finalSetAttrs,repeatingString,'attack_ability',hitBonus,spellMods,meleeMods,spellAttack,rangedAttack,dexMod);if(hitBonus){finalSetAttrs[repeatingString+'attack_bonus']=hitBonus;}freetext=freetext.replace(toHitRegex,'');finalSetAttrs[repeatingString+'roll_toggle']=_constants.TOGGLE_VARS.roll;}else{finalSetAttrs[repeatingString+'roll_toggle']='0';}var savingThrow=savingThrowRegex.exec(freetext);if(savingThrow){if(savingThrow[1]){var savingThrowTotal=savingThrow[1];savingThrowTotal-=8;savingThrowTotal-=pb;savingThrowTotal=_this.getAnyCorrectAbilityBasedOnBonus(finalSetAttrs,repeatingString,'saving_throw_ability',savingThrowTotal,abilityMods);if(savingThrowTotal){finalSetAttrs[repeatingString+'saving_throw_bonus']=savingThrowTotal;}freetext=freetext.replace(savingThrowRegex,'');finalSetAttrs[repeatingString+'saving_throw_toggle']=_constants.TOGGLE_VARS.saving_throw;}if(savingThrow[2]){finalSetAttrs[repeatingString+'saving_throw_vs_ability']=savingThrow[2].toUpperCase();}var halfDamage=saveSuccessRegex.exec(freetext);if(halfDamage&&halfDamage[1]){finalSetAttrs[repeatingString+'saving_throw_success']=halfDamage[1];freetext=freetext.replace(saveSuccessRegex,'');}}else{finalSetAttrs[repeatingString+'saving_throw_toggle']='0';}freetext=_this.parseDamage(finalSetAttrs,repeatingString,freetext,damageRegex,'damage',spellMods,meleeMods,spellAttack,rangedAttack,dexMod);freetext=_this.parseDamage(finalSetAttrs,repeatingString,freetext,altDamageRegex,'second_damage',spellMods,meleeMods,spellAttack,rangedAttack,dexMod);freetext=_this.parseDamage(finalSetAttrs,repeatingString,freetext,damagePlusRegex,'second_damage',spellMods,meleeMods,spellAttack,rangedAttack,dexMod);if(!(0,_utilities.exists)(finalSetAttrs[repeatingString+'second_damage'])){freetext=_this.parseDamage(finalSetAttrs,repeatingString,freetext,damageRegex,'second_damage',spellMods,meleeMods,spellAttack,rangedAttack,dexMod);}finalSetAttrs[repeatingString+'extras_toggle']=_constants.TOGGLE_VARS.extras;finalSetAttrs[repeatingString+'toggle_details']=0;}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}},setFinalAttrsCallback:function setFinalAttrsCallback(){_this.update(type,rowId);}});}},{key:'count',value:function count(type){(0,_utilities.getSetRepeatingItems)('actions.count',{repeatingItems:['repeating_'+type],collectionArray:[type+'s_exist'],callback:function callback(v,finalSetAttrs,ids){if(ids.length>0){finalSetAttrs[type+'s_exist']=1;}else if((0,_utilities.exists)(v[type+'s_exist'])){finalSetAttrs[type+'s_exist']=0;}}});}},{key:'setup',value:function setup(){var _this2=this;on('change:pb',function(){_this2.update();});on('change:repeating_trait',function(eventInfo){_this2.updateIfTriggered('trait',eventInfo);});on('change:repeating_action',function(eventInfo){_this2.updateIfTriggered('action',eventInfo);});on('change:repeating_reaction',function(eventInfo){_this2.updateIfTriggered('reaction',eventInfo);});on('change:repeating_legendaryaction',function(eventInfo){_this2.updateIfTriggered('legendaryaction',eventInfo);});on('change:repeating_lairaction',function(eventInfo){_this2.updateIfTriggered('lairaction',eventInfo);});on('change:repeating_regionaleffect',function(eventInfo){_this2.updateIfTriggered('regionaleffect',eventInfo);});on('change:repeating_trait remove:repeating_trait',function(){_this2.count('trait');_this2.updateChatMacro('trait');});on('change:repeating_action remove:repeating_action',function(){_this2.count('action');_this2.updateChatMacro('action');});on('change:repeating_reaction remove:repeating_reaction',function(){_this2.count('reaction');_this2.updateChatMacro('reaction');});on('change:repeating_legendaryaction remove:repeating_legendaryaction',function(){_this2.count('legendaryaction');_this2.updateChatMacro('legendaryaction');});on('change:repeating_lairaction remove:repeating_lairaction',function(){_this2.count('lairaction');_this2.updateChatMacro('lairaction');});on('change:repeating_regionaleffect remove:repeating_regionaleffect',function(){_this2.count('regionaleffect');_this2.updateChatMacro('regionaleffect');});on('change:repeating_trait:freetext',function(eventInfo){_this2.parse('trait',(0,_utilities.getRepeatingInfo)('repeating_trait',eventInfo).rowId);});on('change:repeating_action:freetext',function(eventInfo){_this2.parse('action',(0,_utilities.getRepeatingInfo)('repeating_action',eventInfo).rowId);});on('change:repeating_reaction:freetext',function(eventInfo){_this2.parse('reaction',(0,_utilities.getRepeatingInfo)('repeating_reaction',eventInfo).rowId);});on('change:repeating_legendaryaction:freetext',function(eventInfo){_this2.parse('legendaryaction',(0,_utilities.getRepeatingInfo)('repeating_legendaryaction',eventInfo).rowId);});on('change:repeating_lairaction:freetext',function(eventInfo){_this2.parse('lairaction',(0,_utilities.getRepeatingInfo)('repeating_lairaction',eventInfo).rowId);});on('change:global_attack_bonus change:global_melee_attack_bonus change:global_ranged_attack_bonus change:global_damage_bonus change:global_melee_damage_bonus change:global_ranged_damage_bonus change:ammo_auto_use',function(){_this2.update('action');_this2.update('reaction');_this2.update('legendaryaction');_this2.update('lairaction');});}}]);return Actions;}();
|
|
|
|
},{"./ProficiencyBonus":13,"./constants":20,"./updateToggles":22,"./utilities":23}],4:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Attachers=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Attachers=exports.Attachers=function(){function Attachers(){_classCallCheck(this,Attachers);}_createClass(Attachers,[{key:'update',value:function update(){var collectionArray=['attacher_initiative','attacher_death_saving_throw','attacher_hit_dice','attacher_attack','attacher_spell','attacher_skill','attacher_crit'];var itemsToPush=['initiative','death_saving_throw','hit_dice','attack','spell','skill'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push('attacher_'+ability+'_check');collectionArray.push('attacher_'+ability+'_saving_throw');itemsToPush.push(ability+'_check');itemsToPush.push(ability+'_saving_throw');}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}(0,_utilities.getSetRepeatingItems)('attachers.update',{repeatingItems:['repeating_attacher'],collectionArray:collectionArray,collectionArrayAddItems:['name','freetext','freeform','crit_attacher'],itemsToPush:itemsToPush,itemToPushSuffix:'attacher',callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=itemsToPush[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var itemToPush=_step2.value;finalSetAttrs['attacher_'+itemToPush]='';}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=itemsToPush[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var _itemToPush=_step4.value;var attacher=v[''+repeatingString+_itemToPush+'_attacher'];if((0,_utilities.exists)(attacher)&&attacher==='on'){var attacherName=v[repeatingString+'name']||'';var freeText=v[repeatingString+'freetext'];if((0,_utilities.exists)(attacherName)&&(0,_utilities.exists)(freeText)){var critAttacher=v[repeatingString+'crit_attacher'];if(critAttacher==='on'){finalSetAttrs['attacher_'+_itemToPush]+='{{crit_name='+attacherName+'}} ';finalSetAttrs['attacher_'+_itemToPush]+='{{crit_text='+freeText+'}} ';}else{finalSetAttrs['attacher_'+_itemToPush]+='{{'+attacherName+'='+freeText+'}} ';}}var freeForm=v[repeatingString+'freeform'];if((0,_utilities.exists)(freeForm)){finalSetAttrs['attacher_'+_itemToPush]+=freeForm+' ';}}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'setup',value:function setup(){var _this=this;on('change:repeating_attacher remove:repeating_attacher',function(){_this.update();});}}]);return Attachers;}();
|
|
|
|
},{"./constants":20,"./utilities":23}],5:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Attacks=undefined;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _updateToggles=require('./updateToggles');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Attacks=exports.Attacks=function(){function Attacks(){_classCallCheck(this,Attacks);}_createClass(Attacks,[{key:'findAmmo',value:function findAmmo(name,_callback){var repeatingString=void 0;(0,_utilities.getSetRepeatingItems)('attacks.findAmmo',{repeatingItems:['repeating_ammo'],collectionArrayAddItems:['name','qty'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=ids[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var id=_step.value;repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'name']===name){_callback('@{'+repeatingString+'qty}');return;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}console.warn('cannot find ammo field by the name '+name+', adding it');repeatingString=repeatingItem+'_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=name;finalSetAttrs[repeatingString+'qty']=20;_callback('@{'+repeatingString+'qty}');}});}},{key:'update',value:function update(rowId){var _this=this;var collectionArray=['pb','strength_mod','finesse_mod','global_attack_bonus','global_melee_attack_bonus','global_ranged_attack_bonus','global_damage_bonus','global_melee_damage_bonus','global_ranged_damage_bonus','default_ability','ammo_auto_use','base_dc'];var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.ABILITIES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var ability=_step2.value;collectionArray.push(ability+'_mod');}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}(0,_utilities.getSetRepeatingItems)('attacks.update',{repeatingItems:['repeating_attack'],collectionArray:collectionArray,collectionArrayAddItems:['name','type','roll_toggle','to_hit','attack_formula','proficiency','attack_ability','attack_bonus','ammo_toggle_var','ammo_field_name','ammo_used','saving_throw_toggle','saving_throw_ability','saving_throw_bonus','saving_throw_dc','damage_toggle','damage_formula','damage','damage_ability','damage_bonus','damage_type','damage_crit','second_damage_toggle','second_damage_formula','second_damage','second_damage_ability','second_damage_bonus','second_damage_type','second_damage_crit','damage_string','modifiers','properties','weight','parsed'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{var _loop=function _loop(){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';var attackName=v[repeatingString+'name'];if((0,_utilities.isUndefinedOrEmpty)(attackName)){return{v:void 0};}if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'parsed'])||v[repeatingString+'parsed'].indexOf('modifiers')===-1){var attackModifiers=v[repeatingString+'modifiers'];if((0,_utilities.exists)(attackModifiers)){var attackBonus=attackModifiers.replace(/.*(?:Melee|Ranged) Attacks \+(\d+).*/gi,'$1');var damageBonus=attackModifiers.replace(/.*(?:Melee|Ranged) Damage \+(\d+).*/gi,'$1');finalSetAttrs[repeatingString+'attack_bonus']=attackBonus;finalSetAttrs[repeatingString+'damage_bonus']=damageBonus;if(!finalSetAttrs[repeatingString+'parsed']){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' modifiers';}}if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'parsed'])||v[repeatingString+'parsed'].indexOf('attackProperties')===-1){var attackProperties=v[repeatingString+'properties'];if((0,_utilities.exists)(attackProperties)){if(attackProperties.indexOf('Reach')!==-1){finalSetAttrs[repeatingString+'reach']='10 ft';}else if(v[repeatingString+'type']==='Melee Weapon'){finalSetAttrs[repeatingString+'reach']='5 ft';}if(attackProperties.indexOf('Finesse')!==-1){finalSetAttrs[repeatingString+'attack_ability']='finesse';finalSetAttrs[repeatingString+'damage_ability']='finesse';}if(!finalSetAttrs[repeatingString+'parsed']){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' attackProperties';}}var attackOptions={globalAttackBonus:v.global_attack_bonus,globalAttackBonusLabel:'global attack bonus',globalMeleeAttackBonus:v.global_melee_attack_bonus,globalRangedAttackBonus:v.global_ranged_attack_bonus,type:'attack'};(0,_updateToggles.updateAttackToggle)(v,finalSetAttrs,repeatingString,attackOptions);var ammoName=v[repeatingString+'ammo_field_name'];var ammoUsed=(0,_utilities.getIntValue)(v[repeatingString+'ammo_used'],1);if(!(0,_utilities.isUndefinedOrEmpty)(ammoName)){(function(){var ammoAutoUse=void 0;if(v.ammo_auto_use==='1'){ammoAutoUse=1;}else{ammoAutoUse=0;}_this.findAmmo(ammoName,function(ammoQtyName){var setAmmo={};setAmmo[repeatingString+'ammo_toggle_var']='{{ammo=[['+ammoQtyName+'-'+ammoAutoUse*ammoUsed+']]}} {{ammo_name='+ammoName+'}}';(0,_utilities.setFinalAttrs)(v,setAmmo,'findAmmo');});})();}(0,_updateToggles.updateSavingThrowToggle)(v,finalSetAttrs,repeatingString);var damageOptions={globalDamageBonus:v.global_damage_bonus,globalMeleeDamageBonus:v.global_melee_damage_bonus,globalRangedDamageBonus:v.global_ranged_damage_bonus,type:'attack'};(0,_updateToggles.updateDamageToggle)(v,finalSetAttrs,repeatingString,damageOptions);if(v.damage_type){finalSetAttrs.damage_type=(0,_utilities.lowercaseDamageTypes)(v.damage_type);}if(v.second_damage_type){finalSetAttrs.second_damage_type=(0,_utilities.lowercaseDamageTypes)(v.second_damage_type);}(0,_utilities.setCritDamage)(v,finalSetAttrs,repeatingString);};for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var _ret=_loop();if((typeof _ret==='undefined'?'undefined':_typeof(_ret))==="object")return _ret.v;}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'weigh',value:function weigh(){var options={collection:'attack',toggle:'carried',qty:'qty'};var sumItems=[{fieldToAdd:'weight',itemTotal:'weight_total',totalField:'weight_attacks'}];(0,_utilities.sumRepeating)(options,sumItems);}},{key:'updateChatMacro',value:function updateChatMacro(){(0,_utilities.getSetRepeatingItems)('attacks.updateChatMacro',{repeatingItems:['repeating_attack'],collectionArray:['attacks_macro_var'],collectionArrayAddItems:['name'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){finalSetAttrs.attacks_macro_var='';var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=ids[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var id=_step4.value;var _repeatingString=repeatingItem+'_'+id+'_';var actionName=v[_repeatingString+'name'];if(actionName&&actionName.length>50){actionName=actionName.substring(0,50)+'...';}if(id!==ids[0]){finalSetAttrs.attacks_macro_var+=', ';}finalSetAttrs.attacks_macro_var+='['+actionName+'](~repeating_attack_'+id+'_attack)';}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}});}},{key:'setup',value:function setup(){var _this2=this;on('change:repeating_attack',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_attack',eventInfo);if(repeatingInfo&&repeatingInfo.field!=='roll_toggle'&&repeatingInfo.field!=='toggle_details'&&repeatingInfo.field!=='to_hit'&&repeatingInfo.field!=='attack_formula'&&repeatingInfo.field!=='damage_formula'&&repeatingInfo.field!=='damage_crit'&&repeatingInfo.field!=='second_damage_formula'&&repeatingInfo.field!=='second_damage_crit'&&repeatingInfo.field!=='damage_string'&&repeatingInfo.field!=='saving_throw_dc'&&repeatingInfo.field!=='qty'&&repeatingInfo.field!=='weight'&&repeatingInfo.field!=='parsed'){_this2.update(repeatingInfo.row);}});on('change:pb, change:global_attack_bonus change:global_melee_attack_bonus change:global_ranged_attack_bonus change:global_damage_bonus change:global_melee_damage_bonus change:global_ranged_damage_bonus change:ammo_auto_use',function(){_this2.update();});on('change:repeating_attack:carried change:repeating_attack:qty change:repeating_attack:weight remove:repeating_attack',function(){_this2.weigh();});on('change:repeating_attack remove:repeating_attack',function(){_this2.updateChatMacro();});}}]);return Attacks;}();
|
|
|
|
},{"./constants":20,"./updateToggles":22,"./utilities":23}],6:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Character=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _ClassFeatures=require('./ClassFeatures');var _Spells=require('./Spells');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var classFeatures=new _ClassFeatures.ClassFeatures();var spells=new _Spells.Spells();var Character=exports.Character=function(){function Character(){_classCallCheck(this,Character);}_createClass(Character,[{key:'updateLevels',value:function updateLevels(repeatingInfo){var defaultClassDetails={barbarian:{hd:'d12'},bard:{hd:'d8',spellcasting:'full'},cleric:{hd:'d8',spellcasting:'full'},druid:{hd:'d8',spellcasting:'full'},fighter:{hd:'d10'},monk:{hd:'d8'},paladin:{hd:'d10',spellcasting:'half'},ranger:{hd:'d10',spellcasting:'half'},rogue:{hd:'d8'},sorcerer:{hd:'d6',spellcasting:'full'},warlock:{hd:'d8',spellcasting:'warlock'},wizard:{hd:'d6',spellcasting:'full'}};var hd={d20:0,d12:0,d10:0,d8:0,d6:0,d4:0,d2:0,d0:0};var spellcasting={full:0,half:0,third:0,warlock:0};var totalLevel=0;var classLevels={};var classesWithSpellcasting=0;var xpTable=[0,300,900,2700,6500,14000,23000,34000,48000,64000,85000,100000,120000,140000,165000,195000,225000,265000,305000,355000,385000,405000,435000,465000,495000,525000,555000,585000,605000,635000,665000];var collectionArray=['is_npc','caster_level','caster_type','class_and_level','level','xp_next_level'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.CLASSES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var className=_step.value;collectionArray.push(className+'_level');collectionArray.push('has_'+className+'_levels');}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}for(var key in hd){if(hd.hasOwnProperty(key)){collectionArray.push('hd_'+key+'_max');collectionArray.push('hd_'+key+'_query');collectionArray.push('hd_'+key+'_toggle');}}(0,_utilities.getSetRepeatingItems)('character.updateLevels',{repeatingItems:['repeating_class'],collectionArray:collectionArray,collectionArrayAddItems:['level','name','custom_name','hd','spellcasting','custom_class_toggle'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.CLASSES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var className=_step2.value;finalSetAttrs[className+'_level']=0;}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';var _className=v[repeatingString+'name'];var classLevel=v[repeatingString+'level'];if((0,_utilities.isUndefinedOrEmpty)(_className)&&(0,_utilities.isUndefinedOrEmpty)(classLevel)){continue;}if((0,_utilities.isUndefinedOrEmpty)(_className)){_className='barbarian';}if(_className==='custom'){finalSetAttrs[repeatingString+'custom_class_toggle']='on';var customName=v[repeatingString+'custom_name'];if((0,_utilities.exists)(customName)){_className=customName;}else{_className='custom';}}else if(v[repeatingString+'custom_class_toggle']){finalSetAttrs[repeatingString+'custom_class_toggle']=0;}if((0,_utilities.isUndefinedOrEmpty)(classLevel)){classLevel=1;finalSetAttrs[repeatingString+'level']=classLevel;finalSetAttrs[_className+'_level']=classLevel;}else{classLevel=(0,_utilities.getIntValue)(classLevel);totalLevel+=classLevel;if(classLevels[_className]){classLevels[_className]+=classLevel;}else{classLevels[_className]=classLevel;}}var classHd=v[repeatingString+'hd'];if((0,_utilities.isUndefinedOrEmpty)(classHd)||repeatingInfo&&repeatingInfo.field==='name'){if(defaultClassDetails.hasOwnProperty(_className)){classHd=defaultClassDetails[_className].hd;}else{classHd='d12';}finalSetAttrs[repeatingString+'hd']=classHd;}if(classHd&&classLevel){hd[classHd]+=classLevel;}var classSpellcasting=v[repeatingString+'spellcasting'];if((0,_utilities.isUndefinedOrEmpty)(classSpellcasting)){if(defaultClassDetails.hasOwnProperty(_className)){classSpellcasting=defaultClassDetails[_className].spellcasting;if(classSpellcasting){finalSetAttrs[repeatingString+'spellcasting']=classSpellcasting;}}else{finalSetAttrs[repeatingString+'spellcasting']='none';}}else if(classSpellcasting==='warlock'){spellcasting[classSpellcasting]+=classLevel;}else{classesWithSpellcasting+=1;spellcasting[classSpellcasting]+=classLevel;}}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}finalSetAttrs.number_of_classes=0;finalSetAttrs.class_and_level='';for(var prop in classLevels){if(classLevels.hasOwnProperty(prop)){finalSetAttrs.number_of_classes=finalSetAttrs.number_of_classes+1;if(classLevels.hasOwnProperty(prop)){finalSetAttrs[prop+'_level']=classLevels[prop];if(finalSetAttrs.class_and_level!==''){finalSetAttrs.class_and_level+=', ';}finalSetAttrs.class_and_level+=(0,_utilities.capitalize)(prop)+' '+classLevels[prop];}}}finalSetAttrs.level=totalLevel;var xpForNextLevel=0;if(!totalLevel){totalLevel=0;}if(totalLevel>30){xpForNextLevel=xpTable[30];}else{xpForNextLevel=xpTable[totalLevel];}finalSetAttrs.xp_next_level=xpForNextLevel;var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=_constants.CLASSES[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var _className2=_step4.value;if(finalSetAttrs[_className2+'_level']>0){finalSetAttrs['has_'+_className2+'_levels']=1;}else if(!(0,_utilities.isUndefinedOrEmpty)(v['has_'+_className2+'_levels'])){finalSetAttrs['has_'+_className2+'_levels']=0;}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}(0,_utilities.updateHD)(v,finalSetAttrs,hd);var casterLevel=0;if(!v.is_npc||v.is_npc==='0'||v.is_npc===0){if(classesWithSpellcasting>1){casterLevel+=spellcasting.full;casterLevel+=Math.floor(spellcasting.half/2);casterLevel+=Math.floor(spellcasting.third/3);}else{casterLevel=spellcasting.full+spellcasting.half+spellcasting.third;}finalSetAttrs.caster_level=casterLevel;}if(classesWithSpellcasting>1||spellcasting.full){finalSetAttrs.caster_type='full';}else if(spellcasting.half){finalSetAttrs.caster_type='half';}else if(spellcasting.third){finalSetAttrs.caster_type='third';}},setFinalAttrsCallback:function setFinalAttrsCallback(){classFeatures.set();spells.updateSlots();}});}},{key:'watchForClassLevelChanges',value:function watchForClassLevelChanges(){var classFeatureWatch=[];var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=_constants.ABILITIES[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var ability=_step5.value;classFeatureWatch.push('change:'+ability+'_mod');}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}classFeatureWatch.push('change:careful_spell_toggle');classFeatureWatch.push('change:distant_spell_toggle');classFeatureWatch.push('change:empowered_spell_toggle');classFeatureWatch.push('change:extended_spell_toggle');classFeatureWatch.push('change:heightened_spell_toggle');classFeatureWatch.push('change:quickened_spell_toggle');classFeatureWatch.push('change:subtle_spell_toggle');classFeatureWatch.push('change:twinned_spell_toggle');on(classFeatureWatch.join(' '),function(){classFeatures.set();});}},{key:'updateJackOfAllTrades',value:function updateJackOfAllTrades(){(0,_utilities.getSetItems)('character.updateJackOfAllTrades',{collectionArray:['pb','jack_of_all_trades'],callback:function callback(v,finalSetAttrs){finalSetAttrs.jack_of_all_trades=Math.floor((0,_utilities.getIntValue)(v.pb)/2);}});}},{key:'updateRemarkableAthlete',value:function updateRemarkableAthlete(){(0,_utilities.getSetItems)('character.updateRemarkableAthlete',{collectionArray:['pb','remarkable_athlete'],callback:function callback(v,finalSetAttrs){finalSetAttrs.remarkable_athlete=Math.ceil((0,_utilities.getIntValue)(v.pb)/2);}});}},{key:'updateD20Mod',value:function updateD20Mod(){(0,_utilities.getSetItems)('character.updateD20Mod',{collectionArray:['halfling_luck'],callback:function callback(v,finalSetAttrs){if(v.halfling_luck==='on'){finalSetAttrs.d20_mod='ro<1';}else{finalSetAttrs.d20_mod='';}}});}},{key:'updateAlignment',value:function updateAlignment(){(0,_utilities.getSetItems)('character.updateAlignment',{collectionArray:['alignment','is_npc'],callback:function callback(v,finalSetAttrs){if(v.alignment&&v.is_npc==='1'){finalSetAttrs.alignment=v.alignment.toLowerCase();}}});}},{key:'setup',value:function setup(){var _this=this;on('change:repeating_class',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_class',eventInfo);if(repeatingInfo){_this.updateLevels(repeatingInfo);}});on('remove:repeating_class',function(){_this.updateLevels();});on('change:halfling_luck',function(){_this.updateD20Mod();});on('change:alignment',function(){_this.updateAlignment();});on('change:pb change:remarkable_athlete_toggle',function(){_this.updateRemarkableAthlete();});on('change:pb change:jack_of_all_trades_toggle',function(){_this.updateJackOfAllTrades();});this.watchForClassLevelChanges();}}]);return Character;}();
|
|
|
|
},{"./ClassFeatures":7,"./Spells":17,"./constants":20,"./utilities":23}],7:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.ClassFeatures=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');var _constants=require('./constants');var _Traits=require('./Traits');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var traits=new _Traits.Traits();var ClassFeatures=exports.ClassFeatures=function(){function ClassFeatures(){_classCallCheck(this,ClassFeatures);}_createClass(ClassFeatures,[{key:'extraAttack',value:function extraAttack(v){if(v.fighter_level>=5){var extraAttackTimes=void 0;if(v.fighter_level>=20){extraAttackTimes=getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_FOUR');}else if(v.fighter_level>=11){extraAttackTimes=getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_THREE');}else{extraAttackTimes=getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_TWICE');}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_TEXT').replace('NUMBER_OF_TIMES',extraAttackTimes),name:getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK'),storageName:'Extra Attack'});}else if(v.barbarian_level>=5||v.monk_level>=5||v.paladin_level>=5||v.ranger_level>=5){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_TEXT').replace('NUMBER_OF_TIMES',getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK_TWICE')),name:getTranslationByKey('CLASS_FEATURE_EXTRA_ATTACK'),storageName:'Extra Attack'});}}},{key:'barbarian',value:function barbarian(v,finalSetAttrs){if(v.barbarian_level){var rageUses=void 0;if(v.barbarian_level>=20){rageUses=999999;}else if(v.barbarian_level>=17){rageUses=6;}else if(v.barbarian_level>=12){rageUses=5;}else if(v.barbarian_level>=6){rageUses=4;}else if(v.barbarian_level>=3){rageUses=3;}else{rageUses=2;}var rageDamage=void 0;if(v.barbarian_level>=16){rageDamage=4;}else if(v.barbarian_level>=9){rageDamage=3;}else{rageDamage=2;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_RAGE_TEXT').replace('RAGE_DAMAGE',rageDamage),name:getTranslationByKey('CLASS_FEATURE_RAGE'),recharge:'Long Rest',storageName:'Rage',type:'Other',uses_max:rageUses});if((0,_utilities.isUndefinedOrEmpty)(v.ac_unarmored_ability)){finalSetAttrs.ac_unarmored_ability='constitution';}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_UNARMORED_DEFENSE_BARBARIAN_TEXT'),name:getTranslationByKey('CLASS_FEATURE_UNARMORED_DEFENSE'),storageName:'Unarmored Defense Barbarian'});if(v.barbarian_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_RECKLESS_ATTACK_TEXT'),name:getTranslationByKey('CLASS_FEATURE_RECKLESS_ATTACK'),storageName:'Reckless Attack'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_DANGER_SENSE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DANGER_SENSE'),storageName:'Danger Sense'});}if(v.barbarian_level>=5){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FAST_MOVEMENT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FAST_MOVEMENT'),storageName:'Fast Movement'});}if(v.barbarian_level>=7){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FERAL_INSTINCT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FERAL_INSTINCT'),storageName:'Feral Instinct'});}if(v.barbarian_level>=9){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_BRUTAL_CRITICAL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_BRUTAL_CRITICAL'),storageName:'Brutal Critical'});}if(v.barbarian_level>=11){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_RELENTLESS_RAGE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_RELENTLESS_RAGE'),storageName:'Relentless Rage'});}if(v.barbarian_level>=15){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PERSISTENT_RAGE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PERSISTENT_RAGE'),storageName:'Persistent Rage'});}if(v.barbarian_level>=18){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_INDOMITABLE_MIGHT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_INDOMITABLE_MIGHT'),storageName:'Indomitable Might'});}if(v.barbarian_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PRIMAL_CHAMPION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PRIMAL_CHAMPION'),storageName:'Primal Champion'});}}}},{key:'bard',value:function bard(v,finalSetAttrs){if(v.bard_level){var die=void 0;if(v.bard_level>=15){die='d12';}else if(v.bard_level>=10){die='d10';}else if(v.bard_level>=5){die='d8';}else{die='d6';}var recharge='Long Rest';if(v.bard_level>=5){recharge='Short Rest';}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_BARDIC_INSPIRATION_TEXT').replace('d6',die),name:getTranslationByKey('CLASS_FEATURE_BARDIC_INSPIRATION'),recharge:recharge,storageName:'Bardic Inspiration',uses_max:Math.max((0,_utilities.getIntValue)(v.charisma_mod),1)});if(v.bard_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_JACK_OF_ALL_TRADES_TEXT'),name:getTranslationByKey('CLASS_FEATURE_JACK_OF_ALL_TRADES'),storageName:'Jack of All Trades'});finalSetAttrs.jack_of_all_trades_toggle='@{jack_of_all_trades}';var heal=void 0;if(v.bard_level>=17){heal='d12';}else if(v.bard_level>=13){heal='d10';}else if(v.bard_level>=9){heal='d8';}else{heal='d6';}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SONG_OF_REST_TEXT'),heal:heal,name:getTranslationByKey('CLASS_FEATURE_SONG_OF_REST'),storageName:'Song of Rest'});}if(v.bard_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EXPERTISE_BARD_TEXT'),name:getTranslationByKey('CLASS_FEATURE_EXPERTISE'),storageName:'Expertise Bard'});}if(v.bard_level>=6){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_COUNTERCHARM_TEXT'),name:getTranslationByKey('CLASS_FEATURE_COUNTERCHARM'),storageName:'Countercharm'});}if(v.bard_level>=10){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_MAGICAL_SECRETS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_MAGICAL_SECRETS'),storageName:'Magical Secrets'});}if(v.bard_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SUPERIOR_INSPIRATION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SUPERIOR_INSPIRATION'),storageName:'Superior Inspiration'});}}}},{key:'cleric',value:function cleric(v){if(v.cleric_level){if(v.cleric_level>=2){var channelDivinityUses=void 0;if(v.cleric_level>=18){channelDivinityUses=3;}else if(v.cleric_level>=6){channelDivinityUses=2;}else{channelDivinityUses=1;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY_CLERIC_TEXT'),name:getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY'),recharge:'Short Rest',storageName:'Channel Divinity Cleric',uses_max:channelDivinityUses});var turnUndeadText=getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY_TURN_UNDEAD_TEXT');if(v.cleric_level>=5){var turnUndeadDestroyCR=void 0;if(v.cleric_level>=17){turnUndeadDestroyCR='4';}else if(v.cleric_level>=14){turnUndeadDestroyCR='3';}else if(v.cleric_level>=11){turnUndeadDestroyCR='2';}else if(v.cleric_level>=8){turnUndeadDestroyCR='1';}else{turnUndeadDestroyCR='1/2';}turnUndeadText+='\n'+getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY_TURN_UNDEAD_TEXT_PART_2').replace('CHALLENGE_RATING',turnUndeadDestroyCR);}traits.set({freetext:turnUndeadText,name:getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY_TURN_UNDEAD'),saving_throw_ability:'wisdom',saving_throw_vs_ability:'WISDOM',storageName:'Turn Undead'});if(v.cleric_level>=10){traits.set({freeform:'{{text_top=[[d100]] > [[@{cleric_level}]]}}',freetext:getTranslationByKey('CLASS_FEATURE_DIVINE_INTERVENTION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DIVINE_INTERVENTION'),storageName:'Divine Intervention',uses_max:1});}}}}},{key:'druid',value:function druid(v){if(v.druid_level){if(v.druid_level>=2){var wildShapeHours=Math.floor(v.druid_level/2);var wildShapeUses=void 0;var wildShapeCR=void 0;var wildShapeLimitations=void 0;if(v.druid_level>=4){wildShapeCR='1/2';wildShapeLimitations=getTranslationByKey('CLASS_FEATURE_WILD_SHAPE_NO_FLYING');}else if(v.druid_level>=8){wildShapeCR=1;wildShapeLimitations='';}else{wildShapeCR='1/4';wildShapeLimitations=getTranslationByKey('CLASS_FEATURE_WILD_SHAPE_NO_FLYING_OR_SWIMMING');}if(v.druid_level>=20){wildShapeUses=999999;}else{wildShapeUses=2;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_WILD_SHAPE_TEXT').replace('WILD_SHAPE_HOURS',wildShapeHours).replace('CHALLENGE_RATING',wildShapeCR).replace('LIMITATIONS',' '+wildShapeLimitations),name:getTranslationByKey('CLASS_FEATURE_WILD_SHAPE'),recharge:'Short Rest',storageName:'Wild Shape',uses_max:wildShapeUses});}if(v.druid_level>=18){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_TIMELESS_BODY_DRUID_TEXT'),name:getTranslationByKey('CLASS_FEATURE_TIMELESS_BODY'),storageName:'Timeless Body'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_BEAST_SPELLS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_BEAST_SPELLS'),storageName:'Beast Spells'});}if(v.druid_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ARCHDRUID_TEXT'),name:getTranslationByKey('CLASS_FEATURE_ARCHDRUID'),storageName:'Archdruid'});}}}},{key:'fighter',value:function fighter(v){if(v.fighter_level){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_TEXT')+' '+getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_FIGHTER_OPTIONS'),name:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE'),storageName:'Fighting Style'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SECOND_WIND_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SECOND_WIND'),heal:'d10 + @{fighter_level}',recharge:'Short Rest',storageName:'Second Wind',uses_max:1});if(v.fighter_level>=2){var actionSurgeUses=void 0;if(v.fighter_level>=17){actionSurgeUses=2;}else{actionSurgeUses=1;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ACTION_SURGE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_ACTION_SURGE'),recharge:'Short Rest',storageName:'Action Surge',uses_max:actionSurgeUses});}if(v.fighter_level>=9){var indomitableUses=void 0;if(v.fighter_level>=17){indomitableUses=3;}else if(v.fighter_level>=13){indomitableUses=2;}else{indomitableUses=1;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_INDOMITABLE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_INDOMITABLE'),recharge:'Long Rest',storageName:'Indomitable',uses_max:indomitableUses});}}}},{key:'monk',value:function monk(v,finalSetAttrs){if(v.monk_level){if((0,_utilities.isUndefinedOrEmpty)(v.ac_unarmored_ability)){finalSetAttrs.ac_unarmored_ability='wisdom';}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_UNARMORED_DEFENSE_MONK_TEXT'),name:getTranslationByKey('CLASS_FEATURE_UNARMORED_DEFENSE'),storageName:'Unarmored Defense Monk'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_MARTIAL_ARTS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_MARTIAL_ARTS'),storageName:'Martial Arts'});if(v.monk_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_KI_TEXT'),name:getTranslationByKey('CLASS_FEATURE_KI'),recharge:'Short Rest',storageName:'Ki',uses_max:v.monk_level});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FLURRY_OF_BLOWS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FLURRY_OF_BLOWS'),storageName:'Flurry of Blows'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PATIENT_DEFENSE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PATIENT_DEFENSE'),storageName:'Patient Defense'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_STEP_OF_THE_WIND_TEXT'),name:getTranslationByKey('CLASS_FEATURE_STEP_OF_THE_WIND'),storageName:'Step of the Wind'});var unarmoredMovementFeet=void 0;if(v.monk_level>=18){unarmoredMovementFeet=30;}else if(v.monk_level>=14){unarmoredMovementFeet=25;}else if(v.monk_level>=10){unarmoredMovementFeet=20;}else if(v.monk_level>=6){unarmoredMovementFeet=15;}else{unarmoredMovementFeet=10;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_UNARMORED_MOVEMENT_TEXT').replace('UNARMORED_MOVEMENT_FEET',unarmoredMovementFeet),name:getTranslationByKey('CLASS_FEATURE_UNARMORED_MOVEMENT'),storageName:'Unarmored Movement'});}if(v.monk_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_DEFLECT_MISSILES_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DEFLECT_MISSILES'),storageName:'Deflect Missiles'});}if(v.monk_level>=4){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SLOW_FALL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SLOW_FALL'),storageName:'Slow Fall'});}if(v.monk_level>=5){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_STUNNING_STRIKE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_STUNNING_STRIKE'),saving_throw_ability:'wisdom',saving_throw_failure:getTranslationByKey('CLASS_FEATURE_STUNNING_STRIKE_SAVING_THROW_FAILURE'),saving_throw_vs_ability:'CONSTITUTION',storageName:'Stunning Strike'});}if(v.monk_level>=6){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_KI_EMPOWERED_STRIKES_TEXT'),name:getTranslationByKey('CLASS_FEATURE_KI_EMPOWERED_STRIKES'),storageName:'Ki-Empowered Strikes'});}if(v.monk_level>=7){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EVASION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_EVASION'),storageName:'Evasion'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_STILLNESS_OF_MIND_TEXT'),name:getTranslationByKey('CLASS_FEATURE_STILLNESS_OF_MIND'),storageName:'Stillness of Mind'});}if(v.monk_level>=10){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PURITY_OF_BODY_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PURITY_OF_BODY'),storageName:'Purity of Body'});}if(v.monk_level>=13){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_TONGUE_OF_THE_SUN_AND_MOON_TEXT'),name:getTranslationByKey('CLASS_FEATURE_TONGUE_OF_THE_SUN_AND_MOON'),storageName:'Tongue of the Sun and Moon'});}if(v.monk_level>=14){finalSetAttrs.death_saving_throw_prof='@{pb}';traits.set({freetext:getTranslationByKey('CLASS_FEATURE_DIAMOND_SOUL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DIAMOND_SOUL'),storageName:'Diamond Soul'});}if(v.monk_level>=15){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_TIMELESS_BODY_MONK_TEXT'),name:getTranslationByKey('CLASS_FEATURE_TIMELESS_BODY'),storageName:'Timeless Body'});}if(v.monk_level>=15){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EMPTY_BODY_TEXT'),name:getTranslationByKey('CLASS_FEATURE_EMPTY_BODY'),storageName:'Empty Body'});}if(v.monk_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PERFECT_SELF_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PERFECT_SELF'),storageName:'Perfect Self'});}}}},{key:'paladin',value:function paladin(v){if(v.paladin_level){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_DIVINE_SENSE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DIVINE_SENSE'),recharge:'Long Rest',storageName:'Divine Sense',uses_max:Math.max(1+v.charisma_mod,1)});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_LAY_ON_HANDS_TEXT'),heal_query_toggle:_constants.TOGGLE_VARS.heal_query,name:getTranslationByKey('CLASS_FEATURE_LAY_ON_HANDS'),recharge:'Long Rest',storageName:'Lay on Hands',uses_max:5*v.paladin_level});if(v.paladin_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_TEXT')+' '+getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_PALADIN_OPTIONS'),name:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE'),storageName:'Fighting Style'});traits.set({damage:'(?{Spell Level|1|2|3|4+, 4} + 1)d8',damage_type:getTranslationByKey('RADIANT'),freeform:'{{subheader=(as ?{Spell Level|1|2|3|4+})}}',freetext:getTranslationByKey('CLASS_FEATURE_DIVINE_SMITE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DIVINE_SMITE'),second_damage:'d8',second_damage_type:getTranslationByKey('VS_FIEND_OR_UNDEAD'),storageName:'Divine Smite',type:'Other'});}if(v.paladin_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_DIVINE_HEALTH_TEXT'),name:getTranslationByKey('CLASS_FEATURE_DIVINE_HEALTH'),storageName:'Divine Health'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY_PALADIN_TEXT'),name:getTranslationByKey('CLASS_FEATURE_CHANNEL_DIVINITY'),recharge:'Short Rest',storageName:'Channel Divinity Paladin',uses_max:1});}if(v.paladin_level>=6){var auraRange=void 0;if(v.paladin_level>=18){auraRange=30;}else{auraRange=10;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_AURA_OF_PROTECTION_TEXT').replace('AURA_RANGE',auraRange),name:getTranslationByKey('CLASS_FEATURE_AURA_OF_PROTECTION'),storageName:'Aura of Protection'});if(v.paladin_level>=10){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_AURA_OF_COURAGE_TEXT').replace('AURA_RANGE',auraRange),name:getTranslationByKey('CLASS_FEATURE_AURA_OF_COURAGE'),storageName:'Aura of Courage'});}}if(v.paladin_level>=11){traits.set({damage:'1d8',damage_type:'radiant',freetext:getTranslationByKey('CLASS_FEATURE_IMPROVED_DIVINE_SMITE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_IMPROVED_DIVINE_SMITE'),storageName:'Improved Divine Smite',type:'Other'});}if(v.paladin_level>=14){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_CLEANSING_TOUCH_TEXT'),name:getTranslationByKey('CLASS_FEATURE_CLEANSING_TOUCH'),recharge:'Long Rest',storageName:'Cleaning Touch',uses_max:Math.max((0,_utilities.getIntValue)(v.charisma_mod),1)});}}}},{key:'ranger',value:function ranger(v){if(v.ranger_level){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FAVORED_ENEMY_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FAVORED_ENEMY'),storageName:'Favored Enemy'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_NATURAL_EXPLORER_TEXT'),name:getTranslationByKey('CLASS_FEATURE_NATURAL_EXPLORER'),storageName:'Natural Explorer'});if(v.ranger_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_TEXT')+' '+getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE_RANGER_OPTIONS'),name:getTranslationByKey('CLASS_FEATURE_FIGHTING_STYLE'),storageName:'Fighting Style'});}if(v.ranger_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PRIMEVAL_AWARENESS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PRIMEVAL_AWARENESS'),storageName:'Primeval Awareness'});}if(v.ranger_level>=8){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_LANDS_STRIDE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_LANDS_STRIDE'),storageName:'Land\'s Stride'});}if(v.ranger_level>=10){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_HIDE_IN_PLAIN_SIGHT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_HIDE_IN_PLAIN_SIGHT'),storageName:'Hide in Plain Sight'});}if(v.ranger_level>=14){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_VANISH_TEXT'),name:getTranslationByKey('CLASS_FEATURE_VANISH'),storageName:'Vanish'});}if(v.ranger_level>=18){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FERAL_SENSES_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FERAL_SENSES'),storageName:'Feral Senses'});}if(v.ranger_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FOE_SLAYER_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FOE_SLAYER'),storageName:'Foe Slayer'});}}}},{key:'rogue',value:function rogue(v){if(v.rogue_level){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EXPERTISE_ROGUE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_EXPERTISE'),storageName:'Expertise Rogue'});traits.set({damage:Math.ceil((0,_utilities.getIntValue)(v.rogue_level)/2)+'d6',freetext:getTranslationByKey('CLASS_FEATURE_SNEAK_ATTACK_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SNEAK_ATTACK'),storageName:'Sneak Attack'});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_THIEVES_CANT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_THIEVES_CANT'),storageName:'Thieves\' Cant'});if(v.rogue_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_CUNNING_ACTION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_CUNNING_ACTION'),storageName:'Cunning Action'});}if(v.rogue_level>=5){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_UNCANNY_DODGE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_UNCANNY_DODGE'),storageName:'Uncanny Dodge'});}if(v.rogue_level>=7){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_EVASION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_EVASION'),storageName:'Evasion'});}if(v.rogue_level>=11){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_RELIABLE_TALENT_TEXT'),name:getTranslationByKey('CLASS_FEATURE_RELIABLE_TALENT'),storageName:'Reliable Talent'});}if(v.rogue_level>=14){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_BLINDSENSE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_BLINDSENSE'),storageName:'Blindsense'});}if(v.rogue_level>=15){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SLIPPERY_MIND_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SLIPPERY_MIND'),storageName:'Slippery Mind'});}if(v.rogue_level>=18){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ELUSIVE_TEXT'),name:getTranslationByKey('CLASS_FEATURE_ELUSIVE'),storageName:'Elusive'});}if(v.rogue_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_STROKE_OF_LUCK_TEXT'),name:getTranslationByKey('CLASS_FEATURE_STROKE_OF_LUCK'),recharge:'Short Rest',storageName:'Stroke of Luck',uses_max:1});}}}},{key:'sorcerer',value:function sorcerer(v){if(v.sorcerer_level){if(v.sorcerer_level>=2){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SORCERY_POINTS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SORCERY_POINTS'),recharge:'Long Rest',storageName:'Sorcery Points',uses_max:v.sorcerer_level});traits.set({freetext:getTranslationByKey('CLASS_FEATURE_FLEXIBLE_CASTING_TEXT'),name:getTranslationByKey('CLASS_FEATURE_FLEXIBLE_CASTING'),storageName:'Flexible Casting'});if(v.sorcerer_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC'),storageName:'Metamagic'});}if(v.sorcerer_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SORCEROUS_RESTORATION_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SORCEROUS_RESTORATION'),storageName:'Sorcerous Restoration'});}}}}},{key:'warlock',value:function warlock(v){if(v.warlock_level){var warlockSpellSlots=void 0;if(v.warlock_level>=17){warlockSpellSlots=4;}else if(v.warlock_level>=11){warlockSpellSlots=3;}else if(v.warlock_level>=2){warlockSpellSlots=2;}else{warlockSpellSlots=1;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_WARLOCK_SPELL_SLOTS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_WARLOCK_SPELL_SLOTS'),recharge:'Short Rest',storageName:'Warlock Spell Slots',uses_max:warlockSpellSlots});if(v.warlock_level>=2){var eldritchInvocations=void 0;if(v.warlock_level>=17){eldritchInvocations=8;}else if(v.warlock_level>=15){eldritchInvocations=7;}else if(v.warlock_level>=12){eldritchInvocations=6;}else if(v.warlock_level>=9){eldritchInvocations=5;}else if(v.warlock_level>=7){eldritchInvocations=4;}else if(v.warlock_level>=5){eldritchInvocations=3;}else{eldritchInvocations=2;}traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ELDRITCH_INVOCATIONS_TEXT').replace('NUMBER_OF_INVOCATIONS_KNOWN',eldritchInvocations),name:getTranslationByKey('CLASS_FEATURE_ELDRITCH_INVOCATIONS'),storageName:'Eldritch Invocations'});}if(v.warlock_level>=3){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_PACT_BOON_TEXT'),name:getTranslationByKey('CLASS_FEATURE_PACT_BOON'),storageName:'Pact Boon'});}if(v.warlock_level>=11){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_MYSTIC_ARCANUM_TEXT'),name:getTranslationByKey('CLASS_FEATURE_MYSTIC_ARCANUM'),storageName:'Mystic Arcanum'});}if(v.warlock_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ELDRITCH_MASTER_TEXT'),name:getTranslationByKey('CLASS_FEATURE_ELDRITCH_MASTER'),recharge:'Long Rest',storageName:'Eldritch Master'});}}}},{key:'wizard',value:function wizard(v){if(v.wizard_level){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_ARCANE_RECOVERY_TEXT'),name:getTranslationByKey('CLASS_FEATURE_ARCANE_RECOVERY'),recharge:'Long Rest',storageName:'Arcane Recovery',uses_max:1});if(v.wizard_level>=18){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SPELL_MASTERY_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SPELL_MASTERY'),storageName:'Spell Mastery'});}if(v.wizard_level>=20){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_SIGNATURE_SPELLS_TEXT'),name:getTranslationByKey('CLASS_FEATURE_SIGNATURE_SPELLS'),storageName:'Signature Spells'});}}}},{key:'metamagic',value:function metamagic(v){if(v.careful_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_CAREFUL_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_CAREFUL_SPELL'),storageName:'Careful Spell'});}if(v.distant_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_DISTANT_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_DISTANT_SPELL'),storageName:'Distant Spell'});}if(v.empowered_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_EMPOWERED_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_EMPOWERED_SPELL'),storageName:'Empowered Spell'});}if(v.extended_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_EXTENDED_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_EXTENDED_SPELL'),storageName:'Extended Spell'});}if(v.heightened_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_HEIGHTENED_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_HEIGHTENED_SPELL'),storageName:'Heightened Spell'});}if(v.quickened_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_QUICKENED_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_QUICKENED_SPELL'),storageName:'Quickened Spell'});}if(v.subtle_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_SUBTLE_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_SUBTLE_SPELL'),storageName:'Subtle Spell'});}if(v.twinned_spell_toggle==='1'){traits.set({freetext:getTranslationByKey('CLASS_FEATURE_METAMAGIC_TWINNED_SPELL_TEXT'),name:getTranslationByKey('CLASS_FEATURE_METAMAGIC_TWINNED_SPELL'),storageName:'Twinned Spell'});}}},{key:'set',value:function set(){var _this=this;var collectionArray=['ac_unarmored_ability','jack_of_all_trades_toggle','careful_spell_toggle','distant_spell_toggle','empowered_spell_toggle','extended_spell_toggle','heightened_spell_toggle','quickened_spell_toggle','subtle_spell_toggle','twinned_spell_toggle'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push(ability+'_mod');}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.CLASSES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var className=_step2.value;collectionArray.push(className+'_level');}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}(0,_utilities.getSetItems)('classFeatures.set',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){_this.extraAttack(v);_this.barbarian(v,finalSetAttrs);_this.bard(v,finalSetAttrs);_this.cleric(v);_this.druid(v);_this.fighter(v);_this.monk(v,finalSetAttrs);_this.paladin(v);_this.ranger(v);_this.rogue(v);_this.sorcerer(v);_this.warlock(v);_this.wizard(v);_this.metamagic(v);}});}}]);return ClassFeatures;}();
|
|
|
|
},{"./Traits":18,"./constants":20,"./utilities":23}],8:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Convert=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _Traits=require('./Traits');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var traits=new _Traits.Traits();var Convert=exports.Convert=function(){function Convert(){_classCallCheck(this,Convert);}_createClass(Convert,[{key:'parseSpellcastingAbility',value:function parseSpellcastingAbility(v,finalSetAttrs){if(v.spellcasting_ability){finalSetAttrs.default_ability=v.spellcasting_ability.replace('@','').replace('{','').replace('_mod','').replace('}','').replace('+','');}}},{key:'parseSizeTypeAlignment',value:function parseSizeTypeAlignment(v,finalSetAttrs){var type=v.npc_type;var match=type.match(/(.*?) (.*?), (.*)/i);if(!type||!type[1]||!type[2]||!type[3]){console.error('Character doesn\'t have valid type/size/alignment format');}finalSetAttrs.size=(0,_utilities.capitalize)(match[1]);finalSetAttrs.type=match[2];finalSetAttrs.alignment=match[3];}},{key:'parseHD',value:function parseHD(v,finalSetAttrs){finalSetAttrs.hp_srd=v.hp_max+' ('+v.npc_hpformula+')';}},{key:'parseSavingThrows',value:function parseSavingThrows(v,finalSetAttrs){var savingThrows=[];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;var saveValue=v['npc_'+(0,_utilities.getAbilityShortName)(ability)+'_save'];if(saveValue){savingThrows.push((0,_utilities.getAbilityShortName)(ability,true)+' +'+saveValue);}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}if(savingThrows.length>0){finalSetAttrs.saving_throws_srd=savingThrows.join(', ');}}},{key:'parseNPCSkills',value:function parseNPCSkills(v,finalSetAttrs){var skills=[];for(var skill in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(skill)){var skillValue=v['npc_'+skill.toLowerCase()];if(skillValue){skills.push((0,_utilities.capitalize)(skill.toLowerCase())+' +'+skillValue);}}}if(skills.length>1){finalSetAttrs.skills_srd=skills.join(', ');}}},{key:'convertJackOfAllTrades',value:function convertJackOfAllTrades(v,finalSetAttrs){if(v.jack_of_all_trades==='(floor(@{pb}/2))'){finalSetAttrs.jack_of_all_trades_toggle='@{jack_of_all_trades}';}}},{key:'convertProficienciesAndLanguages',value:function convertProficienciesAndLanguages(v,finalSetAttrs){if(v.other_proficiencies_and_languages){var proficieniesMatch=v.other_proficiencies_and_languages.match(/Proficiencies. (.*)/i);if(proficieniesMatch&&proficieniesMatch[1]){finalSetAttrs.proficiencies=proficieniesMatch[1];}var languagesMatch=v.other_proficiencies_and_languages.match(/Languages. (.*)/i);if(languagesMatch&&languagesMatch[1]){finalSetAttrs.languages=languagesMatch[1];}}}},{key:'convertClass',value:function convertClass(){(0,_utilities.getSetRepeatingItems)('convert.convertClass',{repeatingItems:['repeating_class'],collectionArray:['class','base_level','multiclass1_flag'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){if(v.class){var repeatingString=repeatingItem+'_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=v.class.toLowerCase();finalSetAttrs[repeatingString+'level']=(0,_utilities.getIntValue)(v.base_level);for(var i=1;i<=3;i++){if(v['multiclass'+i+'_flag']){repeatingString=repeatingItem+'_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=v['multiclass'+i].toLowerCase();finalSetAttrs[repeatingString+'level']=(0,_utilities.getIntValue)(v['multiclass'+i+'_lvl']);}}}}});}},{key:'convertPCSkills',value:function convertPCSkills(){var collectionArray=[];for(var skill in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(skill)){collectionArray.push(skill.toLowerCase()+'_prof');collectionArray.push(skill.toLowerCase()+'_type');}}(0,_utilities.getSetRepeatingItems)('convert.convertPCSkills',{repeatingItems:['repeating_skill'],collectionArray:collectionArray,collectionArrayAddItems:['proficiency'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){for(var _skill in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(_skill)){var skillId=(0,_utilities.getSkillIdByStorageName)(v,repeatingItem,ids,_skill);var repeatingString=repeatingItem+'_'+skillId+'_';if(v[_skill.toLowerCase()+'_type']==='2'){finalSetAttrs[repeatingString+'proficiency']='expertise';}else if(v[_skill.toLowerCase()+'_prof']){finalSetAttrs[repeatingString+'proficiency']='proficient';}}}}});}},{key:'convertTraits',value:function convertTraits(){(0,_utilities.getSetRepeatingItems)('convert.convertTraits',{repeatingItems:['repeating_npctrait'],collectionArrayAddItems:['name','desc'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=ids[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var id=_step2.value;var repeatingString=repeatingItem+'_'+id+'_';traits.set({freetext:v[repeatingString+'desc'],name:v[repeatingString+'name'].replace('.','')});}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}}});}},{key:'convertActions',value:function convertActions(oldRepeatingName,repeatingName){(0,_utilities.getSetRepeatingItems)('convert.convertActions',{repeatingItems:['repeating_'+oldRepeatingName],collectionArrayAddItems:['name','attack_type_display','attack_tohitrange','attack_tohit','attack_onhit','description'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingStringOld=repeatingItem+'_'+id+'_';var repeatingString='repeating_'+repeatingName+'_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=v[repeatingStringOld+'name'];if(v[repeatingStringOld+'attack_type_display']){finalSetAttrs[repeatingString+'freetext']=v[repeatingStringOld+'attack_type_display']+' '+v[repeatingStringOld+'attack_tohitrange']+' Hit: ';if(v[repeatingStringOld+'attack_onhit']){finalSetAttrs[repeatingString+'freetext']+=''+v[repeatingStringOld+'attack_onhit'];if(v[repeatingStringOld+'description']){finalSetAttrs[repeatingString+'freetext']+=' '+v[repeatingStringOld+'description'];}finalSetAttrs[repeatingString+'freetext']+='\n';}else{if(v[repeatingStringOld+'description']){finalSetAttrs[repeatingString+'freetext']+=''+v[repeatingStringOld+'description'];}}}else{finalSetAttrs[repeatingString+'freetext']=v[repeatingStringOld+'description'];}finalSetAttrs[repeatingString+'freetext']=finalSetAttrs[repeatingString+'freetext'].replace(/Attack:\s?\+(\d+)/i,'Attack: +$1 to hit');}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'convertNPCSpells',value:function convertNPCSpells(){(0,_utilities.getSetRepeatingItems)('convert.convertNPCSpells',{repeatingItems:['repeating_spell-npc'],collectionArrayAddItems:['spellname_base','spellprepared','spellritual','spellschool','spellcastingtime','spellrange','spelltarget','spellcomp_v','spellcomp_s','spellcomp_m','spellcomp_materials','spellconcentration','spellduration','spelldescription','spellathigherlevels','spelloutput','spelldamage','spelldamagetype','spelldamage2','spelldamagetype2','spellhealing','spellsave','spellsavesuccess','spellhldie'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=ids[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var id=_step4.value;var repeatingStringOld=repeatingItem+'_'+id+'_';var repeatingString='repeating_spell_'+generateRowID()+'_';var nameLevelMatch=v[repeatingStringOld+'spellname_base'].match(/(.*) \((.*)\)/i);if(nameLevelMatch&&nameLevelMatch[1]){finalSetAttrs[repeatingString+'name']=nameLevelMatch[1];if(nameLevelMatch[2]&&nameLevelMatch[2]==='Cantrip'){finalSetAttrs[repeatingString+'level']=(0,_utilities.ordinalSpellLevel)(0);}else if(nameLevelMatch[2]){finalSetAttrs[repeatingString+'spell_level']=(0,_utilities.ordinalSpellLevel)((0,_utilities.getIntValue)(nameLevelMatch[2].replace('Level ','')));}}if(!v[repeatingStringOld+'spellprepared']||v[repeatingStringOld+'spellprepared']==='1'){finalSetAttrs[repeatingString+'is_prepared']='on';}if(v[repeatingStringOld+'spellritual']){finalSetAttrs[repeatingString+'ritual']='Yes';}finalSetAttrs[repeatingString+'school']=v[repeatingStringOld+'spellschool'].toUpperCase();finalSetAttrs[repeatingString+'casting_time']=v[repeatingStringOld+'spellcastingtime'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'range']=v[repeatingStringOld+'spellrange'];finalSetAttrs[repeatingString+'target']=v[repeatingStringOld+'spelltarget'];var components=[];if(v[repeatingStringOld+'spellcomp_v']==='{{v=1}}'){components.push('V');}if(v[repeatingStringOld+'spellcomp_s']==='{{s=1}}'){components.push('S');}if(v[repeatingStringOld+'spellcomp_m']==='{{m=1}}'){components.push('M');}if(components.length>0){finalSetAttrs[repeatingString+'components']='COMPONENTS_'+components.join('_');}finalSetAttrs[repeatingString+'materials']=v[repeatingStringOld+'spellcomp_materials'];if(v[repeatingStringOld+'spellduration']){var duration='';if(v[repeatingStringOld+'spellconcentration']){duration+='CONCENTRATION_';}duration+=v[repeatingStringOld+'spellduration'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'duration']=duration;}if(v[repeatingStringOld+'spelloutput']==='ATTACK'){finalSetAttrs[repeatingString+'roll_toggle']=_constants.TOGGLE_VARS.roll;}if(v[repeatingStringOld+'spelldamage']){finalSetAttrs[repeatingString+'damage_toggle']=_constants.TOGGLE_VARS.damage;finalSetAttrs[repeatingString+'damage']=v[repeatingStringOld+'spelldamage'];}if(v[repeatingStringOld+'spelldamagetype']){finalSetAttrs[repeatingString+'damage_type']=v[repeatingStringOld+'spelldamagetype'];}if(v[repeatingStringOld+'spelldamage2']){finalSetAttrs[repeatingString+'second_damage']=v[repeatingStringOld+'spelldamage2'];}if(v[repeatingStringOld+'spelldamagetype2']){finalSetAttrs[repeatingString+'second_damage_type']=v[repeatingStringOld+'spelldamagetype2'];}if(v[repeatingStringOld+'spellhealing']){finalSetAttrs[repeatingString+'heal']=v[repeatingStringOld+'spellhealing'];}if(v[repeatingStringOld+'spellsave']){finalSetAttrs[repeatingString+'saving_throw_vs_ability']=v[repeatingStringOld+'spellsave'].toUpperCase();}if(v[repeatingStringOld+'spellsavesuccess']){finalSetAttrs[repeatingString+'saving_throw_success']=v[repeatingStringOld+'spellsavesuccess'];}if(v[repeatingStringOld+'spellhldie']){finalSetAttrs[repeatingString+'higher_level_dice']=v[repeatingStringOld+'spellhldie'];}if(v[repeatingStringOld+'spellhldietype']){finalSetAttrs[repeatingString+'higher_level_die']=v[repeatingStringOld+'spellhldietype'];}finalSetAttrs[repeatingString+'content']=v[repeatingStringOld+'spelldescription']+'\nAt Higher Levels: '+v[repeatingStringOld+'spellathigherlevels'];finalSetAttrs[repeatingString+'toggle_details']='0';}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}});}},{key:'convertFromOGL',value:function convertFromOGL(){var _this=this;var oldToNew={npc:'is_npc',npc_ac:'AC',npc_actype:'ac_note',npc_challenge:'challenge',npc_name:'character_name',npc_vulnerabilities:'damage_vulnerabilities',npc_resistances:'damage_resistances',npc_immunities:'damage_immunities',npc_condition_immunities:'condition_immunities',npc_senses:'senses',npc_languages:'languages',hp_temp:'temp_HP',experience:'xp',npc_legendary_actions:'legendary_action_amount'};var collectionArray=['npc_type','hp_max','npc_hpformula','jack_of_all_trades','other_proficiencies_and_languages','spellcasting_ability'];var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=_constants.ABILITIES[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var ability=_step5.value;collectionArray.push('npc_'+(0,_utilities.getAbilityShortName)(ability).toLowerCase()+'_save');}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}for(var skill in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(skill)){collectionArray.push('npc_'+skill.toLowerCase());}}for(var key in oldToNew){if(oldToNew.hasOwnProperty(key)){collectionArray.push(key);}}(0,_utilities.getSetItems)('convert.convertFromOGL',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){finalSetAttrs.tab='core';for(var _key in oldToNew){if(oldToNew.hasOwnProperty(_key)){if(v[_key]){finalSetAttrs[oldToNew[_key]]=v[_key];}}}_this.parseSpellcastingAbility(v,finalSetAttrs);_this.parseSizeTypeAlignment(v,finalSetAttrs);_this.parseHD(v,finalSetAttrs);_this.parseSavingThrows(v,finalSetAttrs);_this.parseNPCSkills(v,finalSetAttrs);_this.convertJackOfAllTrades(v,finalSetAttrs);_this.convertProficienciesAndLanguages(v,finalSetAttrs);}});this.convertPCSkills();this.convertTraits();this.convertActions('npcaction','action');this.convertActions('npcaction-l','legendaryaction');this.convertActions('npcreaction','reaction');this.convertClass();this.convertNPCSpells();}}]);return Convert;}();
|
|
|
|
},{"./Traits":18,"./constants":20,"./utilities":23}],9:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Equipment=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Equipment=exports.Equipment=function(){function Equipment(){_classCallCheck(this,Equipment);}_createClass(Equipment,[{key:'setAdvantageOnStealth',value:function setAdvantageOnStealth(mode){(0,_utilities.getSetRepeatingItems)('equipment.setAdvantageOnStealth',{repeatingItems:['repeating_skill'],collectionArrayAddItems:['storage_name','skill_d20'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){for(var prop in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(prop)){var skillId=(0,_utilities.getSkillIdByStorageName)(v,repeatingItem,ids,prop);var repeatingString=repeatingItem+'_'+skillId+'_';if(v[repeatingString+'storage_name']==='STEALTH'){if(mode==='dis'){finalSetAttrs[repeatingString+'skill_d20']='2d20@{d20_mod}kl1';}else if(mode==='normal'){finalSetAttrs[repeatingString+'skill_d20']='@{shaped_d20}';}}}}}});}},{key:'updateArmor',value:function updateArmor(rowId){var _this=this;var stealthPenalty=void 0;(0,_utilities.getSetRepeatingItems)('equipment.updateArmor',{repeatingItems:['repeating_armor'],collectionArrayAddItems:['parsed','modifiers','stealth'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=ids[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var id=_step.value;var repeatingString=repeatingItem+'_'+id+'_';if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'parsed'])||v[repeatingString+'parsed'].indexOf('acBonus')===-1){var armorModifiers=v[repeatingString+'modifiers'];if((0,_utilities.exists)(armorModifiers)){finalSetAttrs[repeatingString+'ac_bonus']=armorModifiers.replace(/^\D+/g,'');}if((0,_utilities.isUndefinedOrEmpty)(finalSetAttrs[repeatingString+'parsed'])){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' acBonus';}if(v[repeatingString+'stealth']==='Disadvantage'){stealthPenalty=true;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}if(stealthPenalty){_this.setAdvantageOnStealth('dis');}else{_this.setAdvantageOnStealth('normal');}}});var options={collection:'armor',getExtraFields:['medium_armor_max_dex','dexterity_mod','ac_unarmored_ability','is_npc'],toggle:'worn'};var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.ABILITIES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var ability=_step2.value;options.getExtraFields.push(ability+'_mod');}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var sumItems=[{fieldToAdd:'weight',totalField:'weight_armor'},{fieldToAdd:'ac_base',bonus:'ac_bonus',armorType:'type',itemTotal:'ac_total',totalField:'ac_armored_calc',totalFieldSecondary:'ac_unarmored_calc'}];(0,_utilities.sumRepeating)(options,sumItems);}},{key:'update',value:function update(rowId){(0,_utilities.getSetRepeatingItems)('equipment.update',{repeatingItems:['repeating_equipment'],collectionArrayAddItems:['content'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'parsed'])||v[repeatingString+'parsed'].indexOf('content')===-1){var content=v[repeatingString+'content'];if((0,_utilities.exists)(content)){content=content.replace(/\s(\d+d\d+\s(?:\+|\-)\s\d+)\s/g,' [[$1]] ').replace(/\s(\d+d\d+)\s/g,' [[$1]] ').replace(/\s(\d+)\s/g,' [[$1]] ');finalSetAttrs[repeatingString+'content']=content;if((0,_utilities.isUndefinedOrEmpty)(finalSetAttrs[repeatingString+'parsed'])){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' content';}}}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'weigh',value:function weigh(){var options={collection:'equipment',toggle:'carried',qty:'qty'};var sumItems=[{fieldToAdd:'weight',itemTotal:'weight_total',totalField:'weight_equipment'}];(0,_utilities.sumRepeating)(options,sumItems);}},{key:'updateWeight',value:function updateWeight(){(0,_utilities.getSetItems)('equipment.updateWeight',{collectionArray:['weight_attacks','weight_ammo','weight_armor','weight_equipment','weight_coinage'],callback:function callback(v,finalSetAttrs){finalSetAttrs.weight_total=(0,_utilities.round)((0,_utilities.getFloatValue)(v.weight_attacks)+(0,_utilities.getFloatValue)(v.weight_ammo)+(0,_utilities.getFloatValue)(v.weight_armor)+(0,_utilities.getFloatValue)(v.weight_equipment)+(0,_utilities.getFloatValue)(v.weight_coinage),2);}});}},{key:'weighAmmo',value:function weighAmmo(){var options={collection:'ammo',qty:'qty'};var sumItems=[{fieldToAdd:'weight',totalField:'weight_ammo'}];(0,_utilities.sumRepeating)(options,sumItems);}},{key:'calculateGold',value:function calculateGold(){(0,_utilities.getSetItems)('equipment.calculateGold',{collectionArray:['cp','copper_per_gold','sp','silver_per_gold','ep','electrum_per_gold','gp','pp','platinum_per_gold'],callback:function callback(v,finalSetAttrs){var copperPieces=(0,_utilities.getFloatValue)(v.cp);var silverPieces=(0,_utilities.getFloatValue)(v.sp);var electrumPieces=(0,_utilities.getFloatValue)(v.ep);var goldPieces=(0,_utilities.getFloatValue)(v.gp);var platinumPieces=(0,_utilities.getFloatValue)(v.pp);var copperPerGold=(0,_utilities.getFloatValue)(v.copper_per_gold,100);var silverPerGold=(0,_utilities.getFloatValue)(v.silver_per_gold,10);var electrumPerGold=(0,_utilities.getFloatValue)(v.electrum_per_gold,2);var platinumPerGold=(0,_utilities.getFloatValue)(v.platinum_per_gold,10);finalSetAttrs.total_gp=(copperPieces/copperPerGold+silverPieces/silverPerGold+electrumPieces/electrumPerGold+goldPieces+platinumPieces*platinumPerGold).toFixed(2);finalSetAttrs.weight_coinage=(copperPieces+silverPieces+electrumPieces+goldPieces+platinumPieces)/50;}});}},{key:'setup',value:function setup(){var _this2=this;on('change:repeating_armor',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_armor',eventInfo);if(repeatingInfo&&repeatingInfo.field!=='ac_total'){_this2.updateArmor(repeatingInfo.rowId);}});on('change:dexterity_mod change:medium_armor_max_dex change:ac_unarmored_ability remove:repeating_armor',function(){_this2.updateArmor();});on('change:repeating_equipment',function(eventInfo){_this2.update((0,_utilities.getRepeatingInfo)('repeating_equipment',eventInfo).rowId);});on('change:repeating_equipment:carried change:repeating_equipment:qty change:repeating_equipment:weight remove:repeating_equipment',function(){_this2.weigh();});on('change:repeating_ammo:weight change:repeating_ammo:qty',function(){_this2.weighAmmo();});on('change:weight_attacks change:weight_ammo change:weight_armor change:weight_equipment change:weight_coinage',function(){_this2.updateWeight();});on('change:cp change:copper_per_gold change:sp change:silver_per_gold change:ep change:electrum_per_gold change:gp change:pp change:platinum_per_gold',function(){_this2.calculateGold();});}}]);return Equipment;}();
|
|
|
|
},{"./constants":20,"./utilities":23}],10:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.ImportData=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _Initialize=require('./Initialize');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var initialize=new _Initialize.Initialize();var ImportData=exports.ImportData=function(){function ImportData(){_classCallCheck(this,ImportData);}_createClass(ImportData,[{key:'import',value:function _import(){(0,_utilities.getSetItems)('importData.import',{collectionArray:['import_data','version'],callback:function callback(v,finalSetAttrs){if(v.import_data){var importObject=JSON.parse(v.import_data);if(importObject.npc){if(!v.version){initialize.sheetOpened();}for(var prop in importObject.npc){if(importObject.npc.hasOwnProperty(prop)){finalSetAttrs[prop]=importObject.npc[prop];}}}if(importObject.spells){importObject.spells.forEach(function(spell){var repeatingString='repeating_spell_'+generateRowID()+'_';for(var _prop in spell){if(spell.hasOwnProperty(_prop)){finalSetAttrs[''+repeatingString+_prop]=spell[_prop];}}});}finalSetAttrs.import_data='';finalSetAttrs.import_data_present='off';}}});}},{key:'delete',value:function _delete(){(0,_utilities.getSetItems)('importData.delete',{collectionArray:['import_data','version'],callback:function callback(v,finalSetAttrs){var importObject=JSON.parse(v.import_data);if(importObject.npc&&!v.version){initialize.sheetOpened();}finalSetAttrs.import_data='';finalSetAttrs.import_data_present='off';}});}},{key:'setup',value:function setup(){var _this=this;on('change:accept_import',function(){_this.import();});on('change:reject_import',function(){_this.delete();});}}]);return ImportData;}();
|
|
|
|
},{"./Initialize":11,"./utilities":23}],11:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Initialize=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _Abilities=require('./Abilities');var _AbilityChecks=require('./AbilityChecks');var _Character=require('./Character');var _constants=require('./constants');var _Convert=require('./Convert');var _Equipment=require('./Equipment');var _ProficiencyBonus=require('./ProficiencyBonus');var _SavingThrows=require('./SavingThrows');var _Spells=require('./Spells');var _Upgrade=require('./Upgrade');var _utilities=require('./utilities');var _version=require('./version');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var abilities=new _Abilities.Abilities();var abilityChecks=new _AbilityChecks.AbilityChecks();var character=new _Character.Character();var convert=new _Convert.Convert();var equipment=new _Equipment.Equipment();var proficiencyBonus=new _ProficiencyBonus.ProficiencyBonus();var savingThrows=new _SavingThrows.SavingThrows();var spells=new _Spells.Spells();var upgrade=new _Upgrade.Upgrade();var Initialize=exports.Initialize=function(){function Initialize(){_classCallCheck(this,Initialize);}_createClass(Initialize,[{key:'generateSkills',value:function generateSkills(){(0,_utilities.getSetRepeatingItems)('initialize.generateSkills',{repeatingItems:['repeating_skill'],collectionArrayAddItems:['storage_name','name','ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){for(var prop in _constants.SKILLS){if(_constants.SKILLS.hasOwnProperty(prop)){var skillId=(0,_utilities.getSkillIdByStorageName)(v,repeatingItem,ids,prop);if(!skillId){skillId=generateRowID();}var repeatingString=repeatingItem+'_'+skillId+'_';finalSetAttrs[repeatingString+'storage_name']=prop;finalSetAttrs[repeatingString+'name']=getTranslationByKey(prop);finalSetAttrs[repeatingString+'ability']=_constants.SKILLS[prop];abilityChecks.updateSkill(skillId);}}},setFinalAttrsCallback:function setFinalAttrsCallback(){abilityChecks.updateMacro();}});}},{key:'sheetOpened',value:function sheetOpened(){var _this=this;console.log('initialize.sheetOpened');var collectionArray=['version','npc','base_level','convertedFromOGL','import_data','roll_setting'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push(ability);}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}(0,_utilities.getSetItems)('initialize.sheetOpened',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var convertOGL=(v.npc||v.base_level)&&!v.convertedFromOGL;if(!v.version||convertOGL){if(!v.import_data&&!convertOGL){finalSetAttrs.edit_mode='on';}if((0,_utilities.isUndefinedOrEmpty)(v.roll_setting)){finalSetAttrs.roll_setting='{{ignore=[[0';}var setAbilities={};var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.ABILITIES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var ability=_step2.value;if((0,_utilities.isUndefinedOrEmpty)(v[ability])){setAbilities[ability]=10;}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}(0,_utilities.setFinalAttrs)(v,setAbilities,'initialize',function(){proficiencyBonus.update();_this.generateSkills();savingThrows.update();character.updateLevels();abilityChecks.updateInitiative();equipment.updateArmor();spells.updateShowHide();abilities.updateModifiers();});if(convertOGL){proficiencyBonus.update();_this.generateSkills();savingThrows.update();abilities.updateModifiers();convert.convertFromOGL();}}else{upgrade.upgrade();}if((0,_utilities.isUndefinedOrEmpty)(v.version)||!v.version||v.version!==_version.currentVersion){finalSetAttrs.version=_version.currentVersion;}if((0,_utilities.isUndefinedOrEmpty)(v.convertedFromOGL)||!v.convertedFromOGL){finalSetAttrs.convertedFromOGL=true;}}});}},{key:'setup',value:function setup(){var _this2=this;on('change:generate_skills',function(){_this2.generateSkills();});on('sheet:opened',function(){_this2.sheetOpened();});}}]);return Initialize;}();
|
|
|
|
},{"./Abilities":1,"./AbilityChecks":2,"./Character":6,"./Convert":8,"./Equipment":9,"./ProficiencyBonus":13,"./SavingThrows":15,"./Spells":17,"./Upgrade":19,"./constants":20,"./utilities":23,"./version":24}],12:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Npc=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Npc=exports.Npc=function(){function Npc(){_classCallCheck(this,Npc);}_createClass(Npc,[{key:'updateType',value:function updateType(){(0,_utilities.getSetItems)('npc.updateType',{collectionArray:['type'],callback:function callback(v,finalSetAttrs){if(v.type){finalSetAttrs.type=v.type.toLowerCase();}}});}},{key:'updateSize',value:function updateSize(){(0,_utilities.getSetItems)('npc.updateSize',{collectionArray:['size'],callback:function callback(v,finalSetAttrs){var creatureSize=v.size||'Large';var sizeToHdSize={Tiny:4,Small:6,Medium:8,Large:10,Huge:12,Gargantuan:20};finalSetAttrs.hit_die='d'+sizeToHdSize[creatureSize];}});}},{key:'updateAC',value:function updateAC(){(0,_utilities.getSetItems)('npc.updateAC',{collectionArray:['ac_srd','ac','ac_note','dexterity_mod'],callback:function callback(v,finalSetAttrs){if((0,_utilities.exists)(v.ac_srd)){var match=v.ac_srd.match(/(\d+)\s?(.*)/);if(match&&match[1]){finalSetAttrs.AC=match[1];}if(match&&match[2]){finalSetAttrs.ac_note=match[2].replace(/\(|\)/g,'');}}}});}},{key:'switchTo',value:function switchTo(){(0,_utilities.getSetItems)('npc.switchTo',{collectionArray:['is_npc','size'],callback:function callback(v,finalSetAttrs){var isNPC=(0,_utilities.getIntValue)(v.is_npc)===1;if(isNPC&&(0,_utilities.isUndefinedOrEmpty)(v.size)){finalSetAttrs.size='Large';}if(isNPC){finalSetAttrs.hit_dice_output_option='/w GM';}else{finalSetAttrs.hit_dice_output_option='';}}});}},{key:'updateChallenge',value:function updateChallenge(){var xpPerChallenge={0:0,'1/8':25,'1/4':50,'1/2':100,1:200,2:450,3:700,4:1100,5:1800,6:2300,7:2900,8:3900,9:5000,10:5900,11:7200,12:8400,13:10000,14:11500,15:13000,16:15000,17:18000,18:20000,19:22000,20:25000,21:33000,22:41000,23:50000,24:62000,25:75000,26:90000,27:105000,28:120000,29:135000,30:155000};(0,_utilities.getSetItems)('npc.updateChallenge',{collectionArray:['challenge','xp'],callback:function callback(v,finalSetAttrs){var challenge=v.challenge;finalSetAttrs.xp=xpPerChallenge[challenge];finalSetAttrs.xp_readable=(0,_utilities.numberWithCommas)(finalSetAttrs.xp);finalSetAttrs.level=challenge;if(finalSetAttrs.level<1){finalSetAttrs.level=1;}}});}},{key:'updateHPFromSRD',value:function updateHPFromSRD(){(0,_utilities.getSetItems)('npc.updateHPFromSRD',{collectionArray:['hp_srd','constitution','constitution_mod','constitution_bonus','global_ability_bonus'],callback:function callback(v,finalSetAttrs){if((0,_utilities.exists)(v.hp_srd)){var match=v.hp_srd.match(/\((\d+)d(\d+)(?:\s?(\+|\-)\s?(\d+))?\)/i);if(!match||!match[1]||!match[2]){console.warn('Character doesn\'t have valid HP/HD format');}else{var hdNum=(0,_utilities.getIntValue)(match[1]);var conMod=(0,_utilities.getIntValue)(v.constitution_mod);if(!conMod){var conScore=(0,_utilities.getIntValue)(v.constitution);var conBonus=(0,_utilities.getIntValue)(v.constitution_bonus);var globalAbilityBonus=(0,_utilities.getIntValue)(v.global_ability_bonus);conMod=(0,_utilities.getAbilityMod)(conScore+conBonus+globalAbilityBonus);}finalSetAttrs.hit_dice=hdNum;finalSetAttrs.hit_die='d'+(0,_utilities.getIntValue)(match[2]);var hpExpectedBonus=hdNum*conMod;var hpBonusSign=match[3];var hpBonus=(0,_utilities.getIntValue)(match[4]);if(hpBonus!==hpExpectedBonus){if(hpBonusSign==='-'){finalSetAttrs.hp_extra=hpBonus+hpExpectedBonus;}else{finalSetAttrs.hp_extra=hpBonus-hpExpectedBonus;}}}}}});}},{key:'updateHP',value:function updateHP(){(0,_utilities.getSetItems)('npc.updateHP',{collectionArray:['HP','HP_max','hp_formula','hit_dice','hit_die','hp_extra','constitution_mod'],callback:function callback(v,finalSetAttrs){var hdNum=(0,_utilities.getIntValue)(v.hit_dice);var hdSize=(0,_utilities.getIntValue)(v.hit_die.replace('d',''));var hdAverage=hdSize/2+0.5;var hpFormula=hdNum+'d'+hdSize;var conMod=(0,_utilities.getIntValue)(v.constitution_mod);var totalHP=Math.floor(hdNum*hdAverage);var amount=void 0;if(conMod!==0){var bonusHP=hdNum*conMod;totalHP+=bonusHP;hpFormula+=(0,_utilities.addArithmeticOperator)(hpFormula,bonusHP);}if((0,_utilities.exists)(v.hp_extra)){var regex=/(?:(\+|\-)\s?)?(\d+)(?:d(\d+))?/gi;var splitFormula=void 0;while((splitFormula=regex.exec(v.hp_extra))!==null){if(!splitFormula||!splitFormula[2]){console.warn('Character doesn\'t have valid hp formula');}else{amount=0;if(!splitFormula[3]){amount=(0,_utilities.getIntValue)(splitFormula[2]);}else{var extraHdNum=(0,_utilities.getIntValue)(splitFormula[2]);var extraHdSize=(0,_utilities.getIntValue)(splitFormula[3]);var extraHdAverage=extraHdSize/2+0.5;amount=Math.floor(extraHdNum*extraHdAverage);}if(!splitFormula[1]||splitFormula[1]==='+'){totalHP+=amount;hpFormula+=' + '+amount;}else if(splitFormula[1]==='-'){totalHP-=amount;hpFormula+=' - '+amount;}}v.hp_extra.toString().replace(splitFormula[0],'');}}if(totalHP){finalSetAttrs.HP=totalHP;finalSetAttrs.HP_max=totalHP;finalSetAttrs.hp_formula=hpFormula;}}});}},{key:'updateHD',value:function updateHD(){var hd={d20:0,d12:0,d10:0,d8:0,d6:0,d4:0,d2:0,d0:0};var collectionArray=['hit_dice','hit_die'];for(var key in hd){if(hd.hasOwnProperty(key)){collectionArray.push('hd_'+key);collectionArray.push('hd_'+key+'_max');collectionArray.push('hd_'+key+'_query');collectionArray.push('hd_'+key+'_toggle');}}(0,_utilities.getSetItems)('npc.updateHD',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var hdNum=(0,_utilities.getIntValue)(v.hit_dice);var hdSize=v.hit_die;if(hdNum&&hdSize){hd[hdSize]=hdNum;(0,_utilities.updateHD)(v,finalSetAttrs,hd);}}});}},{key:'parseSRDContentSection',value:function parseSRDContentSection(content,finalSetAttrs,title,name){var re=/@(.*)@:\s([^@]+)/gi;var match=void 0;var section=void 0;if(content.indexOf(title)!==-1){var contentSplit=content.split(title+'\n');section=contentSplit[1];content=contentSplit[0];}if((0,_utilities.exists)(section)){if(name==='legendaryaction'){var legendaryActionsMatch=section.match(/Can take (\d+) Legendary Actions/i);if(legendaryActionsMatch&&legendaryActionsMatch[1]){finalSetAttrs.legendary_action_amount=legendaryActionsMatch[1];}}while((match=re.exec(section.replace(/\*\*/g,'@')))!==null){if(match&&match[1]&&match[2]){var repeatingString='repeating_'+name+'_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=match[1];var text=match[2].trim();if(name==='trait'){finalSetAttrs[repeatingString+'display_text']=text;}finalSetAttrs[repeatingString+'freetext']=text;}else{console.warn('Character doesn\'t have a valid '+name+' format');}}}return content;}},{key:'setDefaultAbility',value:function setDefaultAbility(v,finalSetAttrs){var abilityScores=[(0,_utilities.getIntValue)(v.intelligence),(0,_utilities.getIntValue)(v.wisdom),(0,_utilities.getIntValue)(v.charisma)];var highestAbilityScore=Math.max.apply(Math,abilityScores);var highestAbilityName='intelligence';if(highestAbilityScore===abilityScores[1]){highestAbilityName='wisdom';}else if(highestAbilityScore===abilityScores[2]){highestAbilityName='charisma';}finalSetAttrs.default_ability=highestAbilityName;}},{key:'updateContent',value:function updateContent(){var _this=this;var collectionArray=['content_srd'];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;collectionArray.push(ability);}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}(0,_utilities.getSetItems)('npc.updateContent',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var content=v.content_srd;var regionalEffects=void 0;var lairActions=void 0;var repeatingString=void 0;_this.setDefaultAbility(v,finalSetAttrs);if((0,_utilities.exists)(content)){if(content.indexOf('Regional Effects')!==-1){var regionalEffectsSplit=content.split(/Regional Effects\n/);regionalEffects=regionalEffectsSplit[1];content=regionalEffectsSplit[0];}if((0,_utilities.exists)(regionalEffects)){var regionalEffectsList=regionalEffects.split(/\*\*/);regionalEffectsList.slice(1,-1).forEach(function(regionalEffect){repeatingString='repeating_regionaleffect_'+generateRowID()+'_';finalSetAttrs[repeatingString+'freetext']=regionalEffect.trim();});}if(content.indexOf('Lair Actions')!==-1){var lairActionsSplit=content.split(/Lair Actions\n/);lairActions=lairActionsSplit[1];content=lairActionsSplit[0];}if((0,_utilities.exists)(lairActions)){lairActions.split(/\*\*/).slice(1).forEach(function(lairAction){repeatingString='repeating_lairaction_'+generateRowID()+'_';finalSetAttrs[repeatingString+'freetext']=lairAction.trim();});}content=_this.parseSRDContentSection(content,finalSetAttrs,'Legendary Actions','legendaryaction');content=_this.parseSRDContentSection(content,finalSetAttrs,'Reactions','reaction');content=_this.parseSRDContentSection(content,finalSetAttrs,'Actions','action');_this.parseSRDContentSection(content,finalSetAttrs,'Traits','trait');}}});}},{key:'updateSenses',value:function updateSenses(){(0,_utilities.getSetItems)('npc.updateSenses',{collectionArray:['senses'],callback:function callback(v,finalSetAttrs){if(v.senses){finalSetAttrs.senses_exist=1;finalSetAttrs.senses=v.senses.toLowerCase();}else{finalSetAttrs.senses_exist=0;}}});}},{key:'updateLanguages',value:function updateLanguages(){(0,_utilities.getSetItems)('npc.updateLanguages',{collectionArray:['languages','languages_exist','languages_chat_var'],callback:function callback(v,finalSetAttrs){finalSetAttrs.languages_exist=0;finalSetAttrs.languages_chat_var='';if(v.languages){finalSetAttrs.languages_exist=1;finalSetAttrs.languages_chat_var='{{Languages=@{languages}}}';}}});}},{key:'updateSpeed',value:function updateSpeed(){(0,_utilities.getSetItems)('npc.updateSpeed',{collectionArray:['npc_speed'],callback:function callback(v,finalSetAttrs){finalSetAttrs.npc_speed=v.npc_speed.toLowerCase();var match=finalSetAttrs.npc_speed.match(/^\s*(\d+)\s*ft/);if(match&&match[1]){finalSetAttrs.speed=match[1];}}});}},{key:'updateACNote',value:function updateACNote(){(0,_utilities.getSetItems)('npc.updateACNote',{collectionArray:['ac_note'],callback:function callback(v,finalSetAttrs){finalSetAttrs.ac_note=v.ac_note.toLowerCase();}});}},{key:'setup',value:function setup(){var _this2=this;on('change:type',function(){_this2.updateType();});on('change:size',function(){_this2.updateSize();});on('change:ac_srd',function(){_this2.updateAC();});on('change:is_npc',function(){_this2.switchTo();});on('change:challenge',function(){_this2.updateChallenge();});on('change:hp_srd',function(){_this2.updateHPFromSRD();});on('change:hit_dice change:hit_die change:hp_extra change:constitution_mod',function(){_this2.updateHP();});on('change:hit_dice change:hit_die',function(){_this2.updateHD();});on('change:content_srd',function(){_this2.updateContent();});on('change:senses',function(){_this2.updateSenses();});on('change:languages',function(){_this2.updateLanguages();});on('change:npc_speed',function(){_this2.updateSpeed();});on('change:ac_note',function(){_this2.updateACNote();});}}]);return Npc;}();
|
|
|
|
},{"./constants":20,"./utilities":23}],13:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.ProficiencyBonus=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var ProficiencyBonus=exports.ProficiencyBonus=function(){function ProficiencyBonus(){_classCallCheck(this,ProficiencyBonus);}_createClass(ProficiencyBonus,[{key:'get',value:function get(level,challenge){var pb=2;level=(0,_utilities.getIntValue)(level);if(challenge==='1/8'||challenge==='1/4'||challenge==='1/2'){challenge=1;}else{(0,_utilities.getIntValue)(challenge);}var levelOrChallenge=Math.max(level,challenge);if((0,_utilities.exists)(levelOrChallenge)){pb+=Math.floor(Math.abs((levelOrChallenge-1)/4));}return pb;}},{key:'update',value:function update(){var _this=this;(0,_utilities.getSetItems)('proficiencyBonus.update',{collectionArray:['level','challenge','pb','exp','h_PB'],callback:function callback(v,finalSetAttrs){var pb=_this.get(v.level,v.challenge);finalSetAttrs.pb=pb;finalSetAttrs.exp=pb*2;finalSetAttrs.h_PB=pb/2;}});}},{key:'setup',value:function setup(){var _this2=this;on('change:level',function(){_this2.update();});}}]);return ProficiencyBonus;}();
|
|
|
|
},{"./utilities":23}],14:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Resistances=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Resistances=exports.Resistances=function(){function Resistances(){_classCallCheck(this,Resistances);}_createClass(Resistances,[{key:'updateDamageResistancesVar',value:function updateDamageResistancesVar(){(0,_utilities.getSetItems)('resistances.updateDamageResistancesVar',{collectionArray:['damage_resistances_var','damage_vulnerabilities_exist','damage_resistances_exist','damage_immunities_exist','condition_immunities_exist'],callback:function callback(v,finalSetAttrs){var resistancesVar=[];if(v.damage_vulnerabilities_exist){resistancesVar.push('{{Damage Vulnerabilities=@{damage_vulnerabilities}}}');}if(v.damage_resistances_exist){resistancesVar.push('{{Damage Resistances=@{damage_resistances}}}');}if(v.damage_immunities_exist){resistancesVar.push('{{Damage Immunities=@{damage_immunities}}}');}if(v.condition_immunities_exist){resistancesVar.push('{{Condition Immunities=@{condition_immunities}}}');}finalSetAttrs.damage_resistances_var=resistancesVar.join(' ');}});}},{key:'updateDamageVulnerabilities',value:function updateDamageVulnerabilities(){(0,_utilities.getSetItems)('resistances.updateDamageVulnerabilities',{collectionArray:['damage_vulnerabilities'],callback:function callback(v,finalSetAttrs){if(v.damage_vulnerabilities){finalSetAttrs.damage_vulnerabilities_exist=1;finalSetAttrs.damage_vulnerabilities=(0,_utilities.lowercaseDamageTypes)(v.damage_vulnerabilities);}else{finalSetAttrs.damage_vulnerabilities_exist=0;}}});}},{key:'updateDamageResistances',value:function updateDamageResistances(){(0,_utilities.getSetItems)('resistances.updateDamageResistances',{collectionArray:['damage_resistances'],callback:function callback(v,finalSetAttrs){if(v.damage_resistances){finalSetAttrs.damage_resistances_exist=1;finalSetAttrs.damage_resistances=(0,_utilities.lowercaseDamageTypes)(v.damage_resistances);}else{finalSetAttrs.damage_resistances_exist=0;}}});}},{key:'updateDamageImmunities',value:function updateDamageImmunities(){(0,_utilities.getSetItems)('resistances.updateDamageImmunities',{collectionArray:['damage_immunities'],callback:function callback(v,finalSetAttrs){if(v.damage_immunities){finalSetAttrs.damage_immunities_exist=1;finalSetAttrs.damage_immunities=(0,_utilities.lowercaseDamageTypes)(v.damage_immunities);}else{finalSetAttrs.damage_immunities_exist=0;}}});}},{key:'updateConditionImmunities',value:function updateConditionImmunities(){(0,_utilities.getSetItems)('resistances.updateConditionImmunities',{collectionArray:['condition_immunities'],callback:function callback(v,finalSetAttrs){if(v.condition_immunities){finalSetAttrs.condition_immunities_exist=1;finalSetAttrs.condition_immunities=(0,_utilities.lowercaseDamageTypes)(v.condition_immunities);}else{finalSetAttrs.condition_immunities_exist=0;}}});}},{key:'setup',value:function setup(){var _this=this;on('change:damage_vulnerabilities change:damage_resistances change:damage_immunities change:condition_immunities',function(){_this.updateDamageResistancesVar();});on('change:damage_vulnerabilities',function(){_this.updateDamageVulnerabilities();});on('change:damage_resistances',function(){_this.updateDamageResistances();});on('change:damage_immunities',function(){_this.updateDamageImmunities();});on('change:condition_immunities',function(){_this.updateConditionImmunities();});}}]);return Resistances;}();
|
|
|
|
},{"./utilities":23}],15:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.SavingThrows=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');var _constants=require('./constants');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var SavingThrows=exports.SavingThrows=function(){function SavingThrows(){_classCallCheck(this,SavingThrows);}_createClass(SavingThrows,[{key:'getHighestOfAbilityScoresForSavingThrow',value:function getHighestOfAbilityScoresForSavingThrow(v,savingThrowName){var abilityName=void 0;var highestValue=0;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=_constants.ABILITIES[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var ability=_step.value;var abilityMod=(0,_utilities.getIntValue)(v[ability+'_mod']);if(v[savingThrowName+'_'+ability]==='1'&&(highestValue===0||abilityMod>highestValue)){highestValue=abilityMod;abilityName=ability;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}return abilityName;}},{key:'findHighest',value:function findHighest(arr){var highestAbility=Math.max.apply(Math,arr.map(function(ability){return ability.score;}));return arr.find(function(ability){return ability.score===highestAbility;});}},{key:'getHighestAbilityScores',value:function getHighestAbilityScores(v,savingThrowName){var _this=this;var abilities=[];var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=_constants.ABILITIES[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var ability=_step2.value;if(v[savingThrowName+'_'+ability]==='1'){abilities.push({name:ability,score:(0,_utilities.getIntValue)(v[ability+'_calculated'])});}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}var highestAbilities=[];if(abilities.length>0){(function(){var highestAbilityObj=_this.findHighest(abilities);highestAbilities.push(highestAbilityObj);abilities.splice(abilities.findIndex(function(ability){return ability.name===highestAbilityObj.name;}),1);})();}if(abilities.length>0){var secondHighestAbilityObj=this.findHighest(abilities);highestAbilities.push(secondHighestAbilityObj);}return highestAbilities;}},{key:'getAverageOfHighestAbilityScoresForSavingThrow',value:function getAverageOfHighestAbilityScoresForSavingThrow(v,savingThrowName){var obj={abilitiesUsed:[]};var sum=0;var highestAbilities=this.getHighestAbilityScores(v,savingThrowName);var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=highestAbilities[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var ability=_step3.value;obj.abilitiesUsed.push((0,_utilities.getAbilityShortName)(ability.name));sum+=(0,_utilities.getAbilityMod)(v[ability.name+'_calculated']);}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}if(obj.abilitiesUsed.length>0){obj.avg=Math.floor(sum/obj.abilitiesUsed.length);}return obj;}},{key:'setCustomSaveProf',value:function setCustomSaveProf(v,finalSetAttrs,savingThrowName){var pbVar='@{PB}';var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=_constants.ABILITIES[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var ability=_step4.value;if(v[savingThrowName+'_'+ability]==='1'&&v[ability+'_save_prof']===pbVar&&!(0,_utilities.exists)(v[savingThrowName+'_save_prof'])){finalSetAttrs[savingThrowName+'_save_prof']=pbVar;}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}},{key:'updateSavingThrow',value:function updateSavingThrow(savingThrowName){var _this2=this;var collectionArray=['pb',savingThrowName+'_save_prof',savingThrowName+'_save_bonus','global_saving_throw_bonus','saving_throws_half_proficiency','average_of_abilities'];var customSaves=['fortitude','reflex','will'];var customSavingThrow=customSaves.indexOf(savingThrowName)!==-1;var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=_constants.ABILITIES[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var ability=_step5.value;collectionArray.push(ability+'_calculated');collectionArray.push(ability+'_mod');collectionArray.push(savingThrowName+'_'+ability);if(customSavingThrow){collectionArray.push(ability+'_save_prof');}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}(0,_utilities.getSetItems)('savingThrows.updateSavingThrow',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var total=0;var totalFormula='';var ability=void 0;if(customSavingThrow){if(v.average_of_abilities==='1'){var obj=_this2.getAverageOfHighestAbilityScoresForSavingThrow(v,savingThrowName);if(obj.avg){total=obj.avg;totalFormula=obj.avg+'['+obj.abilitiesUsed.join(' ')+' avg]';}}else{ability=_this2.getHighestOfAbilityScoresForSavingThrow(v,savingThrowName);}_this2.setCustomSaveProf(v,finalSetAttrs,savingThrowName);}else{ability=savingThrowName;}if(ability){var abilityMod=(0,_utilities.getIntValue)(v[ability+'_mod']);total=abilityMod;totalFormula=abilityMod+'['+(0,_utilities.getAbilityShortName)(ability)+']';}var pb=(0,_utilities.getIntValue)(v.pb);if(v[savingThrowName+'_save_prof']==='@{PB}'){total+=pb;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,pb)+'[proficient]';}else if(v.saving_throws_half_proficiency==='on'){var halfPB=Math.floor(pb/2);total+=halfPB;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,halfPB)+'[half proficiency]';}var abilitySavingThrowBonus=(0,_utilities.getIntValue)(v[savingThrowName+'_save_bonus']);if(abilitySavingThrowBonus){total+=abilitySavingThrowBonus;totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,abilitySavingThrowBonus)+'['+(0,_utilities.getAbilityShortName)(ability)+'saving throw bonus]';}var globalSavingThrowBonus=v.global_saving_throw_bonus;if(!(0,_utilities.isUndefinedOrEmpty)(globalSavingThrowBonus)){if(!isNaN(globalSavingThrowBonus)){total+=(0,_utilities.getIntValue)(globalSavingThrowBonus);}totalFormula+=(0,_utilities.addArithmeticOperator)(totalFormula,globalSavingThrowBonus)+'[global saving throw bonus]';}finalSetAttrs[savingThrowName+'_saving_throw_mod']=totalFormula;finalSetAttrs[savingThrowName+'_saving_throw_mod_with_sign']=(0,_utilities.showSign)(total);}});}},{key:'updateCustomSavingThrows',value:function updateCustomSavingThrows(){this.updateSavingThrow('fortitude');this.updateSavingThrow('reflex');this.updateSavingThrow('will');}},{key:'updateCustomSavingThrowToggle',value:function updateCustomSavingThrowToggle(){(0,_utilities.getSetItems)('savingThrows.updateCustomSavingThrowToggle',{collectionArray:['use_custom_saving_throws','saving_throw_macro_var_to_use'],callback:function callback(v,finalSetAttrs){if(v.use_custom_saving_throws==='1'){finalSetAttrs.saving_throw_macro_var_to_use='@{custom_saving_throw_macro_var}';}else{finalSetAttrs.saving_throw_macro_var_to_use='@{saving_throw_macro_var}';}}});}},{key:'update',value:function update(){this.updateSavingThrow('strength');this.updateSavingThrow('dexterity');this.updateSavingThrow('constitution');this.updateSavingThrow('intelligence');this.updateSavingThrow('wisdom');this.updateSavingThrow('charisma');this.updateCustomSavingThrows();}},{key:'updateFromSRD',value:function updateFromSRD(){var collectionArray=['pb','saving_throws_srd'];var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{for(var _iterator6=_constants.ABILITIES[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){var ability=_step6.value;collectionArray.push(ability+'_mod');collectionArray.push(ability+'_save_prof');collectionArray.push(ability+'_save_bonus');}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}(0,_utilities.getSetItems)('savingThrows.updateFromSRD',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=_constants.ABILITIES[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var ability=_step7.value;var shortAbility=(0,_utilities.getAbilityShortName)(ability,true);if(v.saving_throws_srd&&v.saving_throws_srd.indexOf(shortAbility)!==-1){finalSetAttrs[ability+'_save_prof']='@{PB}';var regex=new RegExp(shortAbility+'\\s?\\+(\\d+)','i');var match=v.saving_throws_srd.match(regex);if(match&&match[1]){var savingThrowValue=(0,_utilities.getIntValue)(match[1])-(0,_utilities.getIntValue)(v.pb)-(0,_utilities.getAbilityValue)(v,ability);if(savingThrowValue!==0){finalSetAttrs[ability+'_save_bonus']=savingThrowValue;}}}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}}});}},{key:'watchForCustomSavingThrowChanges',value:function watchForCustomSavingThrowChanges(savingThrowName){var _this3=this;var classFeatureWatch=['change:'+savingThrowName+'_save_prof','change:'+savingThrowName+'_save_bonus','change:average_of_abilities'];var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{for(var _iterator8=_constants.ABILITIES[Symbol.iterator](),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){var ability=_step8.value;classFeatureWatch.push('change:'+savingThrowName+'_'+ability);}}catch(err){_didIteratorError8=true;_iteratorError8=err;}finally{try{if(!_iteratorNormalCompletion8&&_iterator8.return){_iterator8.return();}}finally{if(_didIteratorError8){throw _iteratorError8;}}}on(classFeatureWatch.join(' '),function(){_this3.updateSavingThrow(savingThrowName);});}},{key:'watchAbilityChanges',value:function watchAbilityChanges(){var _this4=this;var classFeatureWatch=[];var _iteratorNormalCompletion9=true;var _didIteratorError9=false;var _iteratorError9=undefined;try{for(var _iterator9=_constants.ABILITIES[Symbol.iterator](),_step9;!(_iteratorNormalCompletion9=(_step9=_iterator9.next()).done);_iteratorNormalCompletion9=true){var ability=_step9.value;classFeatureWatch.push('change:'+ability);classFeatureWatch.push('change:'+ability+'_mod');}}catch(err){_didIteratorError9=true;_iteratorError9=err;}finally{try{if(!_iteratorNormalCompletion9&&_iterator9.return){_iterator9.return();}}finally{if(_didIteratorError9){throw _iteratorError9;}}}on(classFeatureWatch.join(' '),function(){_this4.updateCustomSavingThrows();});}},{key:'setup',value:function setup(){var _this5=this;on('change:strength_mod change:strength_save_prof change:strength_save_bonus',function(){_this5.updateSavingThrow('strength');});on('change:dexterity_mod change:dexterity_save_prof change:dexterity_save_bonus',function(){_this5.updateSavingThrow('dexterity');});on('change:constitution_mod change:constitution_save_prof change:constitution_save_bonus',function(){_this5.updateSavingThrow('constitution');});on('change:intelligence_mod change:intelligence_save_prof change:intelligence_save_bonus',function(){_this5.updateSavingThrow('intelligence');});on('change:wisdom_mod change:wisdom_save_prof change:wisdom_save_bonus',function(){_this5.updateSavingThrow('wisdom');});on('change:charisma_mod change:charisma_save_prof change:charisma_save_bonus',function(){_this5.updateSavingThrow('charisma');});on('change:pb change:global_saving_throw_bonus change:saving_throws_half_proficiency',function(){_this5.update();});on('change:use_custom_saving_throws',function(){_this5.updateCustomSavingThrowToggle();});on('change:saving_throws_srd',function(){_this5.updateFromSRD();});this.watchForCustomSavingThrowChanges('fortitude');this.watchForCustomSavingThrowChanges('reflex');this.watchForCustomSavingThrowChanges('will');this.watchAbilityChanges();}}]);return SavingThrows;}();
|
|
|
|
},{"./constants":20,"./utilities":23}],16:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Settings=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Settings=exports.Settings=function(){function Settings(){_classCallCheck(this,Settings);}_createClass(Settings,[{key:'updateShapedD20',value:function updateShapedD20(){(0,_utilities.getSetItems)('settings.updateShapedD20',{collectionArray:['roll_setting','roll_info','shaped_d20'],callback:function callback(v,finalSetAttrs){finalSetAttrs.roll_info='';finalSetAttrs.shaped_d20='d20@{d20_mod}';if(v.roll_setting==='adv {{ignore=[[0'){finalSetAttrs.roll_info='{{advantage=1}}';finalSetAttrs.shaped_d20='2d20@{d20_mod}kh1';}else if(v.roll_setting==='dis {{ignore=[[0'){finalSetAttrs.roll_info='{{disadvantage=1}}';finalSetAttrs.shaped_d20='2d20@{d20_mod}kl1';}}});}},{key:'setup',value:function setup(){var _this=this;on('change:roll_setting',function(){_this.updateShapedD20();});}}]);return Settings;}();
|
|
|
|
},{"./utilities":23}],17:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Spells=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _updateToggles=require('./updateToggles');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Spells=exports.Spells=function(){function Spells(){_classCallCheck(this,Spells);}_createClass(Spells,[{key:'parseSRD',value:function parseSRD(v,finalSetAttrs,repeatingString){if(v[repeatingString+'spell_level_from_srd']){finalSetAttrs[repeatingString+'spell_level']=(0,_utilities.ordinalSpellLevel)(v[repeatingString+'spell_level_from_srd']);finalSetAttrs[repeatingString+'spell_level_from_srd']='';}if(v[repeatingString+'school_from_srd']){finalSetAttrs[repeatingString+'school']=v[repeatingString+'school_from_srd'].toUpperCase();finalSetAttrs[repeatingString+'school_from_srd']='';}if(v[repeatingString+'casting_time_from_srd']){finalSetAttrs[repeatingString+'casting_time']=v[repeatingString+'casting_time_from_srd'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'casting_time_from_srd']='';}if(v[repeatingString+'components_from_srd']){finalSetAttrs[repeatingString+'components']='COMPONENTS_'+v[repeatingString+'components_from_srd'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'components_from_srd']='';}if(v[repeatingString+'duration_from_srd']){var duration='';if(v[repeatingString+'duration_from_srd'].toLowerCase().indexOf('up to')!==-1){duration+='CONCENTRATION_';}duration+=v[repeatingString+'duration_from_srd'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'duration']=duration;finalSetAttrs[repeatingString+'duration_from_srd']='';}if(v[repeatingString+'saving_throw_vs_ability_from_srd']){finalSetAttrs[repeatingString+'saving_throw_vs_ability']=v[repeatingString+'saving_throw_vs_ability_from_srd'].toUpperCase();finalSetAttrs[repeatingString+'saving_throw_vs_ability_from_srd']='';}}},{key:'updateFromSRD',value:function updateFromSRD(){(0,_utilities.getSetItems)('spells.updateFromSRD',{collectionArray:['spells_srd'],callback:function callback(v,finalSetAttrs){var spellsFromSrd=v.spells_srd.split(', ');var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=spellsFromSrd[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var spell=_step.value;var repeatingString='repeating_spell_'+generateRowID()+'_';finalSetAttrs[repeatingString+'name']=spell;finalSetAttrs[repeatingString+'toggle_details']=0;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}});}},{key:'updateDefaultAbility',value:function updateDefaultAbility(){(0,_utilities.getSetRepeatingItems)('spells.update',{repeatingItems:['repeating_spell'],collectionArray:['default_ability'],collectionArrayAddItems:['attack_ability','damage_ability','second_damage_ability','saving_throw_ability','heal_ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=ids[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var id=_step2.value;var repeatingString=repeatingItem+'_'+id+'_';finalSetAttrs[repeatingString+'attack_ability']=v.default_ability;if(v[repeatingString+'damage_ability']){finalSetAttrs[repeatingString+'damage_ability']=v.default_ability;}if(v[repeatingString+'second_damage_ability']){finalSetAttrs[repeatingString+'second_damage_ability']=v.default_ability;}finalSetAttrs[repeatingString+'saving_throw_ability']=v.default_ability;if(v[repeatingString+'heal_ability']){finalSetAttrs[repeatingString+'heal_ability']=v.default_ability;}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}}});}},{key:'update',value:function update(rowId){var _this=this;var collectionArray=['is_npc','pb','finesse_mod','global_spell_attack_bonus','global_spell_damage_bonus','global_spell_dc_bonus','global_spell_heal_bonus','default_ability','caster_level','base_dc'];var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=_constants.ABILITIES[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var ability=_step3.value;collectionArray.push(ability+'_mod');}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}(0,_utilities.getSetRepeatingItems)('spells.update',{repeatingItems:['repeating_spell'],collectionArray:collectionArray,collectionArrayAddItems:['name','school','spell_level','spell_level_from_srd','school_from_srd','casting_time','casting_time_from_srd','components','components_from_srd','concentration','duration','duration_from_srd','type','roll_toggle','to_hit','attack_formula','proficiency','attack_ability','attack_bonus','saving_throw_toggle','saving_throw_ability','saving_throw_vs_ability','saving_throw_vs_ability_from_srd','saving_throw_bonus','saving_throw_dc','damage_toggle','damage_formula','damage','damage_ability','damage_bonus','damage_type','damage_crit','second_damage_toggle','second_damage_formula','second_damage','second_damage_ability','second_damage_bonus','second_damage_type','second_damage_crit','damage_string','parsed','heal_toggle','heal','heal_ability','heal_bonus','heal_query_toggle','add_casting_modifier','add_second_casting_modifier','higher_level_toggle','higher_level_dice','higher_level_die','second_higher_level_dice','second_higher_level_die','higher_level_heal','ritual','ritual_output','materials','materials_show','extras_toggle','emote','freetext','freeform'],rowId:rowId,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=ids[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var id=_step4.value;var repeatingString=repeatingItem+'_'+id+'_';_this.parseSRD(v,finalSetAttrs,repeatingString);if(v[repeatingString+'spell_level']==='CANTRIP'){finalSetAttrs[repeatingString+'is_prepared']='on';}if(!(0,_utilities.isUndefined)((0,_utilities.fromVOrFinalSetAttrs)(v,finalSetAttrs,repeatingString+'duration'))&&(0,_utilities.fromVOrFinalSetAttrs)(v,finalSetAttrs,repeatingString+'duration').indexOf('CONCENTRATION')!==-1){finalSetAttrs[repeatingString+'concentration']='Yes';}else{finalSetAttrs[repeatingString+'concentration']='';}if(v[repeatingString+'ritual']==='Yes'){finalSetAttrs[repeatingString+'ritual_output']='?{Cast as|Ritual,{{ritual=1}}|Spell,}';}else{finalSetAttrs[repeatingString+'ritual_output']='';}if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'materials'])){finalSetAttrs[repeatingString+'materials_show']=1;}else if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'materials_show'])){finalSetAttrs[repeatingString+'materials_show']=0;}var attackOptions={attackAbility:true,globalAttackBonus:v.global_spell_attack_bonus,globalAttackBonusLabel:'global spell attack bonus',type:'spell'};(0,_updateToggles.updateAttackToggle)(v,finalSetAttrs,repeatingString,attackOptions);var savingThrowOptions={bonusDC:v.global_spell_dc_bonus};(0,_updateToggles.updateSavingThrowToggle)(v,finalSetAttrs,repeatingString,savingThrowOptions);var damageOptions={globalDamageBonus:v.global_spell_damage_bonus,globalDamageBonusLabel:'global spell damage bonus',type:'spell'};(0,_updateToggles.updateDamageToggle)(v,finalSetAttrs,repeatingString,damageOptions);if(v.damage_type){finalSetAttrs.damage_type=(0,_utilities.lowercaseDamageTypes)(v.damage_type);}if(v.second_damage_type){finalSetAttrs.second_damage_type=(0,_utilities.lowercaseDamageTypes)(v.second_damage_type);}(0,_utilities.setCritDamage)(v,finalSetAttrs,repeatingString);if((0,_utilities.getIntValue)(v.is_npc)===1&&v.caster_level&&v[repeatingString+'damage']&&v[repeatingString+'damage'].indexOf('@{level}')!==-1){finalSetAttrs[repeatingString+'damage']=v[repeatingString+'damage'].replace('@{level}','@{caster_level}');}(0,_updateToggles.updateHealToggle)(v,finalSetAttrs,repeatingString);(0,_updateToggles.updateHigherLevelToggle)(v,finalSetAttrs,repeatingString);if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'extras_toggle'])&&(v[repeatingString+'emote']||v[repeatingString+'freetext']||v[repeatingString+'freeform'])){finalSetAttrs[repeatingString+'extras_toggle']=_constants.TOGGLE_VARS.extras;}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}});}},{key:'updateSlots',value:function updateSlots(){var collectionArray=['caster_level','caster_type'];var spellSlots={1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0};for(var level in spellSlots){if(spellSlots.hasOwnProperty(level)){var repeatingString='spell_slots_l'+level;collectionArray.push(repeatingString+'_calc');collectionArray.push(repeatingString+'_bonus');collectionArray.push(repeatingString+'_max');collectionArray.push(repeatingString+'_toggle');}}(0,_utilities.getSetItems)('spells.updateSlots',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var casterLevel=(0,_utilities.getIntValue)(v.caster_level);var casterType=v.caster_type;if(casterType==='full'){if(casterLevel>=3){spellSlots[1]=4;}else if(casterLevel===2){spellSlots[1]=3;}else if(casterLevel===1){spellSlots[1]=2;}if(casterLevel>=4){spellSlots[2]=3;}else if(casterLevel===3){spellSlots[2]=2;}if(casterLevel>=6){spellSlots[3]=3;}else if(casterLevel===5){spellSlots[3]=2;}if(casterLevel>=9){spellSlots[4]=3;}else if(casterLevel===8){spellSlots[4]=2;}else if(casterLevel===7){spellSlots[4]=1;}if(casterLevel>=18){spellSlots[5]=3;}else if(casterLevel>=10){spellSlots[5]=2;}else if(casterLevel===9){spellSlots[5]=1;}if(casterLevel>=19){spellSlots[6]=2;}else if(casterLevel>=11){spellSlots[6]=1;}if(casterLevel>=20){spellSlots[7]=2;}else if(casterLevel>=13){spellSlots[7]=1;}if(casterLevel>=15){spellSlots[8]=1;}if(casterLevel>=17){spellSlots[9]=1;}}if(casterType==='half'){if(casterLevel>=5){spellSlots[1]=4;}else if(casterLevel>=3){spellSlots[1]=3;}else if(casterLevel===2){spellSlots[1]=2;}if(casterLevel>=7){spellSlots[2]=3;}else if(casterLevel>=5){spellSlots[2]=2;}if(casterLevel>=11){spellSlots[3]=3;}else if(casterLevel>=9){spellSlots[3]=2;}if(casterLevel>=17){spellSlots[4]=3;}else if(casterLevel>=15){spellSlots[4]=2;}else if(casterLevel>=13){spellSlots[4]=1;}if(casterLevel>=19){spellSlots[5]=2;}else if(casterLevel>=17){spellSlots[5]=1;}}if(casterType==='third'){if(casterLevel>=7){spellSlots[1]=4;}else if(casterLevel>=4){spellSlots[1]=3;}else if(casterLevel===3){spellSlots[1]=2;}if(casterLevel>=10){spellSlots[2]=3;}else if(casterLevel>=7){spellSlots[2]=2;}if(casterLevel>=16){spellSlots[3]=3;}else if(casterLevel>=13){spellSlots[3]=2;}if(casterLevel>=19){spellSlots[4]=1;}}for(var _level in spellSlots){if(spellSlots.hasOwnProperty(_level)){var _repeatingString='spell_slots_l'+_level;finalSetAttrs[_repeatingString]=0;if(spellSlots[_level]!==0||(0,_utilities.exists)(v[_repeatingString+'_calc'])){finalSetAttrs['spell_slots_l'+_level+'_calc']=spellSlots[_level];}var slots=v[''+_repeatingString];var slotBonus=(0,_utilities.getIntValue)(v[_repeatingString+'_bonus']);var spellSlotMax=spellSlots[_level]+slotBonus;if(spellSlotMax>0){finalSetAttrs[_repeatingString+'_max']=spellSlotMax;if((0,_utilities.isUndefinedOrEmpty)(slots)){finalSetAttrs[_repeatingString]=spellSlotMax;}}else{if((0,_utilities.exists)(v[_repeatingString+'_max'])){finalSetAttrs[_repeatingString+'_max']=0;}}}}}});}},{key:'updateShowHide',value:function updateShowHide(){var collectionArray=['spells_show_spell_level_if_all_slots_are_used'];for(var i=0;i<=9;i++){collectionArray.push('spell_slots_l'+i);collectionArray.push('spell_slots_l'+i+'_max');collectionArray.push('spell_slots_l'+i+'_toggle');collectionArray.push('spells_level_'+i+'_macro_var');collectionArray.push('spells_level_'+i+'_show');}(0,_utilities.getSetItems)('spells.updateShowHide',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){var showLevelIfAllSlotsAreUsed=(0,_utilities.isUndefinedOrEmpty)(v.spells_show_spell_level_if_all_slots_are_used)||v.spells_show_spell_level_if_all_slots_are_used==='on';for(var level=0;level<=9;level++){if(v['spells_level_'+level+'_macro_var']||(0,_utilities.getIntValue)(v['spell_slots_l'+level])||(0,_utilities.getIntValue)(v['spell_slots_l'+level+'_max'])){finalSetAttrs['spell_slots_l'+level+'_toggle']='on';}else{finalSetAttrs['spell_slots_l'+level+'_toggle']=0;}var hasSlots=(0,_utilities.getIntValue)(v['spell_slots_l'+level]);var hasSpells=v['spells_level_'+level+'_macro_var'];if((hasSlots||showLevelIfAllSlotsAreUsed)&&(hasSlots||hasSpells)){finalSetAttrs['spells_level_'+level+'_show']=true;}else{finalSetAttrs['spells_level_'+level+'_show']='';}}}});}},{key:'updateChatMacro',value:function updateChatMacro(){var spellSlots={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[]};var collectionArray=['spells_show_unprepared'];for(var i=0;i<=9;i++){collectionArray.push('spells_level_'+0+'_macro_var');}(0,_utilities.getSetRepeatingItems)('spells.updateChatMacro',{repeatingItems:['repeating_spell'],collectionArray:collectionArray,collectionArrayAddItems:['name','spell_level','is_prepared'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=ids[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var id=_step5.value;var repeatingString=repeatingItem+'_'+id+'_';var showUnprepared=v.spells_show_unprepared==='on'||(0,_utilities.isUndefinedOrEmpty)(v.spells_show_unprepared);var spellName=v[repeatingString+'name'];var spellLevel=(0,_utilities.getIntValue)(v[repeatingString+'spell_level'],0);var spellPrepared=v[repeatingString+'is_prepared']==='on';if(spellName&&spellPrepared){spellSlots[spellLevel].push('['+spellName+'](~repeating_spell_'+id+'_spell)');}else if(spellName&&showUnprepared){spellSlots[spellLevel].push('<span class="sheet-unprepared">['+spellName+'](~repeating_spell_'+id+'_spell)</span>');}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}for(var _i=0;_i<=9;_i++){if(spellSlots[_i].length>0){finalSetAttrs['spells_level_'+_i+'_macro_var']=spellSlots[_i].join(', ');}else{finalSetAttrs['spells_level_'+_i+'_macro_var']='';}}}});}},{key:'generateHigherLevelQueries',value:function generateHigherLevelQueries(){var collectionArray=['warlock_level','number_of_classes'];for(var i=1;i<=8;i++){collectionArray.push('cast_as_level_'+i);collectionArray.push('higher_level_query_'+i);}for(var _i2=1;_i2<=9;_i2++){collectionArray.push('spell_slots_l'+_i2);}(0,_utilities.getSetItems)('spells.generateHigherLevelQueries',{collectionArray:collectionArray,callback:function callback(v,finalSetAttrs){for(var _i3=1;_i3<=8;_i3++){var higherLevelQuery='';if(_i3<6&&v.number_of_classes===1&&v.warlock_level>0&&Math.ceil((0,_utilities.getIntValue)(v.warlock_level)/2)>=_i3){var spellLevel=1;if(v.warlock_level>=9){spellLevel=5;}else if(v.warlock_level>=7){spellLevel=4;}else if(v.warlock_level>=5){spellLevel=3;}else if(v.warlock_level>=3){spellLevel=2;}higherLevelQuery=spellLevel;}else{var levelQuery='';for(var j=_i3;j<=9;j++){if((0,_utilities.getIntValue)(v['spell_slots_l'+j])){levelQuery+='|'+j;}}higherLevelQuery='?{Spell Level'+levelQuery+'}';}if(higherLevelQuery!==''){finalSetAttrs['higher_level_query_'+_i3]=higherLevelQuery;}else{finalSetAttrs['higher_level_query_'+_i3]=_i3;}if(v['spell_slots_l'+_i3]==='0'&&higherLevelQuery!==_i3){finalSetAttrs['cast_as_level_'+_i3]=higherLevelQuery;}else{finalSetAttrs['cast_as_level_'+_i3]='';}}}});}},{key:'watchForChanges',value:function watchForChanges(){var _this2=this;var spellsWatch=['change:spells_show_spell_level_if_all_slots_are_used'];for(var i=0;i<=9;i++){spellsWatch.push('change:spells_level_'+i+'_macro_var');spellsWatch.push('change:spell_slots_l'+i);spellsWatch.push('change:spell_slots_l'+i+'_max');}on(spellsWatch.join(' '),function(){_this2.updateShowHide();});}},{key:'setup',value:function setup(){var _this3=this;on('change:repeating_spell',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_spell',eventInfo);if(repeatingInfo&&repeatingInfo.field!=='roll_toggle'&&repeatingInfo.field!=='toggle_details'&&repeatingInfo.field!=='to_hit'&&repeatingInfo.field!=='attack_formula'&&repeatingInfo.field!=='damage_formula'&&repeatingInfo.field!=='damage_crit'&&repeatingInfo.field!=='second_damage_formula'&&repeatingInfo.field!=='second_damage_crit'&&repeatingInfo.field!=='damage_string'&&repeatingInfo.field!=='saving_throw_dc'&&repeatingInfo.field!=='heal_formula'&&repeatingInfo.field!=='higher_level_query'&&repeatingInfo.field!=='parsed'){_this3.update(repeatingInfo.rowId);}});on('change:default_ability',function(){_this3.updateDefaultAbility();});on('change:pb change:global_spell_attack_bonus change:global_spell_damage_bonus change:global_spell_dc_bonus change:global_spell_heal_bonus',function(){_this3.update();});on('change:spells_srd',function(){_this3.updateFromSRD();});on('change:spell_slots_l1_bonus change:spell_slots_l2_bonus change:spell_slots_l3_bonus change:spell_slots_l4_bonus change:spell_slots_l5_bonus change:spell_slots_l6_bonus change:spell_slots_l7_bonus change:spell_slots_l8_bonus change:spell_slots_l9_bonus',function(){_this3.updateSlots();});this.watchForChanges();on('change:repeating_spell',function(eventInfo){var repeatingInfo=(0,_utilities.getRepeatingInfo)('repeating_spell',eventInfo);if(repeatingInfo&&(repeatingInfo.field==='name'||repeatingInfo.field==='spell_level'||repeatingInfo.field==='is_prepared')){_this3.updateChatMacro();}});on('change:spells_show_unprepared remove:repeating_spell',function(){_this3.updateChatMacro();});on('change:warlock_level change:spell_slots_l1 change:spell_slots_l2 change:spell_slots_l3 change:spell_slots_l4 change:spell_slots_l5 change:spell_slots_l6 change:spell_slots_l7 change:spell_slots_l8 change:spell_slots_l9',function(){_this3.generateHigherLevelQueries();});}}]);return Spells;}();
|
|
|
|
},{"./constants":20,"./updateToggles":22,"./utilities":23}],18:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Traits=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _constants=require('./constants');var _utilities=require('./utilities');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Traits=exports.Traits=function(){function Traits(){_classCallCheck(this,Traits);}_createClass(Traits,[{key:'calculatePercentDifference',value:function calculatePercentDifference(oldValue,newValue){return Math.abs((oldValue-newValue)/oldValue*100);}},{key:'set',value:function set(obj){var _this=this;if(!obj.name){obj.name=obj.storageName;}var collectionArrayAddItems=['storage_name','name','uses','freetext','saving_throw_toggle','damage_toggle','heal_toggle','extras_toggle','display_text'];for(var prop in obj){if(obj.hasOwnProperty(prop)){collectionArrayAddItems.push(prop);}}var itemId=void 0;var repeatingString=void 0;(0,_utilities.getSetRepeatingItems)('traits.set',{repeatingItems:['repeating_trait'],collectionArrayAddItems:collectionArrayAddItems,callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=ids[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var id=_step.value;repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'storage_name']===obj.storageName){itemId=id;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}if(!itemId){itemId=generateRowID();}repeatingString=repeatingItem+'_'+itemId+'_';if(!obj.clear&&(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'storage_name'])){finalSetAttrs[repeatingString+'storage_name']=obj.storageName;}if(!obj.clear&&v[repeatingString+'name']!==obj.name){finalSetAttrs[repeatingString+'name']=obj.name;}delete obj.storageName;if(obj.clear){delete obj.clear;for(var _prop in obj){if(obj.hasOwnProperty(_prop)&&!(0,_utilities.isUndefinedOrEmpty)(v[''+repeatingString+_prop])){finalSetAttrs[''+repeatingString+_prop]=obj[_prop];}}}else{for(var _prop2 in obj){if(obj.hasOwnProperty(_prop2)){if((_prop2==='name'||_prop2==='freetext')&&((0,_utilities.isUndefinedOrEmpty)(v[''+repeatingString+_prop2])||_this.calculatePercentDifference(v[''+repeatingString+_prop2].length,obj[_prop2].length)<10)){finalSetAttrs[''+repeatingString+_prop2]=obj[_prop2];}else if(v[''+repeatingString+_prop2]!==obj[_prop2]){finalSetAttrs[''+repeatingString+_prop2]=obj[_prop2];}}}if(obj.type&&(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'type'])){finalSetAttrs[repeatingString+'type']=obj.type;}if(obj.saving_throw_ability||obj.saving_throw_bonus||obj.saving_throw_vs_ability){finalSetAttrs[repeatingString+'saving_throw_toggle']=_constants.TOGGLE_VARS.saving_throw;}if(obj.damage||obj.damage_ability||obj.damage_bonus){finalSetAttrs[repeatingString+'damage_toggle']=_constants.TOGGLE_VARS.damage;}if(obj.heal||obj.heal_ability||obj.heal_bonus||obj.heal_query_toggle){finalSetAttrs[repeatingString+'heal_toggle']=_constants.TOGGLE_VARS.heal;}if(obj.freetext&&(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'extras_toggle'])){finalSetAttrs[repeatingString+'extras_toggle']=_constants.TOGGLE_VARS.extras;}if(obj.uses_max&&!obj.uses&&(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'uses'])){finalSetAttrs[repeatingString+'uses']=obj.uses_max;}if(obj.freetext&&repeatingItem==='repeating_trait'&&((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'display_text'])||_this.calculatePercentDifference(v[repeatingString+'display_text'].length,obj.freetext.length)<10)){finalSetAttrs[repeatingString+'display_text']=obj.freetext;}finalSetAttrs[repeatingString+'toggle_details']=0;}},returnCallback:function returnCallback(){return itemId;}});}}]);return Traits;}();
|
|
|
|
},{"./constants":20,"./utilities":23}],19:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.Upgrade=undefined;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _Abilities=require('./Abilities');var _AbilityChecks=require('./AbilityChecks');var _Actions=require('./Actions');var _Attachers=require('./Attachers');var _Attacks=require('./Attacks');var _Character=require('./Character');var _ClassFeatures=require('./ClassFeatures');var _constants=require('./constants');var _Equipment=require('./Equipment');var _Npc=require('./Npc');var _Resistances=require('./Resistances');var _SavingThrows=require('./SavingThrows');var _Settings=require('./Settings');var _Spells=require('./Spells');var _utilities=require('./utilities');var _version=require('./version');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var abilities=new _Abilities.Abilities();var abilityChecks=new _AbilityChecks.AbilityChecks();var actions=new _Actions.Actions();var attachers=new _Attachers.Attachers();var attacks=new _Attacks.Attacks();var character=new _Character.Character();var classFeatures=new _ClassFeatures.ClassFeatures();var equipment=new _Equipment.Equipment();var npc=new _Npc.Npc();var resistances=new _Resistances.Resistances();var savingThrows=new _SavingThrows.SavingThrows();var settings=new _Settings.Settings();var spells=new _Spells.Spells();var Upgrade=exports.Upgrade=function(){function Upgrade(){_classCallCheck(this,Upgrade);}_createClass(Upgrade,[{key:'extasToExtrasFix',value:function extasToExtrasFix(repeatingSection){(0,_utilities.getSetRepeatingItems)('upgrade.extasToExtrasFix',{repeatingItems:[repeatingSection],collectionArrayAddItems:['extas_toggle'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=ids[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var id=_step.value;var repeatingString=repeatingItem+'_'+id+'_';if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'extas_toggle'])){finalSetAttrs[repeatingString+'extras_toggle']=v[repeatingString+'extas_toggle'];}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}});}},{key:'armorPlusDexRemoval',value:function armorPlusDexRemoval(){(0,_utilities.getSetRepeatingItems)('upgrade.armorPlusDexRemoval',{repeatingItems:['repeating_armor'],collectionArrayAddItems:['type'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=ids[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var id=_step2.value;var repeatingString=repeatingItem+'_'+id+'_';var armorType=v[repeatingString+'type'];if(armorType==='Armor + Dex'){finalSetAttrs[repeatingString+'type']='Light Armor';}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}}});}},{key:'fixRollTwo',value:function fixRollTwo(){(0,_utilities.getSetItems)('upgrade.fixRollTwo',{collectionArray:['roll_setting'],callback:function callback(v,finalSetAttrs){if(v.roll_setting==='@{attr_roll_2}'){finalSetAttrs.roll_setting='{{roll2=[[d20@{d20_mod}';}}});}},{key:'defaultAbility',value:function defaultAbility(){(0,_utilities.getSetItems)('upgrade.defaultAbility',{collectionArray:['default_ability'],callback:function callback(v,finalSetAttrs){if(!(0,_utilities.isUndefinedOrEmpty)(v.default_ability)){finalSetAttrs.default_ability=(0,_utilities.getAbilityName)(v.default_ability);}}});}},{key:'hideFreetext',value:function hideFreetext(){(0,_utilities.getSetItems)('upgrade.hideFreetext',{collectionArray:['hide_freetext','hide_action_freetext'],callback:function callback(v,finalSetAttrs){if(!(0,_utilities.isUndefinedOrEmpty)(v.hide_action_freetext)){finalSetAttrs.hide_freetext=v.hide_action_freetext;}}});}},{key:'atSyntaxToAbilityName',value:function atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,field){if(v[''+repeatingString+field]){finalSetAttrs[''+repeatingString+field]=(0,_utilities.getAbilityName)(v[''+repeatingString+field]);}}},{key:'skillAbility',value:function skillAbility(){var _this=this;(0,_utilities.getSetRepeatingItems)('upgrade.skillAbility',{repeatingItems:['repeating_skill'],collectionArrayAddItems:['ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=ids[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var id=_step3.value;var repeatingString=repeatingItem+'_'+id+'_';_this.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'ability');}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}});}},{key:'armorAbility',value:function armorAbility(){(0,_utilities.getSetItems)('upgrade.armorAbility',{collectionArray:['ac_unarmored_ability'],callback:function callback(v,finalSetAttrs){if(!(0,_utilities.isUndefinedOrEmpty)(v.ac_unarmored_ability)){finalSetAttrs.ac_unarmored_ability=(0,_utilities.getAbilityName)(v.ac_unarmored_ability);}}});}},{key:'actionComponents',value:function actionComponents(){var _this2=this;(0,_utilities.getSetRepeatingItems)('upgrade.actionComponents',{repeatingItems:['repeating_attack','repeating_spell','repeating_trait','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['attack_ability','damage_ability','second_damage_ability','heal_ability','saving_throw_ability','saving_throw_vs_ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=ids[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var id=_step4.value;var repeatingString=repeatingItem+'_'+id+'_';_this2.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'attack_ability');_this2.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'damage_ability');_this2.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'second_damage_ability');_this2.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'heal_ability');_this2.atSyntaxToAbilityName(v,finalSetAttrs,repeatingString,'saving_throw_ability');if(v[repeatingString+'saving_throw_vs_ability']){finalSetAttrs[repeatingString+'saving_throw_vs_ability']=v[repeatingString+'saving_throw_vs_ability'].toUpperCase();}}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}});}},{key:'newAttackToggle',value:function newAttackToggle(){(0,_utilities.getSetRepeatingItems)('upgrade.newAttackToggle',{repeatingItems:['repeating_attack','repeating_spell','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['roll_toggle'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=ids[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var id=_step5.value;var repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'roll_toggle']==='{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}'){finalSetAttrs[repeatingString+'roll_toggle']=_constants.TOGGLE_VARS.roll;}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}}});}},{key:'newAttackToggleTwo',value:function newAttackToggleTwo(){(0,_utilities.getSetRepeatingItems)('upgrade.newAttackToggleTwo',{repeatingItems:['repeating_attack','repeating_spell','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['roll_toggle'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{for(var _iterator6=ids[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){var id=_step6.value;var repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'roll_toggle'].indexOf('vs_saving_throw')!==-1){finalSetAttrs[repeatingString+'roll_toggle']=_constants.TOGGLE_VARS.roll;}}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}}});}},{key:'newAbilityDefaults',value:function newAbilityDefaults(){(0,_utilities.getSetRepeatingItems)('upgrade.newAbilityDefaults',{repeatingItems:['repeating_attack','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['roll_toggle','roll_ability','damage_toggle','damage_ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=ids[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var id=_step7.value;var repeatingString=repeatingItem+'_'+id+'_';if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'roll_toggle'])&&(0,_utilities.isUndefined)(v[repeatingString+'roll_ability'])){finalSetAttrs[repeatingString+'roll_ability']='strength';}if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'damage_toggle'])&&(0,_utilities.isUndefined)(v[repeatingString+'damage_ability'])){finalSetAttrs[repeatingString+'damage_ability']='strength';}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}}});}},{key:'changeOldToggleToNew',value:function changeOldToggleToNew(v,finalSetAttrs,field,oldValue,newValue){if(v[field]==='@{'+oldValue+'}'){finalSetAttrs[field]=newValue;}}},{key:'removeToggleVar',value:function removeToggleVar(){var _this3=this;(0,_utilities.getSetItems)('upgrade.removeToggleVar',{collectionArray:['careful_spell_toggle','distant_spell_toggle','empowered_spell_toggle','extended_spell_toggle','heightened_spell_toggle','quickened_spell_toggle','subtle_spell_toggle','twinned_spell_toggle','initiative_tie_breaker','ammo_auto_use','hide_attack','hide_damage','hide_saving_throw_dc','hide_spell_content','hide_action_freetext','hide_saving_throw_failure','hide_saving_throw_success','hide_recharge','initiative_output_option','output_option','death_save_output_option','hit_dice_output_option','roll_setting','show_character_name','attacks_vs_target_ac','attacks_vs_target_name','initiative_roll','initiative_to_tracker'],callback:function callback(v,finalSetAttrs){_this3.changeOldToggleToNew(v,finalSetAttrs,'careful_spell_toggle','careful_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'distant_spell_toggle','distant_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'empowered_spell_toggle','empowered_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'extended_spell_toggle','extended_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'heightened_spell_toggle','heightened_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'quickened_spell_toggle','quickened_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'subtle_spell_toggle','subtle_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'twinned_spell_toggle','twinned_spell_toggle_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_tie_breaker','initiative_tie_breaker_var','[[@{initiative} / 100]][tie breaker]');_this3.changeOldToggleToNew(v,finalSetAttrs,'ammo_auto_use','ammo_auto_use_var','1');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_attack','hide_attack_var','{{hide_attack=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_damage','hide_damage_var','{{hide_damage=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_saving_throw_dc','hide_saving_throw_dc_var','{{hide_saving_throw_dc=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_spell_content','hide_spell_content_var','{{hide_spell_content=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_action_freetext','hide_action_freetext_var','{{hide_freetext=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_saving_throw_failure','hide_saving_throw_failure_var','{{hide_saving_throw_failure=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_saving_throw_success','hide_saving_throw_success_var','{{hide_saving_throw_success=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'hide_recharge','hide_recharge_var','{{hide_recharge=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_output_option','output_to_all','');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_output_option','output_to_gm','/w GM');_this3.changeOldToggleToNew(v,finalSetAttrs,'output_option','output_to_all','');_this3.changeOldToggleToNew(v,finalSetAttrs,'output_option','output_to_gm','/w GM');_this3.changeOldToggleToNew(v,finalSetAttrs,'death_save_output_option','output_to_all','');_this3.changeOldToggleToNew(v,finalSetAttrs,'death_save_output_option','output_to_gm','/w GM');_this3.changeOldToggleToNew(v,finalSetAttrs,'hit_dice_output_option','output_to_all','');_this3.changeOldToggleToNew(v,finalSetAttrs,'hit_dice_output_option','output_to_gm','/w GM');_this3.changeOldToggleToNew(v,finalSetAttrs,'roll_setting','roll_advantage','adv {{ignore=[[0');_this3.changeOldToggleToNew(v,finalSetAttrs,'roll_setting','roll_disadvantage','dis {{ignore=[[0');_this3.changeOldToggleToNew(v,finalSetAttrs,'roll_setting','roll_1','{{ignore=[[0');_this3.changeOldToggleToNew(v,finalSetAttrs,'roll_setting','roll_2','{{roll2=[[d20@{d20_mod}');_this3.changeOldToggleToNew(v,finalSetAttrs,'show_character_name','show_character_name_no','');_this3.changeOldToggleToNew(v,finalSetAttrs,'show_character_name','show_character_name_yes','{{show_character_name=1}}');_this3.changeOldToggleToNew(v,finalSetAttrs,'attacks_vs_target_ac','attacks_vs_target_ac_no','');_this3.changeOldToggleToNew(v,finalSetAttrs,'attacks_vs_target_ac','attacks_vs_target_ac_yes','[[@{target|AC}]]');_this3.changeOldToggleToNew(v,finalSetAttrs,'attacks_vs_target_name','attacks_vs_target_name_no','');_this3.changeOldToggleToNew(v,finalSetAttrs,'attacks_vs_target_name','attacks_vs_target_name_yes','@{target|token_name}');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_roll','normal_initiative','@{shaped_d20}');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_roll','advantage_on_initiative','2d20@{d20_mod}kh1');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_roll','disadvantage_on_initiative','2d20@{d20_mod}kl1');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_to_tracker','initiative_to_tracker_yes','@{selected|initiative_formula} &{tracker}');_this3.changeOldToggleToNew(v,finalSetAttrs,'initiative_to_tracker','initiative_to_tracker_no','@{initiative_formula}');}});}},{key:'changeOldRepeatingToggleToNew',value:function changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,field,oldValue,newValue){if(v[''+repeatingString+field]==='@{'+oldValue+'}'){finalSetAttrs[''+repeatingString+field]=newValue;}}},{key:'actionComponentsToRemoveExtraFields',value:function actionComponentsToRemoveExtraFields(){var _this4=this;(0,_utilities.getSetRepeatingItems)('upgrade.actionComponentsToRemoveExtraFields',{repeatingItems:['repeating_attack','repeating_spell','repeating_trait','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['roll_toggle','content_toggle','saving_throw_toggle','damage_toggle','second_damage_toggle','extras_toggle','heal_toggle','heal_query_toggle','higher_level_toggle','special_effects_toggle'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{for(var _iterator8=ids[Symbol.iterator](),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){var id=_step8.value;var repeatingString=repeatingItem+'_'+id+'_';_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'roll_toggle','roll_toggle_var','{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'content_toggle','content_toggle_var','{{content=@{content}}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'saving_throw_toggle','saving_throw_toggle_var','{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'damage_toggle','damage_toggle_var','{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'second_damage_toggle','second_damage_toggle_var','{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'extras_toggle','extras_var','{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'heal_toggle','heal_toggle_var','{{heal=[[@{heal_formula}]]}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'heal_query_toggle','heal_query','?{Heal Bonus Amount|}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'higher_level_toggle','higher_level_toggle_var','{{cast_as_level=@{higher_level_query}}}');_this4.changeOldRepeatingToggleToNew(v,finalSetAttrs,repeatingString,'special_effects_toggle','special_effects_var','{{fx=@{type}-@{color} @{points_of_origin}}}');}}catch(err){_didIteratorError8=true;_iteratorError8=err;}finally{try{if(!_iteratorNormalCompletion8&&_iterator8.return){_iterator8.return();}}finally{if(_didIteratorError8){throw _iteratorError8;}}}}});}},{key:'displayTextForTraits',value:function displayTextForTraits(){(0,_utilities.getSetRepeatingItems)('upgrade.displayTextForTraits',{repeatingItems:['repeating_trait'],collectionArrayAddItems:['display_text','freetext'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion9=true;var _didIteratorError9=false;var _iteratorError9=undefined;try{for(var _iterator9=ids[Symbol.iterator](),_step9;!(_iteratorNormalCompletion9=(_step9=_iterator9.next()).done);_iteratorNormalCompletion9=true){var id=_step9.value;var repeatingString=repeatingItem+'_'+id+'_';if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'display_text'])){finalSetAttrs[repeatingString+'display_text']=v[repeatingString+'freetext'];}}}catch(err){_didIteratorError9=true;_iteratorError9=err;}finally{try{if(!_iteratorNormalCompletion9&&_iterator9.return){_iterator9.return();}}finally{if(_didIteratorError9){throw _iteratorError9;}}}}});}},{key:'spellToTranslations',value:function spellToTranslations(){(0,_utilities.getSetRepeatingItems)('upgrade.spellToTranslations',{repeatingItems:['repeating_spell'],collectionArrayAddItems:['spell_level','school','casting_time','components','duration','concentration','saving_throw_vs_ability'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion10=true;var _didIteratorError10=false;var _iteratorError10=undefined;try{for(var _iterator10=ids[Symbol.iterator](),_step10;!(_iteratorNormalCompletion10=(_step10=_iterator10.next()).done);_iteratorNormalCompletion10=true){var id=_step10.value;var repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'spell_level']){finalSetAttrs[repeatingString+'spell_level']=(0,_utilities.ordinalSpellLevel)(v[repeatingString+'spell_level']);}if(v[repeatingString+'school']){finalSetAttrs[repeatingString+'school']=v[repeatingString+'school'].toUpperCase();}if(v[repeatingString+'casting_time']){finalSetAttrs[repeatingString+'casting_time']=v[repeatingString+'casting_time'].trim().toUpperCase().replace(/\s/g,'_');}if(v[repeatingString+'components']){finalSetAttrs[repeatingString+'components']='COMPONENTS_'+v[repeatingString+'components'].trim().toUpperCase().replace(/\s/g,'_');}if(v[repeatingString+'duration']){var duration='';if(v[repeatingString+'concentration']==='Yes'){duration+='CONCENTRATION_';}duration+=v[repeatingString+'duration'].trim().toUpperCase().replace(/\s/g,'_');finalSetAttrs[repeatingString+'duration']=duration;}if(finalSetAttrs[repeatingString+'saving_throw_vs_ability']){finalSetAttrs[repeatingString+'saving_throw_vs_ability']=v[repeatingString+'saving_throw_vs_ability'].toUpperCase();}}}catch(err){_didIteratorError10=true;_iteratorError10=err;}finally{try{if(!_iteratorNormalCompletion10&&_iterator10.return){_iterator10.return();}}finally{if(_didIteratorError10){throw _iteratorError10;}}}}});}},{key:'spellLevelForCantrips',value:function spellLevelForCantrips(){(0,_utilities.getSetRepeatingItems)('upgrade.spellLevelForCantrips',{repeatingItems:['repeating_spell'],collectionArrayAddItems:['spell_level'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion11=true;var _didIteratorError11=false;var _iteratorError11=undefined;try{for(var _iterator11=ids[Symbol.iterator](),_step11;!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=true){var id=_step11.value;var repeatingString=repeatingItem+'_'+id+'_';if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'spell_level'])||v[repeatingString+'spell_level']==='0'||v[repeatingString+'spell_level']===0){finalSetAttrs[repeatingString+'spell_level']='CANTRIP';}}}catch(err){_didIteratorError11=true;_iteratorError11=err;}finally{try{if(!_iteratorNormalCompletion11&&_iterator11.return){_iterator11.return();}}finally{if(_didIteratorError11){throw _iteratorError11;}}}}});}},{key:'spellEffectsNaming',value:function spellEffectsNaming(){(0,_utilities.getSetRepeatingItems)('upgrade.spellEffectsNaming',{repeatingItems:['repeating_spell'],collectionArrayAddItems:['special_effects_toggle','type','color','points_of_origin'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion12=true;var _didIteratorError12=false;var _iteratorError12=undefined;try{for(var _iterator12=ids[Symbol.iterator](),_step12;!(_iteratorNormalCompletion12=(_step12=_iterator12.next()).done);_iteratorNormalCompletion12=true){var id=_step12.value;var repeatingString=repeatingItem+'_'+id+'_';if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'special_effects_toggle'])){finalSetAttrs[repeatingString+'special_effects_toggle']='{{fx=@{special_effects_type}-@{special_effects_color} @{special_effects_points_of_origin}}}';if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'type'])&&v[repeatingString+'type']!=='Ranged'&&v[repeatingString+'type']!=='Melee'){finalSetAttrs[repeatingString+'special_effects_type']=v[repeatingString+'type'];}if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'color'])){finalSetAttrs[repeatingString+'special_effects_color']=v[repeatingString+'color'];}if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'points_of_origin'])){finalSetAttrs[repeatingString+'special_effects_points_of_origin']=v[repeatingString+'points_of_origin'];}}}}catch(err){_didIteratorError12=true;_iteratorError12=err;}finally{try{if(!_iteratorNormalCompletion12&&_iterator12.return){_iterator12.return();}}finally{if(_didIteratorError12){throw _iteratorError12;}}}}});}},{key:'critDamage',value:function critDamage(){(0,_utilities.getSetRepeatingItems)('upgrade.critDamage',{repeatingItems:['repeating_attack','repeating_spell','repeating_trait','repeating_action','repeating_reaction','repeating_legendaryaction','repeating_lairaction','repeating_regionaleffect'],collectionArrayAddItems:['damage','damage_crit','second_damage','second_damage_crit'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var _iteratorNormalCompletion13=true;var _didIteratorError13=false;var _iteratorError13=undefined;try{for(var _iterator13=ids[Symbol.iterator](),_step13;!(_iteratorNormalCompletion13=(_step13=_iterator13.next()).done);_iteratorNormalCompletion13=true){var id=_step13.value;var repeatingString=repeatingItem+'_'+id+'_';if(!v[repeatingString+'damage_crit']&&v[repeatingString+'damage']){finalSetAttrs[repeatingString+'damage_crit']=v[repeatingString+'damage'];}else if(v[repeatingString+'damage']&&v[repeatingString+'damage_crit']){finalSetAttrs[repeatingString+'damage_crit']=v[repeatingString+'damage']+' + '+v[repeatingString+'damage_crit'];}if(!v[repeatingString+'second_damage_crit']&&v[repeatingString+'second_damage']){finalSetAttrs[repeatingString+'second_damage_crit']=v[repeatingString+'second_damage'];}else if(v[repeatingString+'second_damage']&&v[repeatingString+'second_damage_crit']){finalSetAttrs[repeatingString+'second_damage_crit']=v[repeatingString+'second_damage']+' + '+v[repeatingString+'second_damage_crit'];}}}catch(err){_didIteratorError13=true;_iteratorError13=err;}finally{try{if(!_iteratorNormalCompletion13&&_iterator13.return){_iterator13.return();}}finally{if(_didIteratorError13){throw _iteratorError13;}}}}});}},{key:'oldValueToNew',value:function oldValueToNew(v,finalSetAttrs,repeatingString,newRepeatingString,field){finalSetAttrs[''+newRepeatingString+field]=v[''+repeatingString+field];}},{key:'resourcesToTraits',value:function resourcesToTraits(){var _this5=this;(0,_utilities.getSetRepeatingItems)('upgrade.resourcesToTraits',{repeatingItems:['repeating_resource'],collectionArrayAddItems:['name','uses','uses_max','toggle_details','recharge','extras_toggle','freetext','freeform'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var fieldsToSwap=['name','uses','uses_max','toggle_details','recharge','extras_toggle','freetext','freeform'];var _iteratorNormalCompletion14=true;var _didIteratorError14=false;var _iteratorError14=undefined;try{for(var _iterator14=ids[Symbol.iterator](),_step14;!(_iteratorNormalCompletion14=(_step14=_iterator14.next()).done);_iteratorNormalCompletion14=true){var id=_step14.value;var _iteratorNormalCompletion15=true;var _didIteratorError15=false;var _iteratorError15=undefined;try{for(var _iterator15=fieldsToSwap[Symbol.iterator](),_step15;!(_iteratorNormalCompletion15=(_step15=_iterator15.next()).done);_iteratorNormalCompletion15=true){var field=_step15.value;_this5.oldValueToNew(v,finalSetAttrs,repeatingItem+'_'+id+'_','repeating_trait_'+generateRowID()+'_',field);}}catch(err){_didIteratorError15=true;_iteratorError15=err;}finally{try{if(!_iteratorNormalCompletion15&&_iterator15.return){_iterator15.return();}}finally{if(_didIteratorError15){throw _iteratorError15;}}}}}catch(err){_didIteratorError14=true;_iteratorError14=err;}finally{try{if(!_iteratorNormalCompletion14&&_iterator14.return){_iterator14.return();}}finally{if(_didIteratorError14){throw _iteratorError14;}}}}});}},{key:'classFeaturesToTraits',value:function classFeaturesToTraits(){var _this6=this;(0,_utilities.getSetRepeatingItems)('upgrade.classFeaturesToTraits',{repeatingItems:['repeating_classfeature'],collectionArrayAddItems:['name','uses','uses_max','recharge','saving_throw_toggle','saving_throw_condition','saving_throw_ability','saving_throw_bonus','saving_throw_vs_ability','saving_throw_failure','saving_throw_success','damage_toggle','damage','damage_ability','damage_bonus','damage_type','second_damage_toggle','second_damage','second_damage_ability','second_damage_bonus','second_damage_type','heal','heal_ability','heal_bonus','heal_query_toggle','extras_toggle','emote','freetext','freeform'],callback:function callback(v,finalSetAttrs,ids,repeatingItem){var fieldsToSwap=['name','uses','uses_max','recharge','saving_throw_toggle','saving_throw_condition','saving_throw_ability','saving_throw_bonus','saving_throw_vs_ability','saving_throw_failure','saving_throw_success','damage_toggle','damage','damage_ability','damage_bonus','damage_type','second_damage_toggle','second_damage','second_damage_ability','second_damage_bonus','second_damage_type','heal','heal_ability','heal_bonus','heal_query_toggle','extras_toggle','emote','freetext','display_text','freeform'];var _iteratorNormalCompletion16=true;var _didIteratorError16=false;var _iteratorError16=undefined;try{for(var _iterator16=ids[Symbol.iterator](),_step16;!(_iteratorNormalCompletion16=(_step16=_iterator16.next()).done);_iteratorNormalCompletion16=true){var id=_step16.value;var _iteratorNormalCompletion17=true;var _didIteratorError17=false;var _iteratorError17=undefined;try{for(var _iterator17=fieldsToSwap[Symbol.iterator](),_step17;!(_iteratorNormalCompletion17=(_step17=_iterator17.next()).done);_iteratorNormalCompletion17=true){var field=_step17.value;_this6.oldValueToNew(v,finalSetAttrs,repeatingItem+'_'+id+'_','repeating_trait_'+generateRowID()+'_',field);}}catch(err){_didIteratorError17=true;_iteratorError17=err;}finally{try{if(!_iteratorNormalCompletion17&&_iterator17.return){_iterator17.return();}}finally{if(_didIteratorError17){throw _iteratorError17;}}}}}catch(err){_didIteratorError16=true;_iteratorError16=err;}finally{try{if(!_iteratorNormalCompletion16&&_iterator16.return){_iterator16.return();}}finally{if(_didIteratorError16){throw _iteratorError16;}}}}});}},{key:'versionCompare',value:function versionCompare(v1,v2,options){var lexicographical=options&&options.lexicographical;var zeroExtend=options&&options.zeroExtend;var v1parts=v1.split('.');var v2parts=v2.split('.');var isValidPart=function isValidPart(x){return(lexicographical?/^\d+[A-Za-z]*$/:/^\d+$/).test(x);};if(!v1parts.every(isValidPart)||!v2parts.every(isValidPart)){return NaN;}if(zeroExtend){while(v1parts.length<v2parts.length){v1parts.push('0');}while(v2parts.length<v1parts.length){v2parts.push('0');}}if(!lexicographical){v1parts=v1parts.map(Number);v2parts=v2parts.map(Number);}for(var i=0;i<v1parts.length;++i){if(v2parts.length===i){return 1;}if(v1parts[i]===v2parts[i]){continue;}else if(v1parts[i]>v2parts[i]){return 1;}else{return-1;}}if(v1parts.length!==v2parts.length){return-1;}return 0;}},{key:'upgrade',value:function upgrade(){if(this.versionCompare(_version.currentVersion,'2.1.0')<0){npc.updateChallenge();resistances.updateDamageVulnerabilities();resistances.updateDamageResistances();resistances.updateDamageImmunities();resistances.updateConditionImmunities();npc.updateLanguages();npc.updateSenses();}if(this.versionCompare(_version.currentVersion,'2.1.3')<0){npc.updateType();character.updateAlignment();}if(this.versionCompare(_version.currentVersion,'2.1.5')<0){npc.updateAC();}if(this.versionCompare(_version.currentVersion,'2.1.10')<0){savingThrows.update();}if(this.versionCompare(_version.currentVersion,'2.1.13')<0){equipment.weigh();}if(this.versionCompare(_version.currentVersion,'2.1.15')<0){this.displayTextForTraits();}if(this.versionCompare(_version.currentVersion,'2.2.2')<0){this.resourcesToTraits();}if(this.versionCompare(_version.currentVersion,'2.2.4')<0){abilityChecks.updateInitiative();}if(this.versionCompare(_version.currentVersion,'2.2.5')<0){equipment.weighAmmo();}if(this.versionCompare(_version.currentVersion,'2.2.6')<0){character.updateLevels();this.extasToExtrasFix('repeating_attack');this.extasToExtrasFix('repeating_action');this.extasToExtrasFix('repeating_spell');}if(this.versionCompare(_version.currentVersion,'2.3.3')<0){attachers.update();}if(this.versionCompare(_version.currentVersion,'2.4.2')<0){abilities.updateModifiers();actions.updateChatMacro('trait');actions.updateChatMacro('action');actions.updateChatMacro('reaction');actions.updateChatMacro('legendaryaction');}if(this.versionCompare(_version.currentVersion,'2.4.3')<0){classFeatures.set();}if(this.versionCompare(_version.currentVersion,'2.4.7')<0){this.classFeaturesToTraits();}if(this.versionCompare(_version.currentVersion,'2.4.8')<0){this.fixRollTwo();}if(this.versionCompare(_version.currentVersion,'2.4.12')<0){this.armorPlusDexRemoval();equipment.updateArmor();}if(this.versionCompare(_version.currentVersion,'3.1.0')<0){attacks.updateChatMacro();}if(this.versionCompare(_version.currentVersion,'3.2.1')<0){this.critDamage();}if(this.versionCompare(_version.currentVersion,'3.2.3')<0){resistances.updateDamageResistancesVar();}if(this.versionCompare(_version.currentVersion,'3.5.0')<0){spells.updateChatMacro();}if(this.versionCompare(_version.currentVersion,'3.5.1')<0){spells.updateSlots();}if(this.versionCompare(_version.currentVersion,'3.6.1')<0){npc.updateHD();npc.switchTo();}if(this.versionCompare(_version.currentVersion,'4.1.4')<0){this.armorAbility();this.actionComponents();this.skillAbility();}if(this.versionCompare(_version.currentVersion,'4.1.5')<0){abilityChecks.updateSkill();}if(this.versionCompare(_version.currentVersion,'4.2.0')<0){character.updateD20Mod();}if(this.versionCompare(_version.currentVersion,'4.2.1')<0){this.actionComponentsToRemoveExtraFields();abilityChecks.updateMacro();this.removeToggleVar();}if(this.versionCompare(_version.currentVersion,'4.2.3')<0){equipment.updateArmor();}if(this.versionCompare(_version.currentVersion,'4.4.0')<0){savingThrows.updateCustomSavingThrows();this.newAttackToggle();spells.generateHigherLevelQueries();}if(this.versionCompare(_version.currentVersion,'4.4.1')<0){this.newAbilityDefaults();}if(this.versionCompare(_version.currentVersion,'4.4.2')<0){spells.updateShowHide();}if(this.versionCompare(_version.currentVersion,'5.0.0')<0){this.spellToTranslations();}if(this.versionCompare(_version.currentVersion,'5.0.3')<0){savingThrows.updateCustomSavingThrowToggle();}if(this.versionCompare(_version.currentVersion,'5.0.4')<0){this.defaultAbility();}if(this.versionCompare(_version.currentVersion,'5.0.6')<0){this.spellLevelForCantrips();}if(this.versionCompare(_version.currentVersion,'5.2.3')<0){this.hideFreetext();}if(this.versionCompare(_version.currentVersion,'6.0.1')<0){this.newAttackToggleTwo();spells.update();attacks.update();actions.updateAll();}if(this.versionCompare(_version.currentVersion,'6.0.4')<0){this.spellEffectsNaming();}if(this.versionCompare(_version.currentVersion,'6.1.1')<0){settings.updateShapedD20();}}}]);return Upgrade;}();
|
|
|
|
},{"./Abilities":1,"./AbilityChecks":2,"./Actions":3,"./Attachers":4,"./Attacks":5,"./Character":6,"./ClassFeatures":7,"./Equipment":9,"./Npc":12,"./Resistances":14,"./SavingThrows":15,"./Settings":16,"./Spells":17,"./constants":20,"./utilities":23,"./version":24}],20:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});var SKILLS={ACROBATICS:'dexterity',ANIMALHANDLING:'wisdom',ARCANA:'intelligence',ATHLETICS:'strength',DECEPTION:'charisma',HISTORY:'intelligence',INSIGHT:'wisdom',INTIMIDATION:'charisma',INVESTIGATION:'intelligence',MEDICINE:'wisdom',NATURE:'intelligence',PERCEPTION:'wisdom',PERFORMANCE:'charisma',PERSUASION:'charisma',RELIGION:'intelligence',SLEIGHTOFHAND:'dexterity',STEALTH:'dexterity',SURVIVAL:'wisdom'};var CLASSES=['barbarian','bard','cleric','druid','fighter','monk','paladin','ranger','rogue','sorcerer','warlock','wizard'];var ABILITIES=['strength','dexterity','constitution','intelligence','wisdom','charisma'];var TOGGLE_VARS={roll:'{{vs_ac=1}} @{roll_info} {{roll1=[[@{shaped_d20}cs>@{crit_range} + @{attack_formula}]]}} @{roll_setting}cs>@{crit_range} + @{attack_formula}]]}} {{targetAC=@{attacks_vs_target_ac}}} {{targetName=@{attacks_vs_target_name}}}',saving_throw:'{{saving_throw_condition=@{saving_throw_condition}}} {{saving_throw_dc=@{saving_throw_dc}}} {{saving_throw_vs_ability=@{saving_throw_vs_ability}}} {{saving_throw_failure=@{saving_throw_failure}}} {{saving_throw_success=@{saving_throw_success}}} {{targetName=@{attacks_vs_target_name}}}',damage:'{{damage=[[@{damage_formula}]]}} {{damage_type=@{damage_type}}} {{crit_damage=[[0d0 + @{damage_crit}[crit damage] @{damage_crit_formula}]]}}',second_damage:'{{second_damage=[[@{second_damage_formula}]]}} {{second_damage_type=@{second_damage_type}}} {{second_crit_damage=[[0d0 + @{second_damage_crit}[crit damage] @{second_damage_crit_formula}]]}}',heal:'{{heal=[[@{heal_formula}]]}}',heal_query:'?{Heal Bonus Amount|}',extras:'{{emote=@{emote}}} {{freetext=@{freetext}}} @{freeform}',higher_level:'{{cast_as_level=@{higher_level_query}}}'};exports.SKILLS=SKILLS;exports.CLASSES=CLASSES;exports.ABILITIES=ABILITIES;exports.TOGGLE_VARS=TOGGLE_VARS;
|
|
|
|
},{}],21:[function(require,module,exports){
|
|
'use strict';var _Abilities=require('./Abilities');var _AbilityChecks=require('./AbilityChecks');var _Actions=require('./Actions');var _Attachers=require('./Attachers');var _Attacks=require('./Attacks');var _Character=require('./Character');var _Equipment=require('./Equipment');var _ImportData=require('./ImportData');var _Initialize=require('./Initialize');var _Npc=require('./Npc');var _ProficiencyBonus=require('./ProficiencyBonus');var _Resistances=require('./Resistances');var _SavingThrows=require('./SavingThrows');var _Settings=require('./Settings');var _Spells=require('./Spells');var abilities=new _Abilities.Abilities();abilities.setup();var abilityChecks=new _AbilityChecks.AbilityChecks();abilityChecks.setup();var actions=new _Actions.Actions();actions.setup();var attachers=new _Attachers.Attachers();attachers.setup();var attacks=new _Attacks.Attacks();attacks.setup();var character=new _Character.Character();character.setup();var equipment=new _Equipment.Equipment();equipment.setup();var importData=new _ImportData.ImportData();importData.setup();var initialize=new _Initialize.Initialize();initialize.setup();var npc=new _Npc.Npc();npc.setup();var proficiencyBonus=new _ProficiencyBonus.ProficiencyBonus();proficiencyBonus.setup();var resistances=new _Resistances.Resistances();resistances.setup();var savingThrows=new _SavingThrows.SavingThrows();savingThrows.setup();var settings=new _Settings.Settings();settings.setup();var spells=new _Spells.Spells();spells.setup();
|
|
|
|
},{"./Abilities":1,"./AbilityChecks":2,"./Actions":3,"./Attachers":4,"./Attacks":5,"./Character":6,"./Equipment":9,"./ImportData":10,"./Initialize":11,"./Npc":12,"./ProficiencyBonus":13,"./Resistances":14,"./SavingThrows":15,"./Settings":16,"./Spells":17}],22:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.updateHigherLevelToggle=exports.updateHealToggle=exports.updateDamageToggle=exports.updateSavingThrowToggle=exports.updateAttackToggle=undefined;var _constants=require('./constants');var _utilities=require('./utilities');var parseAttackComponent=function parseAttackComponent(v,repeatingString,finalSetAttrs,options){var parsed=v[repeatingString+'parsed'];if((0,_utilities.isUndefinedOrEmpty)(parsed)){parsed=finalSetAttrs[repeatingString+'parsed'];}if((0,_utilities.isUndefinedOrEmpty)(parsed)||parsed.indexOf(options.parseName)===-1){var aTriggerFieldExists=false;if(options.triggerFields){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=options.triggerFields[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var triggerField=_step.value;if(!(0,_utilities.isUndefinedOrEmpty)(v[''+repeatingString+triggerField])){aTriggerFieldExists=true;}}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}if(aTriggerFieldExists&&(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+options.toggleField])){finalSetAttrs[repeatingString+options.toggleField]=options.toggleFieldSetTo;if((0,_utilities.isUndefinedOrEmpty)(finalSetAttrs[repeatingString+'parsed'])){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' '+options.parseName;}if(options.attackAbility&&(0,_utilities.isUndefined)(v[repeatingString+'attack_ability'])){finalSetAttrs[repeatingString+'attack_ability']=v.default_ability;}if(options.addCastingModifier){if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'damage'])&&(0,_utilities.isUndefined)(v[repeatingString+'damage_ability'])){finalSetAttrs[repeatingString+'damage_ability']=v.default_ability;}if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'heal'])&&(0,_utilities.isUndefined)(v[repeatingString+'heal_ability'])){finalSetAttrs[repeatingString+'heal_ability']=v.default_ability;}}if(options.addSecondCastingModifier){if(!(0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'second_damage'])&&(0,_utilities.isUndefined)(v[repeatingString+'second_damage_ability'])){finalSetAttrs[repeatingString+'second_damage_ability']=v.default_ability;}}}};var updateAttackToggle=function updateAttackToggle(v,finalSetAttrs,repeatingString,options){parseAttackComponent(v,repeatingString,finalSetAttrs,{attackAbility:options.attackAbility,parseName:'attack',toggleField:'roll_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.roll,triggerFields:['type','attack_bonus']});var attackFormula='';var attackToggle=v[repeatingString+'roll_toggle'];var toHit=0;if(!attackToggle||attackToggle===_constants.TOGGLE_VARS.roll){var proficiency=v[repeatingString+'proficiency'];if(!proficiency||proficiency==='on'){var pb=(0,_utilities.getIntValue)(v.pb);toHit+=pb;attackFormula+=pb+'[proficient]';}var attackAbility=v[repeatingString+'attack_ability'];if((0,_utilities.isUndefined)(attackAbility)&&v[repeatingString+'type']==='Melee Weapon'){attackAbility='strength';finalSetAttrs[repeatingString+'attack_ability']=attackAbility;}else if((0,_utilities.isUndefined)(attackAbility)&&v[repeatingString+'type']==='Ranged Weapon'){attackAbility='dexterity';finalSetAttrs[repeatingString+'attack_ability']=attackAbility;}else if(finalSetAttrs[repeatingString+'attack_ability']){attackAbility=finalSetAttrs[repeatingString+'attack_ability'];}attackAbility=(0,_utilities.getAbilityValue)(v,attackAbility);if((0,_utilities.exists)(attackAbility)){toHit+=attackAbility;attackFormula+=(0,_utilities.addArithmeticOperator)(attackFormula,attackAbility)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'attack_ability'])+']';}var attackBonus=(0,_utilities.getIntValue)(v[repeatingString+'attack_bonus']);if((0,_utilities.exists)(attackBonus)){toHit+=attackBonus;attackFormula+=(0,_utilities.addArithmeticOperator)(attackFormula,attackBonus)+'[bonus]';}if((0,_utilities.exists)(options.globalAttackBonus)){if(!isNaN(options.globalAttackBonus)){toHit+=(0,_utilities.getIntValue)(options.globalAttackBonus);}attackFormula+=(0,_utilities.addArithmeticOperator)(attackFormula,options.globalAttackBonus)+'['+options.globalAttackBonusLabel+']';}if(v[repeatingString+'type']==='Melee Weapon'){if((0,_utilities.exists)(options.globalMeleeAttackBonus)){if(!isNaN(options.globalMeleeAttackBonus)){toHit+=(0,_utilities.getIntValue)(options.globalMeleeAttackBonus);}attackFormula+=(0,_utilities.addArithmeticOperator)(attackFormula,options.globalMeleeAttackBonus)+'[global melee attack bonus]';}}else if(v[repeatingString+'type']==='Ranged Weapon'){if((0,_utilities.exists)(options.globalRangedAttackBonus)){if(!isNaN(options.globalRangedAttackBonus)){toHit+=(0,_utilities.getIntValue)(options.globalRangedAttackBonus);}attackFormula+=(0,_utilities.addArithmeticOperator)(attackFormula,options.globalRangedAttackBonus)+'[global ranged attack bonus]';}}finalSetAttrs[repeatingString+'attack_formula']=attackFormula;}if(options.type==='attack'){finalSetAttrs[repeatingString+'to_hit']=toHit;}};var updateSavingThrowToggle=function updateSavingThrowToggle(v,finalSetAttrs,repeatingString,options){parseAttackComponent(v,repeatingString,finalSetAttrs,{parseName:'savingThrow',toggleField:'saving_throw_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.saving_throw,triggerFields:['saving_throw_ability','saving_throw_bonus','saving_throw_vs_ability']});if((0,_utilities.fromVOrFinalSetAttrs)(v,finalSetAttrs,repeatingString+'saving_throw_toggle')===_constants.TOGGLE_VARS.saving_throw){var savingThrowDC=(0,_utilities.getIntValue)(v.base_dc)+(0,_utilities.getIntValue)(v.pb);var savingThrowAbility=v[repeatingString+'saving_throw_ability'];if((0,_utilities.isUndefined)(savingThrowAbility)&&v.default_ability){savingThrowAbility=v.default_ability;finalSetAttrs[repeatingString+'saving_throw_ability']=v.default_ability;}savingThrowDC+=(0,_utilities.getAbilityValue)(v,savingThrowAbility);if(options&&options.bonusDC){savingThrowDC+=(0,_utilities.getIntValue)(options.bonusDC);}savingThrowDC+=(0,_utilities.getIntValue)(v[repeatingString+'saving_throw_bonus']);finalSetAttrs[repeatingString+'saving_throw_dc']=savingThrowDC;}};var updateDamageToggle=function updateDamageToggle(v,finalSetAttrs,repeatingString,options){parseAttackComponent(v,repeatingString,finalSetAttrs,{addCastingModifier:(0,_utilities.exists)(v[repeatingString+'add_casting_modifier']),parseName:'damage',toggleField:'damage_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.damage,triggerFields:['damage','damage_ability','damage_bonus','damage_type']});var damageString='';var damageFormula='';var damageToggle=v[repeatingString+'damage_toggle'];var damageAbility=v[repeatingString+'damage_ability'];var damageType=void 0;if(!damageToggle||damageToggle===_constants.TOGGLE_VARS.damage){var damageAddition=0;var damage=v[repeatingString+'damage'];if((0,_utilities.exists)(damage)){damageString+=damage;damageFormula+=damage+'[damage]';}if((0,_utilities.isUndefined)(damageAbility)&&v[repeatingString+'type']==='Melee Weapon'){damageAbility='strength';finalSetAttrs[repeatingString+'damage_ability']=damageAbility;}else if((0,_utilities.isUndefined)(damageAbility)&&v[repeatingString+'type']==='Ranged Weapon'){damageAbility='dexterity';finalSetAttrs[repeatingString+'damage_ability']=damageAbility;}if((0,_utilities.exists)(damageAbility)){var damageAbilityValue=(0,_utilities.getAbilityValue)(v,damageAbility);if((0,_utilities.exists)(damageAbilityValue)){damageAddition+=damageAbilityValue;damageFormula+=(0,_utilities.addArithmeticOperator)(damageFormula,damageAbilityValue)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'damage_ability'])+']';}}var damageBonus=(0,_utilities.getIntValue)(v[repeatingString+'damage_bonus']);if((0,_utilities.exists)(damageBonus)){damageAddition+=damageBonus;damageFormula+=(0,_utilities.addArithmeticOperator)(damageFormula,damageBonus)+'[bonus]';}if((0,_utilities.exists)(options.globalDamageBonus)){if(!isNaN(options.globalDamageBonus)){damageAddition+=(0,_utilities.getIntValue)(options.globalDamageBonus);}else{damageString+=''+(0,_utilities.addArithmeticOperator)(damageString,options.globalDamageBonus);}damageFormula+=(0,_utilities.addArithmeticOperator)(damageFormula,options.globalDamageBonus)+'[global damage bonus]';}if(options&&(0,_utilities.exists)(options.globalMeleeDamageBonus)&&v[repeatingString+'type']==='Melee Weapon'){if(!isNaN(options.globalMeleeDamageBonus)){damageAddition+=(0,_utilities.getIntValue)(options.globalMeleeDamageBonus);}else{damageString+=''+(0,_utilities.addArithmeticOperator)(damageString,options.globalMeleeDamageBonus);}damageFormula+=(0,_utilities.addArithmeticOperator)(damageFormula,options.globalMeleeDamageBonus)+'[global melee damage bonus]';}else if(options&&(0,_utilities.exists)(options.globalRangedDamageBonus)&&v[repeatingString+'type']==='Ranged Weapon'){if(!isNaN(options.globalRangedDamageBonus)){damageAddition+=(0,_utilities.getIntValue)(options.globalRangedDamageBonus);}else{damageString+=''+(0,_utilities.addArithmeticOperator)(damageString,options.globalRangedDamageBonus);}damageFormula+=(0,_utilities.addArithmeticOperator)(damageFormula,options.globalRangedDamageBonus)+'[global ranged damage bonus]';}if((0,_utilities.exists)(damageAddition)){damageString+=(0,_utilities.addArithmeticOperator)(damageString,damageAddition);}damageType=v[repeatingString+'damage_type'];if((0,_utilities.exists)(damageType)){if((0,_utilities.hasUpperCase)(damageType)){damageType=damageType.toLowerCase();finalSetAttrs[repeatingString+'damage_type']=damageType;}damageString+=' '+damageType;}}if(!(0,_utilities.exists)(damageFormula)){damageFormula=0;}finalSetAttrs[repeatingString+'damage_formula']=damageFormula;parseAttackComponent(v,repeatingString,finalSetAttrs,{addSecondCastingModifier:(0,_utilities.exists)(v[repeatingString+'add_second_casting_modifier']),parseName:'secondDamage',toggleField:'second_damage_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.second_damage,triggerFields:['second_damage','second_damage_ability','second_damage_bonus','second_damage_type']});var secondDamageFormula='';var secondDamageToggle=(0,_utilities.fromVOrFinalSetAttrs)(v,finalSetAttrs,repeatingString+'second_damage_toggle');if(secondDamageToggle===_constants.TOGGLE_VARS.second_damage){var secondDamageAddition=0;var secondDamage=v[repeatingString+'second_damage'];if((0,_utilities.exists)(secondDamage)){damageString+=' + '+secondDamage;secondDamageFormula+=secondDamage+'[second damage]';}var secondDamageAbility=v[repeatingString+'second_damage_ability'];if((0,_utilities.exists)(secondDamageAbility)){secondDamageAbility=(0,_utilities.getAbilityValue)(v,secondDamageAbility);if((0,_utilities.exists)(secondDamageAbility)){secondDamageAddition+=secondDamageAbility;secondDamageFormula+=(0,_utilities.addArithmeticOperator)(secondDamageFormula,secondDamageAbility)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'second_damage_ability'])+']';}}var secondDamageBonus=(0,_utilities.getIntValue)(v[repeatingString+'second_damage_bonus']);if((0,_utilities.exists)(secondDamageBonus)){secondDamageAddition+=secondDamageBonus;secondDamageFormula+=(0,_utilities.addArithmeticOperator)(secondDamageFormula,secondDamageBonus)+'[bonus]';}if((0,_utilities.exists)(secondDamageAddition)){damageString+=(0,_utilities.addArithmeticOperator)(damageString,secondDamageAddition);}var secondDamageType=v[repeatingString+'second_damage_type'];if((0,_utilities.exists)(secondDamageType)){if((0,_utilities.hasUpperCase)(secondDamageType)){secondDamageType=secondDamageType.toLowerCase();finalSetAttrs[repeatingString+'second_damage_type']=secondDamageType;}damageString+=' '+secondDamageType;}if((0,_utilities.isUndefinedOrEmpty)(v[repeatingString+'parsed'])||v[repeatingString+'parsed'].indexOf('damageProperties')===-1){var damageProperties=v[repeatingString+'properties'];if((0,_utilities.exists)(damageProperties)){if(damageProperties.indexOf('Versatile')!==-1){if(!(0,_utilities.exists)(damageAbility)){damageAbility='strength';}finalSetAttrs[repeatingString+'second_damage_ability']=damageAbility;finalSetAttrs[repeatingString+'second_damage_type']=damageType;}if(!finalSetAttrs[repeatingString+'parsed']){finalSetAttrs[repeatingString+'parsed']='';}finalSetAttrs[repeatingString+'parsed']+=' damageProperties';}}}if(!(0,_utilities.exists)(secondDamageFormula)){secondDamageFormula=0;}finalSetAttrs[repeatingString+'second_damage_formula']=secondDamageFormula;if(options.type==='attack'){finalSetAttrs[repeatingString+'damage_string']=damageString;}};var updateHealToggle=function updateHealToggle(v,finalSetAttrs,repeatingString){parseAttackComponent(v,repeatingString,finalSetAttrs,{addCastingModifier:(0,_utilities.exists)(v[repeatingString+'add_casting_modifier']),parseName:'heal',toggleField:'heal_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.heal,triggerFields:['heal','heal_query_toggle']});var healFormula='';var healToggle=v[repeatingString+'heal_toggle'];if(healToggle===_constants.TOGGLE_VARS.heal){if(!(0,_utilities.isUndefined)(v[repeatingString+'heal'])){healFormula='@{heal}[heal]';}if(!(0,_utilities.isUndefined)(v[repeatingString+'heal_ability'])){var healAbility=(0,_utilities.getAbilityValue)(v,v[repeatingString+'heal_ability']);healFormula+=(0,_utilities.addArithmeticOperator)(healFormula,healAbility)+'['+(0,_utilities.getAbilityShortName)(v[repeatingString+'heal_ability'])+']';}if(!(0,_utilities.isUndefined)(v[repeatingString+'heal_bonus'])){var healBonus=(0,_utilities.getIntValue)(v[repeatingString+'heal_bonus']);healFormula+=(0,_utilities.addArithmeticOperator)(healFormula,healBonus)+'[bonus]';}if(!(0,_utilities.isUndefined)(v.global_spell_heal_bonus)){if(healFormula){healFormula+=' + ';}healFormula+='@{global_spell_heal_bonus}[global spell heal bonus]';}if(v[repeatingString+'heal_query_toggle']===_constants.TOGGLE_VARS.heal_query){if(healFormula){healFormula+=' + ';}healFormula+='@{heal_query_toggle}[query amount]';}finalSetAttrs[repeatingString+'heal_formula']=healFormula;}};var updateHigherLevelToggle=function updateHigherLevelToggle(v,finalSetAttrs,repeatingString){parseAttackComponent(v,repeatingString,finalSetAttrs,{addCastingModifier:(0,_utilities.exists)(v[repeatingString+'add_casting_modifier']),parseName:'higherLevel',toggleField:'higher_level_toggle',toggleFieldSetTo:_constants.TOGGLE_VARS.higher_level,triggerFields:['higher_level_dice','higher_level_die','second_higher_level_dice','second_higher_level_die','higher_level_heal']});var higherLevelToggle=v[repeatingString+'higher_level_toggle'];if((0,_utilities.exists)(higherLevelToggle)&&higherLevelToggle===_constants.TOGGLE_VARS.higher_level){var spellLevel=(0,_utilities.getIntValue)(v[repeatingString+'spell_level']);finalSetAttrs[repeatingString+'higher_level_query']='@{higher_level_query_'+spellLevel+'}';var damageToggle=v[repeatingString+'damage_toggle'];if(damageToggle&&damageToggle===_constants.TOGGLE_VARS.damage){var higherLevelDamage='((@{higher_level_query} - '+spellLevel+') * @{higher_level_dice})@{higher_level_die}[higher lvl]';finalSetAttrs[repeatingString+'damage_formula']+=(0,_utilities.addArithmeticOperator)(finalSetAttrs[repeatingString+'damage_formula'],higherLevelDamage);finalSetAttrs[repeatingString+'damage_crit_formula']=higherLevelDamage;}var secondDamageToggle=v[repeatingString+'second_damage_toggle'];if(secondDamageToggle&&secondDamageToggle===_constants.TOGGLE_VARS.second_damage){var higherLevelSecondDamage='((@{higher_level_query} - '+spellLevel+') * @{second_higher_level_dice})@{second_higher_level_die}[higher lvl]';finalSetAttrs[repeatingString+'second_damage_formula']+=(0,_utilities.addArithmeticOperator)(finalSetAttrs[repeatingString+'second_damage_formula'],higherLevelSecondDamage);finalSetAttrs[repeatingString+'second_damage_crit_formula']=higherLevelSecondDamage;}var healToggle=v[repeatingString+'heal_toggle'];if(healToggle&&healToggle===_constants.TOGGLE_VARS.heal){if(finalSetAttrs[repeatingString+'heal_formula']){finalSetAttrs[repeatingString+'heal_formula']+=' + ';}finalSetAttrs[repeatingString+'heal_formula']+='((@{higher_level_query} - '+spellLevel+') * @{higher_level_dice})@{higher_level_die}[higher lvl] + (@{higher_level_heal} * (@{higher_level_query} - '+spellLevel+'))[higher lvl flat amount]';}}};exports.updateAttackToggle=updateAttackToggle;exports.updateSavingThrowToggle=updateSavingThrowToggle;exports.updateDamageToggle=updateDamageToggle;exports.updateHealToggle=updateHealToggle;exports.updateHigherLevelToggle=updateHigherLevelToggle;
|
|
|
|
},{"./constants":20,"./utilities":23}],23:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});var capitalize=function capitalize(string){return string.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1);});};var camelize=function camelize(str){return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(match,index){if(+match===0)return'';return index===0?match.toLowerCase():match.toUpperCase();});};var firstThree=function firstThree(string){return string.substring(0,3);};var round=function round(value,places){return+(Math.round(value+'e+'+places)+'e-'+places);};var isUndefined=function isUndefined(value){if(typeof value==='undefined'){return true;}return false;};var isUndefinedOrEmpty=function isUndefinedOrEmpty(value){if(typeof value==='undefined'||value===''){return true;}return false;};var isEmpty=function isEmpty(obj){for(var prop in obj){if(obj.hasOwnProperty(prop)){return false;}}return true;};var exists=function exists(value){if(isUndefinedOrEmpty(value)||value===''||value==='0'||value===0){return false;}return true;};var getIntValue=function getIntValue(value,defaultValue){if(!defaultValue){defaultValue=0;}if(value===0||value==='0'){return 0;}return parseInt(value,10)||defaultValue;};var getFloatValue=function getFloatValue(value,defaultValue){if(!defaultValue){defaultValue=0;}return parseFloat(value)||defaultValue;};var getAbilityMod=function getAbilityMod(score){return Math.floor((getIntValue(score)-10)/2);};var getAbilityName=function getAbilityName(varName){if(!varName){return'strength';}else if(typeof varName==='string'){varName=varName.replace(/\W/g,'');}return varName;};var getAbilityValue=function getAbilityValue(v,varName){if(exists(varName)){varName=getAbilityName(varName);return getIntValue(v[varName+'_mod'],0);}return 0;};var getAbilityShortName=function getAbilityShortName(varName,capital){if(!varName){return'Str';}varName=varName.replace(/\W/g,'');if(capital){varName=capitalize(varName);}return firstThree(varName);};var getRepeatingInfo=function getRepeatingInfo(leadingString,eventInfo){var re=new RegExp(leadingString+'_(-[a-zA-Z0-9-]*)_(.*)');var match=eventInfo.sourceAttribute.match(re);var result=void 0;if(match&&match[1]&&match[2]){result={rowId:match[1],field:match[2]};}return result;};var setFinalAttrs=function setFinalAttrs(v,finalSetAttrs,name,callback){if(!isEmpty(finalSetAttrs)){for(var key in finalSetAttrs){if(finalSetAttrs.hasOwnProperty(key)){if(v[key]===finalSetAttrs[key]){delete finalSetAttrs[key];}}}if(!isEmpty(finalSetAttrs)){console.info(name,'setFinalAttrs',finalSetAttrs);}if(!isEmpty(finalSetAttrs)){if(callback){setAttrs(finalSetAttrs,{},callback);}else{setAttrs(finalSetAttrs);}}}};var fromVOrFinalSetAttrs=function fromVOrFinalSetAttrs(v,finalSetAttrs,value){if(exists(finalSetAttrs[value])){return finalSetAttrs[value];}return v[value];};var hasUpperCase=function hasUpperCase(string){return /[A-Z]/.test(string);};var ordinalSpellLevel=function ordinalSpellLevel(level){var spellLevel='';level=getIntValue(level);if(level===0){spellLevel='CANTRIP';}else{switch(level%10){case 1:spellLevel=level+'ST_LEVEL';break;case 2:spellLevel=level+'ND_LEVEL';break;case 3:spellLevel=level+'RD_LEVEL';break;default:spellLevel=level+'TH_LEVEL';break;}}return spellLevel;};var addArithmeticOperator=function addArithmeticOperator(string,number){var value=number;if(string){if(number<0){value=' - '+Math.abs(number);}else{value=' + '+number;}}return value;};var showSign=function showSign(value){if(value>=0){value='+'+value;}return value;};var numberWithCommas=function numberWithCommas(x){var parts=x.toString().split('.');parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,',');return parts.join('.');};var lowercaseDamageTypes=function lowercaseDamageTypes(string){if(!string){string='';}return string.replace('Acid','acid').replace('Cold','cold').replace('Fire','fire').replace('Force','force').replace('Lightning','lightning').replace('Necrotic','necrotic').replace('Poison','poison').replace('Psychic','psychic').replace('Radiant','radiant').replace('Thunder','thunder').replace('Bludgeoning','bludgeoning').replace('Piercing','piercing').replace('Slashing','slashing').replace('And','and').replace('From','from').replace('Nonmagical','nonmagical').replace('Weapons','weapons').replace('That','that').replace('Aren\'t','aren\'t').replace('Silvered','silvered').replace('Adamantine','adamantine');};var getSetItems=function getSetItems(name,obj){var collectionArray=obj.collectionArray||[];var finalSetAttrs={};getAttrs(collectionArray,function(v){if(obj.callback){obj.callback(v,finalSetAttrs);}setFinalAttrs(v,finalSetAttrs,name,function(){if(obj.setFinalAttrsCallback){obj.setFinalAttrsCallback();}});if(obj.returnCallback){obj.returnCallback();}});};var getSetRepeatingItems=function getSetRepeatingItems(name,obj){var collectionArray=obj.collectionArray||[];var finalSetAttrs={};if(obj.repeatingItems){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{var _loop=function _loop(){var repeatingItem=_step.value;getSectionIDs(repeatingItem,function(ids){if(obj.rowId){ids=[];ids.push(obj.rowId);}if(ids){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=ids[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var id=_step2.value;var repeatingString=repeatingItem+'_'+id+'_';if(obj.collectionArrayAddItems){var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=obj.collectionArrayAddItems[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var addItem=_step3.value;collectionArray.push(''+repeatingString+addItem);}}catch(err){_didIteratorError3=true;_iteratorError3=err;}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return();}}finally{if(_didIteratorError3){throw _iteratorError3;}}}}if(obj.itemsToPush){var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=obj.itemsToPush[Symbol.iterator](),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var itemToPush=_step4.value;collectionArray.push(''+repeatingString+itemToPush+'_'+obj.itemToPushSuffix);}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}}}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}}getAttrs(collectionArray,function(v){if(obj.callback){obj.callback(v,finalSetAttrs,ids,repeatingItem);}setFinalAttrs(v,finalSetAttrs,name,function(){if(obj.setFinalAttrsCallback){obj.setFinalAttrsCallback();}});if(obj.returnCallback){obj.returnCallback();}});});};for(var _iterator=obj.repeatingItems[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){_loop();}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}}};var sumRepeating=function sumRepeating(options,sumItems){var repeatingItem='repeating_'+options.collection;var collectionArray=[];var finalSetAttrs={};getSectionIDs(repeatingItem,function(ids){var _iteratorNormalCompletion5=true;var _didIteratorError5=false;var _iteratorError5=undefined;try{for(var _iterator5=ids[Symbol.iterator](),_step5;!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=true){var id=_step5.value;var repeatingString=repeatingItem+'_'+id+'_';collectionArray.push(repeatingString+options.toggle);if(options.qty){collectionArray.push(repeatingString+options.qty);}var _iteratorNormalCompletion9=true;var _didIteratorError9=false;var _iteratorError9=undefined;try{for(var _iterator9=sumItems[Symbol.iterator](),_step9;!(_iteratorNormalCompletion9=(_step9=_iterator9.next()).done);_iteratorNormalCompletion9=true){var sumItem=_step9.value;finalSetAttrs[sumItem.totalField]=0;if(sumItem.totalFieldSecondary){finalSetAttrs[sumItem.totalFieldSecondary]=0;}collectionArray.push(repeatingString+sumItem.fieldToAdd);if(sumItem.bonus){collectionArray.push(repeatingString+sumItem.bonus);}if(sumItem.armorType){collectionArray.push(repeatingString+sumItem.armorType);}}}catch(err){_didIteratorError9=true;_iteratorError9=err;}finally{try{if(!_iteratorNormalCompletion9&&_iterator9.return){_iterator9.return();}}finally{if(_didIteratorError9){throw _iteratorError9;}}}}}catch(err){_didIteratorError5=true;_iteratorError5=err;}finally{try{if(!_iteratorNormalCompletion5&&_iterator5.return){_iterator5.return();}}finally{if(_didIteratorError5){throw _iteratorError5;}}}if(options.getExtraFields){collectionArray=collectionArray.concat(options.getExtraFields);}getAttrs(collectionArray,function(v){var dexMod=0;if(options.collection==='armor'){dexMod=getIntValue(v.dexterity_mod);}var _iteratorNormalCompletion6=true;var _didIteratorError6=false;var _iteratorError6=undefined;try{for(var _iterator6=ids[Symbol.iterator](),_step6;!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=true){var id=_step6.value;var repeatingString=repeatingItem+'_'+id+'_';var qty=getIntValue(v[repeatingString+options.qty],1);var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{for(var _iterator8=sumItems[Symbol.iterator](),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){var sumItem=_step8.value;var fieldToAdd=getFloatValue(v[repeatingString+sumItem.fieldToAdd]);if(sumItem.bonus){fieldToAdd+=getFloatValue(v[repeatingString+sumItem.bonus]);}if(sumItem.armorType){if(!v[repeatingString+sumItem.armorType]||v[repeatingString+sumItem.armorType]==='Light Armor'){fieldToAdd+=dexMod;}else if(v[repeatingString+sumItem.armorType]==='Medium Armor'){var mediumArmorDexMod=getIntValue(v.medium_armor_max_dex,2);fieldToAdd+=Math.min(mediumArmorDexMod,dexMod);}}var itemTotal=round(qty*fieldToAdd,2);itemTotal=round(itemTotal,2);if(sumItem.itemTotal){finalSetAttrs[repeatingString+sumItem.itemTotal]=itemTotal;}var toggle=v[repeatingString+options.toggle];if(toggle!==0&&toggle!=='0'){var addToPrimary=true;var addToSecondary=false;if(sumItem.armorType){if(v[repeatingString+sumItem.armorType]==='Shield'||v[repeatingString+sumItem.armorType]==='AC'){addToSecondary=true;}else if(v[repeatingString+sumItem.armorType]==='Unarmored'){addToPrimary=false;addToSecondary=true;}}if(addToPrimary){finalSetAttrs[sumItem.totalField]+=itemTotal;}if(addToSecondary){finalSetAttrs[sumItem.totalFieldSecondary]+=itemTotal;}}}}catch(err){_didIteratorError8=true;_iteratorError8=err;}finally{try{if(!_iteratorNormalCompletion8&&_iterator8.return){_iterator8.return();}}finally{if(_didIteratorError8){throw _iteratorError8;}}}}}catch(err){_didIteratorError6=true;_iteratorError6=err;}finally{try{if(!_iteratorNormalCompletion6&&_iterator6.return){_iterator6.return();}}finally{if(_didIteratorError6){throw _iteratorError6;}}}var _iteratorNormalCompletion7=true;var _didIteratorError7=false;var _iteratorError7=undefined;try{for(var _iterator7=sumItems[Symbol.iterator](),_step7;!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=true){var _sumItem=_step7.value;if(_sumItem.totalField&&!exists(finalSetAttrs[_sumItem.totalField])){finalSetAttrs[_sumItem.totalField]=0;}if(_sumItem.totalFieldSecondary&&!exists(finalSetAttrs[_sumItem.totalFieldSecondary])){finalSetAttrs[_sumItem.totalFieldSecondary]=0;}}}catch(err){_didIteratorError7=true;_iteratorError7=err;}finally{try{if(!_iteratorNormalCompletion7&&_iterator7.return){_iterator7.return();}}finally{if(_didIteratorError7){throw _iteratorError7;}}}if(options.collection==='armor'&&!getIntValue(v.is_npc)){finalSetAttrs.ac_unarmored_calc+=10+dexMod+getAbilityValue(v,v.ac_unarmored_ability);finalSetAttrs.AC=Math.max(finalSetAttrs.ac_armored_calc,finalSetAttrs.ac_unarmored_calc);}setFinalAttrs(v,finalSetAttrs,'sumRepeating');});});};var getSkillIdByStorageName=function getSkillIdByStorageName(v,repeatingItem,ids,prop){var _iteratorNormalCompletion10=true;var _didIteratorError10=false;var _iteratorError10=undefined;try{for(var _iterator10=ids[Symbol.iterator](),_step10;!(_iteratorNormalCompletion10=(_step10=_iterator10.next()).done);_iteratorNormalCompletion10=true){var id=_step10.value;var repeatingString=repeatingItem+'_'+id+'_';if(v[repeatingString+'storage_name']===prop||v[repeatingString+'storage_name']===camelize(prop)){return id;}}}catch(err){_didIteratorError10=true;_iteratorError10=err;}finally{try{if(!_iteratorNormalCompletion10&&_iterator10.return){_iterator10.return();}}finally{if(_didIteratorError10){throw _iteratorError10;}}}};var setCritDamage=function setCritDamage(v,finalSetAttrs,repeatingString){if(!v[repeatingString+'damage_crit']&&v[repeatingString+'damage']){finalSetAttrs[repeatingString+'damage_crit']=v[repeatingString+'damage'];}if(!v[repeatingString+'second_damage_crit']&&v[repeatingString+'second_damage']){finalSetAttrs[repeatingString+'second_damage_crit']=v[repeatingString+'second_damage'];}};var updateHD=function updateHD(v,finalSetAttrs,hd){for(var key in hd){if(hd.hasOwnProperty(key)){if(hd[key]&&hd[key]!==0){finalSetAttrs['hd_'+key]=hd[key];finalSetAttrs['hd_'+key+'_max']=hd[key];finalSetAttrs['hd_'+key+'_query']='?{HD';for(var x=1;x<=hd[key];x++){finalSetAttrs['hd_'+key+'_query']+='|'+x;}finalSetAttrs['hd_'+key+'_query']+='}';finalSetAttrs['hd_'+key+'_toggle']=1;}else{if(!isUndefinedOrEmpty(v['hd_'+key])){finalSetAttrs['hd_'+key]=0;}if(!isUndefinedOrEmpty(v['hd_'+key+'_max'])){finalSetAttrs['hd_'+key+'_max']=0;}if(!isUndefinedOrEmpty(v['hd_'+key+'_query'])){finalSetAttrs['hd_'+key+'_query']='';}if(exists(v['hd_'+key+'_toggle'])){finalSetAttrs['hd_'+key+'_toggle']=0;}}}}};exports.capitalize=capitalize;exports.camelize=camelize;exports.firstThree=firstThree;exports.round=round;exports.isUndefined=isUndefined;exports.isUndefinedOrEmpty=isUndefinedOrEmpty;exports.isEmpty=isEmpty;exports.exists=exists;exports.getIntValue=getIntValue;exports.getFloatValue=getFloatValue;exports.getAbilityMod=getAbilityMod;exports.getAbilityName=getAbilityName;exports.getAbilityValue=getAbilityValue;exports.getAbilityShortName=getAbilityShortName;exports.getRepeatingInfo=getRepeatingInfo;exports.setFinalAttrs=setFinalAttrs;exports.fromVOrFinalSetAttrs=fromVOrFinalSetAttrs;exports.hasUpperCase=hasUpperCase;exports.ordinalSpellLevel=ordinalSpellLevel;exports.addArithmeticOperator=addArithmeticOperator;exports.showSign=showSign;exports.numberWithCommas=numberWithCommas;exports.lowercaseDamageTypes=lowercaseDamageTypes;exports.getSetItems=getSetItems;exports.getSetRepeatingItems=getSetRepeatingItems;exports.sumRepeating=sumRepeating;exports.getSkillIdByStorageName=getSkillIdByStorageName;exports.setCritDamage=setCritDamage;exports.updateHD=updateHD;
|
|
|
|
},{}],24:[function(require,module,exports){
|
|
'use strict';Object.defineProperty(exports,"__esModule",{value:true});var currentVersion='6.1.1';exports.currentVersion=currentVersion;
|
|
|
|
},{}]},{},[21]);
|
|
</script>
|
|
<rolltemplate class="sheet-rolltemplate-5e-shaped">
|
|
<div class="rt-card">
|
|
<div class="sheet-tooltip-position-wrapper">
|
|
{{#advantage}}
|
|
<div class="sheet-tooltip">
|
|
<div class="tooltip-toggle-text advantage-circle advantage"></div>
|
|
<div class="sheet-tooltip-content-left sheet-tooltip-small sheet-small-label">
|
|
<span><span data-i18n="ADVANTAGE">Advantage</span></span>
|
|
</div>
|
|
</div>
|
|
{{/advantage}}
|
|
{{#disadvantage}}
|
|
<div class="sheet-tooltip">
|
|
<div class="tooltip-toggle-text advantage-circle disadvantage"></div>
|
|
<div class="sheet-tooltip-content-left sheet-tooltip-small sheet-small-label">
|
|
<span><span data-i18n="DISADVANTAGE">Disadvantage</span></span>
|
|
</div>
|
|
</div>
|
|
{{/disadvantage}}
|
|
</div>
|
|
<div class="rt-title-wrap">
|
|
<span class="rt-title {{#action}} action{{/action}}{{#spell}} spell{{/spell}}{{#ability}} ability{{/ability}}{{#saving_throw}} saving-throw{{/saving_throw}}{{#death_saving_throw}} death-saving-throw{{/death_saving_throw}}">
|
|
{{title}}
|
|
</span>
|
|
</div>
|
|
<div class="rt-subheader">
|
|
{{#spell}}
|
|
<div class="italic">
|
|
{{spell_level}}{{#cast_as_level}} (<span class="lowercase" data-i18n="AS">as</span> {{cast_as_level}}){{/cast_as_level}}{{#school}} {{school}}{{/school}}{{#ritual}}
|
|
(<span class="lowercase" data-i18n="RITUAL">ritual</span>){{/ritual}}
|
|
</div>
|
|
{{/spell}}
|
|
{{#show_character_name}}
|
|
<div class="rt-character-name">{{character_name}}</div>
|
|
{{/show_character_name}}
|
|
{{#subheader}}
|
|
<div>{{subheader}}</div>
|
|
{{/subheader}}
|
|
</div>
|
|
|
|
{{#emote}}
|
|
<p class="rt-emote">{{character_name}} {{emote}}</p>
|
|
{{/emote}}
|
|
<div class="rt-content">
|
|
{{#uses}}
|
|
<div class="no-border">
|
|
<div class="bold"><span data-i18n="USES">Uses</span>:</span> {{uses}} / {{uses_max}}</div>
|
|
</div>
|
|
{{/uses}}
|
|
{{#casting_time}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="CASTING_TIME">Casting Time</span>:</span> <span>{{casting_time}}</span>
|
|
</div>
|
|
{{/casting_time}}
|
|
{{#range}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="RANGE">Range</span>:</span> <span>{{range}}</span> <span></span> <span>{{#ammo}}{{ammo}}{{#ammo_name}}{{ammo_name}}{{/ammo_name}}{{^ammo_name}}<span class="lowercase" data-i18n="AMMO">ammo</span>{{/ammo_name}}{{/ammo}}</span>
|
|
</div>
|
|
{{/range}}
|
|
{{#reach}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="REACH">Reach</span>:</span> <span>{{reach}}</span>
|
|
</div>
|
|
{{/reach}}
|
|
{{#components}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="COMPONENTS">Components</span>:</span>
|
|
{{components}}
|
|
{{#materials}}({{materials}}){{/materials}}
|
|
</div>
|
|
{{/components}}
|
|
{{#duration}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="DURATION">Duration</span>:</span>
|
|
<span>{{duration}}</span>
|
|
</div>
|
|
{{/duration}}
|
|
{{#target}}
|
|
<div class="no-border">
|
|
<span class="bold"><span data-i18n="TARGET">Target</span>:</span> <span>{{target}}</span>
|
|
</div>
|
|
{{/target}}
|
|
{{#content}}
|
|
<div class="mar-t-md{{#hide_spell_content}} gm-info-block{{/hide_spell_content}}">{{content}}</div>
|
|
{{/content}}
|
|
{{#text_top}}
|
|
<div class="output-small">{{text_top}}</div>
|
|
{{/text_top}}
|
|
{{#roll1}}
|
|
<div>
|
|
<div class="shaped-row{{^roll2}} center{{/roll2}}{{#attack}}{{#hide_attack}} gm-info-flex{{/hide_attack}}{{/attack}}{{#action}}{{#hide_attack}} gm-info-flex{{/hide_attack}}{{/action}}{{#ability}}{{#hide_ability_checks}} gm-info-flex{{/hide_ability_checks}}{{/ability}}{{#saving_throw}}{{#hide_saving_throws}} gm-info-flex{{/hide_saving_throws}}{{/saving_throw}}">
|
|
<div class="outer-padding output{{#roll2}} col-50 right{{/roll2}}">{{roll1}}</div>
|
|
{{#roll2}}
|
|
<div class="col-50 outer-padding output border-left">{{roll2}}</div>
|
|
{{/roll2}}
|
|
</div>
|
|
{{#vs_ac}}
|
|
<div class="output-small-label center ">
|
|
<span data-i18n="VS">vs</span>
|
|
{{#targetName}}
|
|
<span>{{targetName}}</span>
|
|
{{/targetName}}
|
|
<span data-i18n="AC">AC</span>
|
|
{{#targetAC}}
|
|
<span>{{targetAC}}</span>
|
|
{{/targetAC}}
|
|
</div>
|
|
{{/vs_ac}}
|
|
</div>
|
|
{{/roll1}}
|
|
{{#saving_throw_dc}}
|
|
<div class="center">
|
|
{{#saving_throw_condition}}
|
|
<div class="output-small-label">{{saving_throw_condition}}</div>
|
|
{{/saving_throw_condition}}
|
|
{{#saving_throw_dc}}
|
|
{{#targetName}}
|
|
<div class="col-100 output-small-label">
|
|
<span data-i18n="VS">vs</span>
|
|
<span>{{targetName}}</span>
|
|
</div>
|
|
{{/targetName}}
|
|
<div>
|
|
<span class="output-small">
|
|
<span class="{{#hide_saving_throw_dc}}gm-info-inline-block{{/hide_saving_throw_dc}}"><span data-i18n="DC">DC</span> {{saving_throw_dc}}</span>
|
|
<span>[<span data-i18n="{{saving_throw_vs_ability}}">{{saving_throw_vs_ability}}</span>](~target|shaped_{{saving_throw_vs_ability}}_saving_throw)</span>
|
|
<span data-i18n="SAVING_THROW" class="lowercase">Saving throw</span>
|
|
</span>
|
|
</div>
|
|
{{/saving_throw_dc}}
|
|
{{#saving_throw_failure}}
|
|
<div class="{{#hide_saving_throw_failure}}gm-info-block{{/hide_saving_throw_failure}}">
|
|
<span class="bold italic"><span data-i18n="SAVE_FAILURE">Save Failure</span>.</span>
|
|
{{saving_throw_failure}}
|
|
</div>
|
|
{{/saving_throw_failure}}
|
|
{{#saving_throw_success}}
|
|
<div class="{{#hide_saving_throw_success}}gm-info-block{{/hide_saving_throw_success}}">
|
|
<span class="bold italic"><span data-i18n="SAVE_SUCCESS">Save Success</span>.</span>
|
|
{{saving_throw_success}}
|
|
</div>
|
|
{{/saving_throw_success}}
|
|
</div>
|
|
{{/saving_throw_dc}}
|
|
{{#damage}}
|
|
<div class="shaped-row zebra vert-center{{^second_damage}} center{{/second_damage}}{{#hide_damage}} gm-info-flex{{/hide_damage}}">
|
|
<div class="{{#second_damage}}col-45 right{{/second_damage}}">
|
|
<div class="inline-block">
|
|
<div class="output center">
|
|
<span>{{damage}}</span>
|
|
{{#rollWasCrit() roll1}}
|
|
<span>+ {{crit_damage}}</span>
|
|
{{/rollWasCrit() roll1}}
|
|
{{#^rollWasCrit() roll1}}
|
|
{{#rollWasCrit() roll2}}
|
|
<span>+ {{crit_damage}}</span>
|
|
{{/rollWasCrit() roll2}}
|
|
{{/^rollWasCrit() roll1}}
|
|
</div>
|
|
<div class="output-small-label center">
|
|
{{damage_type}}
|
|
{{^damage_type}}
|
|
<span class="lowercase" data-i18n="DAMAGE">damage</span>
|
|
{{/damage_type}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{/damage}}
|
|
{{#second_damage}}
|
|
{{#damage}}
|
|
<div class="col-10 center">
|
|
<div class="output">+</div>
|
|
<div class="height-one-em"></div>
|
|
</div>
|
|
{{/damage}}
|
|
{{^damage}}
|
|
<div class="shaped-row zebra vert-center">
|
|
{{/damage}}
|
|
<div class="col-45">
|
|
<div class="inline-block">
|
|
<div class="output center">
|
|
<span>{{second_damage}}</span>
|
|
{{#rollWasCrit() roll1}}
|
|
<span>+ {{second_crit_damage}}</span>
|
|
{{/rollWasCrit() roll1}}
|
|
{{#^rollWasCrit() roll1}}
|
|
{{#rollWasCrit() roll2}}
|
|
<span>+ {{second_crit_damage}}</span>
|
|
{{/rollWasCrit() roll2}}
|
|
{{/^rollWasCrit() roll1}}
|
|
</div>
|
|
<div class="output-small-label center">
|
|
{{second_damage_type}}
|
|
{{^second_damage_type}}
|
|
<span class="lowercase" data-i18n="DAMAGE">damage</span>
|
|
{{/second_damage_type}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{^damage}}
|
|
</div>
|
|
{{/damage}}
|
|
{{/second_damage}}
|
|
{{#damage}}
|
|
</div>
|
|
{{/damage}}
|
|
{{#heal}}
|
|
<div class="vert-center output-small"><span data-i18n="HEAL_FOR">Heal for</span> {{heal}} <span class="lowercase" data-i18n="HIT_POINTS">hit points</span></div>
|
|
{{/heal}}
|
|
{{#death_saving_throw_successes}}
|
|
<div class="shaped-row space-around vert-center">
|
|
<div>
|
|
<span data-i18n="SUCCESSES">Successes</span> {{death_saving_throw_successes}} / 3
|
|
</div>
|
|
{{#death_saving_throw_failures}}
|
|
<div>
|
|
<span data-i18n="FAILURES">Failures</span> {{death_saving_throw_failures}} / 3
|
|
</div>
|
|
{{/death_saving_throw_failures}}
|
|
</div>
|
|
{{/death_saving_throw_successes}}
|
|
{{#spell_list}}
|
|
<div class="{{#spells_text_size}}output-small{{/spells_text_size}}">
|
|
{{#cantrips}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="CANTRIPS">Cantrips</span>.</span>
|
|
{{cantrips}}
|
|
</div>
|
|
{{/cantrips}}
|
|
{{#spells_level_1_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="1ST_LEVEL">1st-level</span> {{#spells_level_1_uses}}({{spells_level_1_uses}}){{/spells_level_1_uses}}.</span>
|
|
{{spells_level_1}}
|
|
</div>
|
|
{{/spells_level_1_show}}
|
|
{{#spells_level_2_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="2ND_LEVEL">2nd-level</span> {{#spells_level_2_uses}}({{spells_level_2_uses}}){{/spells_level_2_uses}}.</span>
|
|
{{spells_level_2}}
|
|
</div>
|
|
{{/spells_level_2_show}}
|
|
{{#spells_level_3_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="3RD_LEVEL">3rd-level</span> {{#spells_level_3_uses}}({{spells_level_3_uses}}){{/spells_level_3_uses}}.</span>
|
|
{{spells_level_3}}
|
|
</div>
|
|
{{/spells_level_3_show}}
|
|
{{#spells_level_4_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="4TH_LEVEL">4th-level</span> {{#spells_level_4_uses}}({{spells_level_4_uses}}){{/spells_level_4_uses}}.</span>
|
|
{{spells_level_4}}
|
|
</div>
|
|
{{/spells_level_4_show}}
|
|
{{#spells_level_5_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="5TH_LEVEL">5th-level</span> {{#spells_level_5_uses}}({{spells_level_5_uses}}){{/spells_level_5_uses}}.</span>
|
|
{{spells_level_5}}
|
|
</div>
|
|
{{/spells_level_5_show}}
|
|
{{#spells_level_6_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="6TH_LEVEL">6th-level</span> {{#spells_level_6_uses}}({{spells_level_6_uses}}){{/spells_level_6_uses}}.</span>
|
|
{{spells_level_6}}
|
|
</div>
|
|
{{/spells_level_6_show}}
|
|
{{#spells_level_7_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="7TH_LEVEL">7th-level</span> {{#spells_level_7_uses}}({{spells_level_7_uses}}){{/spells_level_7_uses}}.</span>
|
|
{{spells_level_7}}
|
|
</div>
|
|
{{/spells_level_7_show}}
|
|
{{#spells_level_8_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="8TH_LEVEL">8th-level</span> {{#spells_level_8_uses}}({{spells_level_8_uses}}){{/spells_level_8_uses}}.</span>
|
|
{{spells_level_8}}
|
|
</div>
|
|
{{/spells_level_8_show}}
|
|
{{#spells_level_9_show}}
|
|
<div>
|
|
<span class="bold italic"><span data-i18n="9TH_LEVEL">9th-level</span> {{#spells_level_9_uses}}({{spells_level_9_uses}}){{/spells_level_9_uses}}.</span>
|
|
{{spells_level_9}}
|
|
</div>
|
|
{{/spells_level_9_show}}
|
|
</div>
|
|
{{/spell_list}}
|
|
|
|
{{#text_center}}
|
|
<div class="center">{{text_center}}</div>
|
|
{{/text_center}}
|
|
{{#text}}
|
|
<div>{{text}}</div>
|
|
{{/text}}
|
|
{{#text_big}}
|
|
<div class="output-small">{{text_big}}</div>
|
|
{{/text_big}}
|
|
{{#allprops() freetext text text_center text_big text_top character_name saving_throw title ignore show_character_name subheader uses uses_max roll1 roll2 advantage disadvantage vs_ac ability emote death_saving_throw death_saving_throw_successes death_saving_throw_failures targetAC targetName action type crit_name crit_text damage damage_type crit_damage second_damage second_damage_type second_crit_damage ranged damage target reach range ammo ammo_name spell spell_list saving_throw_condition saving_throw_dc saving_throw_vs_ability saving_throw_success saving_throw_failure spell_level school ritual content cast_as_level heal casting_time duration components materials hide_ability_checks hide_saving_throws hide_saving_throw_dc hide_spell_content hide_freetext hide_attack hide_damage hide_saving_throw_failure hide_saving_throw_success recharge hide_recharge fx trait armor equipment cantrips spells_level_1 spells_level_1_uses spells_level_1_show spells_level_2 spells_level_2_uses spells_level_2_show spells_level_3 spells_level_3_uses spells_level_3_show spells_level_4 spells_level_4_uses spells_level_4_show spells_level_5 spells_level_5_uses spells_level_5_show spells_level_6 spells_level_6_uses spells_level_6_show spells_level_7 spells_level_7_uses spells_level_7_show spells_level_8 spells_level_8_uses spells_level_8_show spells_level_9 spells_level_9_uses spells_level_9_show spells_text_size}}
|
|
<div>
|
|
<span class="bold italic">{{key}}.</span>
|
|
{{value}}
|
|
</div>
|
|
{{/allprops() freetext text text_center text_big text_top character_name saving_throw title ignore show_character_name subheader uses uses_max roll1 roll2 advantage disadvantage vs_ac ability emote death_saving_throw death_saving_throw_successes death_saving_throw_failures targetAC targetName action type crit_name crit_text damage damage_type crit_damage second_damage second_damage_type second_crit_damage ranged damage target reach range ammo ammo_name spell spell_list saving_throw_condition saving_throw_dc saving_throw_vs_ability saving_throw_success saving_throw_failure spell_level school ritual content cast_as_level heal casting_time duration components materials hide_ability_checks hide_saving_throws hide_saving_throw_dc hide_spell_content hide_freetext hide_attack hide_damage hide_saving_throw_failure hide_saving_throw_success recharge hide_recharge fx trait armor equipment cantrips spells_level_1 spells_level_1_uses spells_level_1_show spells_level_2 spells_level_2_uses spells_level_2_show spells_level_3 spells_level_3_uses spells_level_3_show spells_level_4 spells_level_4_uses spells_level_4_show spells_level_5 spells_level_5_uses spells_level_5_show spells_level_6 spells_level_6_uses spells_level_6_show spells_level_7 spells_level_7_uses spells_level_7_show spells_level_8 spells_level_8_uses spells_level_8_show spells_level_9 spells_level_9_uses spells_level_9_show spells_text_size}}
|
|
|
|
{{#freetext}}
|
|
<div class="{{#hide_freetext}} gm-info-block{{/hide_freetext}}">{{freetext}}</div>
|
|
{{/freetext}}
|
|
{{#crit_name}}
|
|
{{#rollWasCrit() roll1}}
|
|
<div>
|
|
<span class="bold italic">{{crit_name}}.</span>
|
|
{{crit_text}}
|
|
</div>
|
|
{{/rollWasCrit() roll1}}
|
|
{{#^rollWasCrit() roll1}}
|
|
{{#rollWasCrit() roll2}}
|
|
<div>
|
|
<span class="bold italic">{{crit_name}}.</span>
|
|
{{crit_text}}
|
|
</div>
|
|
{{/rollWasCrit() roll2}}
|
|
{{/^rollWasCrit() roll1}}
|
|
{{/crit_name}}
|
|
{{#recharge}}
|
|
<div class="{{#hide_recharge}}gm-info-block{{/hide_recharge}}">
|
|
<span class="bold italic"><span data-i18n="RECHARGE">Recharge</span>.</span>
|
|
{{recharge}}
|
|
</div>
|
|
{{/recharge}}
|
|
</div>
|
|
</div>
|
|
</rolltemplate> |