Files
2026-06-22 16:35:27 -07:00

1874 lines
532 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<input type="hidden" name="attr_old_character" value="0"> <input type="checkbox" name="attr_background" value="1" class="background-selection hidden" checked="checked"> <input type="checkbox" name="attr_background" value="2" class="background-selection hidden"> <input type="checkbox" name="attr_background" value="3" class="background-selection hidden"> <input type="checkbox" name="attr_background" value="4" class="background-selection hidden"> <input type="checkbox" name="attr_background" value="5" class="background-selection hidden"> <input type="checkbox" name="attr_background" value="6" class="background-selection hidden"> <input type="checkbox" name="attr_background" value="7" class="background-selection hidden"> <input type="hidden" name="attr_is_npc" value="0" class="is-npc"> <input type="hidden" name="attr_toggle_npc" value="0" class="toggle-npc"> <input type="checkbox" name="attr_toggle_costs" value="1" class="toggle-costs hidden"> <input type="checkbox" name="attr_toggle_caster2" value="1" class="toggle-caster2 hidden" checked="checked"> <input type="checkbox" name="attr_toggle_thief_skills" value="1" class="toggle-thief-skills hidden" checked="checked"> <input type="checkbox" name="attr_toggle_spells" value="1" class="toggle-spells hidden"> <input type="checkbox" name="attr_toggle_nwp" value="1" class="toggle-nwp hidden" checked="checked"> <input type="checkbox" name="attr_toggle_exceptional" value="1" class="toggle-exceptional hidden" checked="checked"> <input type="checkbox" name="attr_toggle_comeliness" value="1" class="toggle-comeliness hidden" checked="checked"> <input type="checkbox" name="attr_toggle_multiclass" value="1" class="toggle-multiclass hidden" checked="checked"> <input type="checkbox" name="attr_toggle_psionics" value="1" class="toggle-psionics hidden" checked="checked"> <input type="checkbox" name="attr_toggle_macros" value="1" class="toggle-macros hidden" checked="checked"> <input type="checkbox" name="attr_toggle_single_column_attributes" class="toggle-single-column-attributes hidden" value="1" checked="checked"> <input type="checkbox" name="attr_toggle_single_column_abilities" class="toggle-single-column-abilities hidden" value="1" checked="checked"> <input type="checkbox" name="attr_toggle_single_column_notes" class="toggle-single-column-notes hidden" value="1" checked="checked"> <input type="checkbox" name="attr_toggle_single_column_spells" class="toggle-single-column-spells hidden" value="1" checked="checked"> <input type="checkbox" name="attr_toggle_critdamage" class="toggle-critdamage hidden" value="1"> <input type="checkbox" name="attr_toggle_lbs" class="toggle-lbs hidden" value="1"> <input type="checkbox" name="attr_toggle_row_shading" class="toggle-row-shading hidden" value="1"> <input type="checkbox" name="attr_toggle_linear_background" class="toggle-linear-background hidden" value="1"> <input type="checkbox" name="attr_toggle_ar" class="toggle-ar hidden" value="1"> <input type="checkbox" name="attr_hide_to_hit_table" class="hide-to-hit hidden" value="1">
<div class="background">
<div class="wrapper">
<section class="top-header">
<section class="npc-toggle npc-tabs"><input type="radio" name="attr_toggle_npc" value="0" class="toggle-npc tab-hidden tab" title="Player Character" checked="checked"><span class="tab"></span> <input type="radio" name="attr_toggle_npc" value="1" class="toggle-npc tab-hidden tab" title="Non-Player Character/Monster"><span class="tab">Monster</span> <input type="radio" name="attr_toggle_npc" value="99" class="toggle-npc tab-hidden tab" title="Sheet Settings"><span class="material-icons custom-btn-nav"></span></section>
<section class="announcements-box">
<div class="sheet-type text-small"><span class="friend-foe"><span class="inline-label" title="@{is_foe} | Indicates that the sheet is either a friend or foe. This option is purely visual and has no impact on the sheet."><input type="radio" class="width-smallest is-friend" name="attr_is_foe" value="0"><span></span> <input type="radio" class="width-smallest is-foe" name="attr_is_foe" value="1" checked="checked"><span></span> </span></span><span class="pc-npc"><span class="inline-label" title="@{is_npc} | Indicates that the sheet is either a PC or NPC/Monster. Choosing NPC/Monster will reveal an additional NPC/Monster page."><input type="radio" class="width-smallest is-pc" name="attr_is_npc" value="0" checked="checked"><span></span> <input type="radio" class="width-smallest is-npc" name="attr_is_npc" value="1"><span></span></span></span></div><input type="checkbox" class="sect-show" name="attr_toggle_announcements" value="1" title="Open to read about important sheet changes." checked="checked"> <span class="header announcements-title">i</span><span class="material-icons"></span>
<div class="sect announcements"><input type="checkbox" class="sect-show" name="attr_toggle_announcements" value="1" title="Open to read about important sheet changes." checked="checked"><span class="material-icons"></span>
<h4>Important Sheet Announcements</h4>
<h5 class="right two-columns span-all"><span class="left"><span>v<span name="attr_sheet_version"> </span><span class="right">• 6/22/26'</span></span></span></h5>
<ul>
<h5>Latest</h5>
<li>Fixed low INT bonus languages to 0.</li>
<h5>Recent/Previous</h5>
<li>Updated the class datalist listing from "Mage" to "Magic-User".</li>
<li>AC & HP sync remains disabled for the Monster page, but the PC and NPC page will adhere to the sync options set in the sheet's settings.</li>
<li>Fixed: repeating_weapon "weapon_attack_type" was always being set to "melee", but it should match whatever repeating_equipment "weapon_type" is when creating/adding an attack from equipment.</li>
<li>When creating/adding an attack from equipment, the uses and max columns, (e.g. equipment_current & equipment_current_max fields) will be used to auto-fill weapon_ammo & weapon_ammo_max.</li>
<li>HP and AC is automatically set to NOT auto-calculated/synced on the Monsters page.</li>
<li>Sheet settings option added; "Hide to-Hit" table data (Matrix/THAC0) with attack rolls. NOTE: this setting updates to all existing and future attacks, but can be overwritten locally e.g. per attack.</li>
<li>Refactor of sheetworkers handling the sync between Armor Details and Equipment. I'm hopeful this will address the issue of some users seeing multiple/duplicate armor items in equipment.</li>
<li>Fixed a left column shift for the 'Helm' magic field in Armor Details when "Armor Class Rating (AR)" is hidden in sheet settings.</li>
<li>Fix roll template max-width error introduced in last update.</li>
<li>Updated image link for settings>hide areas.</li>
<li>Fixed a small overflow issue in the sheet's header when no sheet portrait has been provided.</li>
<li>Added an option to the sheet settings to hide Armor Class Rating (AR) fields and totals. Not everyone plays 1e using weapon vs armor class rating, so now you can hide those areas if you so desire.</li>
<li>Hovering over the repeating section control icons at the bottom of a repeating section now displays roll20's default text to help identify their purpose. e.g. "Modify", "+Add", and "Done".</li>
<li>Fixed a small overflow issue in the sheet's header.</li>
<li>Added borders around the hit/damage and dual-wield fields at the top of the attacks section.</li>
<li>Updated the sheet's version/update function.</li>
<li>Fixed a bug the was introduced with the last update that prevented the sheet's version check from setting the sheet_version to the latest final_version.</li>
<li>Added the sheet's default attack macro to the sheet settings page. This will allow you to edit the default attack macro if desired. Editing the macro will automatically be applied to any new attacks. I've also included an "Update Attacks" button that will update all existing attacks on the sheet. The default attack macro can also be edited outside the game from the game settings page. By doing so, all new PC's/NPC's will use the customized attack macro by default. In order to update existing attacks on existing PC/NPC's, you would need to use the "Update Attacks" button from the sheet settings on each PC/NPC. This is an advanced optional feature.</li>
<li>One-time Open Doors value check/update added. Some older sheets may have a percent value for Open Doors. non-d6 values will be reset according to the Strength score.</li>
<li>Items removed from the Armor Details section(deleting the item's name field) will also delete the item from Equipment|Armor as well. Previously, synced items in Equipment|Armor were left untouched if the Armor Details name was deleted. These "orphaned" entries have been deemed confusing and unnecessary.</li>
<li>Row Shading option added. Applies a subtle alternating background contrast to sheet rows.</li>
<li>Linear Gradient option added. Applies subtle linear gradient background to misc. sheet sub-sections. While this has been already been in-use on the sheet, it's now optional.</li>
<li>Fixed Spell tab bug that only allowed spells to be seen using the "All" tab. Introduced with last weeks update.(TY @Kazdan)</li>
<li>Fixed a bug with the Thief "sync to class" option where the level was failing to 0. Introduced with last weeks update.</li>
<li>Added a "Sync Caster Class" option to the spells section. Linking to a class will automatically adjust the caster name and level values whenever the linked class changes from the top of the sheet.</li>
<li>Added datalist options for various fields. Datalist fields are similar to dropdown selectors, but also allow custom input as well. Added lists to; class, race, alignment, secondary skills, and non-weapon proficiencies(these also show the slot, ability, and modifier).</li>
<li>Added a print option to the sheet. Adjusting sub-sections, resizing text boxes, etc. as needed will help produce a better end-result. I have hidden elements that would only apply to the VTT as well as other adjustments to help the sheet be "print-friendly". Click the printer icon at the top left corner of the character journal to preview. Ensure to toggle "background graphics" from the advanced print settings to see how it effects the preview.</li>
<li>Updated how the to-Hit and weapon vs armor type table data is posted with attacks.</li>
<li>Added an "Ask" option to the sheet whisper settings. Rolls will include a query to whisper the roll or not when choosing the "Ask" option. DM sees all...</li>
<li>Manually changing "Current Encumbrance" in the Carrying Capacity section will also adjust movement "Speed" accordingly. Further adjusting any item weight or reloading the sheet will recalc and undo any temp encumbrance and speed changes. Similarly, you may also override adjusted speed temporarily.</li>
<li>Sync is now enabled by default for HP max and AC. These options can still be changed per-sheet an/or per-game by the game's creator using the game's default sheet settings. This update only effects new sheets going forward.</li>
<li>Updated Total HP(ie HP max) calcs for multi-class characters. "HP Total" will show HP as a decimal if multi-classing, and will round up for any partial/fractional HP that is >= 0.5 The "Partial HP" field has now been hidden but will still include any fractional HP. e.g. @{hitpoints_remainder_total}</li>
<li>Small adjustments on the NPC/Monster page to prevent overflowing elements at small window sizes.</li>
<li>Refactoring done for the majority of sheetworkers. Converted the callback-based Roll20 functions to async/await versions.</li>
<li>Some refactoring done in the sheetworker that keeps Armor Details and repeating_equipment Armor in sync. Includes a one-time update to check and set 'repeating_equipment_$X_equipment_sync_armor_flag' attribute.</li>
<li>Added a "lock" icon next to the armor type dropdown selector in the equipment armor sub-section. This is just a visual indicator if the item is currently synced with an Armor Details row.</li>
<li>Hiding Multi-Class fields has been set as the default for new sheets. These options can still be changed per-sheet or per-game by the game creator using the game's default sheet settings. This update only effects new sheets going forward.</li>
<li>Updated the Pick Pockets roll to not require a selected token.</li>
</ul>
<h5><span class="inline-label"><button type="roll" class="url-roll" title="Post this link to chat." value="[Roll20 Wiki Link](https://wiki.roll20.net/ADnD_1st_Edition_Character_sheet#Past_Updates)"><span>Past Updates...</span></button></span></h5>
</div>
</section>
</section>
<section class="header-box">
<div class="heading-box"><input type="checkbox" name="attr_character_name_error" class="hidden toggle-input-error" value="1" checked="checked"> <input type="text" class="width-fill border text-large" name="attr_character_name" title="@{character_name} | NOTE: Including non-alpha-numeric characters 'may' break sheet rolls/macros. Specifically ')', ']', '}', or '|'." placeholder="Character Name"> <label class="inline-label"><span>Race:</span> <input type="text" class="width-fill" name="attr_race" list="races" title="@{race}" placeholder="Description"></label> <label class="inline-label"><span>Alignment:</span> <input type="text" class="width-fill" name="attr_alignment" list="alignments" title="@{alignment}" placeholder="Description"></label> <label class="inline-label left" title="Expand/Hide Class Details" style="max-width: calc(100% + 5px);"><input type="checkbox" class="sect-show" name="attr_class_details_show" value="1" checked="checked"> <span class="material-icons gear-nav" title="Expand/Hide Class Details" style="left: -1em;"></span></label> <label class="inline-label"><span>Class:</span> <input type="text" name="attr_class" list="classes" title="@{class}" placeholder="Class"> <span class="toggle-multiclass">Lvl:</span> <input type="text" class="toggle-multiclass width-smaller" name="attr_level" title="@{level}" value="0"></label> <label class="inline-label toggle-multiclass"><span>Class:</span> <input type="text" name="attr_secondclass" list="classes" title="@{secondclass}" placeholder="Class"> <span>Lvl:</span> <input type="text" class="width-smaller" name="attr_level_2" title="@{level_2}" value="0"></label> <label class="inline-label toggle-multiclass"><span>Class:</span> <input type="text" name="attr_thirdclass" list="classes" title="@{thirdclass}" placeholder="Class"> <span>Lvl:</span> <input type="text" class="width-smaller" name="attr_level_3" title="@{level_3}" value="0"></label> <label class="inline-label toggle-multiclass-swap"><span>Lvl:</span> <input type="text" class="width-smaller" name="attr_level" title="@{level}" value="0"> <span>XP:</span> <input type="text" class="width-medium" name="attr_xp" title="@{xp}" value="0"> <span class="inline-label"><input type="checkbox" name="attr_xp_bonus" title="@{xp_bonus} | XP bonus applies. Primary ability threshold met or exceeded for the class." value="1"> <span>10%</span></span></label></div>
<div class="logo-box center"><span class="span-all normalmode">&nbsp; </span><span class="span-all darkmode">&nbsp; </span><span class="span-two two-columns"><label><span class="text-large left">HP</span> <span class="heart"><input type="text" class="heart-input" name="attr_hitpoints" title="@{hitpoints} | Current Hit Points." value="0"> </span><span>/</span> <input type="text" class="width-smaller" name="attr_hitpoints_max" title="@{hitpoints|max} | Maximum Hit Points. No Damage. See Class Details to adjust." value="0" style="height: 2em;"> <span class="sync-lock" title="@{sync_hp_flag} | Let the sheet sync Total HP max from Class Details."><input type="checkbox" name="attr_sync_hp_flag" value="1" checked="checked"> <span></span></span></label> <label><span class="text-large">AC</span> <span class="shield"><input type="text" class="shield-input" name="attr_armorclass" title="@{armorclass} | Best AC. See Armor Details to adjust." value="10"> </span><span class="sync-lock" title="@{sync_ac_flag} | Let the sheet sync Total AC from Armor Details with AC ( @{armorclass} )."><input type="checkbox" name="attr_sync_ac_flag" value="1" checked="checked"> <span></span></span></label> <span class="class-details"><input type="checkbox" class="sect-show" name="attr_class_details_show" value="1" checked="checked"> <span class="subheader">Class Details</span><span class="material-icons"></span> </span><span class="armor-details"><input type="checkbox" class="sect-show" name="attr_armor_details_show" value="1" checked="checked"> <span class="subheader">Armor Details</span><span class="material-icons"></span> </span></span><span class="ac-columns"><label class="label-under" title="@{armorclass_shieldless} | Best AC without a Shield bonus."><input type="text" class="readonly-span width-smaller" name="attr_armorclass_shieldless" title="@{armorclass_shieldless} | Best AC without a Shield bonus." value="0"> <span class="text-medium">Shieldless</span></label> <label class="label-under" title="@{armorclass_rear} | Best AC without a Dex bonus."><input type="text" class="readonly-span width-smaller" name="attr_armorclass_rear" title="@{armorclass_rear} | Best AC without a Dex bonus." value="0"> <span class="text-medium">Rear</span></label> <label class="label-under toggle-ar" title="@{armorclass_rating} | Best Armor Rating"><input type="text" class="readonly-span width-smaller" name="attr_armorclass_rating" value="-"> <span class="text-medium">AR</span></label></span></div>
<div class="portrait-box"><input type="hidden" class="toggle-avatar" name="attr_sheet_image" value="1">
<div class="image-avatar" name="attr_sheet_image_url" title="Send image to chat."><img name="attr_character_avatar"> <button type="action" name="act_postimage" class="image-link"></button></div>
</div>
</section>
<section class="class-box"><input type="checkbox" class="sect-show" name="attr_class_details_show" value="1" checked="checked">
<div class="sect header">CLASS DETAILS</div><span class="sect material-icons"></span>
<div class="sect border"><span class="class-columns column-header"><span style="margin-left: -16px;">Class</span> <span>Lvl</span> <span>HD</span> <span>HP/Level</span> <span>&nbsp;</span> <span>HP+Con</span> <span>&nbsp;</span> <span>XP</span> <span>Next Level</span> <span>+10%</span> </span><span class="class-columns"><input type="text" class="width-fill" name="attr_class" list="classes" title="@{class}" placeholder="Class"> <input type="text" class="width-smaller" name="attr_level" title="@{level}" value="0"> <input type="text" class="width-medium" name="attr_hitdice" title="@{hitdice}" value="" placeholder="1d6"> <textarea class="width-medium-plus" name="attr_hitpoints_1_tracked" title="@{hitpoints_1_tracked} | Track rolled HP + CON adjustments per level." placeholder="Track HP 1 hp+con 2 hp+con 3 hp+con etc."></textarea> <span class="text-large">=</span> <input type="checkbox" class="hidden toggle-input-error" name="attr_hitpoints_1_class_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_hitpoints_1_class" title="@{hitpoints_1_class} | Enter a running total of HP+CON." value="0"> <span></span> <input type="text" class="width-medium" name="attr_xp" title="@{xp}" value="0"> <input type="text" class="width-medium" name="attr_xp_next" title="@{xp_next}" value="0"> <input type="checkbox" name="attr_xp_bonus" title="@{xp_bonus} | XP bonus applies. Primary ability threshold met or exceeded for the class." value="1"> </span><span class="class-columns toggle-multiclass"><input type="text" class="width-fill" name="attr_secondclass" list="classes" title="@{secondclass}" placeholder="2rd class"> <input type="text" class="width-smaller" name="attr_level_2" title="@{level_2}" value="0"> <input type="text" class="width-medium" name="attr_hitdice_2" title="@{hitdice_2}" value="" placeholder="1d6"> <textarea class="width-medium-plus" name="attr_hitpoints_2_tracked" title="@{hitpoints_2_tracked} | Track rolled HP + CON adjustments per level." placeholder="Track HP 1 hp+con 2 hp+con 3 hp+con etc."></textarea> <span class="text-large">=</span> <input type="checkbox" class="hidden toggle-input-error" name="attr_hitpoints_2_class_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_hitpoints_2_class" title="@{hitpoints_2_class} | Enter a running total of HP+CON." value="0"> <span></span> <input type="text" class="width-medium" name="attr_xp_2" title="@{xp_2}" value="0"> <input type="text" class="width-medium" name="attr_xp_2_next" title="@{xp_2_next}" value="0"> <input type="checkbox" name="attr_xp_2_bonus" title="@{xp_2_bonus} | XP bonus applies." value="1"> </span><span class="class-columns toggle-multiclass"><input type="text" class="width-fill" name="attr_thirdclass" list="classes" title="@{thirdclass}" placeholder="3rd class"> <input type="text" class="width-smaller" name="attr_level_3" title="@{level_3}" value="0"> <input type="text" class="width-medium" name="attr_hitdice_3" title="@{hitdice_3}" value="" placeholder="1d6"> <textarea class="width-medium-plus" name="attr_hitpoints_3_tracked" title="@{hitpoints_3_tracked} | Track rolled HP + CON adjustments per level." placeholder="Track HP 1 hp+con 2 hp+con 3 hp+con etc."></textarea> <span class="text-large">=</span> <input type="checkbox" class="hidden toggle-input-error" name="attr_hitpoints_3_class_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_hitpoints_3_class" title="@{hitpoints_3_class} | Enter a running total of HP+CON." value="0"> <span></span> <input type="text" class="width-medium" name="attr_xp_3" title="@{xp_3}" value="0"> <input type="text" class="width-medium" name="attr_xp_3_next" title="@{xp_3_next}" value="0"> <input type="checkbox" name="attr_xp_3_bonus" title="@{xp_3_bonus} | XP bonus applies." value="1"></span>
<hr class="toggle-multiclass"><span class="class-columns linear-background"><label title="@{toggle_multiclass} | Hides additional class fields."><span>Hide Multi-Class:</span> <input type="checkbox" name="attr_toggle_multiclass" value="1" checked="checked"></label> <label>&nbsp;</label> <label class="label-under-small" title="@{hitdice_total} | Track total/effective Hit Dice for Spell effects and XP. Single class = level. Multi-class = highest level + 1. Three classes = highest level +2."><input type="text" class="width-small" name="attr_hitdice_total" value="0"> <span>Total HD</span></label> <span class="hp-calc-columns" style="margin-left: -10%;"><label class="label-under toggle-multiclass" title="@{hitpoints_class_total} | Uses the total HP+Con from table above." style="margin-left: 44%;"><input type="text" class="width-small" name="attr_hitpoints_class_total" value="0" readonly="readonly"> <span>Total</span></label> <label>&nbsp;</label> <label class="label-under-small toggle-multiclass"><input type="text" class="width-small" name="attr_hp_quotient" title="@{hp_quotient}" value="0" readonly="readonly"> <span>/Classes</span></label> <label class="text-large toggle-multiclass">=</label> <label class="label-under" title="@{hitpoints_total} | fractional HP included for mult-class characters. Max Hit Points is rounded up."><input type="text" class="width-small" name="attr_hitpoints_total" value="0" readonly="readonly"> <span>TOTAL HP</span></label> <span>&nbsp;</span><input type="number" class="hidden width-auto" name="attr_hitpoints_remainder_total" value="0" step=".01"> <label class="sync-lock" title="@{sync_hp_flag} | Let the sheet sync Total HP max from Class Details."><span class="center nowrap">Sync HP:</span> <input type="checkbox" name="attr_sync_hp_flag" value="1" checked="checked"> <span></span></label></span></span>
</div>
</section>
<section class="armor-box"><input type="checkbox" class="sect-show" name="attr_armor_details_show" value="1" checked="checked">
<div class="sect header">ARMOR DETAILS</div><span class="sect material-icons"></span><input type="hidden" name="attr_unarmored_row_id" value="0"> <input type="hidden" name="attr_armortype1_row_id" value="0"> <input type="hidden" name="attr_armortype2_row_id" value="0"> <input type="hidden" name="attr_armorshield_row_id" value="0"> <input type="hidden" name="attr_armorhelmet_row_id" value="0"> <input type="hidden" name="attr_armorother1_row_id" value="0"> <input type="hidden" name="attr_armorother2_row_id" value="0"> <input type="hidden" name="attr_armorother3_row_id" value="0"> <input type="hidden" name="attr_armorother4_row_id" value="0"> <input type="hidden" name="attr_armorother5_row_id" value="0"> <input type="hidden" name="attr_armorother6_row_id" value="0"> <input type="hidden" name="attr_armordetails_array" value="0"> <input type="hidden" name="attr_armor_weight" value="0"> <input type="hidden" name="attr_unarmored_weight" value="0"> <input type="hidden" name="attr_armortype2_weight" value="0"> <input type="hidden" name="attr_armorshield_weight" value="0"> <input type="hidden" name="attr_armorhelmet_weight" value="0"> <input type="hidden" name="attr_armor_cost" value="0"> <input type="hidden" name="attr_unarmored_cost" value="0"> <input type="hidden" name="attr_armortype2_cost" value="0"> <input type="hidden" name="attr_armorshield_cost" value="0"> <input type="hidden" name="attr_armorhelmet_cost" value="0">
<div class="sect border"><span class="armor-columns column-header"><span>Armor Type</span> <span title="Only worn items are included in the AC calculations below.">In Use</span> <span>Name</span> <span title="Armor Class">AC</span> <span class="toggle-ar" title="Armor Rating for weapon vs armor adjustments.">AR</span> <span title="Magical Bonuses to AC.">Magic</span> <span title="Misc adjustments to AC.">Misc</span> <span title="Items in use are carried, but items not in use can still be carried.">Carried</span> <span title="Armor Bulk affects movement.">Bulk</span> </span><span class="armor-columns"><label class="stack-text"><span>UnArmored Base</span></label> <input type="checkbox" name="attr_unarmored_worn" value="1" title="@{unarmored_worn}" checked="checked"> <input type="text" class="width-fill" name="attr_unarmored" value="" title="@{unarmored} | Use for Unarmored, Clothing, Natural Armor, etc. NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="non-armor"> <select name="attr_unarmored_ac" title="@{unarmored_ac} | Enter the actual AC value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <select name="attr_unarmored_base" class="toggle-ar" title="@{unarmored_base} | Enter the actual AR value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
<option value="-">-</option>
</select> <span></span> <span></span> <input type="checkbox" name="attr_unarmored_carried" value="1" title="@{unarmored_carried} | In use/worn cannot be un-carried." checked="checked"> <select class="width-fill" name="attr_unarmored_bulk" title="@{unarmored_bulk}">
<option value="0" selected="selected">n/a</option>
<option value="1">non-Bulky 12"</option>
<option value="2">Fairly 9"</option>
<option value="3">Bulky 6"</option>
</select> </span><span class="armor-columns"><label><span>Armor 1</span></label> <input type="checkbox" name="attr_armortype_worn" title="@{armortype_worn}" value="1" checked="checked"> <input type="text" class="width-fill" name="attr_armortype" title="@{armortype} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armortype_ac" title="@{armortype_ac} | Enter the actual AC value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
<option class="hidden" value="-1">-1</option>
<option class="hidden" value="-2">-2</option>
<option class="hidden" value="-3">-3</option>
<option class="hidden" value="-4">-4</option>
<option class="hidden" value="-5">-5</option>
<option class="hidden" value="-6">-6</option>
<option class="hidden" value="-7">-7</option>
<option class="hidden" value="-8">-8</option>
<option class="hidden" value="-9">-9</option>
<option class="hidden" value="-10">-10</option>
</select> <select name="attr_armortype_base" class="toggle-ar" title="@{armortype_base} | Enter the actual AR value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armortype_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armortype_magic" value="0" title="@{armortype_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <input type="checkbox" name="attr_armortype_carried" value="1" title="@{armortype_carried} | In use/worn cannot be un-carried." checked="checked"> <select class="width-fill" name="attr_armortype_bulk" title="@{armortype_bulk}">
<option value="0" selected="selected">n/a</option>
<option value="1">non-Bulky 12"</option>
<option value="2">Fairly 9"</option>
<option value="3">Bulky 6"</option>
</select> </span><span class="armor-columns"><label><span>Armor 2</span></label> <input type="checkbox" name="attr_armortype2_worn" title="@{armortype2_worn}" value="1"> <input type="text" class="width-fill" name="attr_armortype2" title="@{armortype2} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armortype2_ac" title="@{armortype2_ac} | Enter the actual AC value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <select name="attr_armortype2_base" class="toggle-ar" title="@{armortype2_base} | Enter the actual AR value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armortype2_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armortype2_magic" value="0" title="@{armortype2_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <input type="checkbox" name="attr_armortype2_carried" value="1" title="@{armortype2_carried} | In use/worn cannot be un-carried." checked="checked"> <select class="width-fill" name="attr_armortype2_bulk" title="@{armortype2_bulk}">
<option value="0" selected="selected">n/a</option>
<option value="1">non-Bulky 12"</option>
<option value="2">Fairly 9"</option>
<option value="3">Bulky 6"</option>
</select> </span><span class="armor-columns"><label><span>Shield</span></label> <input type="checkbox" name="attr_armorshield_worn" title="@{armorshield_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorshield" title="@{armorshield} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorshield_ac" title="@{armorshield_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorshield_base" class="toggle-ar" title="@{armorshield_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorshield_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorshield_magic" value="0" title="@{armorshield_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorshield_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorshield_mod" value="0" title="@{armorshield_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" name="attr_armorshield_carried" value="1" title="@{armorshield_carried} | In use/worn cannot be un-carried." checked="checked"> <select class="width-fill" name="attr_armorshield_bulk" title="@{armorshield_bulk}">
<option value="0" selected="selected">n/a</option>
<option value="1">non-Bulky 12"</option>
<option value="2">Fairly 9"</option>
<option value="3">Bulky 6"</option>
</select> </span><span class="armor-columns"><label><span>Helm</span></label> <input type="checkbox" name="attr_armorhelmet_worn" title="@{armorhelmet_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorhelmet" title="@{armorhelmet} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorhelmet_ac" title="@{armorhelmet_ac} | Other than Magic Bonuses, Helms do not impact Total AC calculations.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <span class="toggle-ar"></span> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorhelmet_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorhelmet_magic" value="0" title="@{armorhelmet_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <span></span> <span></span> </span><span class="armor-columns" style="margin-bottom: -.25em;"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother_worn" title="@{armorother_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother" title="@{armorother} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother_ac" title="@{armorother_ac} | Enter the actual AC value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <select name="attr_armorother_base" class="toggle-ar" title="@{armorother_base} | Enter the actual AR value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother_magic" value="0" title="@{armorother_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother_mod" value="0" title="@{armorother_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <span class="span-all" style="margin-bottom: -.5em; padding-left:.5em;"><input type="checkbox" class="sect-show more" title="@{armorother-show}" name="attr_armorother_show" value="1"> <span style="top: -6px;position: relative;">More</span><span class="material-icons" style="padding-bottom: 6px;"></span> </span></span><input type="checkbox" class="sect-show hidden" name="attr_armorother_show" value="1"> <span class="sect armor-columns"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother2_worn" title="@{armorother2_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother2" title="@{armorother2} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother2_ac" title="@{armorother2_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorother2_base" class="toggle-ar" title="@{armorother2_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother2_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother2_magic" value="0" title="@{armorother2_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother2_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother2_mod" value="0" title="@{armorother2_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <span></span> </span><span class="sect armor-columns"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother3_worn" title="@{armorother3_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother3" title="@{armorother3} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother3_ac" title="@{armorother3_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorother3_base" class="toggle-ar" title="@{armorother3_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother3_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother3_magic" value="0" title="@{armorother3_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother3_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother3_mod" value="0" title="@{armorother3_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> </span><span class="sect armor-columns"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother4_worn" title="@{armorother4_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother4" title="@{armorother4} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother4_ac" title="@{armorother4_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorother4_base" class="toggle-ar" title="@{armorother4_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother4_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother4_magic" value="0" title="@{armorother4_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother4_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother4_mod" value="0" title="@{armorother4_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> </span><span class="sect armor-columns"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother5_worn" title="@{armorother5_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother5" title="@{armorother5} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother5_ac" title="@{armorother5_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorother5_base" class="toggle-ar" title="@{armorother5_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother5_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother5_magic" value="0" title="@{armorother5_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother5_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother5_mod" value="0" title="@{armorother5_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <span></span> </span><span class="sect armor-columns"><label><span>Other</span></label> <input type="checkbox" name="attr_armorother6_worn" title="@{armorother6_worn}" value="1"> <input type="text" class="width-fill" name="attr_armorother6" title="@{armorother6} | NOTE: Adding a new item to Armor Details will also add a new Armor item to Equipment. Similarly, Armor items can be added to the Armor Details list from Equipment|Armor using the '+Add' button. (expand row's sub-section) CAUTION: items deleted from Armor Details will also be deleted from Equipment." placeholder="Description"> <select name="attr_armorother6_ac" title="@{armorother6_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_armorother6_base" class="toggle-ar" title="@{armorother6_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother6_magic_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother6_magic" value="0" title="@{armorother6_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <input type="checkbox" class="hidden toggle-input-error" name="attr_armorother6_mod_error" value="1" checked="checked"> <input type="text" class="width-small" name="attr_armorother6_mod" value="0" title="@{armorother6_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span></span> <span></span> </span><span class="armor-columns"><span class="span-three"></span> <label class="readonly-span-textonly" title="In Use/Best AC"><span><span name="attr_armorclass_base_used"></span> <input type="text" class="hidden" name="attr_armorclass_base_used" value="0" readonly="readonly"> </span><span>/</span> <span><span name="attr_armorclass_base_best"></span> <input type="text" class="hidden" name="attr_armorclass_base_best" value="0" readonly="readonly"></span></label> <label class="readonly-span-textonly toggle-ar" title="In Use/Best AR"><span><span name="attr_armorclass_rating_used"></span> <input type="text" class="hidden" name="attr_armorclass_rating_used" value="0" readonly="readonly"> </span><span>/</span> <span><span name="attr_armorclass_rating_best"></span> <input type="text" class="hidden" name="attr_armorclass_rating_best" value="0" readonly="readonly"></span></label> <label class="readonly-span-textonly" title="In Use/Total Magic"><span><span name="attr_armorclass_magic_with_shield"></span> <input type="text" class="hidden" name="attr_armorclass_magic_with_shield" value="0" readonly="readonly"> </span><span>/</span> <span><span name="attr_armorclass_magic_total"></span> <input type="text" class="hidden" name="attr_armorclass_magic_total" value="0" readonly="readonly"></span></label> <label class="readonly-span-textonly" title="In Use/Total Misc."><span><span name="attr_armorclass_mod_with_shield"></span> <input type="text" class="hidden" name="attr_armorclass_mod_with_shield" value="0" readonly="readonly"> </span><span>/</span> <span><span name="attr_armorclass_mod_total"></span> <input type="text" class="hidden" name="attr_armorclass_mod_total" value="0" readonly="readonly"></span></label> <label class="readonly-span-textonly span-two" title="@{current_bulk_label} | Current Bulk as per active armors, shield, clothing, etc."><input type="text" class="width-fill height-short" name="attr_current_bulk_label" value="" placeholder="no bulk" readonly="readonly"></label> <input type="text" class="hidden" name="attr_current_bulk" value=""></span>
<hr>
<div class="linear-background"><span class="ac-calc-columns"><label class="label-under-small" title="@{unarmored_base} | Enter a value for Natural Armor or No Armor rating. Default is 10."><input type="text" class="readonly-span width-small" name="attr_unarmored_base" value="10"> <span>UnArmored</span></label> <label class="label-under-small" title="@{armorclass_base} | Compares the UnArmored Base AC to the AC from above and uses the best(lowest) value."><input type="text" class="readonly-span width-small" name="attr_armorclass_base" value="0"> <span>AC Base</span></label> <label class="label-under-small" title="@{armorclass_combined_mod_magic} | Magic + Misc. Adjustments from above."><input type="text" class="hidden" name="attr_armorclass_combined_mod_magic" value="0"> <input type="text" class="readonly-span width-small" name="attr_armorclass_combined_mod_magic_inverted" value="0"> <input type="text" class="hidden" name="attr_armorclass_magic" value="0" readonly="readonly"> <input type="text" class="hidden" name="attr_armorclass_mod" value="0" readonly="readonly"> <span>Armor Adj.</span></label> <input type="checkbox" class="hidden toggle-input-attention" name="attr_encumbrance_flag" value="1" checked="checked"> <label class="text-large">=</label> <label class="label-under" title="@{armorclass_rear} | Best AC without a Dex bonus."><input type="text" class="readonly-span field-border" name="attr_armorclass_rear" value="0"> <span>Rear</span></label> <input type="checkbox" class="hidden toggle-input-attention" name="attr_encumbrance_flag" value="1" checked="checked"> <label class="label-under-small" title="@{armorbonus} | Defensive Adjustment from Dexterity row."><input type="text" class="readonly-span width-small" name="attr_armorbonus_inverted" value="0"> <span class="material-icons" title="Encumbered! DEX bonus has been removed.">nearby_error</span> <label class="inline-label" title="@{armorbonus_toggle} | DEX bonus can be removed circumstantially. e.g. Surprise, Backstab, etc."><span>Dex Adj.</span> <input type="checkbox" name="attr_armorbonus_toggle" value="1" checked="checked"></label></label> <label class="text-large">=</label> <label class="label-under" title="@{armorclass_shieldless} | Best AC without a Shield bonus."><input type="text" class="readonly-span field-border" name="attr_armorclass_shieldless" value="0"> <span>Shieldless</span></label> <label class="label-under-small" title="@{armorclass_combined_shield_mod_magic} | Magic + Misc. Adjustments from Shield above."><input type="text" class="hidden" name="attr_armorclass_combined_shield_mod_magic" value="0"> <input type="text" class="readonly-span width-small" name="attr_armorclass_combined_shield_mod_magic_inverted" value="0"> <input type="text" class="hidden" name="attr_armorclass_shield_mod" value="0" readonly="readonly"> <input type="text" class="hidden" name="attr_armorclass_shield_magic" value="0" readonly="readonly"> <span>Shield Adj.</span></label> <label class="text-large">=</label> <label class="label-under" title="@{armorclass_total} | Best AC"><input type="text" class="readonly-span field-border" name="attr_armorclass_total" value="0"> <span>Total AC</span></label> </span><span class="five-columns"><span class="inline-label" title="@{autocalc_ac} | This is a persistent setting. Let the sheet auto-calculate AC based on the values entered in the Armor Details table above. This will overwrite all values in the bottom row."><label><span>Auto-Calc AC:</span> <input type="checkbox" name="attr_autocalc_ac" value="1" checked="checked"></label> <button type="action" class="text-only" name="act_calcac" style="padding: inherit;" title="This is an immediate action and works regardless of the Auto-Calc AC setting. Let the sheet auto-calculate AC based on the values entered in the Armor Details table above. This will overwrite all values in the bottom row."><span class="width-large">Calc AC</span></button> </span><span class="inline-label sync-lock" title="@{sync_ac_flag} | Let the sheet sync Total AC from Armor Details with AC ( @{armorclass} )."><label><span>Sync AC:</span> <input type="checkbox" name="attr_sync_ac_flag" value="1" checked="checked"> <span></span></label> </span><span></span> <span class="inline-label toggle-ar" title="@{armor_rating_flag} | AC is not from armor. Weapons vs Armor Type does not apply."><label><span>Ignore AR:</span> <input type="checkbox" name="attr_armor_rating_flag" value="1"></label> </span><span class="inline-label toggle-ar" title="@{armorclass_rating} | Best AR"><label><span>Armor Rating</span></label> <input type="text" class="readonly-span width-small" name="attr_armorclass_rating" value="-"> </span></span><span class="inline-label"><label class="width-auto"><button type="roll" name="roll_defensive_notes_roll" class="dice-button text-only" title="%{selected|defensive_notes_roll}" value="@{whisper_pc} &amp;{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Defensive Notes}} {{freetext=@{defensive_notes}}}"><span>Defensive Notes:</span></button></label> <textarea name="attr_defensive_notes" class="height-short" title="@{defensive_notes}" placeholder="Enter Defensive Notes..."></textarea></span></div>
</div>
</section>
<section class="personal-attributes-box"><input type="checkbox" class="sect-show" name="attr_personal_attributes_info_show" value="1" checked="checked">
<div class="header">PERSONAL ATTRIBUTES</div><span class="material-icons"></span>
<div class="sect"><span class="details-row1"><label class="inline-label"><span>Gender:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_gender" title="@{gender}" placeholder="n/a"> <span name="attr_gender"></span></span></label> <label class="inline-label"><span>Age:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_age" title="@{age}" value="0"> <span name="attr_age"></span></span></label> <label class="inline-label"><span>Height:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_height" title="@{height}" value="0"> <span name="attr_height"></span></span></label> <label class="inline-label"><span>Weight:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_weight" title="@{weight}" value="0"> <span name="attr_weight"></span></span></label> <label class="inline-label"><span>Eyes:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_eyes" title="@{eyes}" placeholder="Color"> <span name="attr_eyes"></span></span></label> <label class="inline-label"><span>Hair:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_hair" title="@{hair}" placeholder="Color"> <span name="attr_hair"></span></span></label> <label class="inline-label" title="Natural/Unaltered size." style="padding-left: .35em;"><span>Size:</span> <select class="width-small" name="attr_size" title="@{size}">
<option>S</option>
<option selected="selected">M</option>
<option>L</option>
</select></label> <label class="inline-label" title="Altered size." style="padding-left: .35em;"><span>Temp Size:</span> <select class="width-small" name="attr_size2" title="@{size2}">
<option>S</option>
<option selected="selected">M</option>
<option>L</option>
</select></label> <label class="inline-label"><span>Deity:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_deity" title="@{deity}" placeholder="Description"> <span name="attr_deity"></span></span></label> <label class="inline-label"><span>Secondary Skill:</span> <span class="autoexpand"><input type="text" class="autoexpand" name="attr_secondary_skill" list="skills" title="@{secondary_skill}" placeholder="Description"> <span name="attr_secondary_skill"></span></span></label> <span class="inline-label" style="padding-left: .35em;max-width: -webkit-fill-available;margin-top: -3px;"><label><button type="roll" class="image-link" value="@{whisper_pc} [**LINK**](@{sheet_image_url})" title="Send image to chat."></button> <textarea class="image-link" wrap="off" name="attr_sheet_image_url" title="@{sheet_image_url} | Enter a valid image URL that ends with a proper image extension. e.g. .png, .jpg, .gif If needed, trim the url to the end of the image extension or add a 3-letter extension to the end of the url.." placeholder="https://app.roll20.net/images/character.png"></textarea></label> </span></span><span class="details-row"><label class="inline-label width-auto"><button type="roll" name="roll_racial_notes_roll" class="dice-button text-only" title="%{selected|racial_notes_roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Racial Notes}} {{freetext=@{racial_notes}}}"><span>Racial Notes:</span></button></label> <textarea name="attr_racial_notes" class="height-short" title="@{racial_notes}" placeholder="Enter Racial Notes..."></textarea> </span><span class="details-row"><label class="inline-label width-auto"><button type="roll" name="roll_languages_roll" class="dice-button text-only" title="%{selected|languages_roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Known Languages}} {{freetext=@{languages}}}"><span>Languages:</span></button></label> <textarea class="height-short" name="attr_languages" title="@{languages}" placeholder="languages known"></textarea> </span><span class="details-row"><label class="inline-label width-auto"><button type="roll" name="roll_senses_roll" class="dice-button text-only" title="%{selected|senses_roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Senses}} {{freetext=@{senses}}}"><span>Special Senses:</span></button></label> <textarea name="attr_senses" class="height-short" title="@{senses}" placeholder="Enter Special Senses..."></textarea> </span><span><input type="checkbox" class="sect-show" name="attr_character-description_show" value="1" checked="checked"> <span class="subheader">Character History/Bio</span><span class="material-icons"></span> <span class="sect"><span class="autoexpand"><textarea name="attr_character_description" title="@{character_description} | Field will resize to match it's content." placeholder="Enter Character Description..."></textarea> <span name="attr_character_description"></span></span></span></span></div>
<hr>
</section>
<section class="abilities-box"><input type="checkbox" class="sect-show" name="attr_abilities_info_show" value="1" checked="checked">
<div class="header">ABILITIES</div><span class="material-icons"></span>
<div class="sect"><span class="abilities-columns"><span></span> <label><button type="roll" class="ability-button text-only" name="attr_strength_check_roll" title="%{selected|strength_check_roll}" value="@{strength_check_macro_text}"><span>STR</span></button> <input type="text" class="hidden" name="attr_strength_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Strength Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{strength} ]]}}"></label> <input type="text" class="field-border" name="attr_strength" title="@{strength}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_strength_flag" value="1"> <label class="toggle-exceptional strength"><input type="text" class="width-smallest" name="attr_exceptionalstrength" title="@{exceptionalstrength | Must have an Ability of 18+ to access field." value="0"></label> <label><span class="stack-text">To-Hit Adj.</span></label> <input type="text" class="width-smaller" name="attr_meleebonus" title="@{meleebonus} | Melee attack &quot;To-Hit&quot; adjustment." value="0"> <label><span class="stack-text">Damage Adj.</span></label> <input type="text" class="width-smaller" name="attr_dmgbonus" title="@{dmgbonus} | Melee attack Damage adjustment." value="0"> <label><span class="stack-text">Weight All.</span></label> <input type="text" class="width-fill" name="attr_encumbrancebonus" title="@{encumbrancebonus} | Weight Allowance in gp. Keep this value as gp even if the sheet is using the lbs option." value="0"> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_minorstrengthfeat-roll" title="%{selected|minorstrengthfeat-roll} | Minor Strength Feat" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Open Doors}} {{roll_low=[[ ?{Open Door die|1d6 [STR<=18],1d6 |1d8 [STR = 19 or 20],1d8 |1d10 [STR = 21],1d10 |1d12 [STR = 22 or 23],1d12 |1d12 [STR = 24],1d20 |2d12 [STR = 25],2d12}cs ]]}} {{roll_target=[[ @{minorstrengthfeat} ]]}} {{locked_doors=You have a chance ([[@{selected|minorstrengthfeat_locked}]] in 6) to force open a locked, barred, magically held, or wizard locked door. Fighter's only. note: Roll will use a larger die for STR 24 or 25.}} {{[Open a Locked Door?](~@{character_id}|minorstrengthfeat_locked-roll)}}"><span>Open Doors</span></button></label> <span class="two-columns"><label><input type="text" class="width-smallest" name="attr_minorstrengthfeat" title="@{minorstrengthfeat} | Minor Strength Feat: uses the highest # from STR table." value="0"></label> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_strength_flag" value="1"> <sup class="toggle-exceptional strength" title="@{minorstrengthfeat_locked} | Fighter's can attempt to force open a locked, barred, magically held, or wizard locked door with exceptional Strength of 18(99)+."><span name="attr_minorstrengthfeat_locked"></span> </sup><input type="hidden" name="attr_minorstrengthfeat_locked" value="0"> <button class="hidden" type="roll" name="attr_minorstrengthfeat_locked-roll" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Open Locked Door}} {{roll_low=[[ ?{Locked, Barred, or Magically Held Door die|1d6 [STR = 18(91-100) or 19-23],1d6 |1d8 [STR = 24],1d8 |1d10 [STR = 25],1d10}cs ]] }} {{roll_target=[[ @{minorstrengthfeat_locked} ]]}}"></button> </span><label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_majorstrengthfeat-roll" title="%{selected|majorstrengthfeat-roll} | Major Strength Feat" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Bend Bars/Lift Gates}} {{roll_low=[[1d100cs]]%}} {{roll_target=[[ @{majorstrengthfeat}]]%}}"><span>Bend</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_majorstrengthfeat" title="@{majorstrengthfeat} | Major Strength Feat" value="0"></label> <span></span> <label><button type="roll" class="ability-button text-only" name="attr_intelligence_check_roll" title="%{selected|intelligence_check_roll}" value="@{intelligence_check_macro_text}"><span>INT</span></button> <input type="text" class="hidden" name="attr_intelligence_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Intelligence Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{intelligence} ]]}}"></label> <input type="text" class="field-border" name="attr_intelligence" title="@{intelligence}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_intelligence_flag" value="1"> <label class="toggle-exceptional"><input type="text" class="width-smallest" name="attr_exceptionalintelligence" title="@{exceptionalintelligence} | Must have an Ability of 18+ to access field." value="0"></label> <label><span class="stack-text">Add. Lang.</span></label> <input type="text" class="width-smaller" name="attr_bonuslanguages" title="@{bonuslanguages} | Auto-filled based on Race and INT (see PHB)." value="0"> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_knowspell-roll" title="%{selected|knowspell-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Chance to Know Spell}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{knowspell} ]]%}}"><span>Know Spell</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_knowspell" title="@{knowspell}" value="0"></label> <label><span class="stack-text">Min # Spells</span></label> <input type="text" class="width-smaller" name="attr_minspells" title="@{minspells}" value="0"> <label><span class="stack-text">Max # Spells</span></label> <input type="text" class="width-smaller" name="attr_maxspells" title="@{maxspells}" value="0"> <label class="span-two inline-label"><button class="dice-button text-only" type="roll" name="attr_init-roll" title="%{selected|init-roll}" value="@{whisper_pc} @{init_macro_text}"><span>Initiative</span></button></label> <span></span> <label><button type="roll" class="ability-button text-only" name="attr_wisdom_check_roll" title="%{selected|wisdom_check_roll}" value="@{wisdom_check_macro_text}"><span>WIS</span></button> <input type="text" class="hidden" name="attr_wisdom_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Wisdom Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{wisdom} ]]}}"></label> <input type="text" class="field-border" name="attr_wisdom" title="@{wisdom}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_wisdom_flag" value="1"> <label class="toggle-exceptional"><input type="text" class="width-smallest" name="attr_exceptionalwisdom" title="@{exceptionalwisdom} | Must have an Ability of 18+ to access field." value="0"></label> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_mentalsave-roll" title="%{selected|mentalsave-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Mental Save}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] + [[ @{mentalsavebonus} ]][BON] ]]}} {{roll_target=[[?{Target # for success?|20}]]}} {{wis_applied=[[ @{mentalsavebonus} ]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Mental Save</span></button></label> <input type="text" class="width-smaller" name="attr_mentalsavebonus" title="@{mentalsavebonus}" value="0"> <label><span class="stack-text">Spell Bonus</span></label> <span class="autoexpand span-two" style="margin-left: 2px;"><input type="text" name="attr_spellbonus" class="no-border" title="@{spellbonus} | Track the # of bonus spells/level as per the PHB." value="0/0/0/0/0/0/0"> <span name="attr_spellbonus"></span> </span><label></label> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_spellfailure-roll" title="%{selected|spellfailure-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Chance of Spell Failure}} {{roll_high=[[ 1d100 ]]%}} {{roll_target=[[ @{spellfailure} ]]%}}"><span>Spell Failure</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_spellfailure" title="@{spellfailure}" value="0"></label> <label class="span-two inline-label"><button class="dice-button text-only" type="roll" name="attr_surprise-roll" title="%{selected|surprise-roll}" value="@{whisper_pc} @{surprise_macro_text}"><span>Surprise</span></button></label> <span></span> <label><button type="roll" class="ability-button text-only" name="attr_dexterity_check_roll" title="%{selected|dexterity_check_roll}" value="@{dexterity_check_macro_text}"><span>DEX</span></button> <input type="text" class="hidden" name="attr_dexterity_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Dexterity Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{dexterity} ]]}}"></label> <input type="text" class="field-border" name="attr_dexterity" title="@{dexterity}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_dexterity_flag" value="1"> <label class="toggle-exceptional"><input type="text" class="width-smallest" name="attr_exceptionaldexterity" title="@{exceptionaldexterity} | Must have an Ability of 18+ to access field." value="0"></label> <label><span class="stack-text">Reaction Adj.</span></label> <input type="text" class="hidden" name="attr_surprisebonus" value="0"> <input type="text" class="width-smaller" name="attr_surprisebonus_inverted" title="@{surprisebonus} | Modifier for initiative/surprise and missile-based combat attacks." value="0"> <label><span class="stack-text">Missile Adj.</span></label> <input type="text" class="width-smaller" name="attr_rangedbonus" title="@{rangedbonus} | Ranged attack 'To-Hit' adjustment." value="0"> <label><span class="stack-text">Defensive Adj.</span></label> <input type="text" class="width-smaller" name="attr_armorbonus" title="@{armorbonus} | Used to compute AC in the 'Armor Details' section above." value="0"> <label class="span-three"><span>Surprise Chance</span> <input type="text" class="width-smaller" name="attr_surprise" title="@{surprise}" value="2"></label> <label><select name="attr_surprise_die" class="text-small" title="@{surprise_die}">
<option value="6" selected="selected">of 6</option>
<option value="8">of 8</option>
<option value="10">of 10</option>
<option value="12">of 12</option>
<option value="20">of 20</option>
<option value="100">of 100</option>
</select></label> <span></span> <label><button type="roll" class="ability-button text-only" name="attr_constitution_check_roll" title="%{selected|constitution_check_roll}" value="@{constitution_check_macro_text}"><span>CON</span></button> <input type="text" class="hidden" name="attr_constitution_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Constitution Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{constitution} ]]}}"></label> <input type="text" class="field-border" name="attr_constitution" title="@{constitution}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_constitution_flag" value="1"> <label class="toggle-exceptional"><input type="text" class="width-smallest" name="attr_exceptionalconstitution" title="@{exceptionalconstitution} | Must have an Ability of 18+ to access field." value="0"></label> <label><span class="stack-text">HP Adj.</span></label> <input type="text" class="width-smaller" name="attr_hitpointbonus" title="@{hitpointbonus} | Max +2 unless Fighter, Paladin, or Ranger." value="0"> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_systemshock-roll" title="%{selected|systemshock-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=System Shock Survival}} {{roll_low=[[ 1d100 ]] %}} {{roll_target=[[ @{systemshock} ]]%}}"><span>Sys. Shock</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_systemshock" title="@{systemshock}" value="0"></label> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_resurrectionsurvival-roll" title="%{selected|resurrectionsurvival-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Resurrection Survival}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{resurrectionsurvival} ]]%}}"><span>Res. Surv.</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_resurrectionsurvival" title="@{resurrectionsurvival}" value="0"></label> <label class="span-four inline-label"><button type="roll" class="dice-button text-only" name="roll_surprise_others-roll" title="%{selected|surprise_others-roll}" value="@{whisper_pc} @{surprise_others_macro_text}"><span>Surprise Others</span></button> <span>Adj.</span> <input type="text" class="width-smaller" name="attr_surprise_others_mod" title="@{surprise_others_mod} | The modifier is typically indicated as bonus although the value is SUBTRACTED from the opponents Surprise check." value="0"></label> <span></span> <label><button type="roll" class="ability-button text-only" name="attr_charisma_check_roll" title="%{selected|charisma_check_roll}" value="@{charisma_check_macro_text}"><span>CHA</span></button> <input type="text" class="hidden" name="attr_charisma_check_macro_text" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Charisma Check}} {{roll_low=[[ @{ability_check_die}cs ]]}} {{roll_target=[[ @{charisma} ]]}}"></label> <input type="text" class="field-border" name="attr_charisma" title="@{charisma}" value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_charisma_flag" value="1"> <label class="toggle-exceptional"><input type="text" class="width-smallest" name="attr_exceptionalcharisma" title="@{exceptionalcharisma} | Must have an Ability of 18+ to access field." value="0"></label> <label><span class="stack-text">Max # Hench.</span></label> <input type="text" class="width-smaller" name="attr_maximumhenchmen" title="@{maximumhenchmen}" value="0"> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_loyalty-roll" title="%{selected|loyalty-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Loyalty}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ 50 + (@{loyaltybonus}[LOYALTY]) + ( ?{Modifier?|0}[MOD] ) ]]%}} {{Loyalty Applied=[[@{loyaltybonus}]]%}} {{mod_applied=[[ ?{Modifier?|0} ]]%}}"><span>Loyalty</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_loyaltybonus" title="@{loyaltybonus}" value="0"></label> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_reaction-roll" title="%{selected|reaction-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Reaction}} {{roll=[[ 1d100 + (@{reactionbonus}[BON]) + ( ?{Modifier?|0}[MOD] ) ]]%}} {{Reaction Applied=[[@{reactionbonus}]]%}} {{mod_applied=[[ ?{Modifier?|0} ]]%}}"><span>React.</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_reactionbonus" title="@{reactionbonus}" value="0"></label> <label class="inline-label"><button class="dice-button text-only" type="roll" name="attr_morale-roll" title="%{selected|morale-roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Morale Check}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{morale_base}[BASE] + ( ?{Modifier?|0}[MOD] ) ]]%}} {{mod_applied=[[ ?{Modifier?|0} ]]%}}"><span>Morale</span></button></label> <label class="label-percent"><input type="text" class="width-smaller" name="attr_morale_base" title="@{morale_base} | Base is 50%. Adjust +/- per circumstances." value="50"></label> <label></label> <label></label> <span class="toggle-comeliness"></span> <label class="toggle-comeliness"><button type="roll" class="ability-button text-only"><span>COM</span></button></label> <input type="text" class="field-border toggle-comeliness" name="attr_comeliness" title="@{comeliness} | Score should reflect 'Adjusted Comeliness' which takes into account Charisma and/or any racial adjustments." value="10"> <input type="checkbox" class="hidden exceptional" name="attr_exceptional_comeliness_flag" value="1"> <label class="toggle-exceptional toggle-comeliness"><input type="text" class="width-smallest" name="attr_exceptionalcomeliness" title="@{exceptionalcomeliness} | Must have an Ability of 18+ to access field." value="0"></label> <span class="span-ten inline-label toggle-comeliness"><b class="text-large">=</b> <span>Base COM</span> <input type="text" class="width-smaller" name="attr_comeliness_base" title="@{comeliness_base} | Comeliness base score. e.g. un-adjusted roll." value="8"> <b class="text-large">+</b> <span>CHA Adj.</span> <input type="text" class="width-smaller" name="attr_comeliness_cha_adj" title="@{comeliness_cha_adj} | Same race Bonus/Penalty adjustment. Auto-calculated based on Charisma." value="0" readonly="readonly"> <b class="text-large">+</b> <span>Racial Adj.</span> <select name="attr_comeliness_racial_adj" title="@{comeliness_racial_adj} | Bonus/Penalty adjustment as perceived by other races.">
<option value="-3">Half-Orcs</option>
<option value="-1">Dwarves, Gnomes</option>
<option value="0" selected="selected">Halflings, Humans</option>
<option value="1">Half-Elves, Sylvan Elves</option>
<option value="2">Gray Elves, High Elves</option>
</select> <input type="text" class="width-smaller" name="attr_comeliness_racial_adj" value="0" readonly="readonly"></span></span></div>
<div class="sect border"><span class="subheader center width-fill">Speed and Movement</span>
<div class="linear-background"><span class="basemove-columns column-header"><span class="span-five">Adjusted Speed</span> <span></span> <span class="stack-text">Explore/<wbr>Map</span> <span class="stack-text">Known Route</span> <span>Run/Flee</span> </span><span class="basemove-columns"><label for="move_normal" class="label-under"><input id="move_normal" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance_move" value="0" checked="checked" readonly="readonly"> <input type="text" class="width-smaller field-border" name="attr_movement" title="@{movement}" value="12"> <span>Normal</span></label> <label for="move_heavy" class="label-under" title="@{movement_heavy} | No DEX Bonus to Init."><input id="move_heavy" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance_move" value="1" readonly="readonly"> <input type="text" class="hidden" name="attr_movement_heavy" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_heavy" title="@{movement_heavy}"></span> <span>Heavy</span></label> <label for="move_very_heavy" class="label-under" title="@{movement_load} | No DEX Bonus to Init, Delayed, +1 Segment if Surprised."><input id="move_very_heavy" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance_move" value="2" readonly="readonly"> <input type="text" class="hidden" name="attr_movement_load" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_load" title="@{movement_load}"></span> <span class="nowrap">Very Heavy</span></label> <label for="move_encumbered" class="label-under" title="@{movement_max} |No DEX Bonus to Init or AC, Go Last in Init, +2 Segments if Surprised, Cannot Charge, Enemies get +2 to-hit."><input id="move_encumbered" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance_move" value="3" readonly="readonly"> <input type="text" class="hidden" name="attr_movement_max" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_max" title="@{movement|max}"></span> <span class="long">Encumbered</span></label>
<h4 class="stack-text">Move/<wbr>Round</h4><label class="text-large">=</label> <label class="label-under" title="@{movement_normal}"><input type="text" class="hidden" name="attr_movement_normal" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_normal" title="@{movement_normal}"></span> <span class="text-small">(Speed x1')</span></label> <label class="label-under" title="@{movement_known}"><input type="text" class="hidden" name="attr_movement_known" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_known" title="@{movement_known}"></span> <span class="text-small">(Speed x5')</span></label> <label class="label-under" title="@{movement_run}"><input type="text" class="hidden" name="attr_movement_run" value="0" readonly="readonly"> <span class="readonly-span no-border" name="attr_movement_run" title="@{movement_run}"></span> <span class="text-small">(Speed x10')</span></label> <input type="text" class="hidden" name="attr_movement_crawl" value="0" readonly="readonly"> <span class="span-six"><label class="inline-label" title="@{current_bulk_label} | Current Bulk as per active armors, shield, clothing, etc."><span class="stack-text">Current Armor Bulk:</span> <input type="text" class="width-fill height-short" name="attr_current_bulk_label" value="" placeholder="no bulk" readonly="readonly"></label> <label class="inline-label" title="@{current_encumbrance_label} | Encumbrance is the current load for carried weight vs strength adjustments."><span class="stack-text">Current Encumbrance:</span> <input type="text" class="width-fill height-short" style="margin-right: -1em;" name="attr_current_encumbrance_label" value="" placeholder="no encumbrance" readonly="readonly"></label> </span><label class="inline-label span-three right" title="@{autocalc_movement_flag} | Let the sheet calculate Movement/Speed. Uses base movement and the current encumbrance(STR vs total_weight carried). Note: Load can can be set manually but any changes to base movement, encumbrance, or opening the sheet will trigger a re-calc."><span class="stack-text">Auto-Calc Movement:</span> <input type="checkbox" name="attr_autocalc_movement_flag" value="1" checked="checked"></label>
</span></div>
</div>
<hr>
</section>
<section class="saves-box"><input type="checkbox" class="sect-show" name="attr_saves_info_show" value="1" checked="checked">
<div class="header">SAVES</div><span class="material-icons"></span>
<div class="saves-class sect"><label></label> <label class="center"><span>Class</span></label> <label class="center"><span>Level</span></label> <label class="inline-label" title="@{autofill_saves} | Let the sheet auto-fill the Base Saves when the class and level selectors are changed."><span>Autofill Base:</span> <input type="checkbox" name="attr_autofill_saves" value="1" checked="checked"></label> <label class="center"><select class="width-fill border" name="attr_saves_class" title="@{saves_class}">
<option value="0" selected="selected" style="font-weight: bold;">~ Select a Class ~</option>
<option value="1">Cleric</option>
<option value="2">Druid</option>
<option value="3">Fighter, Paladin, or Ranger</option>
<option value="4">Magic-User or Illusionist</option>
<option value="5">Thief</option>
<option value="6">Monk</option>
<option value="7">Assassin</option>
<option value="8">Other 0-lvl Types</option>
</select></label> <label class="center"><input class="width-small border" type="number" min="0" name="attr_saves_level" value="1" title="@{saves_level}"></label></div>
<div class="sect"><span class="saves-columns column-header"><span></span> <span>TOTAL</span> <span></span> <span>Base/Class</span> <span></span> <span>Racial Adj.</span> <span></span> <span>Ability Adj.</span> <span></span> <span>Misc. Adj.</span> <span></span> <span>Temp. Adj.</span> </span><span class="saves-columns"><button class="saves-button text-only" type="roll" name="roll_saveparalysispoisondeath" title="%{selected|saveparalysispoisondeath}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Paralysis, Poison or Death Magic}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{saveparalysispoisondeath}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Paralysis, Poison, or Death Magic</span></button> <span title="@{saveparalysispoisondeath}"><input type="text" class="width-smaller field-border readonly-span" name="attr_saveparalysispoisondeath" title="@{saveparalysispoisondeath}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_saveparalysispoisondeath_base" title="@{saveparalysispoisondeath_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_saveparalysispoisondeath_racial_mod" title="@{saveparalysispoisondeath_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saveparalysispoisondeath_ability_mod" title="@{saveparalysispoisondeath_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saveparalysispoisondeath_misc_mod" title="@{saveparalysispoisondeath_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saveparalysispoisondeath_temp_mod" title="@{saveparalysispoisondeath_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span></span><span class="saves-columns"><button class="saves-button text-only" type="roll" name="roll_savepetrificationpolymorph" title="%{selected|savepetrificationpolymorph}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Petrification or Polymorph}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savepetrificationpolymorph}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Petrification or Polymorph</span></button> <span title="@{savepetrificationpolymorph}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savepetrificationpolymorph" title="@{savepetrificationpolymorph}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savepetrificationpolymorph_base" title="@{savepetrificationpolymorph_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savepetrificationpolymorph_racial_mod" title="@{savepetrificationpolymorph_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savepetrificationpolymorph_ability_mod" title="@{savepetrificationpolymorph_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savepetrificationpolymorph_misc_mod" title="@{savepetrificationpolymorph_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savepetrificationpolymorph_temp_mod" title="@{savepetrificationpolymorph_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span></span><span class="saves-columns"><button class="saves-button text-only" type="roll" name="roll_saverodsstaveswands" title="%{selected|saverodsstaveswands}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Rods, Staves, or Wands}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{saverodsstaveswands}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Rods, Staves, or Wands</span></button> <span title="@{saverodsstaveswands}"><input type="text" class="width-smaller field-border readonly-span" name="attr_saverodsstaveswands" title="@{saverodsstaveswands}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_saverodsstaveswands_base" title="@{saverodsstaveswands_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_saverodsstaveswands_racial_mod" title="@{saverodsstaveswands_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saverodsstaveswands_ability_mod" title="@{saverodsstaveswands_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saverodsstaveswands_misc_mod" title="@{saverodsstaveswands_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_saverodsstaveswands_temp_mod" title="@{saverodsstaveswands_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span></span><span class="saves-columns"><button class="saves-button text-only" type="roll" name="roll_savebreathweapons" title="%{selected|savebreathweapons}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Breath Weapon}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savebreathweapons}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Breath Weapon</span></button> <span title="@{savebreathweapons}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savebreathweapons" title="@{savebreathweapons}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savebreathweapons_base" title="@{savebreathweapons_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savebreathweapons_racial_mod" title="@{savebreathweapons_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savebreathweapons_ability_mod" title="@{savebreathweapons_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savebreathweapons_misc_mod" title="@{savebreathweapons_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savebreathweapons_temp_mod" title="@{savebreathweapons_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span></span><span class="saves-columns"><button class="saves-button text-only" type="roll" name="roll_savespells" title="%{selected|savespells}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Spells}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savespells}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Spells</span></button> <span title="@{savespells}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savespells" title="@{savespells}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savespells_base" title="@{savespells_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savespells_racial_mod" title="@{savespells_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savespells_ability_mod" title="@{savespells_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savespells_misc_mod" title="@{savespells_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savespells_temp_mod" title="@{savespells_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span></span><input type="checkbox" class="sect-show" name="attr_custom_saves_show" value="1"> <span class="subheader">Custom Saves</span><span class="material-icons"></span>
<div class="sect"><span class="saves-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="saves-button text-only" type="roll" name="roll_savemisc" title="%{selected|savemisc}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{savemisc_name}}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savemisc}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span name="attr_savemisc_name"></span></button></summary><input type="text" class="width-fill" name="attr_savemisc_name" title="@{savemisc_name}" value="Custom...">
</details><span title="@{savemisc}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savemisc" title="@{savemisc}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savemisc_base" title="@{savemisc_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc_racial_mod" title="@{savemisc_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc_ability_mod" title="@{savemisc_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc_misc_mod" title="@{savemisc_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc_temp_mod" title="@{savemisc_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span>
</span><span class="saves-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="saves-button text-only" type="roll" name="roll_savemisc1" title="%{selected|savemisc1}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{savemisc1_name}}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savemisc1}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span name="attr_savemisc1_name"></span></button></summary><input type="text" class="width-fill" name="attr_savemisc1_name" title="@{savemisc1_name}" value="Custom...">
</details><span title="@{savemisc1}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savemisc1" title="@{savemisc1}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savemisc1_base" title="@{savemisc1_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc1_racial_mod" title="@{savemisc1_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc1_ability_mod" title="@{savemisc1_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc1_misc_mod" title="@{savemisc1_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc1_temp_mod" title="@{savemisc1_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span>
</span><span class="saves-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="saves-button text-only" type="roll" name="roll_savemisc2" title="%{selected|savemisc2}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{savemisc2_name}}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savemisc2}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span name="attr_savemisc2_name"></span></button></summary><input type="text" class="width-fill" name="attr_savemisc2_name" title="@{savemisc2_name}" value="Custom...">
</details><span title="@{savemisc2}"><input type="text" class="width-smaller field-border readonly-span" name="attr_savemisc2" title="@{savemisc2}" value="20"></span><span class="text-large">=</span> <span><input type="text" class="width-smaller" name="attr_savemisc2_base" title="@{savemisc2_base}" value="20"></span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc2_racial_mod" title="@{savemisc2_racial_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc2_ability_mod" title="@{savemisc2_ability_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc2_misc_mod" title="@{savemisc2_misc_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select> </span><span class="text-large">±</span> <span><select class="width-small" name="attr_savemisc2_temp_mod" title="@{savemisc2_temp_mod}">
<option value="-10" class="option-bonus" title="Bonus">+10</option>
<option value="-9" class="option-bonus" title="Bonus">+9</option>
<option value="-8" class="option-bonus" title="Bonus">+8</option>
<option value="-7" class="option-bonus" title="Bonus">+7</option>
<option value="-6" class="option-bonus" title="Bonus">+6</option>
<option value="-5" class="option-bonus" title="Bonus">+5</option>
<option value="-4" class="option-bonus" title="Bonus">+4</option>
<option value="-3" class="option-bonus" title="Bonus">+3</option>
<option value="-2" class="option-bonus" title="Bonus">+2</option>
<option value="-1" class="option-bonus" title="Bonus">+1</option>
<option value="0" selected="selected">0</option>
<option value="1" class="option-penalty" title="Penalty">-1</option>
<option value="2" class="option-penalty" title="Penalty">-2</option>
<option value="3" class="option-penalty" title="Penalty">-3</option>
<option value="4" class="option-penalty" title="Penalty">-4</option>
<option value="5" class="option-penalty" title="Penalty">-5</option>
<option value="6" class="option-penalty" title="Penalty">-6</option>
<option value="7" class="option-penalty" title="Penalty">-7</option>
<option value="8" class="option-penalty" title="Penalty">-8</option>
<option value="9" class="option-penalty" title="Penalty">-9</option>
<option value="10" class="option-penalty" title="Penalty">-10</option>
</select></span>
</span></div><span class="inline-label"><label class="inline-label width-auto"><button type="roll" name="roll_magicresistance_roll" class="dice-button text-only" title="%{selected|magicresistance_roll}" value="@{whisper_pc} &amp;{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Magic Resistance Notes}} {{freetext=@{magic_resistance}}}"><span>Magic Resistance Notes:</span></button></label> <textarea class="height-short" name="attr_magic_resistance" title="@{magic_resistance}" placeholder="Nil"></textarea> </span><span class="inline-label"><label class="inline-label width-auto"><button type="roll" name="roll_savingthrow_notes_roll" class="dice-button text-only" title="%{selected|savingthrow_notes_roll}" value="@{whisper_pc} &amp;{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw Notes}} {{freetext=@{savingthrow_notes}}}"><span>Saving Throw Notes:</span></button></label> <textarea name="attr_savingthrow_notes" class="height-short" title="@{savingthrow_notes}" placeholder="Resistances, Immunities, Saving Throw adjustments, etc."></textarea></span>
</div>
<hr>
</section>
<section class="weapons-box"><input type="checkbox" class="sect-show" name="attr_weapons_info_show" value="1" checked="checked">
<div class="header"><span class="hide-as-npc">ATTACKS</span> <span class="hide-as-pc">ATTACKS</span></div><span class="material-icons"></span>
<div class="weapons-proficiency-box border sect hide-as-npc linear-background">
<h4 class="inline-label">Weapon Proficiency:</h4><label><span class="stack-text-wide">Initial # of Weapons:</span> <input type="text" class="width-small" name="attr_weapon_proficiency_initial" value="0" title="@{weapon_proficiency_initial}"></label> <label><span class="stack-text-wide">Non-Proficiency Penalty:</span> <select class="width-small" name="attr_weapon_proficiency_penalty" title="@{weapon_proficiency_penalty}">
<option value="0">0</option>
<option value="-1">-1</option>
<option value="-2" selected="selected">-2</option>
<option value="-3">-3</option>
<option value="-4">-4</option>
<option value="-5">-5</option>
</select> <input type="number" class="hidden" name="attr_weapon_proficiency_penalty" value="-2"></label> <label class="span-two" style="align-items: center;"><span class="stack-text-wide">Added Proficiency every:</span> <input type="text" class="width-small" name="attr_weapon_proficiency_added_per_level" value="0" title="@{weapon_proficiency_added_per_level}"> <span>Levels</span></label> <span></span> <label><span>Total</span> <input type="text" class="width-small" name="attr_weapon_proficiency_total" value="0" title="@{weapon_proficiency_total}"></label>
<h4 class="inline-label">Weapons:</h4><label class="span-six"><textarea class="height-short" name="attr_weapon_proficiency_list" title="@{weapon_proficiency_list}" placeholder="List weapon proficiencies"></textarea></label> <span class="span-all inline-label"><span class="inline-label border"><label title="@{meleebonus} | STR Melee attack adjustment."><span class="stack-text">To-Hit:</span> <input type="text" class="width-smaller" name="attr_meleebonus" value="0" readonly=""></label> <label title="@{dmgbonus} | STR Melee attack Damage adjustment."><span class="stack-text">Damage:</span> <input type="text" class="width-smaller" name="attr_dmgbonus" value="0" readonly=""></label> <label title="@{rangedbonus} | DEX Ranged attack 'To-Hit' adjustment."><span class="stack-text">Missile:</span> <input type="text" class="width-smaller" name="attr_rangedbonus" value="0" readonly=""></label> </span><span class="inline-label border"><label class="inline-label"><span>Dual-Wield Pen:</span></label> <label title="@{dual_pen_primary} | -2 and adjusted as per Dexterity. Auto-calculated based on Dexterity."><span class="stack-text">Primary:</span> <input type="text" class="width-smaller" name="attr_dual_pen_primary" value="0" readonly=""></label> <label title="@{dual_pen_secondary} | -4 and adjusted as per Dexterity. Auto-calculated based on Dexterity."><span class="stack-text">Secondary:</span> <input type="text" class="width-smaller" name="attr_dual_pen_secondary" value="0" readonly=""></label> </span></span><label class="span-two inline-label" title="@{weapon_in_use} | Current weapon In-Use/Armed. If multiple attack rows are 'In-Use', the fastest weapon will be used here."><span>Weapon In-Use:</span> <input type="text" class="width-large" name="attr_weapon_in_use" value="" placeholder="n/a" readonly="readonly"></label> <label class="inline-label" title="@{weapon_in_use_speed} | Weapon Speed Factor."><span>Weapon Speed:</span> <input type="text" class="width-small" name="attr_weapon_in_use_speed" value="" placeholder="n/a" readonly="readonly"></label> <label class="inline-label" title="@{weapon_in_use_misc} | Weapon Misc."><span>Weapon Misc.:</span> <input type="text" class="width-small" name="attr_weapon_in_use_misc" value="" placeholder="n/a" readonly="readonly"></label>
</div>
<div class="sect" style="margin-top: -.5em;"><input type="checkbox" class="hidden toggle-input-attention" name="attr_attack_matrix_flag" value="1"> <span class="material-icons" title="Attack tables have not been set!">nearby_error</span> <input type="checkbox" class="hidden toggle-to-hit-table" name="attr_toggle_to_hit_table" value="1"> <input type="checkbox" class="sect-show" name="attr_matrix_info_show" value="1" style="margin-top: .75em;" title="Enter To-Hit Armor Class Table data." checked="checked">
<div class="subheader"><span class="material-icons grid"></span> <span class="matrix-box label-matrix">ATTACK MATRIX</span> <span class="thac0-box label-matrix" title="Enter THAC0 data">THAC0</span></div><span class="material-icons"></span>
<div class="sect border"><input type="checkbox" class="toggle-matrix-autofill hidden" name="attr_autofill_matrix" value="1" checked="checked"> <input type="checkbox" class="toggle-sync-class hidden" name="attr_sync_matrix_class" value="1"> <input type="hidden" class="toggle-fighter5 hidden" name="attr_matrix_class" value="0"> <input type="checkbox" class="toggle-matrixhd hidden" name="attr_toggle_matrixhd" value="1">
<div class="matrix-class"><label class="inline-label" title="@{autofill_matrix} | Let the sheet auto-fill the to-hit tables when the class and level selectors are changed in the attack Matrix window. NOTE: The Autofill Table option uses the 1e table data to establish the base THAC0, but it does not use the repeating 20's."><span>Autofill Table:</span> <input type="checkbox" name="attr_autofill_matrix" value="1" checked="checked"></label> <label class="show-sync-class"></label> <label class="show-sync-class"><span>Class</span></label> <label class="matrix-level"><span>Level</span></label> <label class="matrix-hd"><span>HD/Lvl</span></label> <label><span>Use Table</span></label> <label class="fighter5 matrix-level" title="@{toggle_fighter5} | Use a 5% progression to-Hit table. This is a Fighter only option and will have no effect for other classes." style="margin-inline: auto;"><span>Use 5%</span> <input type="checkbox" class="hidden" name="attr_toggle_fighter5" value="1"></label> <label></label> <label class="inline-label" title="@{sync_matrix_class} | Linking to a class will automatically adjust the to-Hit values when the linked class level changes. Ensure class and level are filled in at the top of the sheet. Note: multi-class/dual-class characters should pick the most favorable class. Defaults to Class 1 of 3 if enabled."><span>Sync to Class:</span> <input type="checkbox" name="attr_sync_matrix_class" value="1"></label> <label class="show-sync-class"><select class="class-selected border" name="attr_class_selected" title="@{class_selected} | Linking to a class will automatically adjust the to-Hit values when the linked class level changes. Note: multi-class/dual-class characters should pick the most favorable class.">
<option value="1" selected="selected">Class 1</option>
<option value="2">Class 2</option>
<option value="3">Class 3</option>
</select></label> <label class="show-sync-class"><input type="hidden" class="class-selected" name="attr_class_selected" value="1"> <input class="show-class1-name" name="attr_class" title="@{class}" placeholder="n/a" readonly="readonly"> <input class="show-class2-name" name="attr_secondclass" title="@{secondclass}" placeholder="n/a" readonly="readonly"> <input class="show-class3-name" name="attr_thirdclass" title="@{thirdclass}" placeholder="n/a" readonly="readonly"></label> <label class="matrix-level show-sync-class"><input class="width-small border" type="number" name="attr_matrix_level" value="0" title="@{matrix_level}" readonly="readonly"></label> <label class="matrix-level show-when-not-synced"><input class="width-small border" type="number" name="attr_matrix_level" value="0" title="@{matrix_level}"></label> <label class="matrix-hd"><select class="width-small-plus border" name="attr_matrix_hitdice" title="@{matrix_hitdice}">
<option value="0" selected="selected">Select HD/Lvl</option>
<option value="1">up to 1-1</option>
<option value="2">1-1</option>
<option value="3">1</option>
<option value="4">1+</option>
<option value="5">2-3+</option>
<option value="6">4-5+</option>
<option value="7">6-7+</option>
<option value="8">8-9+</option>
<option value="9">10-11+</option>
<option value="10">12-13+</option>
<option value="11">14-15+</option>
<option value="12">16+</option>
</select></label> <label class="width-auto show-sync-class" title="@{matrix_class}"><select class="border readonly" name="attr_matrix_class" style="pointer-events: none;">
<option value="0" selected="selected" style="font-weight: bold;">Select a Class</option>
<option value="1">Cleric, Druid or Monk</option>
<option value="2">Fighter, Paladin, Ranger or Bard</option>
<option value="3">Magic-User or Illusionist</option>
<option value="4">Thief or Assassin</option>
<option value="6">0-lvl Halfling or Human</option>
<option value="5">Monster</option>
</select></label> <label class="width-auto show-when-not-synced"><select class="border" name="attr_matrix_class" title="@{matrix_class}">
<option value="0" selected="selected" style="font-weight: bold;">Select a Class or Monster</option>
<option value="1">Cleric, Druid or Monk</option>
<option value="2">Fighter, Paladin, Ranger or Bard</option>
<option value="3">Magic-User or Illusionist</option>
<option value="4">Thief or Assassin</option>
<option value="6">0-lvl Halfling or Human</option>
<option value="5">Monster</option>
</select></label> <label class="fighter5 matrix-level" title="@{toggle_fighter5} | Use a 5% progression to-Hit table. This is a Fighter only option and will have no effect for other classes."><input type="checkbox" name="attr_toggle_fighter5" value="1"></label> <label></label></div>
<div class="matrix-box">
<section><span class="to-hit center"><span>-10</span> <span>-9</span> <span>-8</span> <span>-7</span> <span>-6</span> <span>-5</span> <span>-4</span> <span>-3</span> <span>-2</span> <span>-1</span> <span>0</span> <span>1</span> <span>2</span> <span>3</span> <span>4</span> <span>5</span> <span>6</span> <span>7</span> <span>8</span> <span>9</span> <span>10</span> </span><span class="to-hit-input"><span><input type="text" name="attr_thac-10" title="@{thac-10}" value="20"></span><span><input type="text" name="attr_thac-9" title="@{thac-9}" value="20"></span><span><input type="text" name="attr_thac-8" title="@{thac-8}" value="20"></span><span><input type="text" name="attr_thac-7" title="@{thac-7}" value="20"></span><span><input type="text" name="attr_thac-6" title="@{thac-6}" value="20"></span><span><input type="text" name="attr_thac-5" title="@{thac-5}" value="20"></span><span><input type="text" name="attr_thac-4" title="@{thac-4}" value="20"></span><span><input type="text" name="attr_thac-3" title="@{thac-3}" value="20"></span><span><input type="text" name="attr_thac-2" title="@{thac-2}" value="20"></span><span><input type="text" name="attr_thac-1" title="@{thac-1}" value="20"></span><span><input type="text" name="attr_thac0" title="@{thac0}" value="20"></span><span><input type="text" name="attr_thac1" title="@{thac1}" value="20"></span><span><input type="text" name="attr_thac2" title="@{thac2}" value="20"></span><span><input type="text" name="attr_thac3" title="@{thac3}" value="20"></span><span><input type="text" name="attr_thac4" title="@{thac4}" value="20"></span><span><input type="text" name="attr_thac5" title="@{thac5}" value="20"></span><span><input type="text" name="attr_thac6" title="@{thac6}" value="20"></span><span><input type="text" name="attr_thac7" title="@{thac7}" value="20"></span><span><input type="text" name="attr_thac8" title="@{thac8}" value="20"></span><span><input type="text" name="attr_thac9" title="@{thac9}" value="20"></span><span><input type="text" name="attr_thac10" title="@{thac10}" value="20"></span></span></section>
</div>
<div class="thac0-box">
<section><span class="to-hit center"><span>-10</span> <span>-9</span> <span>-8</span> <span>-7</span> <span>-6</span> <span>-5</span> <span>-4</span> <span>-3</span> <span>-2</span> <span>-1</span> <span>0</span> <span>1</span> <span>2</span> <span>3</span> <span>4</span> <span>5</span> <span>6</span> <span>7</span> <span>8</span> <span>9</span> <span>10</span> </span><span class="to-hit-input"><span><input type="text" name="attr_thac0-10" title="@{thac0-10}" value="20"></span><span><input type="text" name="attr_thac0-9" title="@{thac0-9}" value="20"></span><span><input type="text" name="attr_thac0-8" title="@{thac0-8}" value="20"></span><span><input type="text" name="attr_thac0-7" title="@{thac0-7}" value="20"></span><span><input type="text" name="attr_thac0-6" title="@{thac0-6}" value="20"></span><span><input type="text" name="attr_thac0-5" title="@{thac0-5}" value="20"></span><span><input type="text" name="attr_thac0-4" title="@{thac0-4}" value="20"></span><span><input type="text" name="attr_thac0-3" title="@{thac0-3}" value="20"></span><span><input type="text" name="attr_thac0-2" title="@{thac0-2}" value="20"></span><span><input type="text" name="attr_thac0-1" title="@{thac0-1}" value="20"></span><span><input type="text" name="attr_thac00" title="@{thac00}" value="20" style="font-weight:bold; border: 3px solid black;"></span><span><input type="text" name="attr_thac01" title="@{thac01}" value="20"></span><span><input type="text" name="attr_thac02" title="@{thac02}" value="20"></span><span><input type="text" name="attr_thac03" title="@{thac03}" value="20"></span><span><input type="text" name="attr_thac04" title="@{thac04}" value="20"></span><span><input type="text" name="attr_thac05" title="@{thac05}" value="20"></span><span><input type="text" name="attr_thac06" title="@{thac06}" value="20"></span><span><input type="text" name="attr_thac07" title="@{thac07}" value="20"></span><span><input type="text" name="attr_thac08" title="@{thac08}" value="20"></span><span><input type="text" name="attr_thac09" title="@{thac09}" value="20"></span><span><input type="text" name="attr_thac010" title="@{thac010}" value="20"></span></span></section>
</div>
</div>
</div>
<div class="sect"><input type="checkbox" class="hidden toggle-to-hit-table" name="attr_toggle_to_hit_table" value="1">
<fieldset class="repeating_weapon"><input type="hidden" class="weapon-type-toggle" name="attr_weapon_attack_type_flag" value="0"> <input type="checkbox" class="hidden" name="attr_weapon_critdamage_flag" value="1">
<div class="top-row border-top-half"><span class="weapons-row1 center"><button class="dice-button hide-as-npc" type="roll" name="attr_weapon_attack_roll" title="%{selected|repeating_weapon_$X_weapon_attack_roll} | PC Roll" value="@{whisper_pc} @{weapon_macro_text} @{weapon_whisper_to_hit}"></button> <button class="dice-button hide-as-pc" type="roll" name="attr_weapon_attack_npc_roll" title="%{selected|repeating_weapon_$X_weapon_attack_npc_roll} | NPC Roll" value="@{whisper_npc} @{weapon_macro_text} @{weapon_damage_chat_menu_npc} @{weapon_whisper_to_hit}"></button> <label class="label-under-small repeating-name"><input type="text" class="text-large" name="attr_weapon_name" title="@{repeating_weapon_$X_weapon_name}" placeholder="Enter Weapon"> <span>Name</span></label> <label class="label-under-small"><select name="attr_weapon_attack_type" class="select-over-label" title="@{repeating_weapon_$X_weapon_attack_type}">
<option value="0" selected="selected">Melee</option>
<option value="1">Ranged</option>
<option value="2">Touch</option>
<option value="3">Ranged Touch</option>
</select> <span class="hide-overflowing-text">Attack Type</span></label> <label class="label-under-small toggle-backstab hide-if-ranged"><span class="two-inputs-over-label"><input type="checkbox" class="toggle-field" name="attr_weapon_backstab_flag" title="@{repeating_weapon_$X_weapon_backstab_flag}" value="1"> <input type="text" class="width-smaller" name="attr_weapon_backstab_var" value="0" title="@{repeating_weapon_$X_weapon_backstab_bonus} | Uses the @{backstab_bonus} from the Thief's section below." readonly="readonly"> <input type="number" class="hidden" name="attr_weapon_backstab_bonus" value="0"> </span><span title="Apply a Backstab bonus to the attack roll.">Backstab</span></label> <label class="label-under-small"><input type="text" class="width-medium" name="attr_weapon_tohitbonus" title="@{repeating_weapon_$X_weapon_tohitbonus}" value="0"> <span>To-Hit</span></label> <label class="label-under-small"><input type="text" class="width-medium" name="attr_weapon_magicbonus" title="@{repeating_weapon_$X_weapon_magicbonus}" value="0"> <span>Magic</span></label> <label class="label-under-small"><span class="two-inputs-over-label"><input type="checkbox" class="toggle-field" name="attr_weapon_prof_flag" title="@{repeating_weapon_$X_weapon_prof_flag}" value="1"> <input type="text" class="width-smaller" name="attr_weapon_prof" value="0" title="@{repeating_weapon_$X_weapon_prof_pen} | Uses the value from @{weapon_proficiency_penalty} from Weapon Proficiency section above." readonly="readonly"> <input type="number" class="hidden" name="attr_weapon_prof_pen" value="0"> </span><span class="nowrap" title="Non-Proficiency penalty will be applied to the attack roll.">NP Penalty</span></label> <label class="label-under-small center" title="Dual-wield attack? Defaults to Primary -2, Secondary -4 and then auto-calculated according to Dex."><span class="two-inputs-over-label"><select class="select-over-label" name="attr_weapon_dual" title="@{repeating_weapon_$X_weapon_dual}">
<option value="" selected="selected">Normal</option>
<option value="Primary">Primary</option>
<option value="Secondary">Secondary</option>
</select> <input type="text" class="width-smaller" name="attr_weapon_dual_pen" title="@{repeating_weapon_$X_weapon_dual_pen}" value="0"> </span><span>Dual-Wield</span></label> <label></label> </span><span class="weapons-row2 center"><label class="inline-label" title="@{repeating_weapon_$X_weapon_use} | Weapon is armed."><input type="checkbox" name="attr_weapon_use" value="1"> <span class="label-under-small">In-Use</span></label>
<details class="small-damage">
<summary><span class="material-icons custom-btn-nav toggle-critdamage" title="Open to Roll Crit Damage"></span> <input type="text" class="width-medium" name="attr_weapon_damagesmallmedium" title="@{repeating_weapon_$X_weapon_damagesmallmedium}" value="" placeholder="1d4"> <button class="text-only hide-as-npc" type="roll" name="roll_weapon_damagesmallmedium_roll" title="%{repeating_weapon_$X_weapon_damagesmallmedium_roll} | PC Roll" value="@{weapon_damagesmallmedium_macro_text}"><span class="dice-button nowrap">DMG S/M</span></button> <button class="text-only hide-as-pc" type="roll" name="roll_weapon_damagesmallmedium_npc_roll" title="%{repeating_weapon_$X_weapon_damagesmallmedium_npc_roll} | NPC Roll" value="@{weapon_damagesmallmedium_macro_npc_text}"><span class="dice-button nowrap">DMG S/M</span></button> <input type="hidden" name="attr_weapon_damagesmallmedium_chat_menu" value=""> <input type="hidden" name="attr_weapon_critdamagesmallmedium_chat_menu" value=""> <input type="hidden" name="attr_weapon_damagesmallmedium_npc_chat_menu" value=""> <input type="hidden" name="attr_weapon_critdamagesmallmedium_npc_chat_menu" value=""> <textarea class="hidden" name="attr_weapon_damagesmallmedium_macro_text">@{whisper_pc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsSM=[[ (@{weapon_damagesmallmedium}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}}</textarea> <textarea class="hidden" name="attr_weapon_critdamagesmallmedium_macro_text">@{whisper_pc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsSM=[[ (@{weapon_critdamagesmallmedium}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{crit=[[ @{toggle_critdamage} ]]}}</textarea> <textarea class="hidden" name="attr_weapon_damagesmallmedium_macro_npc_text">@{whisper_npc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsSM=[[ (@{weapon_damagesmallmedium}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}}</textarea> <textarea class="hidden" name="attr_weapon_critdamagesmallmedium_macro_npc_text">@{whisper_npc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsSM=[[ (@{weapon_critdamagesmallmedium}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{crit=[[ @{toggle_critdamage} ]]}}</textarea></summary><label class="label-under toggle-critdamage"><button class="text-only hide-as-npc" type="roll" name="roll_weapon_critdamagesmallmedium_roll" title="%{repeating_weapon_$X_weapon_critdamagesmallmedium_roll} | PC Roll" value="@{weapon_critdamagesmallmedium_macro_text}"><span class="dice-button nowrap">Roll Crit</span></button> <button class="text-only hide-as-pc" type="roll" name="roll_weapon_critdamagesmallmedium_npc_roll" title="%{repeating_weapon_$X_weapon_critdamagesmallmedium_npc_roll} | NPC Roll" value="@{weapon_critdamagesmallmedium_macro_npc_text}"><span class="dice-button nowrap">Roll Crit</span></button> <textarea class="height-short toggle-macros" name="attr_weapon_critdamagesmallmedium" title="@{repeating_weapon_$X_weapon_critdamagesmallmedium} | Crit Damage roll in lieu of normal damage roll. Defaults to x2 of the weapon's normal damage. e.g. @{weapon_damagesmallmedium}*2">(@{weapon_damagesmallmedium})*2</textarea></label>
</details>
<details class="large-damage">
<summary><span class="material-icons custom-btn-nav toggle-critdamage"></span> <input type="text" class="width-medium" name="attr_weapon_damagelarge" title="@{repeating_weapon_$X_weapon_damagelarge}" value="" placeholder="1d6"> <button class="text-only hide-as-npc" type="roll" name="roll_weapon_damagelarge_roll" title="%{repeating_weapon_$X_weapon_damagelarge_roll} | PC Roll" value="@{weapon_damagelarge_macro_text}"><span class="dice-button nowrap">DMG LG</span></button> <button class="text-only hide-as-pc" type="roll" name="roll_weapon_damagelarge_npc_roll" title="%{repeating_weapon_$X_weapon_damagelarge_npc_roll} | NPC Roll" value="@{weapon_damagelarge_macro_npc_text}"><span class="dice-button nowrap">DMG LG</span></button> <input type="hidden" name="attr_weapon_damagelarge_chat_menu" value=""> <input type="hidden" name="attr_weapon_critdamagelarge_chat_menu" value=""> <input type="hidden" name="attr_weapon_damagelarge_npc_chat_menu" value=""> <input type="hidden" name="attr_weapon_critdamagelarge_npc_chat_menu" value=""> <textarea class="hidden" name="attr_weapon_damagelarge_macro_text">@{whisper_pc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsL=[[ (@{weapon_damagelarge}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}}</textarea> <textarea class="hidden" name="attr_weapon_critdamagelarge_macro_text">@{whisper_pc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsL=[[ (@{weapon_critdamagelarge}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{crit=[[ @{toggle_critdamage} ]]}}</textarea> <textarea class="hidden" name="attr_weapon_damagelarge_macro_npc_text">@{whisper_npc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsL=[[ (@{weapon_damagelarge}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}}</textarea> <textarea class="hidden" name="attr_weapon_critdamagelarge_macro_npc_text">@{whisper_npc} &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{damage1vsL=[[ (@{weapon_critdamagelarge}) * @{weapon_backstab_mult}[MULT] + ( @{weapon_attackdmgbonus}[DMG_BON] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{crit=[[ @{toggle_critdamage} ]]}}</textarea></summary><label class="label-under toggle-critdamage"><button class="text-only hide-as-npc" type="roll" name="roll_weapon_critdamagelarge_roll" title="%{repeating_weapon_$X_weapon_critdamagelarge_roll} | PC Roll" value="@{weapon_critdamagelarge_macro_text}"><span class="dice-button nowrap">Roll Crit</span></button> <button class="text-only hide-as-pc" type="roll" name="roll_weapon_critdamagelarge_npc_roll" title="%{repeating_weapon_$X_weapon_critdamagelarge_npc_roll} | NPC Roll" value="@{weapon_critdamagelarge_macro_npc_text}"><span class="dice-button nowrap">Roll Crit</span></button> <textarea class="height-short toggle-macros" name="attr_weapon_critdamagelarge" title="@{repeating_weapon_$X_weapon_critdamagelarge} | Crit Damage roll instead of normal damage roll. Defaults to x2 of the weapon's normal damage. e.g. @{weapon_damagelarge}*2">(@{weapon_damagelarge})*2</textarea></label>
</details><input type="hidden" name="attr_weapon_damage_chat_menu_npc" value="{{damagevsSMchatmenu=@{weapon_damagesmallmedium_npc_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_npc_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_npc_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_npc_chat_menu}}}"> <label class="label-under-small toggle-backstab hide-if-ranged center"><span class="two-inputs-over-label"><input type="checkbox" class="toggle-field" name="attr_weapon_backstab_flag" title="@{repeating_weapon_$X_weapon_backstab_flag}" value="1"> <input type="text" class="width-smaller" name="attr_weapon_backstab" value="1" title="@{repeating_weapon_$X_weapon_backstab_mult} | Uses the value from @{backstab} from the Thief Skills section below." readonly="readonly"> <input type="number" class="hidden" name="attr_weapon_backstab_mult" value="1"> </span><span class="hide-overflowing-text" title="Apply a multiplier to the weapon damage rolled.">Backstab Mult</span></label> <label class="label-under-small"><input type="text" class="width-medium" name="attr_weapon_attackdmgbonus" title="@{repeating_weapon_$X_weapon_attackdmgbonus}" value="0"> <span>DMG Adj.</span></label> <label class="label-under-small" title="@{repeating_weapon_$X_weapon_attackdmgtype} | (P)iercing, (S)lashing, (B)ludgeoning, etc."><input type="text" class="width-medium" name="attr_weapon_attackdmgtype" value="" placeholder="-"> <span>DMG Type</span></label> <label class="label-under-small hide-if-melee"><input type="text" class="width-small" name="attr_weapon_rateoffire" title="@{repeating_weapon_$X_weapon_rateoffire}" value="" placeholder="-"> <span>Rate</span></label> <input type="checkbox" class="hidden toggle-input-error" name="attr_weapon_range_error" value="1"> <label class="label-under-small hide-if-melee center"><input type="text" class="width-medium" name="attr_weapon_range" title="@{repeating_weapon_$X_weapon_range} | Enter Short/Medium/Long ranges. Enter numbers only, separated by '/'. Entering a single value will be used for all ranges." value="" placeholder="S/M/L"> <span class="hide-if-ranged-touch hide-overflowing-text">RNG S/M/L</span> <span class="ranged-touch">Range</span></label> <input type="text" class="hidden" name="attr_weapon_range_short" value="1"> <input type="text" class="hidden" name="attr_weapon_range_medium" value="2"> <input type="text" class="hidden" name="attr_weapon_range_long" value="3"> <label class="label-under-small hide-if-ranged"><input type="text" class="width-smaller" name="attr_weapon_num_attacks" value="1" title="@{repeating_weapon_$X_weapon_num_attacks} | Indicate the number of multiple attacks."> <span>#Attacks</span></label> <label class="label-under-small hide-if-melee"><span class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_weapon_ammo" value="0" title="@{repeating_weapon_$X_weapon_ammo} | Use for resource tracking."> <span>/</span> <input type="text" class="width-smallest" name="attr_weapon_ammo_max" value="0" title="@{repeating_weapon_$X_weapon_ammo_max} | Use for resource tracking."> </span><span>Ammo/Max</span></label> <label class="label-under-small"><input type="text" class="width-smaller" name="attr_weapon_quantity" value="1" title="@{repeating_weapon_$X_weapon_quantity}"> <span>QTY</span></label> <label class="label-under-small"><textarea class="hidden" name="attr_weapon_whisper_to_hit">
&{template:attacks-table} {{color=@{color_option}}} {{ToHitAC-10=[[ @{thac-10} ]]}} {{ToHitAC-9=[[ @{thac-9} ]]}} {{ToHitAC-8=[[ @{thac-8} ]]}} {{ToHitAC-7=[[ @{thac-7} ]]}} {{ToHitAC-6=[[ @{thac-6} ]]}} {{ToHitAC-5=[[ @{thac-5} ]]}} {{ToHitAC-4=[[ @{thac-4} ]]}} {{ToHitAC-3=[[ @{thac-3} ]]}} {{ToHitAC-2=[[ @{thac-2} ]]}} {{ToHitAC-1=[[ @{thac-1} ]]}} {{ToHitAC0=[[ @{thac0} ]]}} {{ToHitAC1=[[ @{thac1} ]]}} {{ToHitAC2=[[ @{thac2} ]]}} {{ToHitAC3=[[ @{thac3} ]]}} {{ToHitAC4=[[ @{thac4} ]]}} {{ToHitAC5=[[ @{thac5} ]]}} {{ToHitAC6=[[ @{thac6} ]]}} {{ToHitAC7=[[ @{thac7} ]]}} {{ToHitAC8=[[ @{thac8} ]]}} {{ToHitAC9=[[ @{thac9} ]]}} {{ToHitAC10=[[ @{thac10} ]] }}</textarea> <select class="select-over-label" name="attr_weapon_whisper_to_hit_select" title="@{repeating_weapon_$X_weapon_whisper_to_hit_select}">
<option value="0" class="matrix-box" selected="selected">Matrix</option>
<option value="1" class="thac0-box">THACO</option>
<option value="2">No</option>
</select> <span class="label-under-small stack-text" title="Include to-Hit AC table with attack?">show toHit?</span></label>
</span><input type="hidden" name="attr_weapon_dmgbonus" value="0"> <input type="hidden" name="attr_weapon_weight" value="0"> <input type="hidden" name="attr_weapon_cost" value="0"></div>
<details class="border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary><span class="to-hit-adj-box"><span class="to-hit center"><input type="text" class="width-small" name="attr_weapon_speed" title="@{repeating_weapon_$X_weapon_speed}" value="" placeholder="-"> <input type="text" class="width-small" name="attr_weapon_length" title="@{repeating_weapon_$X_weapon_length}" value="" placeholder="-"> <input type="text" class="width-small" name="attr_weapon_space" title="@{repeating_weapon_$X_weapon_space}" value="" placeholder="-"> <input type="text" class="width-small" name="attr_weapon_misc" title="@{repeating_weapon_$X_weapon_misc}" value="" placeholder="-">
<h5 class="toggle-ar">Armor Type:</h5><span class="toggle-ar">0</span> <span class="toggle-ar">1</span> <span class="toggle-ar">2</span> <span class="toggle-ar">3</span> <span class="toggle-ar">4</span> <span class="toggle-ar">5</span> <span class="toggle-ar">6</span> <span class="toggle-ar">7</span> <span class="toggle-ar">8</span> <span class="toggle-ar">9</span> <span class="toggle-ar">10</span> <input class="toggle-ar" type="checkbox" name="attr_weapon_tohitacadj_flag" title="@{repeating_weapon_$x_weapon_tohitacadj_flag}" value="1"> <input type="text" class="hidden toggle-ar" name="attr_weapon_tohitacadj" value="{{ToHitArmorType0}} {{ToHitArmorType1}} {{ToHitArmorType2}} {{ToHitArmorType3}} {{ToHitArmorType4}} {{ToHitArmorType5}} {{ToHitArmorType6}} {{ToHitArmorType7}} {{ToHitArmorType8}} {{ToHitArmorType9}} {{ToHitArmorType10}}">
</span><span class="to-hit-input center"><label class="label-under-small">SPD</label> <label class="label-under-small">LEN</label> <label class="label-under-small">SPC</label> <label class="label-under-small">MISC</label>
<h5 class="toggle-ar">Adjustment:</h5><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj0" title="@{repeating_weapon_$x_weapon_thac_adj0}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj1" title="@{repeating_weapon_$x_weapon_thac_adj1}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj2" title="@{repeating_weapon_$x_weapon_thac_adj2}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj3" title="@{repeating_weapon_$x_weapon_thac_adj3}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj4" title="@{repeating_weapon_$x_weapon_thac_adj4}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj5" title="@{repeating_weapon_$x_weapon_thac_adj5}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj6" title="@{repeating_weapon_$x_weapon_thac_adj6}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj7" title="@{repeating_weapon_$x_weapon_thac_adj7}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj8" title="@{repeating_weapon_$x_weapon_thac_adj8}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj9" title="@{repeating_weapon_$x_weapon_thac_adj9}" value="0"></span><span class="toggle-ar"><input type="text" name="attr_weapon_thac_adj10" title="@{repeating_weapon_$x_weapon_thac_adj10}" value="0"></span><label class="label-under-small stack-text toggle-ar">show w/roll</label>
</span></span><textarea class="height-short" name="attr_weapon_notes" title="@{repeating_weapon_$X_weapon_notes}" placeholder="Description"></textarea> <textarea class="height-short toggle-macros" name="attr_weapon_macro_text" title="@{repeating_weapon_$X_weapon_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + ( @{weapon_backstab_bonus}[BACKSTAB] ) + ( @{weapon_tohitbonus}[HIT_BON] ) + ( @{weapon_prof_pen}[PROF_PEN] ) + ( @{weapon_dual_pen}[DUAL_PEN] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{To Hit Modifier?|0}[MISC_MOD] ) ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=[[ @{toggle_critdamage} ]]}} @{weapon_tohitacadj}</textarea>
</details>
</fieldset>
</div>
<hr class="hide-as-npc">
</section>
<section class="equipment-box"><input type="checkbox" class="sect-show" name="attr_equipment_info_show" value="1">
<div class="header">EQUIPMENT</div><span class="material-icons"></span>
<div class="sect right inline-label"><input type="hidden" name="attr_equipment_previous_order_array" value=""> <input type="hidden" class="busy-indicator" name="attr_equipment_sheet_busy" value="0"> <label><button type="action" name="act_equipment-sort-alphabetical" title="Sort rows by equipment names alphabetically."><span class="nowrap">Sort A-Z</span></button></label> <label><button type="action" name="act_equipment-sort-location" title="Sort rows by location and equipment names alphabetically."><span>Location</span></button></label> <label><button type="action" name="act_equipment-sort-undo" class="text-only" title="Undo last Sort."><span class="undo"></span></button></label></div>
<div class="equipment-tabs sect"><input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="0"><span class="tab">Gear</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="1"><span class="tab">Weapon</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="2"><span class="tab">Armor</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="3"><span class="tab">Magic</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="4"><span class="tab">Other</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_type" value="-1" checked="checked"><span class="tab">All</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_carry" value="1" style="margin-left: 10%;"><span class="tab">Carried</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_carry" value="0"><span class="tab">Not Carried</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_carry" value="2"><span class="tab">Mount</span> <input type="radio" class="tab-hidden tab" name="attr_equipment_tabs_carry" value="-1" checked="checked"><span class="tab">All</span></div>
<div class="sect"><input type="hidden" class="hidden equipment-display-type" name="attr_equipment_tabs_type" value="-1"> <input type="hidden" class="hidden equipment-display-carry" name="attr_equipment_tabs_carry" value="-1"> <span class="equipment-columns column-header"><span></span> <span>Item</span> <span>Location</span> <span>Type</span> <span>Magical</span> <span class="hidden-for-armor">Uses</span> <span class="hidden-for-armor">/</span> <span class="hidden-for-armor">Max</span> <span>Carried?</span> <span>Qty</span> <span>/</span> <span>Max</span> <span>Wt</span> <span class="toggle-costs">Cost</span></span>
<fieldset class="repeating_equipment"><input type="hidden" class="toggle-carry" name="attr_equipment_show_carry" value="1" readonly="readonly"> <input type="hidden" class="toggle-type" name="attr_equipment_show_type" value="1" readonly="readonly">
<div class="equipment-display-carry sect">
<div class="equipment-display-type"><span class="top-row equipment-columns border-top-half"><button class="dice-button" type="roll" name="attr_equipment_roll" title="%{repeating_equipment_$X_equipment_roll}" value="@{equipment_macro_text}"></button> <input type="text" class="width-fill" name="attr_equipment_item" title="@{repeating_equipment_$X_equipment_item}" value="" placeholder="Item/Description"> <input type="text" class="width-fill" name="attr_equipment_location" title="@{repeating_equipment_$X_equipment_location}" value="" placeholder="Location"> <select class="equipment-type" name="attr_equipment_type" title="@{repeating_equipment_$X_equipment_type}">
<option value="0" selected="selected">Gear</option>
<option value="1">Weapon</option>
<option value="2">Armor</option>
<option value="3">Magic</option>
<option value="4">Other</option>
</select> <input type="checkbox" name="attr_equipment_magical" value="1" title="@{repeating_equipment_$X_equipment_magical} | This item has magical properties and will also be displayed when 'Magic' is selected."> <input type="hidden" class="hidden equipment-type" name="attr_equipment_type" value="0"> <input type="text" class="width-smaller hidden-for-armor" name="attr_equipment_current" title="@{repeating_equipment_$X_equipment_current}" value="0"> <span class="hidden-for-armor">/</span> <input type="text" class="width-smaller hidden-for-armor" name="attr_equipment_current_max" title="@{repeating_equipment_$X_equipment_current|max}" value="0"> <select class="width-medium" name="attr_equipment_carried_select" title="@{repeating_equipment_$X_equipment_carried_select} | Carried items are used for weight calculations.">
<option value="0">No</option>
<option value="1" selected="selected">Yes</option>
<option value="2">Mount</option>
</select> <input type="checkbox" class="hidden" name="attr_equipment_carried" value="1" checked="checked"> <input type="text" class="width-smaller" name="attr_equipment_quantity" title="@{repeating_equipment_$X_equipment_quantity} | Used for weight and cost calculations." value="1"> <span>/</span> <input type="text" class="width-smaller" name="attr_equipment_quantity_max" title="@{repeating_equipment_$X_equipment_quantity|max}" value="" placeholder="n/a"> <input type="text" class="width-fill" name="attr_equipment_weight" title="@{repeating_equipment_$X_equipment_weight} | Weight for one item." value="0"> <input type="text" class="width-fill toggle-costs" name="attr_equipment_cost" title="@{repeating_equipment_$X_equipment_cost} | Cost for one item." value="0"></span>
<details class="border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary><span class="span-all show-for-armor inline-label" title="Choose an Armor Type first to access additional fields."><input type="hidden" class="toggle-armor-details show-shield-only" name="attr_equipment_armor_type" value="99"> <label class="label-under-small sync-lock"><select name="attr_equipment_armor_type" title="@{repeating_equipment_$X_equipment_armor_type}">
<option value="99" selected="selected">choose</option>
<option value="0">Clothing</option>
<option value="1">Armor 1</option>
<option value="2">Armor 2</option>
<option value="3">Shield</option>
<option value="4">Helmet</option>
<option value="5">Other 1</option>
<option value="6">Other 2</option>
<option value="7">Other 3</option>
<option value="8">Other 4</option>
<option value="9">Other 5</option>
<option value="10">Other 6</option>
</select> <input type="checkbox" class="hidden" name="attr_equipment_sync_armor_flag" value="1"> <span>Type</span></label> <label class="label-under-small"><input type="checkbox" name="attr_equipment_armor_worn" value="1" title="@{repeating_equipment_$X_equipment_armor_worn}" checked="checked"> <span>In Use</span></label> <label class="label-under-small"><select class="show-shield-only" name="attr_equipment_armor_ac" title="@{repeating_equipment_$X_equipment_armor_ac} | e.g. +2 lowers AC by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_equipment_armor_ac" title="@{repeating_equipment_$X_equipment_armor_ac} | Enter the actual AC value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
<option class="hidden" value="-1">-1</option>
<option class="hidden" value="-2">-2</option>
<option class="hidden" value="-3">-3</option>
<option class="hidden" value="-4">-4</option>
<option class="hidden" value="-5">-5</option>
<option class="hidden" value="-6">-6</option>
<option class="hidden" value="-7">-7</option>
<option class="hidden" value="-8">-8</option>
<option class="hidden" value="-9">-9</option>
<option class="hidden" value="-10">-10</option>
</select> <span>AC</span></label> <label class="label-under-small hide-ar toggle-ar"><select class="show-shield-only" name="attr_equipment_armor_base" title="@{repeating_equipment_$X_equipment_armor_base} | e.g. +2 lowers AR by -2.">
<option value="0" selected="selected">+0</option>
<option value="-1">+1</option>
<option value="-2">+2</option>
<option value="-3">+3</option>
<option value="-4">+4</option>
<option value="-5">+5</option>
<option value="-6">+6</option>
<option value="-7">+7</option>
<option value="-8">+8</option>
<option value="-9">+9</option>
<option value="-10">+10</option>
</select> <select name="attr_equipment_armor_base" title="@{repeating_equipment_$X_equipment_armor_base}| Enter the actual AR value for this item.">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
<option class="hidden" value="-1">-1</option>
<option class="hidden" value="-2">-2</option>
<option class="hidden" value="-3">-3</option>
<option class="hidden" value="-4">-4</option>
<option class="hidden" value="-5">-5</option>
<option class="hidden" value="-6">-6</option>
<option class="hidden" value="-7">-7</option>
<option class="hidden" value="-8">-8</option>
<option class="hidden" value="-9">-9</option>
<option class="hidden" value="-10">-10</option>
</select> <span>AR</span></label> <input type="checkbox" class="hidden toggle-input-error hide-magic" name="attr_equipment_armor_magic_error" value="1" checked="checked"> <label class="label-under-small hide-magic"><input type="text" class="width-small" name="attr_equipment_armor_magic" value="0" title="@{repeating_equipment_$X_equipment_armor_magic} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span>Magic</span></label> <input type="checkbox" class="hidden toggle-input-erro hide-misc" name="attr_equipment_armor_mod_error" value="1" checked="checked"> <label class="label-under-small hide-misc"><input type="text" class="width-small" name="attr_equipment_armor_mod" value="0" title="@{repeating_equipment_$X_equipment_armor_mod} | Bonuses lower AC. Penalties raise AC. e.g. '+2' bonus lowers AC by -2 while a '-2' penalty will raise AC by 2."> <span>Misc</span></label> <label class="label-under-small hide-bulk"><select name="attr_equipment_armor_bulk" title="@{repeating_equipment_$X_equipment_armor_bulk}">
<option value="0" selected="selected">n/a</option>
<option value="1">non-Bulky 12"</option>
<option value="2">Fairly 9"</option>
<option value="3">Bulky 6"</option>
</select> <span>Bulk</span></label> <label style="margin-top: 0;"><button type="action" name="act_addarmor" title="Adds armor to the selected Armor Details row. Items will be synced."><span>+Add</span></button></label> </span><span class="span-all show-for-weapons inline-label"><label class="label-under-small"><select name="attr_equipment_weapon_type" class="select-over-label" title="@{repeating_equipment_$X_equipment_weapon_type}">
<option value="0" selected="selected">Melee</option>
<option value="1">Ranged</option>
<option value="2">Touch</option>
<option value="3">Ranged Touch</option>
</select> <span>Type</span></label> <input type="hidden" class="toggle-weapon-details" name="attr_equipment_weapon_type" value="0"> <label class="label-under-small hide-melee"><input type="text" class="width-small" name="attr_equipment_weapon_speed" title="@{repeating_equipment_$X_equipment_weapon_speed}" value="" placeholder="-"> <span>SPD</span></label> <label class="label-under-small hide-melee"><input type="text" class="width-small" name="attr_equipment_weapon_length" title="@{repeating_equipment_$X_equipment_weapon_length}" value="" placeholder="-"> <span>LEN</span></label> <label class="label-under-small hide-melee"><input type="text" class="width-small" name="attr_equipment_weapon_space" title="@{repeating_equipment_$X_equipment_weapon_space}" value="" placeholder="-"> <span>SPC</span></label> <label class="label-under-small hide-melee"><input type="text" class="width-small" name="attr_equipment_weapon_misc" title="@{repeating_equipment_$X_equipment_weapon_misc}" value="" placeholder="-"> <span>MISC</span></label> <label class="label-under-small"><input type="text" class="width-medium" name="attr_equipment_weapon_damagesmallmedium" title="@{repeating_equipment_$X_equipment_weapon_damagesmallmedium}" value="" placeholder="1d4"> <span>S/M</span></label> <label class="label-under-small"><input type="text" class="width-medium" name="attr_equipment_weapon_damagelarge" title="@{repeating_equipment_$X_equipment_weapon_damagelarge}" value="" placeholder="1d4"> <span>LG</span></label> <label class="label-under-small"><input type="text" class="width-small" name="attr_equipment_weapon_attackdmgtype" title="@{repeating_equipment_$X_equipment_weapon_attackdmgtype}" value="" placeholder="-"> <span>DMG Type</span></label> <label class="label-under-small hide-ranged"><input type="text" class="width-small" name="attr_equipment_weapon_rateoffire" title="@{repeating_equipment_$X_equipment_weapon_rateoffire}" value="" placeholder="-"> <span>RT</span></label> <label class="label-under-small hide-ranged"><input type="text" class="width-medium" name="attr_equipment_weapon_range" title="@{repeating_equipment_$X_equipment_weapon_range} | Enter Short/Medium/Long ranges. Enter numbers only, separated by '/'. Entering a single value will be used for all ranges." value="" placeholder="-"> <span>RNG S/M/L</span></label> <label style="margin-top: 0;"><button type="action" name="act_addattack" title="Adds weapon to attacks. Creates a unique, non-synced, attack."><span>+Add</span></button></label> </span><span class="inline-label"><textarea class="height-short" name="attr_equipment_description" title="@{repeating_equipment_$X_equipment_description}" value="" placeholder="Description"></textarea> <label><button type="roll" class="info-link" value="@{whisper_pc} [**LINK**](@{equipment_link})" title="Send link to chat."></button> <textarea class="info-link" wrap="off" name="attr_equipment_link" title="@{repeating_equipment_$X_equipment_link}" placeholder="https://www.example.com"></textarea></label> </span><textarea class="height-short toggle-macros" name="attr_equipment_macro_text" title="@{repeating_equipment_$X_equipment_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Item/Equipment: @{equipment_item}}} {{link=@{equipment_link}}} {{freetext=@{equipment_description}}} {{quantity= @{equipment_quantity}}} {{quantity_max=@{equipment_quantity|max}}} {{uses=@{equipment_current}}} {{uses_max=[[ @{equipment_current|max} ]]}}</textarea>
</details>
</div>
</div>
</fieldset>
</div>
<div class="sect four-columns linear-background">
<div class="capacity-box"><textarea class="height-fill" name="attr_itemnotes" title="@{itemnotes}" placeholder="Equipment Notes"></textarea></div>
<div class="equipment-totals"><label style="max-width: 100%;" title="@{toggle_lbs} | Use Lbs instead of gold pieces when determining encumbrance. Carrying capacities and carried coin weight will be divided by 10. Per-item weights need to be entered as lbs in order for the sheet to properly calculate encumbrance."><span>Use Lbs:</span> <input type="checkbox" class="toggle-lbs" name="attr_toggle_lbs" value="1"></label> <label class="center"><span class="toggle-lbs">Wt in GP</span><span>Wt in Lbs</span></label> <label class="center toggle-costs">Cost</label> <label><span>Equipment:</span></label> <input type="text" class="hidden width-fill" name="attr_total_equipment_weight" value="0" readonly="readonly"> <input type="text" class="width-fill" name="attr_total_equipment_weight_adjusted" title="@{total_equipment_weight_adjusted} | Carried Equipment Weight - Weapons and Armor." value="0" readonly="readonly"> <input type="text" class="width-fill toggle-costs" name="attr_total_equipment_cost" title="@{total_equipment_cost}" value="0" readonly="readonly"> <label><span>Armor:</span></label> <input type="text" class="width-fill" name="attr_total_armor_weight" value="0" title="@{total_armor_weight}" readonly="readonly"> <label class="width-fill center toggle-costs">---</label> <input type="text" class="hidden width-fill toggle-costs" name="attr_total_armor_cost" value="0" readonly="readonly"> <label><span>Weapons:</span></label> <input type="text" class="width-fill" name="attr_total_weapon_weight" value="0" title="@{total_weapon_weight}" readonly="readonly"> <label class="width-fill center toggle-costs">---</label> <input type="text" class="hidden width-fill toggle-costs" name="attr_total_weapon_cost" value="0" readonly="readonly"> <label><span>Coins:</span></label> <input type="text" class="width-fill" name="attr_total_coin_weight" title="@{total_coin_weight}" value="0" readonly="readonly"> <label class="width-fill center toggle-costs">---</label> <label><span>TOTALS:</span></label> <input type="text" class="readonly-span" name="attr_total_weight" title="@{total_weight} | Total Carried Weight." value="0" readonly="readonly"> <input type="text" class="readonly-span toggle-costs" name="attr_total_cost" title="@{total_cost} | Total Equipment Costs." value="0" readonly="readonly"></div>
</div>
<div class="wealth-box border sect"><span class="subheader center width-fill">Wealth</span>
<div class="coin-columns column-header"><span></span> <span>Copper</span> <span>Silver</span> <span>Electrum</span> <span>Gold</span> <span>Platinum</span></div>
<div class="coin-columns"><label class="text-large right"><span>Carried Coins:</span></label> <input type="text" class="width-medium" name="attr_cp" title="@{cp}" value="0"> <input type="text" class="width-medium" name="attr_sp" title="@{sp}" value="0"> <input type="text" class="width-medium" name="attr_ep" title="@{ep}" value="0"> <input type="text" class="width-medium" name="attr_gp" title="@{gp}" value="0"> <input type="text" class="width-medium" name="attr_pp" title="@{pp}" value="0"> <label class="span-all"><span class="text-small"><b>hint:</b> 200cp = 20sp = 2ep = 1gp = 1/5pp</span></label></div>
<hr>
<div class="coin-columns"><label class="text-large right"><span>Total Coins:</span></label> <input type="text" class="width-medium" name="attr_cp-total" title="@{cp-total}" value="0"> <input type="text" class="width-medium" name="attr_sp-total" title="@{sp-total}" value="0"> <input type="text" class="width-medium" name="attr_ep-total" title="@{ep-total}" value="0"> <input type="text" class="width-medium" name="attr_gp-total" title="@{gp-total}" value="0"> <input type="text" class="width-medium" name="attr_pp-total" title="@{pp-total}" value="0"></div><textarea class="height-tall" name="attr_wealthNotes" title="@{wealthNotes}" placeholder="Wealth Notes"></textarea>
</div>
<div class="span-all border sect linear-background"><span class="subheader center width-fill">Carrying Capacity</span>
<div class="capacity-box-loads column-header"><span class="span-three">Strength Adj.</span> <span class="span-four"><span>Current Encumbrance</span> <span class="toggle-lbs text-small">(gp)</span><span class="text-small">(lbs)</span></span></div>
<div class="capacity-box-loads center"><label class="label-under" title="@{normal_load} 'Unencumbered load' (defaults 350gp based on STR 8-11.)"><input type="text" class="hidden" name="attr_normal_load" value="350" readonly="readonly"> <span type="text" class="readonly-span" name="attr_normal_load" title="@{normal_load} 'Unencumbered load' (defaults 350gp based on STR 8-11.)"></span> <span class="inline-label"><span>Base</span> <span class="toggle-lbs text-small">(gp)</span><span class="text-small">(lbs)</span></span></label> <label class="label-under"><span class="center toggle-lbs" title="@{encumbrancebonus} | Weight Allowance in gp. Keep this value as gp even if the sheet is using the lbs option."><input class="hidden" type="text" name="attr_encumbrancebonus" value="0"> <span class="readonly-span" name="attr_encumbrancebonus"></span> <span class="inline-label"><span>Weight All.</span> <span class="text-small">(gp)</span> </span></span><span class="center" title="@{encumbrancebonus_lbs} | Weight Allowance in lbs."><input class="hidden" type="text" name="attr_encumbrancebonus_lbs" value="0" readonly="readonly"> <span class="readonly-span" name="attr_encumbrancebonus_lbs"></span> <span class="inline-label"><span>Weight All.</span> <span class="text-small">(lbs)</span></span></span></label> <label class="text-large">=</label> <label for="normal_load" class="label-under" title="@{normal_load_adjusted} Unencumbered + (Weight Allowance.)"><input id="normal_load" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance" value="0" checked="checked" readonly="readonly"> <input type="text" class="hidden" name="attr_normal_load_adjusted" value="0" readonly="readonly"> <span class="readonly-span" name="attr_normal_load_adjusted" title="@{normal_load_adjusted} Unencumbered + (Weight Allowance.)"></span> <span>Unencumbered</span></label> <label for="heavy_load" class="label-under" title="@{heavy_load} Heavy load = Unencumbered + (Weight Allowance x2)."><input id="heavy_load" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance" value="1" readonly="readonly"> <input type="text" class="hidden" name="attr_heavy_load" value="0" readonly="readonly"> <span class="readonly-span" name="attr_heavy_load" title="@{heavy_load} Heavy load = Unencumbered + (Weight Allowance x2)."></span> <span>Heavy</span></label> <label for="v_heavy_load" class="label-under" title="@{very_heavy_load} Very heavy load = Unencumbered + (Weight Allowance x3)."><input id="v_heavy_load" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance" value="2" readonly="readonly"> <input type="text" class="hidden" name="attr_very_heavy_load" value="0" readonly="readonly"> <span class="readonly-span" name="attr_very_heavy_load" title="@{very_heavy_load} Very heavy load = Unencumbered + (Weight Allowance x3)."></span> <span>Very Heavy</span></label> <label for="encumbered" class="label-under" title="@{max_load} Any amount greater than; Unencumbered + (Weight Allowance x3)."><input id="encumbered" type="checkbox" class="hidden current-encumbrance" name="attr_current_encumbrance" value="3" readonly="readonly"> <span><input type="text" class="hidden" name="attr_max_load" value="0" readonly="readonly"> <span class="readonly-span" name="attr_max_load" title="@{max_load} Any amount greater than; Unencumbered + (Weight Allowance x3)."></span> <b class="text-large">+</b> </span><span>Encumbered</span></label></div>
</div>
<hr>
</section>
<section class="special-abilities-box"><input type="checkbox" class="sect-show" name="attr_special_abilities_info_show" value="1">
<div class="header"><span class="hide-as-npc">SPECIAL ABILITIES</span> <span class="hide-as-pc">SPECIAL ABILITIES</span></div><span class="material-icons"></span>
<div class="sect">
<div class="toggle-psionics border">
<h4 class="subheader center width-fill">Psionics</h4><span class="inline-label"><label class="inline-label" title="@{psionic_ability_strength} | Total Psionic Ability = 1d100 + Ability Bonus (ie +1 for each unmodified point of INT, WIS and CHA above 12. In addition, if 2 of these scores are above 16, the number of points is doubled, and if all 3 scores are above 16, the number of points are quadrupled.) x2."><span>Total Ability:</span> <input type="text" name="attr_psionic_ability_strength" value="0" class="width-small"> <span>/</span> <input type="text" name="attr_psionic_ability_strength_max" value="0" class="width-small"></label> <label class="inline-label"><span>Psionic Attack:</span> <input type="text" name="attr_psionic_attack" value="0" class="width-small" title="@{psionic_attack}"> <span>/</span> <input type="text" name="attr_psionic_attack_max" value="0" class="width-small" title="@{psionic_attack|max}" readonly="readonly"></label> <label class="inline-label"><span>Psionic Defense:</span> <input type="text" name="attr_psionic_defense" value="0" class="width-small" title="@{psionic_defense}"> <span>/</span> <input type="text" name="attr_psionic_defense_max" value="0" class="width-small" title="@{psionic_defense|max}" readonly="readonly"></label> </span><span class="inline-label"><label class="inline-label" title="@{psionic_attack_modes} | Add Modes as Special Abilities below."><span>Attack Modes:</span> <input type="text" name="attr_psionic_attack_modes" value="" class="width-medium" placeholder="A,B,C,D,E"></label> <label class="inline-label" title="@{psionic_defensive_modes} | Add Modes as Special Abilities below."><span>Defensive Modes:</span> <input type="text" name="attr_psionic_defensive_modes" value="" class="width-medium" placeholder="F,G,H,I,J"></label> <label class="inline-label right" title="@{psionic_minor} | Add Disciplines as Special Abilities below."><span>Minor Disciplines:</span> <input type=" text" name="attr_psionic_minor" value="0" class="width-smallest"></label> <label class="inline-label" title="@{psionic_major} | Add Disciplines as Special Abilities below."><span>Major Disciplines:</span> <input type=" text" name="attr_psionic_major" value="0" class="width-smallest"></label></span>
</div><label class="left"><span>Single Column</span> <input type="checkbox" class="toggle-single-column-abilities" name="attr_toggle_single_column_abilities" title="@{toggle_single_column_abilities}" value="1" checked="checked"></label> <span class="special-abilities-row1 column-header hide-as-npc"><span></span> <span>Name</span> <span>Short Description</span> <span>Uses</span> </span><span class="special-abilities-row1 column-header two-column-header hide-as-npc"><span></span> <span>Name</span> <span>Uses</span> <span></span> <span>Name</span> <span>Uses</span></span>
<fieldset class="repeating_ability"><span class="top-row special-abilities-row1 border-top-half"><button class="dice-button hide-as-npc ability-area-roll" type="roll" name="attr_ability_roll" title="%{repeating_ability_$X_ability_roll} | PC Roll" value="@{whisper_pc} @{ability_macro_text}"></button> <button class="dice-button hide-as-pc ability-area-roll" type="roll" name="attr_ability_npc_roll" title="%{repeating_ability_$X_ability_npc_roll} | NPC Roll" value="@{whisper_npc} @{ability_macro_text}"></button> <label class="repeating-name ability-area-name"><input type="text" name="attr_ability_name" title="@{repeating_ability_$X_ability_name}" placeholder="Ability Name"></label> <label class="inline-label ability-area-desc"><textarea class="height-short" name="attr_ability_short_description" title="@{repeating_ability_$X_ability_short_description}" placeholder="Short Description"></textarea></label> <label class="inline-label ability-area-uses"><input type="text" class="width-smaller" name="attr_ability_current" title="@{repeating_ability_$X_ability_current}" value=""> <span>/</span> <input type="text" class="width-smaller" name="attr_ability_current_max" title="@{repeating_ability_$X_ability_current|max}" value="0"> <input type="hidden" name="attr_ability_max" value="1"></label></span>
<details class="border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary>
<div class="special-abilities-row2"><label class="label-under-small" title="TIP: Must include a dice roll to be included with the roll. e.g. 1d6"><input type="text" class="width-small" name="attr_ability_die" title="@{repeating_ability_$X_ability_die}" value="1d0"> <span>Die</span></label> <label class="label-under-small"><input type="text" class="width-small" name="attr_ability_mod" title="@{repeating_ability_$X_ability_mod}" value="0"> <span>Modifier</span></label> <textarea class="height-medium" name="attr_ability_description" title="@{repeating_ability_$X_ability_description}" placeholder="Ability Description"></textarea></div>
<div class="spell-details-grid"><label class="span-two"><span>Effect Type:</span> <input type="text" name="attr_ability_effect_type" title="@{repeating_ability_$X_ability_effect_type}" value="" placeholder="n/a"></label> <label><span>Spell Level:</span> <input type="text" name="attr_ability_level" title="@{repeating_ability_$X_ability_level}" value="" placeholder="n/a"></label> <label><span>Casting Time:</span> <input type="text" name="attr_ability_ct" title="@{repeating_ability_$X_ability_ct}" value="" placeholder="n/a"></label> <label><span>Range:</span> <input type="text" name="attr_ability_range" title="@{repeating_ability_$X_ability_range}" value="" placeholder="n/a"></label> <label><span>Saving Throw:</span> <input type="text" name="attr_ability_save" title="@{repeating_ability_$X_ability_save}" value="" placeholder="n/a"></label> <label><span>Duration:</span> <input type="text" name="attr_ability_duration" title="@{repeating_ability_$X_ability_duration}" value="" placeholder="n/a"></label> <label><span>Save Type:</span> <input type="text" name="attr_ability_save_type" title="@{repeating_ability_$X_ability_save_type}" value="" placeholder="n/a"></label> <label class="span-two"><span>Area of Effect:</span> <input type="text" name="attr_ability_aoe" title="@{repeating_ability_$X_ability_aoe}" value="" placeholder="n/a"></label></div><span class="inline-label"><label><span>Notes:</span> <textarea name="attr_ability_notes" class="height-short" title="@{repeating_ability_$X_ability_notes}" placeholder="Notes"></textarea></label> <label><button type="roll" class="info-link" value="@{whisper_pc} [**LINK**](@{ability_link})" title="Send link to chat."></button> <textarea class="info-link" wrap="off" name="attr_ability_link" title="@{repeating_ability_$X_ability_link}" placeholder="https://www.example.com"></textarea></label> </span><textarea class="height-short toggle-macros" name="attr_ability_macro_text" title="@{repeating_ability_$X_ability_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ 0 + @{ability_die} + @{ability_mod}[MOD] ]]}} {{link=@{ability_link}}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=[[ 0 + @{ability_current|max} ]]}} {{effect_type=@{ability_effect_type}}} {{spell_level=@{ability_level}}} {{casting_time=@{ability_ct}}} {{range=@{ability_range}}} {{duration=@{ability_duration}}} {{saving_throw=@{ability_save}}} {{area_of_effect=@{ability_aoe}}} {{save_type=@{ability_save_type}}}</textarea>
</details>
</fieldset><textarea class="hidden" name="attr_special_abilitiesnotes"></textarea>
</div>
<hr class="hide-as-npc">
</section>
<section class="nonweapon-proficiencies-box"><input type="checkbox" class="sect-show" name="attr_nonweapon_proficiencies_info_show" value="1" style="max-width:18em;">
<div class="header">NON WEAPON PROFICIENCIES</div><span class="material-icons"></span>
<div class="sect"><span class="nonweapon-proficiencies-row1 column-header"><span></span> <span>Proficiency</span> <span>Short Description</span> <span>Slots</span> <span>Attribute/Base</span><span>Adj.</span></span>
<fieldset class="repeating_nonweaponproficiencies"><span class="top-row nonweapon-proficiencies-row1 border-top-half"><button class="dice-button" type="roll" name="attr_nwp_roll" title="%{repeating_nonweaponproficiencies_$X_nwp_roll} |&#10;* Very easy proficiency = -3 modifier &#10;* Easy proficiency = -1 modifier &#10;* Normal proficiency = no modifier &#10;* Hard proficiency = +1 modifier &#10;* Very hard proficiency = +2 modifier &#10;* Extremely hard proficiency = +3 modifier" value="@{nwp_macro_text}"></button> <label class="repeating-name"><input type="text" name="attr_nwp_name" list="nwps" title="@{repeating_nonweaponproficiencies_$X_nwp_name}" placeholder="Proficiency Name"></label> <textarea class="height-short" name="attr_nwp_short_description" title="@{repeating_nonweaponproficiencies_$X_nwp_short_description}" placeholder="Short Description"></textarea> <input class="width-small" type="text" name="attr_nwp_slots" title="@{repeating_nonweaponproficiencies_$X_nwp_slots}" value="0"> <span><select name="attr_nwp_attribute" title="Select an applicable NWP Attribute or 'vs Base' for a roll-time query. | @{repeating_nonweaponproficiencies_$X_nwp_attribute}">
<option value="0" selected="selected">None</option>
<option value="@{strength}">STR</option>
<option value="@{dexterity}">DEX</option>
<option value="@{constitution}">CON</option>
<option value="@{intelligence}">INT</option>
<option value="@{wisdom}">WIS</option>
<option value="@{charisma}">CHA</option>
<option value="@{comeliness}" class="toggle-comeliness">COM</option>
<option value="?{vs Base Value|20}">vs Base</option>
</select> <input class="width-small" type="text" name="attr_nwp_attribute_value" value="(@{nwp_attribute})" title="@{repeating_nonweaponproficiencies_$X_nwp_attribute_value}" disabled="disabled"> </span><input class="width-small" type="text" name="attr_nwp_modifier" title="@{repeating_nonweaponproficiencies_$X_nwp_modifier}" value="0"></span>
<details class="border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary><span class="inline-label"><textarea class="height-short" name="attr_nwp_description" title="@{repeating_nonweaponproficiencies_$X_nwp_description}" placeholder="Ability Description"></textarea> <label><button type="roll" class="info-link btn ui-draggable" name="attr_nwp_link_roll" value="@{whisper_pc} [**LINK**](@{nwp_link})" title="@{repeating_nonweaponproficiencies_$X_nwp_link_roll}"></button> <textarea class="info-link" wrap="off" name="attr_nwp_link" title="@{repeating_nonweaponproficiencies_$X_nwp_link}" placeholder="https://www.example.com"></textarea></label> </span><textarea class="height-short toggle-macros" name="attr_nwp_macro_text" title="@{repeating_nonweaponproficiencies_$X_nwp_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{nwp_name}}} {{roll_low=[[ 1d20 + [[ @{nwp_modifier} ]][MOD] + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[ @{nwp_attribute}[ATTR] ]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}} {{nwp_mod_applied=[[ @{nwp_modifier} ]]}} {{link=@{nwp_link}}} {{freetext=@{nwp_short_description} @{nwp_description}}}</textarea>
</details>
</fieldset>
</div>
<hr>
</section>
<section class="thief-skills-box"><input type="checkbox" class="sect-show" name="attr_thief_skills_info_show" value="1">
<div class="header">THIEF SKILLS</div><span class="material-icons"></span> <input type="checkbox" class="toggle-sync-class hidden" name="attr_sync_thief_class" value="1">
<div class="thief-class sect"><label class="inline-label" title="@{autofill_thief} | Let the sheet auto-fill the Base chance when the level selector is changed."><span>Autofill Base:</span> <input type="checkbox" name="attr_autofill_thief" value="1" checked="checked"></label> <label class="show-sync-class"></label> <label class="show-sync-class"><span>Class</span></label> <label class="thief-level"><span>Level</span></label> <label class="inline-label" title="@{autofill_thief_dex} | Let the sheet auto-fill the Dex modifiers based on the character's Dexterity."><span>Autofill Dex:</span> <input type="checkbox" name="attr_autofill_thief_dex" value="1"></label> <label><span>Race</span></label> <label class="inline-label" title="@{sync_thief_class} | Linking to a class will automatically adjust the thief base values when the linked class level changes."><span>Sync to Class:</span> <input type="checkbox" name="attr_sync_thief_class" value="1"></label> <label class="show-sync-class"><select class="class-selected border" name="attr_thief_class_selected" title="@{thief_class_selected} | Linking to a class will automatically adjust the thief base values when the linked class level changes.">
<option value="1" selected="">Class 1</option>
<option value="2">Class 2</option>
<option value="3">Class 3</option>
</select></label> <label class="show-sync-class"><input type="hidden" class="class-selected" name="attr_thief_class_selected" value="1"> <input class="show-class1-name" name="attr_class" title="@{class}" placeholder="n/a" readonly="readonly"> <input class="show-class2-name" name="attr_secondclass" title="@{secondclass}" placeholder="n/a" readonly="readonly"> <input class="show-class3-name" name="attr_thirdclass" title="@{thirdclass}" placeholder="n/a" readonly="readonly"></label> <label class="thief-level show-when-not-synced"><input class="width-small border" type="number" min="0" name="attr_thief_level" value="1" title="@{thief_level}"></label> <label class="thief-level show-sync-class"><input class="width-small border" type="number" name="attr_thief_level" value="1" title="@{thief_level}" readonly="readonly"></label> <label class="inline-label" title="@{autofill_thief_race} | Let the sheet auto-fill the racial modifiers based on the character's race."><span>Autofill Race:</span> <input type="checkbox" name="attr_autofill_thief_race" value="1"></label> <label><select name="attr_thief_race_selected" title="@{thief_race_selected}">
<option value="0" selected="selected">n/a</option>
<option value="1">Human</option>
<option value="2">Dwarf</option>
<option value="3">Elf</option>
<option value="4">Gnome</option>
<option value="5">Half-elf</option>
<option value="6">Halfling</option>
<option value="7">Half-orc</option>
</select></label></div>
<div class="sect"><span class="thief-columns column-header"><span>Function</span> <span>TOTAL</span> <span></span> <span>Base/Level</span> <span></span> <span>Dex Adj.</span> <span></span> <span>Racial Adj.</span> <span></span> <span>Magic/Item</span> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_pickpockets" title="%{selected|pickpockets}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Pick Pockets vs HD?{HD of target (The level of the target will decrease your chance of success (-5% for each level or hit dice over 3) |1}}} {{roll_low=[[ 1d100 ]]%}} {{roll_target= [[ @{pickpockets} - ([[ floor({?{HD of target (The level of the target will decrease your chance of success (-5% for each level or hit dice over 3) |1}-3, 0}kh1)*5 ]]) ]]%}} {{roll_target2= [[ @{pickpockets} - ([[ floor({?{HD of target (The level of the target will decrease your chance of success (-5% for each level or hit dice over 3) |1}-3, 0}kh1)*5 ]]) + 21 ]]%}}"><span>Pick Pockets</span></button> <label class="label-percent" title="@{pickpockets}"><input type="text" name="attr_pickpockets" class="field-border readonly-span" title="@{pickpockets}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_pickpockets_base" class="width-smaller" title="@{pickpockets_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_pickpockets_ability_mod" class="width-smaller" title="@{pickpockets_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_pickpockets_racial_mod" class="width-smaller" title="@{pickpockets_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_pickpockets_magic" class="width-smaller" title="@{pickpockets_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_openlocks" title="%{selected|openlocks}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Open Locks}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{openlocks} ]]%}}"><span>Open Locks</span></button> <label class="label-percent" title="@{openlocks}"><input type="text" name="attr_openlocks" class="field-border readonly-span" title="@{openlocks}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_openlocks_base" class="width-smaller" title="@{openlocks_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_openlocks_ability_mod" class="width-smaller" title="@{openlocks_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_openlocks_racial_mod" class="width-smaller" title="@{openlocks_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_openlocks_magic" class="width-smaller" title="@{openlocks_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_findtraps" title="%{selected|findtraps}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Find/Remove Traps}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{findtraps} ]]%}}"><span>Find/Remove Traps</span></button> <label class="label-percent" title="@{findtraps}"><input type="text" name="attr_findtraps" class="field-border readonly-span" title="@{findtraps}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_findtraps_base" class="width-smaller" title="@{findtraps_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_findtraps_ability_mod" class="width-smaller" title="@{findtraps_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_findtraps_racial_mod" class="width-smaller" title="@{findtraps_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_findtraps_magic" class="width-smaller" title="@{findtraps_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_movequietly" title="%{selected|movequietly}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Move Silently}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{movequietly} ]]%}}"><span>Move Silently</span></button> <label class="label-percent" title="@{movequietly}"><input type="text" name="attr_movequietly" class="field-border readonly-span" title="@{movequietly}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_movequietly_base" class="width-smaller" title="@{movequietly_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_movequietly_ability_mod" class="width-smaller" title="@{movequietly_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_movequietly_racial_mod" class="width-smaller" title="@{movequietly_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_movequietly_magic" class="width-smaller" title="@{movequietly_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_hideinshadows" title="%{selected|HideInShadows}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Hide In Shadows}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{hideinshadows} ]]%}}"><span>Hide In Shadows</span></button> <label class="label-percent" title="@{hideinshadows}"><input type="text" name="attr_hideinshadows" class="field-border readonly-span" title="@{hideinshadows}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_hideinshadows_base" class="width-smaller" title="@{hideinshadows_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hideinshadows_ability_mod" class="width-smaller" title="@{hideinshadows_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hideinshadows_racial_mod" class="width-smaller" title="@{hideinshadows_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hideinshadows_magic" class="width-smaller" title="@{hideinshadows_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_hearnoise" title="%{selected|hearnoise}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Hear Noise}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{hearnoise} ]]%}}"><span>Hear Noise</span></button> <label class="label-percent" title="@{hearnoise}"><input type="text" name="attr_hearnoise" class="field-border readonly-span" title="@{hearnoise}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_hearnoise_base" class="width-smaller" title="@{hearnoise_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hearnoise_ability_mod" class="width-smaller" title="@{hearnoise_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hearnoise_racial_mod" class="width-smaller" title="@{hearnoise_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_hearnoise_magic" class="width-smaller" title="@{hearnoise_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_climbwalls" title="%{selected|climbwalls}" value="@{climbwalls_macro_text}"><span>Climb Walls</span></button> <textarea class="hidden" name="attr_climbwalls_macro_text">@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Climb Walls}} {{roll_low=[[ 1d00 ]]%}} {{roll_target=[[ @{climbwalls} ]]%}}</textarea> <label class="label-percent" title="@{climbwalls}"><input type="text" name="attr_climbwalls" class="field-border readonly-span" title="@{climbwalls}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_climbwalls_base" class="width-smaller" title="@{climbwalls_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_climbwalls_ability_mod" class="width-smaller" title="@{climbwalls_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_climbwalls_racial_mod" class="width-smaller" title="@{climbwalls_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_climbwalls_magic" class="width-smaller" title="@{climbwalls_magic}" value="0"></label> </span><span class="thief-columns"><button class="text-only thiefskills-button" type="roll" name="roll_readlanguages" title="%{selected|readlanguages}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Read Languages}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{readlanguages} ]]%}}"><span>Read Languages</span></button> <label class="label-percent" title="@{readlanguages}"><input type="text" name="attr_readlanguages" class="field-border readonly-span" title="@{readlanguages}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_readlanguages_base" class="width-smaller" title="@{readlanguages_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_readlanguages_ability_mod" class="width-smaller" title="@{readlanguages_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_readlanguages_racial_mod" class="width-smaller" title="@{readlanguages_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_readlanguages_magic" class="width-smaller" title="@{readlanguages_magic}" value="0"></label> </span><input type="checkbox" class="sect-show" name="attr_custom_function_show" value="1"> <span class="subheader">Custom Functions</span><span class="material-icons"></span>
<div class="sect"><span class="thief-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="text-only thiefskills-button" type="roll" name="roll_thiefmisc" title="%{selected|thiefmisc}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{thiefmisc_name}}} {{roll_low=[[ 1d100 ]] %}} {{roll_target=[[ @{thiefmisc} ]]%}}"><span name="attr_thiefmisc_name"></span></button></summary><input type="text" class="width-fill" name="attr_thiefmisc_name" title="@{thiefmisc_name}" value="Custom...">
</details><label class="label-percent" title="@{thiefmisc}"><input type="text" name="attr_thiefmisc" class="field-border readonly-span" title="@{thiefmisc}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_thiefmisc_base" class="width-smaller" title="@{thiefmisc_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc_ability_mod" class="width-smaller" title="@{thiefmisc_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc_racial_mod" class="width-smaller" title="@{thiefmisc_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc_magic" class="width-smaller" title="@{thiefmisc_magic}" value="0"></label>
</span><span class="thief-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="text-only thiefskills-button" type="roll" name="roll_thiefmisc1" title="%{selected|thiefmisc1}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{thiefmisc1_name}}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{thiefmisc1} ]]%}}"><span name="attr_thiefmisc1_name"></span></button></summary><input type="text" class="width-fill" name="attr_thiefmisc1_name" title="@{thiefmisc1_name}" value="Custom...">
</details><label class="label-percent" title="@{thiefmisc1}"><input type="text" name="attr_thiefmisc1" class="field-border readonly-span" title="@{thiefmisc1}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_thiefmisc1_base" class="width-smaller" title="@{thiefmisc1_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc1_ability_mod" class="width-smaller" title="@{thiefmisc1_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc1_racial_mod" class="width-smaller" title="@{thiefmisc1_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc1_magic" class="width-smaller" title="@{thiefmisc1_magic}" value="0"></label>
</span><span class="thief-columns">
<details>
<summary><span class="material-icons custom-btn-nav"></span> <button class="text-only thiefskills-button" type="roll" name="roll_thiefmisc2" title="%{selected|thiefmisc2}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{thiefmisc2_name}}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{thiefmisc2} ]]%}}"><span name="attr_thiefmisc2_name"></span></button></summary><input type="text" class="width-fill" name="attr_thiefmisc2_name" title="@{thiefmisc2_name}" value="Custom...">
</details><label class="label-percent" title="@{thiefmisc2}"><input type="text" name="attr_thiefmisc2" class="field-border readonly-span" title="@{thiefmisc2}" value="0"></label> <span class="text-large">=</span> <label class="label-percent"><input type="text" name="attr_thiefmisc2_base" class="width-smaller" title="@{thiefmisc2_base}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc2_ability_mod" class="width-smaller" title="@{thiefmisc2_ability_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc2_racial_mod" class="width-smaller" title="@{thiefmisc2_racial_mod}" value="0"></label> <span class="text-large">±</span> <label class="label-percent"><input type="text" name="attr_thiefmisc2_magic" class="width-smaller" title="@{thiefmisc2_magic}" value="0"></label>
</span></div><span class="thief-columns">
<h4>Backstab:</h4><label class="label-under span-two"><span>x <input type="text" name="attr_backstab" class="width-smaller" title="@{backstab} | Damage done per hit is twice normal for the weapon used per four XP levels." value="2"> </span><span>Multiplier</span></label> <label class="label-under span-two"><span>+ <input type="text" name="attr_backstab_bonus" class="width-smaller" title="@{backstab_bonus} | Striking by surprise from behind also increases the hit probability by 20% (+4 on the thiefs “to hit” die roll)." value="4"> </span><span>To-Hit Adj.</span></label>
</span>
</div>
<hr>
</section>
<section class="spells-box"><input type="checkbox" class="sect-show" name="attr_spells_info_show" value="1">
<div class="header">SPELLS</div><span class="material-icons"></span>
<div class="sect">
<div class="center"><input type="checkbox" class="toggle-sync-class hidden" name="attr_sync_caster_class1" value="1"> <span class="caster-class inline-label"><label></label> <label class="show-sync-class"></label> <label><span>Class</span></label> <label><span>Level</span></label> <label></label> <label class="inline-label" title="@{sync_caster_class1} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes."><span>Sync to Class:</span> <input type="checkbox" name="attr_sync_caster_class1" value="1"></label> <label class="show-sync-class"><select class="class-selected border" name="attr_caster_class1_selected" title="@{caster_class1_selected} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes.">
<option value="1" selected="selected">Class 1</option>
<option value="2">Class 2</option>
<option value="3">Class 3</option>
</select></label> <label class="show-sync-class width-large"><input type="hidden" class="class-selected" name="attr_caster_class1_selected" value="1"> <input class="show-class1-name" name="attr_class" title="@{class}" placeholder="n/a" readonly="readonly"> <input class="show-class2-name" name="attr_secondclass" title="@{secondclass}" placeholder="n/a" readonly="readonly"> <input class="show-class3-name" name="attr_thirdclass" title="@{thirdclass}" placeholder="n/a" readonly="readonly"></label> <label class="caster-level show-sync-class"><input type="text" class="width-small" name="attr_caster_class1_level" title="@{caster_class1_level}" value="0" readonly="readonly"></label> <label class="show-when-not-synced width-large"><input type="text" name="attr_caster_class1_name" title="@{caster_class1_name} | Name used for spells" value="" placeholder="enter caster class"></label> <label class="show-when-not-synced"><input type="text" class="width-small" name="attr_caster_class1_level" title="@{caster_class1_level}" value="0"></label> <label class="inline-label" title="@{toggle_caster2} | Hides a second caster class in the Spells section."><span>Hide Caster Class 2:</span> <input type="checkbox" name="attr_toggle_caster2" value="1" checked="checked"></label> </span><span class="spells-top column-header"><span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> <span>Cur&nbsp;/&nbsp;Max</span> </span><span class="spells-middle"><span><input type="text" class="width-fill" name="attr_spells_lvl_0_current" title="@{spells_lvl_0_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_0_max" title="@{spells_lvl_0|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_1_current" title="@{spells_lvl_1_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_1_max" title="@{spells_lvl_1|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_2_current" title="@{spells_lvl_2_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_2_max" title="@{spells_lvl_2|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_3_current" title="@{spells_lvl_3_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_3_max" title="@{spells_lvl_3|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_4_current" title="@{spells_lvl_4_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_4_max" title="@{spells_lvl_4|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_5_current" title="@{spells_lvl_5_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_5_max" title="@{spells_lvl_5|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_6_current" title="@{spells_lvl_6_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_6_max" title="@{spells_lvl_6|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_7_current" title="@{spells_lvl_7_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_7_max" title="@{spells_lvl_7|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_8_current" title="@{spells_lvl_8_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_8_max" title="@{spells_lvl_8|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_9_current" title="@{spells_lvl_9_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells_lvl_9_max" title="@{spells_lvl_9|max}" value="0"></span></span><span class="to-hit spells-bottom"><span>Cantrips</span> <span>1st</span> <span>2nd</span> <span>3rd</span> <span>4th</span> <span>5th</span> <span>6th</span> <span>7th</span> <span>8th</span> <span>9th</span> </span><input type="checkbox" class="toggle-sync-class hidden" name="attr_sync_caster_class2" value="1"> <span class="caster-class inline-label toggle-caster2"><label></label> <label class="show-sync-class"></label> <label><span>Class</span></label> <label><span>Level</span></label> <label></label> <label class="inline-label" title="@{sync_caster_class2} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes."><span>Sync to Class:</span> <input type="checkbox" name="attr_sync_caster_class2" value="1"></label> <label class="show-sync-class"><select class="class-selected border" name="attr_caster_class2_selected" title="@{caster_class2_selected} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes.">
<option value="1" selected="selected">Class 1</option>
<option value="2">Class 2</option>
<option value="3">Class 3</option>
</select></label> <label class="show-sync-class width-large"><input type="hidden" class="class-selected" name="attr_caster_class2_selected" value="1"> <input class="show-class1-name" name="attr_class" title="@{class}" placeholder="n/a" readonly="readonly"> <input class="show-class2-name" name="attr_secondclass" title="@{secondclass}" placeholder="n/a" readonly="readonly"> <input class="show-class3-name" name="attr_thirdclass" title="@{thirdclass}" placeholder="n/a" readonly="readonly"></label> <label class="caster-level show-sync-class"><input type="text" class="width-small" name="attr_caster_class2_level" title="@{caster_class2_level}" value="0" readonly="readonly"></label> <label class="show-when-not-synced width-large"><input type="text" name="attr_caster_class2_name" title="@{caster_class2_name} | Name used for spells" value="" placeholder="enter caster class"></label> <label class="show-when-not-synced"><input type="text" class="width-small" name="attr_caster_class2_level" title="@{caster_class2_level}" value="0"></label> </span><span class="spells-middle toggle-caster2"><span><input type="text" class="width-fill" name="attr_spells2_lvl_0_current" title="@{spells2_lvl_0_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_0_max" title="@{spells2_lvl_0|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_1_current" title="@{spells2_lvl_1_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_1_max" title="@{spells2_lvl_1|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_2_current" title="@{spells2_lvl_2_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_2_max" title="@{spells2_lvl_2|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_3_current" title="@{spells2_lvl_3_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_3_max" title="@{spells2_lvl_3|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_4_current" title="@{spells2_lvl_4_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_4_max" title="@{spells2_lvl_4|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_5_current" title="@{spells2_lvl_5_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_5_max" title="@{spells2_lvl_5|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_6_current" title="@{spells2_lvl_6_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_6_max" title="@{spells2_lvl_6|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_7_current" title="@{spells2_lvl_7_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_7_max" title="@{spells2_lvl_7|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_8_current" title="@{spells2_lvl_8_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_8_max" title="@{spells2_lvl_8|max}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_9_current" title="@{spells2_lvl_9_current}" value="0"></span><span><input type="text" class="width-fill" name="attr_spells2_lvl_9_max" title="@{spells2_lvl_9|max}" value="0"></span></span><span class="to-hit spells-bottom toggle-caster2"><span>Cantrips</span> <span>1st</span> <span>2nd</span> <span>3rd</span> <span>4th</span> <span>5th</span> <span>6th</span> <span>7th</span> <span>8th</span> <span>9th</span></span></div>
<div class="inline-label">
<div class="spell-caster-tabs toggle-caster2"><input type="radio" class="tab-hidden tab" name="attr_spell_caster_tabs" value="0"><span class="tab">Caster 1</span> <input type="radio" class="tab-hidden tab" name="attr_spell_caster_tabs" value="1"><span class="tab">Caster 2</span> <input type="radio" class="tab-hidden tab" name="attr_spell_caster_tabs" value="-1" checked="checked"><span class="tab">All</span></div><label class="left" title="Display Spells on the sheet as a one or two columns."><span>Single Column</span> <input type="checkbox" class="toggle-single-column-spells" name="attr_toggle_single_column_spells" title="@{toggle_single_column_spells}" value="1" checked="checked"></label> <label class="left" title="Hide all non-memorized spells(ie #0)"><span>Memorized Only</span> <input type="checkbox" name="attr_toggle_show_memorized" title="@{toggle_show_memorized}" value="1"></label> <span class="inline-label right"><input type="hidden" name="attr_spells_previous_order_array" value=""> <input type="hidden" class="busy-indicator" name="attr_spells_sheet_busy" value="0"> <label><button type="action" name="act_spell-sort-alphabetical" title="Sort rows by spell names alphabetically."><span class="nowrap">Sort A-Z</span></button></label> <label><button type="action" name="act_spell-sort-level" title="Sort rows by level and spell names alphabetically."><span class="nowrap">Sort Lvl A-Z</span></button></label> <label><button type="action" name="act_spell-sort-undo" class="text-only" title="Undo last Sort."><span class="undo"></span></button></label></span>
</div>
<div class="spell-tabs"><input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="0"><span class="tab">Cantrips</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="1"><span class="tab">1st</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="2"><span class="tab">2nd</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="3"><span class="tab">3rd</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="4"><span class="tab">4th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="5"><span class="tab">5th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="6"><span class="tab">6th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="7"><span class="tab">7th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="8"><span class="tab">8th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="9"><span class="tab">9th</span> <input type="radio" class="tab-hidden tab" name="attr_spell_tabs" value="-1" checked="checked"><span class="tab">All</span></div>
<div class="sect">
<fieldset class="repeating_spells"><input type="hidden" class="hidden toggle-show" name="attr_spell_show" value="1" readonly="readonly"> <input type="checkbox" class="hidden toggle-memorized" name="attr_spell_show_memorized" value="1" readonly="readonly"> <input type="checkbox" class="hidden toggle-all" name="attr_spell_show_all" value="1" readonly="readonly" checked="checked"> <input type="hidden" class="hidden not-memorized" name="attr_spell_memorized" value="0" readonly="readonly"> <span class="top-row spells-repheader spell-display border-top-half"><button class="dice-button" type="roll" name="attr_spell_roll" title="%{selected|repeating_spells_$X_spell_roll}" value="@{spell_macro_text}" style="margin-right:12px;"></button> <label class="repeating-name"><input type="text" class="auto-width" name="attr_spell_name" title="@{repeating_spells_$X_spell_name}" placeholder="Spell Name"></label> <label class="right nowrap spell-level"><span>Spell Lvl:</span> <select class="width-small" name="attr_spell_level" title="@{repeating_spells_$X_spell_level}">
<option selected="">?</option>
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select></label> <label class="right" style="min-width: 2em; max-width: 3em;"><span>#</span> <input type="text" class="width-smallest" name="attr_spell_memorized" title="@{repeating_spells_$X_spell_memorized}" value="0"></label></span>
<details class="spell-display border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary>
<div class="spell-details-grid"><span class="span-all inline-label"><label><select class="width-medium" name="attr_spell_caster_class" title="@{repeating_spells_$X_spell_caster_class}">
<option value="0" selected="selected">n/a</option>
<option value="1">Caster 1</option>
<option class="toggle-caster2" value="2">Caster 2</option>
</select> <input type="hidden" name="attr_spell_caster_class" value="1"> <input type="text" class="width-medium shrink-on-placeholder" name="attr_spell_caster_class_name" value="" title="@{repeating_spells_$X_spell_caster_class_name}" placeholder="add caster class" readonly="readonly"></label> <label class="right" style="min-width: 3em; max-width: 4em; margin-left: 5px;"><span>Lvl</span> <input type="text" class="width-smallest" name="attr_spell_caster_class_level" value="0" title="@{repeating_spells_$X_spell_caster_class_level}" readonly="readonly"></label> </span><label><span>Spell Level:</span> <select class="width-small" name="attr_spell_level" title="@{repeating_spells_$X_spell_level}">
<option selected="selected">?</option>
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select></label> <label><span>School:</span> <span class="inline-label width-fill"><input type="text" list="spell_school" name="attr_spell_school" title="@{repeating_spells_$X_spell_school}" value="" placeholder="Spell Type"></span></label> <label><span>Components:</span> <input type="text" name="attr_spell_components" title="@{repeating_spells_$X_spell_components}" value="" placeholder="V,S,M"></label> <label><span>Range:</span> <input type="text" name="attr_spell_range" title="@{repeating_spells_$X_spell_range}" value="" placeholder="6&quot;"></label> <label><span>Casting Time:</span> <input type="text" name="attr_spell_ct" title="@{repeating_spells_$X_spell_ct}" value="" placeholder="1 rnd"></label> <label><span>Duration:</span> <input type="text" name="attr_spell_duration" title="@{repeating_spells_$X_spell_duration}" value="" placeholder="1 rnd"></label> <label><span>Saving Throw:</span> <input type="text" name="attr_spell_save" title="@{repeating_spells_$X_spell_save}" value="" placeholder="None"></label> <label><span>Save Type:</span> <input type="text" name="attr_spell_save_type" title="@{repeating_spell_$X_spell_save_type}" value="" placeholder="n/a"></label> <label class="span-two"><span>Area of Effect:</span> <input type="text" name="attr_spell_aoe" title="@{repeating_spells_$X_spell_aoe}" value="" placeholder="One Creature"></label></div><textarea class="sect height-tall" name="attr_spell_description" title="@{repeating_spells_$X_spell_description}" placeholder="Spell Description"></textarea> <span class="inline-label"><label><span>Notes:</span> <textarea name="attr_spell_notes" class="height-short" title="@{repeating_spells_$X_spell_notes}" placeholder="Notes"></textarea></label> <label><button type="roll" class="info-link" value="@{whisper_pc} [**LINK**](@{spell_link})" title="Send link to chat."></button> <textarea class="info-link" wrap="off" name="attr_spell_link" title="@{repeating_spells_$X_spell_link}" placeholder="https://www.example.com"></textarea></label> </span><textarea name="attr_spell_macro_text" class="height-short toggle-macros" title="@{repeating_spells_$X_spell_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{spell_name}}} {{school=@{spell_school}}} {{spell_level=@{spell_level}}} {{spell_class=@{spell_caster_class_name}}} {{spell_class_level=@{spell_caster_class_level}}} {{range=@{spell_range}}} {{duration=@{spell_duration}}} {{area_of_effect=@{spell_aoe}}} {{components=@{spell_components}}} {{casting_time=@{spell_ct}}} {{saving_throw=@{spell_save}}} {{save_type=@{spell_save_type}}} {{link=@{spell_link}}} {{freetext=@{spell_description}}}</textarea>
</details>
</fieldset>
</div><input type="checkbox" class="sect-show" name="attr_spellsnotes_show" value="1"> <span class="subheader">Spells Notes</span><span class="material-icons"></span>
<div class="sect"><textarea name="attr_spellsnotes" title="@{spellsnotes}" placeholder="Spells Notes"></textarea></div>
</div>
<hr>
</section>
<section class="notes-box"><input type="checkbox" class="sect-show" name="attr_notes_info_show" value="1">
<div class="header">NOTES</div><span class="material-icons"></span>
<div class="sect"><span class="notes-norep-columns"><button class="dice-button" type="roll" name="attr_note_roll" title="%{note_roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{note_name}}} {{freetext=@{notes}}}"></button> <span class="autoexpand"><input type="text" name="attr_note_name" title="@{note_name}" value="" placeholder="Note Name"> <span name="attr_note_name"></span> </span><span class="autoexpand span-two"><textarea class="height-fill" name="attr_notes" title="@{notes} | Field will resize to match it's content." placeholder="Misc Notes"></textarea> <span name="attr_notes"></span> </span></span><label class="left"><span>Single Column</span> <input type="checkbox" class="toggle-single-column-notes" name="attr_toggle_single_column_notes" title="@{toggle_single_column_notes}" value="1" checked="checked"></label></div>
<div class="sect">
<fieldset class="repeating_notes"><span class="top-row notes-columns border-top-half"><button class="dice-button" type="roll" name="attr_notes_roll" title="%{repeating_notes_$X_notes_roll}" value="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{notes_name}}} {{freetext=@{notes_description}}}"></button> <span class="autoexpand"><input type="text" name="attr_notes_name" title="@{repeating_notes_$X_notes_name}" value="" placeholder="Note Name"> <span name="attr_notes_name"></span></span></span>
<details class="border-bottom-half">
<summary><span class="material-icons gear-nav" title="Expand/Hide sub-section"></span></summary><textarea class="height-tall" name="attr_notes_description" title="@{repeating_notes_$X_notes_description}" placeholder="Misc Notes"></textarea>
</details>
</fieldset>
</div>
<hr>
</section>
<section class="options-box"><input type="checkbox" class="sect-show" name="attr_settings_show" value="1" checked="checked">
<div class="header">SETTINGS</div><span class="material-icons"></span>
<div class="settings sect"><span class="text-notes"><strong>Reminder:</strong> these are "per-sheet" settings only. DM's that would like to set their own defaults for new characters can do so using the Default Settings section found in the main Game Settings page. If you would also like to apply these settings to all pre-existing characters in your game, follow these wiki instructions:<span class="inline-label"><button type="roll" class="url-roll btn ui-draggable" title="Post this link to chat." value="[Roll20 Wiki Link](https://wiki.roll20.net/Game_Settings_Page#Applying_Setting_Defaults_to_Existing_Content_In-Game)"><span>Applying Setting Defaults to Existing Content</span></button></span></span> <span class="inline-label width-fill"><label title="@{background} | Choose a sheet background. note: Using Roll20's dark mode option will override this option.">
<h4>Background:</h4><select class="background-selection" name="attr_background">
<option value="1" default="">White</option>
<option value="2" style="background-color: oklch(85.17% 0.01737 76.018);">Parchment</option>
<option value="7" style="background-color: oklch(92.707% 0.08398 97.456);">Light Goldenrod</option>
<option value="3" style="background-color: oklch(87.958% 0.15349 96.999);">Goldenrod</option>
<option value="4" style="background-color: oklch(85.557% 0.06941 143.738)">Moldvay</option>
<option value="5" style="background-color: var(--color-white1);">Light Greyhawk</option>
<option value="6" style="background-color: oklch(76.676% 0.00009 271.152 / 0.54);">Greyhawk</option>
</select>
</label> <label title="@{toggle_linear_background} | Apply subtle linear gradient background to misc. sheet sub-sections.">
<h4>Linear Gradient:</h4><input type="checkbox" name="attr_toggle_linear_background" value="1" title="@{toggle_linear_background}">
</label> <label title="@{toggle_row_shading} | Apply subtle alternating background contrast to sheet rows.">
<h4>Row Shading:</h4><input type="checkbox" name="attr_toggle_row_shading" value="1" title="@{toggle_row_shading}">
</label> <label title="@{color_option} | Color will be displayed with sheet rolls.">
<h4>Roll Template Color:</h4><select name="attr_color_option">
<option style="background-color: var(--black); color: var(--white)" value="black" selected="selected">black</option>
<option style="background-color: var(--blue); color: var(--white)" value="blue">blue</option>
<option style="background-color: var(--darkblue); color: var(--white)" value="darkblue">darkblue</option>
<option style="background-color: var(--darkgreen); color: var(--white)" value="darkgreen">darkgreen</option>
<option style="background-color: var(--darkgrey); color: var(--white)" value="darkgrey">darkgrey</option>
<option style="background-color: var(--darkorange); color: var(--white)" value="darkorange">darkorange</option>
<option style="background-color: var(--darkpink); color: var(--white)" value="darkpink">darkpink</option>
<option style="background-color: var(--darkpurple); color: var(--white)" value="darkpurple">darkpurple</option>
<option style="background-color: var(--darkred); color: var(--white)" value="darkred">darkred</option>
<option style="background-color: var(--darkyellow); color: var(--white)" value="darkyellow">darkyellow</option>
<option style="background-color: var(--green); color: var(--white)" value="green">green</option>
<option style="background-color: var(--grey); color: var(--white)" value="grey">grey</option>
<option style="background-color: var(--orange); color: var(--white)" value="orange">orange</option>
<option style="background-color: var(--pink); color: var(--white)" value="pink">pink</option>
<option style="background-color: var(--purple); color: var(--white)" value="purple">purple</option>
<option style="background-color: var(--red); color: var(--white)" value="red">red</option>
<option style="background-color: var(--white);" value="white">white</option>
<option style="background-color: var(--yellow);" value="yellow">yellow</option>
</select>
</label> </span><span class="inline-label width-fill">
<h4 class="stack-text">Sheet Image:</h4><label><select name="attr_sheet_image" title="@{sheet_image} | Image displayed on the sheet. Defaults to a selected Avatar." style="width:11em;">
<option value="1" selected="selected">Use Avatar</option>
<option value="0">Use URL</option>
<option value="2">None</option>
</select> <button type="roll" class="button" value="[**LINK**](@{sheet_image_url})" title="Send image to chat."><span>Image URL:</span></button> <input type="text" class="width-fill border-light" name="attr_sheet_image_url" title="@{sheet_image_url} | Enter a valid image URL that ends with a proper image extension. e.g. .png, .jpg, .gif If needed, trim the url to the end of the image extension or add a 3-letter extension to the end of the url.." placeholder="https://app.roll20.net/images/character.png"></label>
</span><span class="inline-label width-fill" title="@{surprise_die} | Choose the die used for Surprise rolls.">
<h4 class="stack-text">Surprise die:</h4><label style="width:auto;"><select name="attr_surprise_die" class="width-medium">
<option value="6" selected="selected">1d6</option>
<option value="8">1d8</option>
<option value="10">1d10</option>
<option value="12">1d12</option>
<option value="20">1d20</option>
<option value="100">1d100</option>
</select></label> <label><button type="roll" class="button" value="@{surprise_macro_text}" title="Test Roll"><span>Surprise Macro:</span></button> <textarea class="height-half" name="attr_surprise_macro_text" title="@{surprise_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Surprised 1-?{Surprised on?(enter upper limit)|@{surprise}} on 1d@{surprise_die}}} {{roll=[[ 1d@{surprise_die}cf&lt;?{Surprised on?(enter upper limit)|@{surprise}}cs&gt;?{Surprised on?(enter upper limit)|@{surprise}} ]] }} {{Segment Adjustments}} {{dex_adjustment=[[ @{surprisebonus} ]]}} {{current_encumbrance=[[ @{current_encumbrance_move} ]]}}</textarea></label>
</span><span class="inline-label width-fill" title="@{surprise_others_die} | Choose the die used for the Surprise Others rolls.">
<h4 class="stack-text">Surprise Others die:</h4><label style="width:auto;"><select name="attr_surprise_others_die" class="width-medium">
<option value="6" selected="selected">1d6</option>
<option value="8">1d8</option>
<option value="10">1d10</option>
<option value="12">1d12</option>
<option value="20">1d20</option>
<option value="100">1d100</option>
</select></label> <label><button type="roll" class="button" value="@{surprise_others_macro_text}" title="Test Roll"><span>Surprise Others:</span></button> <textarea class="height-half" name="attr_surprise_others_macro_text" title="@{surprise_others_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Surprise Others 1-?{Surprise others on?(enter upper limit)|@{surprise}} on 1d@{surprise_others_die}}} {{roll=[[ 1d@{surprise_others_die}cs&lt;?{Surprise others on?(enter upper limit)|@{surprise}}cf&gt;?{Surprise others on?(enter upper limit)|@{surprise}} ]] }} {{Surprise Others Adj: [[ @{surprise_others_mod} ]]}} {{Segment Adjustments}} {{dex_adjustment=[[ @{surprisebonus} ]]}} {{current_encumbrance=[[ @{current_encumbrance_move} ]]}}</textarea></label>
</span><span class="inline-label width-fill" title="@{initiative_die} | Choose the die used for Initiative rolls.">
<h4 class="stack-text">Initiative die:</h4><label style="width:auto;"><select name="attr_initiative_die" class="width-medium">
<option value="6" selected="selected">1d6</option>
<option value="8">1d8</option>
<option value="10">1d10</option>
<option value="12">1d12</option>
<option value="20">1d20</option>
<option value="100">1d100</option>
</select></label> <label><button type="roll" class="button" value="@{init_macro_text}" title="Test Roll"><span>Initiative Macro:</span></button> <textarea class="height-half" name="attr_init_macro_text" title="@{init_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Initiative! 1d@{initiative_die}}} {{roll=[[ 1d@{initiative_die} + ( ?{Modifier?|0}[MOD] ) &{tracker}]]}} {{Misc. Adjustments}} {{mod_applied=[[ ?{Modifier?|0} ]]}} {{dex_adjustment= @{surprisebonus_inverted}}} {{current_encumbrance=[[ @{current_encumbrance_move} ]]}}</textarea></label>
</span><span class="inline-label wrap width-fill">
<h4>Misc. Options:</h4><label title="@{ability_check_die} | Die/Dice vs Ability Score. e.g. 1d20, 4d6, 3d6, etc."><span>Ability Check die:</span> <input type="text" class="width-small-plus border" name="attr_ability_check_die" value="1d20"></label> <label title="@{toggle_to_hit_table} | Use THAC0 instead of Attack Matrix. NOTE: The Autofill Table option uses the 1e table data to establish the base THAC0, but it does not use the repeating 20's."><span>Use THAC0:</span> <input type="checkbox" name="attr_toggle_to_hit_table" value="1"></label> <label title="@{toggle_fighter5} | Use a 5% progression to-Hit table. This is a Fighter only option and will have no effect for other classes."><span>Use Fighter 5%:</span> <input type="checkbox" name="attr_toggle_fighter5" value="1"></label> <label title="@{toggle_auto_damage} | Auto roll damage regardless of the attack roll."><span>Auto Roll Damage:</span> <input type="checkbox" name="attr_toggle_auto_damage" value="1"></label> <label title="@{toggle_critdamage} | Use crit damage rolls on natural 20. Defaults to weapon damage x2. Crit damage handling can be adjusted per attack."><span>Use Crit Damage:</span> <input type="checkbox" name="attr_toggle_critdamage" value="1"></label> <label title="@{toggle_lbs} | Use Lbs instead of gold pieces when determining encumbrance. Carrying capacities and carried coin weight will be divided by 10. Per-item weights need to be entered as lbs in order for the sheet to properly calculate encumbrance."><span>Use Lbs:</span> <input type="checkbox" class="toggle-lbs" name="attr_toggle_lbs" value="1"></label>
</span><span class="five-columns">
<h4 class="inline-label" style="grid-row: 1/3;margin-left: 3em;">Cleric:</h4>
<h4 class="stack-text" title="Standard Turn Undead by type.">Standard Turn Undead:</h4><label title="@{turn_undead_macro} | Choose a Cleric level."><span>Cleric Lvl:</span> <select name="attr_turn_undead_macro" class="width-smaller" style="appearance: none;">
<option value="1}} {{?{Undead Type?|Skeleton,[[1d12]]Skeleton's=[[1d20cs>10cf<10]]|Zombie,[[1d12]]Zombie's=[[1d20cs>13cf<13]]|Ghoul,[[1d12]]Ghoul's=[[1d20cs>16cf<16]]|Shadow,[[1d12]]Shadow's=[[1d20cs>19cf<19]]|Wight,[[1d12]]Wight's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}" selected="selected">1</option>
<option value="2}} {{?{Undead Type?|Skeleton,[[1d12]]Skeleton's=[[1d20cs>7cf<7]]|Zombie,[[1d12]]Zombie's=[[1d20cs>10cf<10]]|Ghoul,[[1d12]]Ghoul's=[[1d20cs>13cf<13]]|Shadow,[[1d12]]Shadow's=[[1d20cs>16cf<16]]|Wight,[[1d12]]Wight's=[[1d20cs>19cf<19]]|Ghast,[[1d12]]Ghast's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">2</option>
<option value="3}} {{?{Undead Type?|Skeleton,[[1d12]]Skeleton's=[[1d20cs>4cf<4]]|Zombie,[[1d12]]Zombie's=[[1d20cs>7cf<7]]|Ghoul,[[1d12]]Ghoul's=[[1d20cs>10cf<10]]|Shadow,[[1d12]]Shadow's=[[1d20cs>13cf<13]]|Wight,[[1d12]]Wight's=[[1d20cs>16cf<16]]|Ghast,[[1d12]]Ghast's=[[1d20cs>19cf<19]]|Wraith,[[1d12]]Wraith's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">3</option>
<option value="4}} {{?{Undead Type?|Skeleton,[[1d12 [T]]]Skeleton's=T|Zombie,[[1d12 [T]]]Zombie's=T|Ghoul,[[1d12]]Ghoul's=[[1d20cs>4cf<4]]|Shadow,[[1d12]]Shadow's=[[1d20cs>7cf<7]]|Wight,[[1d12]]Wight's=[[1d20cs>10cf<10]]|Ghast,[[1d12]]Ghast's=[[1d20cs>13cf<13]]|Wraith,[[1d12]]Wraith's=[[1d20cs>16cf<16]]|Mummy,[[1d12]]Mummy's=[[1d20cs>19cf<19]]|Spectre,[[1d12]]Spectre's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">4</option>
<option value="5}} {{?{Undead Type?|Skeleton,[[1d12 [T]]]Skeleton's=T|Zombie,[[1d12 [T]]]Zombie's=T|Ghoul,[[1d12 [T]]]Ghoul's=T|Shadow,[[1d12]]Shadow's=[[1d20cs>4cf<4]]|Wight,[[1d12]]Wight's=[[1d20cs>7cf<7]]|Ghast,[[1d12]]Ghast's=[[1d20cs>10cf<10]]|Wraith,[[1d12]]Wraith's=[[1d20cs>13cf<13]]|Mummy,[[1d12]]Mummy's=[[1d20cs>16cf<16]]|Spectre,[[1d12]]Spectre's=[[1d20cs>19cf<19]]|Vampire,[[1d12]]Vampire's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">5</option>
<option value="6}} {{?{Undead Type?|Skeleton,[[1d12 [D]]]Skeleton's=D|Zombie,[[1d12]]Zombie's=D|Ghoul,[[1d12 [T]]]Ghoul's=T|Shadow,[[1d12 [T]]]Shadow's=T|Wight,[[1d12]]Wight's=[[1d20cs>4cf<4]]|Ghast,[[1d12]]Ghast's=[[1d20cs>7cf<7]]|Wraith,[[1d12]]Wraith's=[[1d20cs>10cf<10]]|Mummy,[[1d12]]Mummy's=[[1d20cs>13cf<13]]|Spectre,[[1d12]]Spectre's=[[1d20cs>16cf<16]]|Vampire,[[1d12]]Vampire's=[[1d20cs>19cf<19]]|Ghost,[[1d12]]Ghost's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">6</option>
<option value="7}} {{?{Undead Type?|Skeleton,[[1d12 [D]]]Skeleton's=D|Zombie,[[1d12 [D]]]Zombie's=D|Ghoul,[[1d12 [D]]]Ghoul's=D|Shadow,[[1d12 [T]]]Shadow's=T|Wight,[[1d12 [T]]]Wight's=T|Ghast,[[1d12]]Ghast's=[[1d20cs>4cf<4]]|Wraith,[[1d12]]Wraith's=[[1d20cs>7cf<7]]|Mummy,[[1d12]]Mummy's=[[1d20cs>10cf<10]]|Spectre,[[1d12]]Spectre's=[[1d20cs>13cf<13]]|Vampire,[[1d12]]Vampire's=[[1d20cs>16cf<16]]|Ghost,[[1d12]]Ghost's=[[1d20cs>19cf<19]]|Lich,[[1d12]]Lich's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">7</option>
<option value="8}} {{?{Undead Type?|Skeleton,[[1d6+6 [D&#0185;]]]Skeleton's=D&#0185;|Zombie,[[1d12 [D]]]Zombie's=D|Ghoul,[[1d12 [D]]]Ghoul's=D|Shadow,[[1d12 [D]]]Shadow's=D|Wight,[[1d12 [T]]]Wight's=T|Ghast,[[1d12 [T]]]Ghast's=T|Wraith,[[1d12]]Wraith's=[[1d20cs>4cf<4]]|Mummy,[[1d12]]Mummy's=[[1d20cs>7cf<7]]|Spectre,[[1d12]]Spectre's=[[1d20cs>10cf<10]]|Vampire,[[1d12]]Vampire's=[[1d20cs>13cf<13]]|Ghost,[[1d12]]Ghost's=[[1d20cs>16cf<16]]|Lich,[[1d12]]Lich's=[[1d20cs>19cf<19]]|Special,[[1d2 [Special]]]Special=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">8</option>
<option value="9-13}} {{?{Undead Type?|Skeleton,[[1d6+6 [D&#0185;]]]Skeleton's=D&#0185;|Zombie,[[1d6+6 [D&#0185;]]]Zombie's=D&#0185;|Ghoul,[[1d12 [D]]]Ghoul's=D|Shadow,[[1d12 [D]]]Shadow's=D|Wight,[[1d12 [D]]]Wight's=D|Ghast,[[1d12 [T]]]Ghast's=T|Wraith,[[1d12 [T]]]Wraith's=T|Mummy,[[1d12]]Mummy's=[[1d20cs>4cf<4]]|Spectre,[[1d12]]Spectre's=[[1d20cs>7cf<7]]|Vampire,[[1d12]]Vampire's=[[1d20cs>10cf<10]]|Ghost,[[1d12]]Ghost's=[[1d20cs>13cf<13]]|Lich,[[1d12]]Lich's=[[1d20cs>16cf<16]]|Special,[[1d2 [Special]]]Special=[[1d20cs>19cf<19]]}}} {{Turned for [[3d4]] rounds}}">9-13</option>
<option value="14+}} {{?{Undead Type?|Skeleton,[[1d6+6 [D&#0185;]]]Skeleton's=D&#0185;|Zombie,[[1d6+6 [D&#0185;]]]Zombie's=D&#0185;|Ghoul,[[1d6+6 [D&#0185;]]]Ghoul's=D&#0185;|Shadow,[[1d6+6 [D&#0185;]]]Shadow's=D&#0185;|Wight,[[1d12 [D]]]Wight's=D|Ghast,[[1d12 [D]]]Ghast's=D|Wraith,[[1d12 [D]]]Wraith's=D|Mummy,[[1d12 [T]]]Mummy's=T|Spectre,[[1d12 [T]]]Spectre's=T|Vampire,[[1d12]]Vampire's=[[1d20cs>4cf<4]]|Ghost,[[1d12]]Ghost's=[[1d20cs>7cf<7]]|Lich,[[1d12]]Lich's=[[1d20cs>10cf<10]]|Special,[[1d2 [Special]]]Special=[[1d20cs>13cf<13]]}}} {{Turned for [[3d4]] rounds}}">14+</option>
</select></label> <label title="%{turn_undead_roll} | Standard Turn Undead by type."><button type="roll" name="roll_turn_undead_roll" value="@{whisper_pc} &{template:general} {{name=@{character_name}}} {{color=@{color_option}}} {{# & Type Effected}} {{subtag=Turn/Command Undead Lvl: @{turn_undead_macro}"><span>Turn Undead</span></button></label> <label title="Add to Special Abilities. Creates a unique, non-synced, ability."><button type="action" name="act_addturnundead"><span>+Add</span></button></label>
<h4 class="stack-text" title="Alternate version that groups undead by adjusted HD. Credit to Dragonsfoot.com see Footprints #7 for details.">Alternate Turn Undead:</h4><label title="@{turn_undead_macro2} | Choose a Cleric level."><span>Cleric Lvl:</span> <select name="attr_turn_undead_macro2" class="width-smaller" style="appearance: none;">
<option value="1}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12]]HD1: Poltergeist Skeleton Animal Skeleton=[[1d20cs>11cf<11]]|HD2: Zombie,[[1d12]]HD2: Zombie's=[[1d20cs>14cf<14]]|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>17cf<17]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}" selected="selected">1</option>
<option value="2}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12]]HD1: Poltergeist Skeleton Animal Skeleton=[[1d20cs>8cf<8]]|HD2: Zombie,[[1d12]]HD2: Zombie's=[[1d20cs>11cf<11]]|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>14cf<14]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>17cf<17]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">2</option>
<option value="3}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12]]HD1: Poltergeist Skeleton Animal Skeleton=[[1d20cs>5cf<5]]|HD2: Zombie,[[1d12]]HD2: Zombie's=[[1d20cs>8cf<8]]|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>11cf<11]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>14cf<14]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>17cf<17]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">3</option>
<option value="4}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12]]HD1: Poltergeist Skeleton Animal Skeleton=[[1d20cs>2cf<2]]|HD2: Zombie,[[1d12]]HD2: Zombie's=[[1d20cs>5cf<5]]|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>8cf<8]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>11cf<11]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>14cf<14]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>17cf<17]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">4</option>
<option value="5}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [T]]]HD1: Poltergeist Skeleton Animal Skeleton=T|HD2: Zombie,[[1d12]]HD2: Zombie's=[[1d20cs>2cf<2]]|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>5cf<5]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>8cf<8]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>11cf<11]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>14cf<14]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>17cf<17]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">5</option>
<option value="6}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [T]]]HD1: Poltergeist Skeleton Animal Skeleton=T|HD2: Zombie,[[1d12]]HD2: Zombie's=T|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12]]HD3: Coffer Corpse Ghoul Sheet Phantom=[[1d20cs>2cf<2]]|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>5cf<5]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>8cf<8]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>11cf<11]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>14cf<14]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>17cf<17]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">6</option>
<option value="7}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [T]]]HD1: Poltergeist Skeleton Animal Skeleton=T|HD2: Zombie,[[1d12 [T]]]HD2: Zombie's=T|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [T]]]HD3: Coffer Corpse Ghoul Sheet Phantom=T|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=[[1d20cs>2cf<2]]|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>5cf<5]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>8cf<8]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>11cf<11]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>14cf<14]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>17cf<17]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">7</option>
<option value="8}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [D]]]HD1: Poltergeist Skeleton Animal Skeleton=D|HD2: Zombie,[[1d12 [T]]]HD2: Zombie's=T|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [T]]]HD3: Coffer Corpse Ghoul Sheet Phantom=T|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [T]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=T|HD5: Ghast Shadow,[[1d12]]HD5: Ghast Shadow=[[1d20cs>2cf<2]]|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>5cf<5]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>8cf<8]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>11cf<11]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>14cf<14]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>17cf<17]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">8</option>
<option value="9}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [D]]]HD1: Poltergeist Skeleton Animal Skeleton=D|HD2: Zombie,[[1d12 [D]]]HD2: Zombie's=D|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [T]]]HD3: Coffer Corpse Ghoul Sheet Phantom=T|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [T]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=T|HD5: Ghast Shadow,[[1d12 [T]]]HD5: Ghast Shadow=T|HD6: Son of Kyuss Wight Monster Zombie,[[1d12]]HD6: Son of Kyuss Wight Monster Zombie=[[1d20cs>2cf<2]]|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>5cf<5]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>8cf<8]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>11cf<11]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>14cf<14]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>17cf<17]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">9</option>
<option value="10}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d12 [D]]]HD1: Poltergeist Skeleton Animal Skeleton=D|HD2: Zombie,[[1d12 [D]]]HD2: Zombie's=D|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [D]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [T]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=T|HD5: Ghast Shadow,[[1d12 [T]]]HD5: Ghast Shadow=T|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [T]]]HD6: Son of Kyuss Wight Monster Zombie=T|HD7: Crypt Thing Wraith,[[1d12]]HD7: Crypt Thing Wraith=[[1d20cs>2cf<2]]|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>5cf<5]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>8cf<8]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>11cf<11]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>14cf<14]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>17cf<17]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">10</option>
<option value="11}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d6+6 [D&#0185;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0185;|HD2: Zombie,[[1d12 [D]]]HD2: Zombie's=D|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [D]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [T]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=T|HD5: Ghast Shadow,[[1d12 T]]]HD5: Ghast Shadow=T|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [T]]]HD6: Son of Kyuss Wight Monster Zombie=T|HD7: Crypt Thing Wraith,[[1d12 [T]]]HD7: Crypt Thing Wraith=T|HD8: Mummy,[[1d12]]HD8: Mummy's=[[1d20cs>2cf<2]]|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>5cf<5]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>8cf<8]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>11cf<11]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>14cf<14]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>17cf<17]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">11</option>
<option value="12}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d6+6 [D&#0185;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0185;|HD2: Zombie,[[1d6+6 [D&#0185;]]]HD2: Zombie's=D&#0185;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d12 [D]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [D]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D|HD5: Ghast Shadow,[[1d12 [D]]]HD5: Ghast Shadow=D|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [T]]]HD6: Son of Kyuss Wight Monster Zombie=T|HD7: Crypt Thing Wraith,[[1d12 [T]]]HD7: Crypt Thing Wraith=T|HD8: Mummy,[[1d12 [T]]]HD8: Mummy's=T|HD9: Spectre,[[1d12]]HD9: Spectre's=[[1d20cs>2cf<2]]|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>5cf<5]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>8cf<8]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>11cf<11]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>14cf<14]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>17cf<17]]|HD15:,[[1d12]]HD15:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">12</option>
<option value="13}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[1d6+6 [D&#0185;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0185;|HD2: Zombie,[[1d6+6 [D&#0185;]]]HD2: Zombie's=D&#0185;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d6+6 [D&#0185;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0185;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d12 [D]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D|HD5: Ghast Shadow,[[1d12 [D]]]HD5: Ghast Shadow=D|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [D]]]HD6: Son of Kyuss Wight Monster Zombie=D|HD7: Crypt Thing Wraith,[[1d12 [T]]]HD7: Crypt Thing Wraith=T|HD8: Mummy,[[1d12 [T]]]HD8: Mummy's=T|HD9: Spectre,[[1d12 [T]]]HD9: Spectre's=T|HD10: Apparition,[[1d12]]HD10: Apparition's=[[1d20cs>2cf<2]]|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>5cf<5]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>8cf<8]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>11cf<11]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>14cf<14]]|HD15:,[[1d12]]HD15:=[[1d20cs>17cf<17]]|HD16:,[[1d12]]HD16:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">13</option>
<option value="14}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+6 [D&#0178;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0178;|HD2: Zombie,[[1d6+6 [D&#0185;]]]HD2: Zombie's=D&#0185;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d6+6 [D&#0185;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0185;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d6+6 [D&#0185;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0185;|HD5: Ghast Shadow,[[1d12 [D]]]HD5: Ghast Shadow=D|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [D]]]HD6: Son of Kyuss Wight Monster Zombie=D|HD7: Crypt Thing Wraith,[[1d12 [D]]]HD7: Crypt Thing Wraith=D|HD8: Mummy,[[1d12 [T]]]HD8: Mummy's=T|HD9: Spectre,[[1d12 [T]]]HD9: Spectre's=T|HD10: Apparition,[[1d12 [T]]]HD10: Apparition's=T|HD11: Vampire,[[1d12]]HD11: Vampire's=[[1d20cs>2cf<2]]|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>5cf<5]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>8cf<8]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>11cf<11]]|HD15:,[[1d12]]HD15:=[[1d20cs>14cf<14]]|HD16:,[[1d12]]HD16:=[[1d20cs>17cf<17]]|HD17:,[[1d12]]HD17:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">14</option>
<option value="15}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+6 [D&#0178;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0178;|HD2: Zombie,[[2d6+6 [D&#0178;]]]HD2: Zombie's=D&#0178;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[1d6+6 [D&#0185;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0185;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d6+6 [D&#0185;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0185;|HD5: Ghast Shadow,[[1d6+6 [D&#0185;]]]HD5: Ghast Shadow=D&#0185;|HD6: Son of Kyuss Wight Monster Zombie,[[1d12 [D]]]HD6: Son of Kyuss Wight Monster Zombie=D|HD7: Crypt Thing Wraith,[[1d12 [D]]]HD7: Crypt Thing Wraith=D|HD8: Mummy,[[1d12 [D]]]HD8: Mummy's=D|HD9: Spectre,[[1d12 [T]]]HD9: Spectre's=T|HD10: Apparition,[[1d12 [T]]]HD10: Apparition's=T|HD11: Vampire,[[1d12 [T]]]HD11: Vampire's=T|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12]]HD12: Eye Of Fear & Flame Groaning Spirit=[[1d20cs>2cf<2]]|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>5cf<5]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>8cf<8]]|HD15:,[[1d12]]HD15:=[[1d20cs>11cf<11]]|HD16:,[[1d12]]HD16:=[[1d20cs>14cf<14]]|HD17:,[[1d12]]HD17:=[[1d20cs>17cf<17]]|HD18:,[[1d12]]HD18:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">15</option>
<option value="16}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+6 [D&#0178;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0178;|HD2: Zombie,[[2d6+6 [D&#0178;]]]HD2: Zombie's=D&#0178;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[2d6+6 [D&#0178;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0178;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[1d6+6 [D&#0185;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0185;|HD5: Ghast Shadow,[[1d6+6 [D&#0185;]]]HD5: Ghast Shadow=D&#0185;|HD6: Son of Kyuss Wight Monster Zombie,[[1d6+6 [D&#0185;]]]HD6: Son of Kyuss Wight Monster Zombie=D&#0185;|HD7: Crypt Thing Wraith,[[1d12 [D]]]HD7: Crypt Thing Wraith=D|HD8: Mummy,[[1d12 [D]]]HD8: Mummy's=D|HD9: Spectre,[[1d12 [D]]]HD9: Spectre's=D|HD10: Apparition,[[1d12 [T]]]HD10: Apparition's=T|HD11: Vampire,[[1d12 [T]]]HD11: Vampire's=T|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12 [T]]]HD12: Eye Of Fear & Flame Groaning Spirit=T|HD13: Death Knight Ghost Lich,[[1d12]]HD13: Death Knight Ghost Lich=[[1d20cs>2cf<2]]|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>5cf<5]]|HD15:,[[1d12]]HD15:=[[1d20cs>8cf<8]]|HD16:,[[1d12]]HD16:=[[1d20cs>11cf<11]]|HD17:,[[1d12]]HD17:=[[1d20cs>14cf<14]]|HD18:,[[1d12]]HD18:=[[1d20cs>17cf<17]]|HD19:,[[1d12]]HD19:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">16</option>
<option value="17}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+12 [D&#0179;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0179;|HD2: Zombie,[[2d6+6 [D&#0178;]]]HD2: Zombie's=D&#0178;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[2d6+6 [D&#0178;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0178;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[2d6+6 [D&#0178;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0178;|HD5: Ghast Shadow,[[1d6+6 [D&#0185;]]]HD5: Ghast Shadow=D&#0185;|HD6: Son of Kyuss Wight Monster Zombie,[[1d6+6 [D&#0185;]]]HD6: Son of Kyuss Wight Monster Zombie=D&#0185;|HD7: Crypt Thing Wraith,[[1d6+6 [D&#0185;]]]HD7: Crypt Thing Wraith=D&#0185;|HD8: Mummy,[[1d12 [D]]]HD8: Mummy's=D|HD9: Spectre,[[1d12 [D]]]HD9: Spectre's=D|HD10: Apparition,[[1d12 [D]]]HD10: Apparition's=D|HD11: Vampire,[[1d12 [T]]]HD11: Vampire's=T|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12 [T]]]HD12: Eye Of Fear & Flame Groaning Spirit=T|HD13: Death Knight Ghost Lich,[[1d12 [T]]]HD13: Death Knight Ghost Lich=T|HD14: Skeleton Warrior,[[1d12]]HD14: Skeleton Warrior=[[1d20cs>2cf<2]]|HD15:,[[1d12]]HD15:=[[1d20cs>5cf<5]]|HD16:,[[1d12]]HD16:=[[1d20cs>8cf<8]]|HD17:,[[1d12]]HD17:=[[1d20cs>11cf<11]]|HD18:,[[1d12]]HD18:=[[1d20cs>14cf<14]]|HD19:,[[1d12]]HD19:=[[1d20cs>17cf<17]]|HD20:,[[1d12]]HD20:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">17</option>
<option value="18}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+12 [D&#0179;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0179;|HD2: Zombie,[[2d6+12 [D&#0179;]]]HD2: Zombie's=D&#0179;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[2d6+6 [D&#0178;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0178;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[2d6+6 [D&#0178;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0178;|HD5: Ghast Shadow,[[2d6+6 [D&#0178;]]]HD5: Ghast Shadow=D&#0178;|HD6: Son of Kyuss Wight Monster Zombie,[[1d6+6 [D&#0185;]]]HD6: Son of Kyuss Wight Monster Zombie=D&#0185;|HD7: Crypt Thing Wraith,[[1d6+6 [D&#0185;]]]HD7: Crypt Thing Wraith=D&#0185;|HD8: Mummy,[[1d6+6 [D&#0185;]]]HD8: Mummy's=D&#0185;|HD9: Spectre,[[1d12 [D]]]HD9: Spectre's=D|HD10: Apparition,[[1d12 [D]]]HD10: Apparition's=D|HD11: Vampire,[[1d12 [D]]]HD11: Vampire's=D|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12 [T]]]HD12: Eye Of Fear & Flame Groaning Spirit=T|HD13: Death Knight Ghost Lich,[[1d12 [T]]]HD13: Death Knight Ghost Lich=T|HD14: Skeleton Warrior,[[1d12 [T]]]HD14: Skeleton Warrior=T|HD15:,[[1d12]]HD15:=[[1d20cs>2cf<2]]|HD16:,[[1d12]]HD16:=[[1d20cs>5cf<5]]|HD17:,[[1d12]]HD17:=[[1d20cs>8cf<8]]|HD18:,[[1d12]]HD18:=[[1d20cs>11cf<11]]|HD19:,[[1d12]]HD19:=[[1d20cs>14cf<14]]|HD20:,[[1d12]]HD20:=[[1d20cs>17cf<17]]|HD21:,[[1d12]]HD21:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">18</option>
<option value="19}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+12 [D&#0179;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0179;|HD2: Zombie,[[2d6+12 [D&#0179;]]]HD2: Zombie's=D&#0179;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[2d6+12 [D&#0179;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0179;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[2d6+6 [D&#0178;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0178;|HD5: Ghast Shadow,[[2d6+6 [D&#0178;]]]HD5: Ghast Shadow=D&#0178;|HD6: Son of Kyuss Wight Monster Zombie,[[2d6+6 [D&#0178;]]]HD6: Son of Kyuss Wight Monster Zombie=D&#0178;|HD7: Crypt Thing Wraith,[[1d6+6 [D&#0185;]]]HD7: Crypt Thing Wraith=D&#0185;|HD8: Mummy,[[1d6+6 [D&#0185;]]]HD8: Mummy's=D&#0185;|HD9: Spectre,[[1d6+6 [D&#0185;]]]HD9: Spectre's=D&#0185;|HD10: Apparition,[[1d12 [D]]]HD10: Apparition's=D|HD11: Vampire,[[1d12 [D]]]HD11: Vampire's=D|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12 [D]]]HD12: Eye Of Fear & Flame Groaning Spirit=D|HD13: Death Knight Ghost Lich,[[1d12 [T]]]HD13: Death Knight Ghost Lich=T|HD14: Skeleton Warrior,[[1d12 [T]]]HD14: Skeleton Warrior=T|HD15:,[[1d12 [T]]]HD15:=T|HD16:,[[1d12]]HD16:=[[1d20cs>2cf<2]]|HD17:,[[1d12]]HD17:=[[1d20cs>5cf<5]]|HD18:,[[1d12]]HD18:=[[1d20cs>8cf<8]]|HD19:,[[1d12]]HD19:=[[1d20cs>11cf<11]]|HD20:,[[1d12]]HD20:=[[1d20cs>14cf<14]]|HD21:,[[1d12]]HD21:=[[1d20cs>17cf<17]]|HD22:,[[1d12]]HD22:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">19</option>
<option value="20+}} {{?{Undead Type?|HD1: Poltergeist Skeleton Animal Skeleton,[[2d6+12 [D&#0179;]]]HD1: Poltergeist Skeleton Animal Skeleton=D&#0179;|HD2: Zombie,[[2d6+12 [D&#0179;]]]HD2: Zombie's=D&#0179;|HD3: Coffer Corpse Ghoul Sheet Phantom,[[2d6+12 [D&#0179;]]]HD3: Coffer Corpse Ghoul Sheet Phantom=D&#0179;|HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie,[[2d6+12 [D&#0179;]]]HD4: Huecuva Penanggalan Sheet Ghoul Juju Zombie=D&#0179;|HD5: Ghast Shadow,[[2d6+6 [D&#0178;]]]HD5: Ghast Shadow=D&#0178;|HD6: Son of Kyuss Wight Monster Zombie,[[2d6+6 [D&#0178;]]]HD6: Son of Kyuss Wight Monster Zombie=D&#0178;|HD7: Crypt Thing Wraith,[[2d6+6 [D&#0178;]]]HD7: Crypt Thing Wraith=D&#0178;|HD8: Mummy,[[1d6+6 [D&#0185;]]]HD8: Mummy's=D&#0185;|HD9: Spectre,[[1d6+6 [D&#0185;]]]HD9: Spectre's=D&#0185;|HD10: Apparition,[[1d6+6 [D&#0185;]]]HD10: Apparition's=D&#0185;|HD11: Vampire,[[1d12 [D]]]HD11: Vampire's=D|HD12: Eye Of Fear & Flame Groaning Spirit,[[1d12 [D]]]HD12: Eye Of Fear & Flame Groaning Spirit=D|HD13: Death Knight Ghost Lich,[[1d12 [D]]]HD13: Death Knight Ghost Lich=D|HD14: Skeleton Warrior,[[1d12 [T]]]HD14: Skeleton Warrior=T|HD15:,[[1d12 [T]]]HD15:=T|HD16:,[[1d12 [T]]]HD16:=T|HD17:,[[1d12]]HD17:=[[1d20cs>2cf<2]]|HD18:,[[1d12]]HD18:=[[1d20cs>5cf<5]]|HD19:,[[1d12]]HD19:=[[1d20cs>8cf<8]]|HD20:,[[1d12]]HD20:=[[1d20cs>11cf<11]]|HD21:,[[1d12]]HD21:=[[1d20cs>14cf<14]]|HD22:,[[1d12]]HD22:=[[1d20cs>17cf<17]]|HD23:,[[1d12]]HD23:=[[1d20cs>20cf<20]]}}} {{Turned for [[3d4]] rounds}}">20+</option>
</select></label> <label title="%{turn_undead_roll} | Alternate version that groups undead by adjusted HD. Credit to Dragonsfoot.com see Footprints #7 for details."><button type="roll" name="roll_turn_undead2_roll" value="@{whisper_pc} &{template:general} {{name=@{character_name}}} {{color=@{color_option}}} {{# & Type Effected}} {{subtag=Turn/Command Undead Lvl: @{turn_undead_macro2}"><span>Turn Undead</span></button></label> <label title="Add to Special Abilities. Creates a unique, non-synced, ability."><button type="action" name="act_addturnundead2"><span>+Add</span></button></label>
</span><span class="six-columns">
<h4 style="grid-row: 1/3; justify-self: left;">Hide Areas:</h4><label class="inline-label" title="@{toggle_thief_skills} | Hides Thief Skills and melee attack backstab bonuses."><span>Thief Skills:</span> <input type="checkbox" name="attr_toggle_thief_skills" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_spells} | Hides the Spells section."><span>Spells:</span> <input type="checkbox" name="attr_toggle_spells" value="1"></label> <label class="inline-label" title="@{toggle_caster2} | Hides a second caster class in the Spells section."><span>Caster Class 2:</span> <input type="checkbox" name="attr_toggle_caster2" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_nwp} | Hides the Non-Weapon Proficiencies section."><span>NWP:</span> <input type="checkbox" name="attr_toggle_nwp" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_costs} | Hides cost fields and totals."><span>Costs:</span> <input type="checkbox" name="attr_toggle_costs" value="1"></label> <label class="inline-label" title="@{toggle_exceptional} | Hides the exceptional ability column. caveat: exceptional Strength will be shown regardless of this setting."><span>Exceptional:</span> <input type="checkbox" name="attr_toggle_exceptional" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_comeliness} | Hides the Comeliness ability row."><span>Comeliness:</span> <input type="checkbox" name="attr_toggle_comeliness" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_multiclass} | Hides additional class fields."><span>Multi-Class:</span> <input type="checkbox" name="attr_toggle_multiclass" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_psionics} | Hides Psionic-related fields found within Special Abilities."><span>Psionics:</span> <input type="checkbox" name="attr_toggle_psionics" value="1" checked="checked"></label> <label class="inline-label" title="@{toggle_macros} | Hides editable macro-text fields for various sheet-based rolls."><span>Sheet Macros:</span> <input type="checkbox" name="attr_toggle_macros" value="1" checked="checked"></label> <label class="hide-areas-image"></label> <label class="inline-label span-two" title="@{toggle_ar} | Hides Armor Class Rating fields and totals."><span>Armor Class Rating (AR):</span> <input type="checkbox" name="attr_toggle_ar" value="1"></label> <label title="@{hide_to_hit_table} | Do not include to-Hit table data (Matrix/THAC0) with attack rolls. NOTE: this setting updates all existing and future attacks, but can be overwritten locally e.g. per attack."><span>Hide to-Hit:</span> <input type="checkbox" name="attr_hide_to_hit_table" value="1"></label> <label class="span-two"></label> <span class="span-all text-notes">These options will show/hide sections of the sheet. Some options may hide related fields as well. e.g. hiding "Thief Skills" will also hide "Backstab" in attacks.</span>
</span><span class="five-columns">
<h4>Whisper Options:</h4><label class="span-two center"><span>PC Rolls:</span> <select class="width-medium" name="attr_whisper_pc" title="@{whisper_pc} | rolls from the PC page.">
<option value=" " selected="selected">Open Rolls</option>
<option value="/w gm">Whisper Rolls</option>
<option value="?{Whisper to DM?|no|yes,/w gm}">Ask</option>
</select></label> <label class="span-two center"><span>Monster Rolls:</span> <select class="width-medium" name="attr_whisper_npc" title="@{whisper_npc} | rolls from the Monster page.">
<option value=" " selected="selected">Open Rolls</option>
<option value="/w gm">Whisper Rolls</option>
<option value="?{Whisper to DM?|no|yes,/w gm}">Ask</option>
</select></label> <span></span> <span class="span-four text-notes">"Open" rolls will be shown to all. "Whispered" rolls will be hidden to other PC's. The DM sees all.</span>
</span>
<h3 class="width-fill center">Advanced Options</h3><span class="inline-label wrap"><label class="sync-lock" title="@{sync_hp_flag} | Let the sheet sync Total HP max from Class Details."><span>Sync HP:</span> <input type="checkbox" name="attr_sync_hp_flag" value="1" checked="checked"> <span></span></label> <label class="sync-lock" title="@{sync_ac_flag} | Let the sheet sync Total AC from Armor Details with AC ( @{armorclass} )."><span>Sync AC:</span> <input type="checkbox" name="attr_sync_ac_flag" value="1" checked="checked"> <span></span></label> <label title="@{autocalc_ac} | This is a persistent setting. Let the sheet auto-calculate AC based on the values entered in the Armor Details table above. This will overwrite all values in the bottom row."><span>Auto-Calc AC:</span> <input type="checkbox" name="attr_autocalc_ac" value="1" checked="checked"></label> <label title="@{autocalc_movement_flag} | Let the sheet calculate Movement/Speed. Uses base movement and the current encumbrance(STR vs total_weight carried). Note: Load can can be set manually but any changes to base movement, encumbrance, or opening the sheet will trigger a re-calc."><span>Auto-Calc Movement:</span> <input type="checkbox" name="attr_autocalc_movement_flag" value="1" checked="checked"></label> <label title="@{autofill_matrix} | Let the sheet auto-fill the to-hit tables when the class and level selectors are changed in the attack Matrix/THAC0 window. NOTE: The Autofill Table option uses the 1e table data to establish the base THAC0, but it does not use the repeating 20's."><span>Autofill to-Hit Table:</span> <input type="checkbox" name="attr_autofill_matrix" value="1" checked="checked"></label> <label class="inline-label" title="@{sync_matrix_class} | Linking to a class will automatically adjust the to-Hit values when the linked class and/or level changes from the top of the sheet. Note: multi-class/dual-class characters should pick the most favorable class. Defaults to Class 1 of 3 if enabled."><span>Sync to-Hit to Class:</span> <input type="checkbox" name="attr_sync_matrix_class" value="1"></label> <label class="inline-label" title="@{autofill_thief} | Let the sheet auto-fill the Base chance when the level selector is changed."><span>Autofill Thief Base:</span> <input type="checkbox" name="attr_autofill_thief" value="1" checked="checked"></label> <label class="inline-label" title="@{sync_thief_class} | Linking to a class will automatically adjust the thief base values when the linked class level changes."><span>Sync Thief Skills to Class:</span> <input type="checkbox" name="attr_sync_thief_class" value="1"></label> <label class="inline-label" title="@{sync_caster_class1} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes."><span>Sync Caster Class 1:</span> <input type="checkbox" name="attr_sync_caster_class1" value="1"></label> <label class="inline-label" title="@{sync_caster_class2} | Linking to a class will automatically adjust the caster name and level values whenever the linked class changes."><span>Sync Caster Class 2:</span> <input type="checkbox" name="attr_sync_caster_class2" value="1"></label> </span><span class="text-notes"><strong>Caution:</strong> Edit the sheet's default macro used for Attack rolls. Does not effect existing attacks unless you use the "Update Attacks" button or reset an attack's macro locally. Modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro. </span><span class="inline-label">
<h4 class="stack-text">Default Attack Macro:</h4><label><textarea class="height-half" name="attr_default_attack_macro" title="@{default_attack_macro} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + ( @{weapon_backstab_bonus}[BACKSTAB] ) + ( @{weapon_tohitbonus}[HIT_BON] ) + ( @{weapon_prof_pen}[PROF_PEN] ) + ( @{weapon_dual_pen}[DUAL_PEN] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{To Hit Modifier?|0}[MISC_MOD] ) ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=[[ @{toggle_critdamage} ]]}} @{weapon_tohitacadj}</textarea></label> <button type="action" name="act_updateweaponsmacros" class="reset-macros" title="WARNING: Override all attack macros. Any local customization/editing that has been done on existing macro-text fields will be lost!"><span>Update Attacks</span></button>
</span><span class="inline-label" title="WARNING: any customization/editing that has been done on existing macro-text fields will be lost! You will not break anything by resetting. Resetting a field simply erases the existing value and forces the sheet to re-populate the field with the latest default value.">
<h4 class="stack-text">Reset Macros to Default</h4><button type="action" name="act_resetallmacros" class="reset-macros"><span>Reset All</span></button> <button type="action" name="act_resetweaponsmacros" class="reset-macros"><span>Reset Weapons</span></button> <button type="action" name="act_resetspellsmacros" class="reset-macros"><span>Reset Spells</span></button> <button type="action" name="act_resetabilitiesmacros" class="reset-macros"><span>Reset Abilities</span></button> <button type="action" name="act_resetnwpsmacros" class="reset-macros"><span>Reset NWP</span></button> <button type="action" name="act_resetequipmentmacros" class="reset-macros"><span>Reset Equip</span></button>
</span>
</div>
<section class="custom-attributes"><input type="checkbox" class="sect-show" name="attr_custom_attributes_show" value="1">
<div class="header">CUSTOM ATTRIBUTES</div><span class="material-icons"></span>
<div class="sect"><label class="left"><span>Single Column</span> <input type="checkbox" class="toggle-single-column-attributes" name="attr_toggle_single_column_attributes" title="@{toggle_single_column_attributes}" value="1" checked="checked"></label>
<fieldset class="repeating_attributes">
<div class="border"><span class="inline-label"><span><button class="dice-button" type="roll" name="attr_attribute_roll" title="%{repeating_attributes_$X_attribute_roll} | PC Roll" value="@{attribute_macro_text}"></button> </span><label><input type="text" name="attr_attribute_name" title="@{repeating_attributes_$X_attribute_name}" placeholder="Attribute Name"></label> <label><span>Type:</span> <input type="text" name="attr_attribute_type" title="@{repeating_attributes_$X_attribute_type}" placeholder="n/a"></label> </span><span class="custom-attributes-box"><label><input type="text" class="width-fill" name="attr_attribute_mod_1_name" title="@{attribute_mod_1_name}" value="" placeholder="attribute_mod_1"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_1" value="" title="@{attribute_mod_1}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_1_max" value="" title="@{attribute_mod_1|max}"></label> <label><input type="text" class="width-fill" name="attr_attribute_mod_2_name" title="@{attribute_mod_2_name}" value="" placeholder="attribute_mod_2"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_2" value="" title="@{attribute_mod_2}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_2_max" value="" title="@{attribute_mod_2|max}"></label> <label><input type="text" class="width-fill" name="attr_attribute_mod_3_name" title="@{attribute_mod_3_name}" value="" placeholder="attribute_mod_3"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_3" value="" title="@{attribute_mod_3}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_3_max" value="" title="@{attribute_mod_3|max}"></label> <label><input type="text" class="width-fill" name="attr_attribute_mod_4_name" title="@{attribute_mod_4_name}" value="" placeholder="attribute_mod_4"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_4" value="" title="@{attribute_mod_4}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_4_max" value="" title="@{attribute_mod_4|max}"></label> <label><input type="text" class="width-fill" name="attr_attribute_mod_5_name" title="@{attribute_mod_5_name}" value="" placeholder="attribute_mod_5"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_5" value="" title="@{attribute_mod_5}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_5_max" value="" title="@{attribute_mod_5|max}"></label> <label><input type="text" class="width-fill" name="attr_attribute_mod_6_name" title="@{attribute_mod_6_name}" value="" placeholder="attribute_mod_6"></label> <label class="two-inputs-over-label"><input type="text" class="width-smallest" name="attr_attribute_mod_6" value="" title="@{attribute_mod_6}"> <span>/</span> <input type="text" class="width-smallest" name="attr_attribute_mod_6_max" value="" title="@{attribute_mod_6|max}"></label> <span class="inline-label span-all"><textarea class="height-short" name="attr_attribute_description" title="@{repeating_attributes_$X_attribute_description}" placeholder="Description"></textarea> </span><label class="inline-label span-all"><button type="roll" class="info-link" value="@{whisper_pc} [**LINK**](@{attribute_link})" title="Send link to chat."></button> <textarea class="info-link" wrap="off" name="attr_attribute_link" title="@{repeating_attributes_$X_attribute_link}" placeholder="https://www.example.com"></textarea></label> <textarea name="attr_attribute_notes" class="inline-label span-all height-short" title="@{repeating_attributes_$X_attribute_notes}" placeholder="Notes"></textarea> <textarea class="span-all height-short toggle-macros" name="attr_attribute_macro_text" title="@{repeating_attributes_$X_attribute_macro_text} | Caution: modifying the macro-text can break the roll. Deleting this macro-text will safely reset the roll to the sheet's default macro.">@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{attribute_name}}} {{type=@{attribute_type}}} {{attribute_mod_1_name=@{attribute_mod_1_name}}} {{attribute_mod_1=@{attribute_mod_1}}} {{attribute_mod_1_max=@{attribute_mod_1|max}}} {{attribute_mod_2_name=@{attribute_mod_2_name}}} {{attribute_mod_2=@{attribute_mod_2}}} {{attribute_mod_2_max=@{attribute_mod_2|max}}} {{attribute_mod_3_name=@{attribute_mod_3_name}}} {{attribute_mod_3=@{attribute_mod_3}}} {{attribute_mod_3_max=@{attribute_mod_3|max}}} {{attribute_mod_4_name=@{attribute_mod_4_name}}} {{attribute_mod_4=@{attribute_mod_4}}} {{attribute_mod_4_max=@{attribute_mod_4|max}}} {{attribute_mod_5_name=@{attribute_mod_5_name}}} {{attribute_mod_5=@{attribute_mod_5}}} {{attribute_mod_5_max=@{attribute_mod_5|max}}} {{attribute_mod_6_name=@{attribute_mod_6_name}}} {{attribute_mod_6=@{attribute_mod_6}}} {{attribute_mod_6_max=@{attribute_mod_6|max}}} {{notes=@{attribute_notes}}} {{link=@{attribute_link}}} {{freetext=@{attribute_description}}}</textarea></span></div>
</fieldset>
</div>
</section>
<hr>
</section>
<section class="npc-box statblock1"><input type="checkbox" name="attr_character_name_error" class="hidden toggle-input-error" value="1" checked="checked"> <input type="text" class="height-short text-large left" name="attr_character_name" title="@{character_name} | NOTE: Including non-alpha-numeric characters 'may' break sheet rolls/macros. Specifically ')', ']', '}', or '|'." placeholder="Character Name" style="width: calc(50vw - 3em);min-width:17.5em;"> <span class="inline-label"><label><span>TYPE:</span> <input type="text" name="attr_race" value="" title="@{race}" placeholder="Type, Race, etc." style="width: calc(49vw - 6em); min-width:14em;"></label> </span><span class="inline-label"><label><span>FREQUENCY:</span> <select name="attr_frequency">
<option selected="selected">Nil</option>
<option>Very rare</option>
<option>Rare</option>
<option>Uncommon</option>
<option>Common</option>
<option>Unique</option>
</select></label> </span><span class="inline-label"><label><span>NO. APPEARING:</span> <span class="autoexpand"><input type="text" name="attr_number_appearing" value="1"> <span name="attr_number_appearing"></span></span></label> </span><span class="inline-label split"><label style="min-width: 8.5em;padding-right: 1em;"><span>ARMOR CLASS:</span> <input type="text" class="width-smallest field-border" name="attr_armorclass" title="@{armorclass} | Best AC." style="text-align:center; padding:0;"> <span class="sync-lock" title="@{sync_ac_flag} | NOT SYNCED FOR MONSTERS."><input type="checkbox" value="1" disabled="disabled"> <span></span></span></label> <label class="label-under-small width-auto toggle-ar"><span><span>AR:</span> <select name="attr_unarmored_base" title="@{unarmored_base}" class="width-small">
<option value="10" selected="selected">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0">0</option>
<option value="-">-</option>
</select> </span><label title="AC is not from armor. Weapons vs Armor Type does not apply."><input type="checkbox" name="attr_armor_rating_flag" value="1"> <span>Ignore</span></label></label> </span><span class="inline-label split"><label title="Primary Movement. NOTE: only the Primary movement is used for sheet calculations."><span>MOVE:</span> <input type="text" class="width-small-plus" name="attr_movement" title="@{movement}" value="12"></label> <label title="Other Movement. NOTE: not used for sheet calculations."><span>OTHER:</span> <input type="text" class="width-small-plus" name="attr_movement2" title="@{movement2}" value="" placeholder="Nil"></label> </span><span class="inline-label"><label><span>HIT DICE:</span> <input type="text" class="width-small" name="attr_monsterHD" title="@{monsterHD}" value="" placeholder="Nil"></label> <label>+ <input type="text" class="width-small" name="attr_monsterHD_bonus" title="@{monsterHD_bonus}" value="0"></label> <label><span>HIT POINTS:</span> <input type="text" class="field-border" name="attr_hitpoints" title="@{hitpoints}" value="0" style="text-align:center; padding:0;"></label> <label>/ <input type="text" class="width-small" name="attr_hitpoints_max" title="@{hitpoints|max} | Maximum Hit Points. No Damage." value="0"> <span class="sync-lock" title="@{sync_hp_flag} | NOT SYNCED FOR MONSTERS."><input type="checkbox" value="1" disabled="disabled"> <span></span></span></label> </span><span class="inline-label split" style="margin-left: 15%; width: auto;"><label class="label-percent"><button class="dice-button text-only btn ui-draggable" type="roll" name="attr_morale-roll" title="%{selected|morale-roll} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Morale Check}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{morale_base}[BASE] + ( ?{Modifier?|0}[MOD] ) ]]%}} {{mod_applied=[[ ?{Modifier?|0} ]]%}}"><span>MORALE</span></button> <input type="text" class="width-smaller" name="attr_morale_base" title="@{morale_base} | Base is 50%. Adjust +/- per circumstances." value="50"></label> </span><span class="inline-label split"><label><span>% IN LAIR:</span> <input type="text" class="width-small" name="attr_lair" title="@{lair}" value="" placeholder="Nil"></label> <label><span>TREASURE TYPE:</span> <input type="text" class="width-fill" name="attr_treasure_type" title="@{treasure_type}" value="" placeholder="Nil"></label> </span><span class="inline-label"><label><span>NO. OF ATTACKS:</span> <input type="text" class="width-small" name="attr_number_of_attacks" title="@{number_of_attacks}" value="1"></label> </span><span class="inline-label"><label><span>DAMAGE/ATTACK:</span> <textarea class="height-short" name="attr_attack_damage" title="@{attack_damage}" value="" placeholder="e.g. 1d4/1d4/1d6"></textarea></label> </span><span class="inline-label"><label><button type="roll" class="dice-button text-only" name="roll_senses_roll" title="%{selected|senses_roll}" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Senses}} {{freetext=@{senses}}}"><span>SENSES:</span></button> <textarea class="height-short" name="attr_senses" title="@{senses}" placeholder="Nil"></textarea></label></span></section>
<section class="npc-box statblock2"><span class="inline-label"><label><span>SPECIAL ATTACKS:</span> <textarea class="height-short" name="attr_special_attacks" title="@{special_attacks}" placeholder="Nil"></textarea></label> </span><span class="inline-label"><label><span>SPECIAL DEFENSES:</span> <textarea class="height-short" name="attr_special_defenses" title="@{special_defenses}" placeholder="Nil"></textarea></label> </span><span class="inline-label"><label><span>WEAKNESSES:</span> <textarea class="height-short" name="attr_weaknesses" title="@{weaknesses}" placeholder="Nil"></textarea></label> </span><span class="inline-label"><label><span>MAGIC RESISTANCE:</span> <textarea class="height-short" name="attr_magic_resistance" title="@{magic_resistance}" placeholder="Nil"></textarea></label></span>
<div class="five-columns center"><label class="label-under"><button type="roll" class="text-only" name="roll_saveparalysispoisondeath" title="%{selected|saveparalysispoisondeath} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Paralysis, Poison or Death Magic}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{saveparalysispoisondeath}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Paralysis, Poison, or Death</span></button> <input type="text" class="width-smaller border" name="attr_saveparalysispoisondeath_base" title="@{saveparalysispoisondeath_base}" value="20"></label> <label class="label-under"><button class="text-only" type="roll" name="roll_savepetrificationpolymorph" title="%{selected|savepetrificationpolymorph} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Petrification or Polymorph}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savepetrificationpolymorph}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Petrification or Polymorph</span></button> <input type="text" class="width-smaller border" name="attr_savepetrificationpolymorph_base" title="@{savepetrificationpolymorph_base}" value="20"></label> <label class="label-under"><button type="roll" class="text-only" name="roll_saverodsstaveswands" title="%{selected|saverodsstaveswands} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Rods, Staves, or Wands}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{saverodsstaveswands}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Rods, Staves, Wands</span></button> <input type="text" class="width-smaller border" name="attr_saverodsstaveswands_base" title="@{saverodsstaveswands_base}" value="20"></label> <label class="label-under"><button type="roll" class="text-only" name="roll_savebreathweapons" title="%{selected|savebreathweapons} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Breath Weapon}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savebreathweapons}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Breath Weapon</span></button> <input type="text" class="width-smaller border" name="attr_savebreathweapons_base" title="@{savebreathweapons_base}" value="20"></label> <label class="label-under"><button type="roll" class="text-only" name="roll_savespells" title="%{selected|savespells} | NPC Roll" value="@{whisper_npc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Spells}} {{roll_high=[[ 1d20 + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[@{savespells}]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}}"><span>Spells</span></button> <input type="text" class="width-smaller border" name="attr_savespells_base" title="@{savespells_base}" value="20"></label>
<div class="span-all">
<div class="saves-class sect left"><label class="inline-label" title="@{autofill_saves} | Let the sheet auto-fill the Base Saves when the class and HD/Level selectors are changed."><input type="checkbox" name="attr_autofill_saves" value="1" checked="">
<h4>Autofill Base as:</h4>
</label> <label class="center"><select class="width-fill border" name="attr_saves_class" title="@{saves_class}">
<option value="0" selected="selected" style="font-weight: bold;">~ Select Monster or Class ~</option>
<option value="3">Monster, Fighter, Paladin, or Ranger</option>
<option value="1">Cleric</option>
<option value="2">Druid</option>
<option value="4">Magic-User or Illusionist</option>
<option value="5">Thief</option>
<option value="6">Monk</option>
<option value="7">Assassin</option>
<option value="8">Other 0-lvl Types</option>
</select></label> <label class="center"><span>HD/Lvl:</span> <input class="width-small border" type="number" min="0" name="attr_saves_level" value="1" title="@{saves_level}"></label></div>
</div>
</div><span class="inline-label"><label><span>LANGUAGES:</span> <textarea class="height-short" name="attr_languages" title="@{languages}" placeholder="languages known"></textarea></label> </span><span class="inline-label"><label><span>INTELLIGENCE:</span> <select name="attr_intelligence_npc" title="@{intelligence_npc}">
<option selected="selected">Nil</option>
<option>Non-intelligent/not ratable</option>
<option>Animal intelligence</option>
<option>Semi-intelligent</option>
<option>Low intelligence</option>
<option>Average (human) intelligence</option>
<option>Very intelligent</option>
<option>Highly intelligent</option>
<option>Exceptionally intelligent</option>
<option>Genius-level intelligence</option>
<option>Supra-genius</option>
<option>Godlike intelligence</option>
</select></label> </span><span class="inline-label"><textarea class="height-short" name="attr_intelligence_npc2" title="@{intelligence_npc2}" value="" placeholder="notes"></textarea> </span><span class="inline-label"><label><span>ALIGNMENT:</span> <input type="text" class="width-medium" name="attr_alignment" title="@{alignment}"></label> </span><span class="inline-label split"><label title="Natural/Unaltered size." style="min-width: auto;"><span>SIZE:</span> <select name="attr_size" title="@{size}">
<option>S</option>
<option selected="selected">M</option>
<option>L</option>
</select></label> <label title="Current/Altered size."><span>Temp Size:</span> <select name="attr_size2" title="@{size2}">
<option>S</option>
<option selected="selected">M</option>
<option>L</option>
</select></label> <label><span>HT:</span> <input type="text" name="attr_height" title="@{height}" value="0"></label> <label><span>WT:</span> <input type="text" name="attr_weight" title="@{weight}" value="0"></label> </span><span class="inline-label"><label><span>PSIONIC ABILITY:</span> <input type="text" class="width-medium" name="attr_psionic_ability" title="@{psionic_ability} | Use Special Abilities to add Attack/Defensive Modes, and Specialties." value="" placeholder="Nil"></label> <label class="inline-label" title="@{toggle_psionics} | Hides Psionic-related fields found within Special Abilities."><span>Hide Other Psionics:</span> <input type="checkbox" name="attr_toggle_psionics" value="1" checked=""></label> </span><span class="inline-label"><label><span>Attack/Defense Modes</span> <input type="text" class="width-medium" name="attr_psionic_modes" title="@{psionic_modes}" value="" placeholder="Nil"></label> </span><span class="inline-label"><label><span>LEVEL/XP VALUE:</span> <input type="text" class="width-large" name="attr_level_xp_value" title="@{level_xp_value}" value="" placeholder="Nil"></label></span><label class="inline-label"><button type="roll" class="image-link" value="@{whisper_npc} [**LINK**](@{sheet_image_url})" title="Send image to chat."></button> <textarea class="image-link" wrap="off" name="attr_sheet_image_url" title="@{sheet_image_url} | Enter a valid image URL that ends with a proper image extension. e.g. .png, .jpg, .gif If needed, trim the url to the end of the image extension or add a 3-letter extension to the end of the url.." placeholder="https://app.roll20.net/images/character.png"></textarea> <button type="roll" class="info-link" value="@{whisper_npc} [**LINK**](@{npc_link})" title="Send link to chat."></button> <textarea class="info-link" wrap="off" name="attr_npc_link" title="@{npc_link}" placeholder="https://www.example.com"></textarea></label>
</section>
<section class="npc-box statblock3"><input type="hidden" class="toggle-avatar" name="attr_sheet_image" value="1">
<div class="image-avatar" name="attr_sheet_image_url" title="Send image to chat."><img name="attr_character_avatar"> <button type="action" name="act_postimage" class="image-link"></button> <input type="hidden" name="attr_sheet_image_src"></div>
</section>
<section class="npc-box statblock3-span"><span class="inline-label wrap" style="min-width: 356px;"><label><button class="dice-button text-only" type="roll" name="attr_init-roll" title="%{selected|init-roll}" value="@{whisper_npc} @{init_macro_text}"><span>INITIATIVE</span></button></label> <label><button class="dice-button text-only" type="roll" name="attr_surprise-roll" title="%{selected|surprise-roll}" value="@{whisper_npc} @{surprise_macro_text}"><span>SURPRISE</span></button></label> <label class="auto-width right"><span>Surprise Chance</span> <input type="text" class="width-smaller" name="attr_surprise" title="@{surprise}" value="2"></label> <label class="auto-width left"><select name="attr_surprise_die" class="width-medium" title="@{surprise_die}">
<option value="6" selected="selected">of 6</option>
<option value="8">of 8</option>
<option value="10">of 10</option>
<option value="12">of 12</option>
<option value="20">of 20</option>
<option value="100">of 100</option>
</select></label> <label class="auto-width"><button type="roll" class="dice-button text-only" name="roll_surprise_others-roll" title="%{selected|surprise_others-roll}" value="@{whisper_npc} @{surprise_others_macro_text}"><span>Surprise Others</span></button> <span>Adj.</span> <input type="text" class="width-smaller" name="attr_surprise_others_mod" title="@{surprise_others_mod} | The modifier is typically indicated as bonus although the value is SUBTRACTED from the opponents Surprise check." value="0"></label></span></section>
<section class="npc-box statblock4"><textarea name="attr_npc_notes" title="@{npc_notes}" placeholder="Enter Notes/Description..." class="height-fill"></textarea></section>
<section class="footer-box"><span class="inline-label text-small"><span>Questions/feedback?</span> <button type="roll" class="url-roll" title="Post this link to chat." value="[AD&D1e Development Game & Forum](https://app.roll20.net/campaigns/details/731454/)">AD&D1e Development Game & Forum</button> </span><span class="inline-label text-small"><span>Author: Vince &amp; the Roll20 Community</span> <label><span>&nbsp;v<input type="text" class="width-smaller version" name="attr_sheet_version" value="0" readonly="readonly"></span></label></span></section>
</div>
</div>
<div class="sheet-roll_templates">
<rolltemplate class="sheet-rolltemplate-attacks">
<div class="{{#color}}color-{{color}}{{/color}}"><span class="sheet-row">{{#bigname}} <span class="sheet-template-header sheet-bigger-text sheet-span-two">{{bigname}}</span> {{/bigname}} </span><span class="sheet-row">{{#name}} <span class="sheet-template-header sheet-span-two">{{name}}</span> {{/name}} {{#subtag}} <span class="sheet-subheader sheet-span-two">{{subtag}}{{#dual}}&nbsp;<span class="sheet-smaller-text" title="Dual Attack.">({{dual}})</span>{{/dual}}</span> {{/subtag}} </span><span class="sheet-row">{{#bigtext1}}<span class="sheet-big-text sheet-span-two">{{bigtext1}}</span>{{/bigtext1}}</span> <span class="sheet-row">{{#bigtext2}}<span class="sheet-big-text sheet-span-two">{{bigtext2}}</span>{{/bigtext2}}</span> <span class="sheet-row">{{#bigtext3}}<span class="sheet-big-text sheet-span-two">{{bigtext3}}</span>{{/bigtext3}}</span> <span class="sheet-row">{{#bigtext4}}<span class="sheet-big-text sheet-span-two">{{bigtext4}}</span>{{/bigtext4}}</span> <span class="sheet-row">{{#bigtext5}}<span class="sheet-big-text sheet-span-two">{{bigtext5}}</span>{{/bigtext5}}</span> <span class="sheet-row">{{#bigtext6}}<span class="sheet-big-text sheet-span-two">{{bigtext6}}</span>{{/bigtext6}}</span> <span class="sheet-row">{{#bigtext7}}<span class="sheet-big-text sheet-span-two">{{bigtext7}}</span>{{/bigtext7}}</span> <span class="sheet-row">{{#bigtext8}}<span class="sheet-big-text sheet-span-two">{{bigtext8}}</span>{{/bigtext8}}</span> <span class="sheet-row">{{#bigtext9}}<span class="sheet-big-text sheet-span-two">{{bigtext9}}</span>{{/bigtext9}}</span> <span class="sheet-row">{{#bigtext10}}<span class="sheet-big-text sheet-span-two">{{bigtext10}}</span>{{/bigtext10}}</span> <span class="sheet-row">{{#bigtext11}}<span class="sheet-big-text sheet-span-two">{{bigtext11}}</span>{{/bigtext11}}</span> <span class="sheet-row">{{#bigtext12}}<span class="sheet-big-text sheet-span-two">{{bigtext12}}</span>{{/bigtext12}}</span> {{#attack1}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Attack =</span>&nbsp;{{attack1}} {{#rollWasCrit() attack1}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} {{/rollWasCrit() attack1}} </span></span>{{#^rollGreater() crit 0}} {{#crit}} {{#damagevsSMchatmenu}}{{#damagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{damagevsSMchatmenu}}{{damagevsLchatmenu}} </span></span>{{/damagevsLchatmenu}}{{/damagevsSMchatmenu}} {{/crit}} {{/^rollGreater() crit 0}} {{#rollGreater() crit 0}} {{#crit}} {{#^rollWasCrit() attack1}} {{#damagevsSMchatmenu}}{{#damagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{damagevsSMchatmenu}}{{damagevsLchatmenu}} </span></span>{{/damagevsLchatmenu}}{{/damagevsSMchatmenu}} {{/^rollWasCrit() attack1}} {{#rollWasCrit() attack1}} {{#critdamagevsSMchatmenu}}{{#critdamagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{critdamagevsSMchatmenu}}{{critdamagevsLchatmenu}} </span></span>{{/critdamagevsLchatmenu}}{{/critdamagevsSMchatmenu}} {{/rollWasCrit() attack1}} {{/crit}} {{/rollGreater() crit 0}} {{/attack1}} {{#attack2}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat">Attack 2 = {{attack2}} {{#rollWasCrit() attack2}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} {{/rollWasCrit() attack2}} </span></span>{{#rollGreater() crit 0}} {{#crit}} {{#^rollWasCrit() attack2}} {{#damagevsSMchatmenu}}{{#damagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{damagevsSMchatmenu}}{{damagevsLchatmenu}} </span></span>{{/damagevsLchatmenu}}{{/damagevsSMchatmenu}} {{/^rollWasCrit() attack2}} {{#rollWasCrit() attack2}} {{#critdamagevsSMchatmenu}}{{#critdamagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{critdamagevsSMchatmenu}}{{critdamagevsLchatmenu}} </span></span>{{/critdamagevsLchatmenu}}{{/critdamagevsSMchatmenu}} {{/rollWasCrit() attack2}} {{/crit}} {{/rollGreater() crit 0}} {{/attack2}} {{#attack3}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat">Attack 3 = {{attack3}} {{#rollWasCrit() attack3}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} {{/rollWasCrit() attack3}} </span></span>{{#rollGreater() crit 0}} {{#crit}} {{#^rollWasCrit() attack3}} {{#damagevsSMchatmenu}}{{#damagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{damagevsSMchatmenu}}{{damagevsLchatmenu}} </span></span>{{/damagevsLchatmenu}}{{/damagevsSMchatmenu}} {{/^rollWasCrit() attack3}} {{#rollWasCrit() attack3}} {{#critdamagevsSMchatmenu}}{{#critdamagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{critdamagevsSMchatmenu}}{{critdamagevsLchatmenu}} </span></span>{{/critdamagevsLchatmenu}}{{/critdamagevsSMchatmenu}} {{/rollWasCrit() attack3}} {{/crit}} {{/rollGreater() crit 0}} {{/attack3}} {{#attack4}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat">Attack 4 = {{attack4}} {{#rollWasCrit() attack4}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} {{/rollWasCrit() attack4}} </span></span>{{#rollGreater() crit 0}} {{#crit}} {{#^rollWasCrit() attack4}} {{#damagevsSMchatmenu}}{{#damagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{damagevsSMchatmenu}}{{damagevsLchatmenu}} </span></span>{{/damagevsLchatmenu}}{{/damagevsSMchatmenu}} {{/^rollWasCrit() attack4}} {{#rollWasCrit() attack4}} {{#critdamagevsSMchatmenu}}{{#critdamagevsLchatmenu}} <span class="sheet-row"><span class="sheet-span-two sheet-center sheet-tcat">{{critdamagevsSMchatmenu}}{{critdamagevsLchatmenu}} </span></span>{{/critdamagevsLchatmenu}}{{/critdamagevsSMchatmenu}} {{/rollWasCrit() attack4}} {{/crit}} {{/rollGreater() crit 0}} {{/attack4}} {{#damage1vsSM}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage =</span>&nbsp;{{damage1vsSM}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage1vsSM}} {{#damage1vsL}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage vs LG =</span>&nbsp;{{damage1vsL}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage1vsL}} {{#damage2vsSM}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 2 =</span>&nbsp;{{damage2vsSM}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage2vsSM}} {{#damage2vsL}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 2 vs LG =</span>&nbsp;{{damage2vsL}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage2vsL}} {{#damage3vsSM}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 3 =</span>&nbsp;{{damage3vsSM}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage3vsSM}} {{#damage3vsL}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 3 vs LG =</span>&nbsp;{{damage3vsL}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage3vsL}} {{#damage4vsSM}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 4 =</span>&nbsp;{{damage4vsSM}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage4vsSM}} {{#damage4vsL}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat"><span class="sheet-center">Damage 4 vs LG =</span>&nbsp;{{damage4vsL}} {{#rollGreater() crit 0}} {{#crit}}<span class="sheet-bold sheet-center">CRIT!</span>{{/crit}} {{/rollGreater() crit 0}} </span></span>{{/damage4vsL}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat">{{#rollGreater() backstab 1}} {{#backstab}}<span class="sheet-bold sheet-center">Backstab Attack!!!</span>{{/backstab}} {{/rollGreater() backstab 1}} </span></span><span class="sheet-row"><span class="sheet-span-two sheet-smaller-text">{{#damagetype}}<span class="sheet-bold">Type:&nbsp;</span>{{damagetype}}&nbsp;{{/damagetype}} {{#rate}}<span class="sheet-bold">RoF:&nbsp;</span>{{rate}}&nbsp;{{/rate}} {{#range}}<span class="sheet-bold">Range:&nbsp;</span>{{range}}&nbsp;{{/range}} {{#length}}<span class="sheet-bold">Length:&nbsp;</span>{{length}}&nbsp;{{/length}} {{#space}}<span class="sheet-bold">Space:&nbsp;</span>{{space}}&nbsp;{{/space}} {{#speed}}<span class="sheet-bold">Speed:&nbsp;</span>{{speed}}&nbsp;{{/speed}} {{#range}} {{#rollGreater() ammo 0}} {{#ammo}}<span class="sheet-bold">Ammo:&nbsp;</span>{{ammo}}&nbsp;{{/ammo}} {{/rollGreater() ammo 0}} {{#rollTotal() ammo 0}} {{#ammo}}<span class="sheet-bold">No Ammo!</span>&nbsp;{{/ammo}} {{/rollTotal() ammo 0}} {{/range}} </span></span>{{#allprops() name subtag bigname bigtext1 bigtext2 bigtext3 bigtext4 bigtext5 bigtext6 bigtext7 bigtext8 bigtext9 bigtext10 bigtext11 bigtext12 footer backstab crit dual color attack1 attack2 attack3 attack4 damagevsSMchatmenu damagevsLchatmenu critdamagevsSMchatmenu critdamagevsLchatmenu damage1vsSM damage2vsSM damage3vsSM damage4vsSM damage1vsL damage2vsL damage3vsL damage4vsL damage1 ToHitArmorType0 ToHitArmorType1 ToHitArmorType2 ToHitArmorType3 ToHitArmorType4 ToHitArmorType5 ToHitArmorType6 ToHitArmorType7 ToHitArmorType8 ToHitArmorType9 ToHitArmorType10 WeaponNotes freetext damagetype rate range length space speed ammo whisper}} <span class="sheet-row sheet-all-props"><span class="sheet-tcat">{{key}}</span> <span>{{value}}</span> </span>{{/allprops() name subtag bigname bigtext1 bigtext2 bigtext3 bigtext4 bigtext5 bigtext6 bigtext7 bigtext8 bigtext9 bigtext10 bigtext11 bigtext12 footer backstab crit dual color attack1 attack2 attack3 attack4 damagevsSMchatmenu damagevsLchatmenu critdamagevsSMchatmenu critdamagevsLchatmenu damage1vsSM damage2vsSM damage3vsSM damage4vsSM damage1vsL damage2vsL damage3vsL damage4vsL damage1 ToHitArmorType0 ToHitArmorType1 ToHitArmorType2 ToHitArmorType3 ToHitArmorType4 ToHitArmorType5 ToHitArmorType6 ToHitArmorType7 ToHitArmorType8 ToHitArmorType9 ToHitArmorType10 WeaponNotes freetext damagetype rate range length space speed ammo whisper}} {{#WeaponNotes}} <span class="sheet-row"><span class="sheet-text sheet-span-two sheet-text"><span class="sheet-bold">Notes</span>:&nbsp;{{WeaponNotes}}</span> </span>{{/WeaponNotes}} {{#freetext}} <span class="sheet-row"><span class="sheet-span-two sheet-text sheet-free-text">{{freetext}}</span> </span>{{/freetext}} {{#ToHitArmorType10}} <span class="sheet-wrap-ToHit-table"><span class="sheet-wrap-ToHit"><span><span class="sheet-bold" title="vs Armor Rating/Type">AR</span> <span title="to-Hit Adjustment">Adj</span> </span></span><span class="sheet-wrap-ToHit">{{#ToHitArmorType0}}<span><span>0</span><span>{{ToHitArmorType0}}</span></span>{{/ToHitArmorType0}} {{#ToHitArmorType1}}<span><span>1</span><span>{{ToHitArmorType1}}</span></span>{{/ToHitArmorType1}} {{#ToHitArmorType2}}<span><span>2</span><span>{{ToHitArmorType2}}</span></span>{{/ToHitArmorType2}} {{#ToHitArmorType3}}<span><span>3</span><span>{{ToHitArmorType3}}</span></span>{{/ToHitArmorType3}} {{#ToHitArmorType4}}<span><span>4</span><span>{{ToHitArmorType4}}</span></span>{{/ToHitArmorType4}} {{#ToHitArmorType5}}<span><span>5</span><span>{{ToHitArmorType5}}</span></span>{{/ToHitArmorType5}} {{#ToHitArmorType6}}<span><span>6</span><span>{{ToHitArmorType6}}</span></span>{{/ToHitArmorType6}} {{#ToHitArmorType7}}<span><span>7</span><span>{{ToHitArmorType7}}</span></span>{{/ToHitArmorType7}} {{#ToHitArmorType8}}<span><span>8</span><span>{{ToHitArmorType8}}</span></span>{{/ToHitArmorType8}} {{#ToHitArmorType9}}<span><span>9</span><span>{{ToHitArmorType9}}</span></span>{{/ToHitArmorType9}} {{#ToHitArmorType10}}<span><span>10</span><span>{{ToHitArmorType10}}</span></span>{{/ToHitArmorType10}} </span></span>{{/ToHitArmorType10}} <span class="sheet-row"><span class="sheet-template-footer sheet-span-two">{{#footer}}{{footer}}{{/footer}}</span></span></div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-attacks-table">
<div class="{{#color}}color-{{color}}{{/color}}">{{#ToHitAC-10}} <span class="sheet-wrap-ToHit-table"><span class="sheet-wrap-ToHit"><span><span class="sheet-bold" title="vs Armor Class">AC</span> <span title="total roll needed to-Hit">toHit</span> </span></span><span class="sheet-wrap-ToHit">{{#ToHitAC-10}}<span><span>-10</span>{{ToHitAC-10}}</span>{{/ToHitAC-10}} {{#ToHitAC-9}}<span><span>-9</span>{{ToHitAC-9}}</span>{{/ToHitAC-9}} {{#ToHitAC-8}}<span><span>-8</span>{{ToHitAC-8}}</span>{{/ToHitAC-8}} {{#ToHitAC-7}}<span><span>-7</span>{{ToHitAC-7}}</span>{{/ToHitAC-7}} {{#ToHitAC-6}}<span><span>-6</span>{{ToHitAC-6}}</span>{{/ToHitAC-6}} {{#ToHitAC-5}}<span><span>-5</span>{{ToHitAC-5}}</span>{{/ToHitAC-5}} {{#ToHitAC-4}}<span><span>-4</span>{{ToHitAC-4}}</span>{{/ToHitAC-4}} {{#ToHitAC-3}}<span><span>-3</span>{{ToHitAC-3}}</span>{{/ToHitAC-3}} {{#ToHitAC-2}}<span><span>-2</span>{{ToHitAC-2}}</span>{{/ToHitAC-2}} {{#ToHitAC-1}}<span><span>-1</span>{{ToHitAC-1}}</span>{{/ToHitAC-1}} {{#ToHitAC0}}<span><span>0</span>{{ToHitAC0}}</span>{{/ToHitAC0}} </span><span class="sheet-wrap-ToHit"><span><span class="sheet-bold" title="vs Armor Class">AC</span> <span title="total roll needed to-Hit">toHit</span> </span></span><span class="sheet-wrap-ToHit">{{#ToHitAC0}}<span><span>0</span>{{ToHitAC0}}</span>{{/ToHitAC0}} {{#ToHitAC1}}<span><span>1</span>{{ToHitAC1}}</span>{{/ToHitAC1}} {{#ToHitAC2}}<span><span>2</span>{{ToHitAC2}}</span>{{/ToHitAC2}} {{#ToHitAC3}}<span><span>3</span>{{ToHitAC3}}</span>{{/ToHitAC3}} {{#ToHitAC4}}<span><span>4</span>{{ToHitAC4}}</span>{{/ToHitAC4}} {{#ToHitAC5}}<span><span>5</span>{{ToHitAC5}}</span>{{/ToHitAC5}} {{#ToHitAC6}}<span><span>6</span>{{ToHitAC6}}</span>{{/ToHitAC6}} {{#ToHitAC7}}<span><span>7</span>{{ToHitAC7}}</span>{{/ToHitAC7}} {{#ToHitAC8}}<span><span>8</span>{{ToHitAC8}}</span>{{/ToHitAC8}} {{#ToHitAC9}}<span><span>9</span>{{ToHitAC9}}</span>{{/ToHitAC9}} {{#ToHitAC10}}<span><span>10</span>{{ToHitAC10}}</span>{{/ToHitAC10}} </span></span>{{/ToHitAC-10}}</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-general">
<div class="{{#color}}color-{{color}}{{/color}}"><span class="sheet-row">{{#bigname}} <span class="sheet-template-header sheet-bigger-text sheet-span-two">{{bigname}}</span> {{/bigname}} </span><span class="sheet-row">{{#name}} <span class="sheet-template-header sheet-span-two">{{name}}</span> {{/name}} {{#subtag}} <span class="sheet-subheader sheet-span-two">{{subtag}}</span> {{/subtag}} </span><span class="sheet-row">{{#bigtext1}}<span class="sheet-big-text sheet-span-two">{{bigtext1}}</span>{{/bigtext1}}</span> <span class="sheet-row">{{#bigtext2}}<span class="sheet-big-text sheet-span-two">{{bigtext2}}</span>{{/bigtext2}}</span> <span class="sheet-row">{{#bigtext3}}<span class="sheet-big-text sheet-span-two">{{bigtext3}}</span>{{/bigtext3}}</span> <span class="sheet-row">{{#bigtext4}}<span class="sheet-big-text sheet-span-two">{{bigtext4}}</span>{{/bigtext4}}</span> <span class="sheet-row">{{#bigtext5}}<span class="sheet-big-text sheet-span-two">{{bigtext5}}</span>{{/bigtext5}}</span> <span class="sheet-row">{{#bigtext6}}<span class="sheet-big-text sheet-span-two">{{bigtext6}}</span>{{/bigtext6}}</span> <span class="sheet-row">{{#bigtext7}}<span class="sheet-big-text sheet-span-two">{{bigtext7}}</span>{{/bigtext7}}</span> <span class="sheet-row">{{#bigtext8}}<span class="sheet-big-text sheet-span-two">{{bigtext8}}</span>{{/bigtext8}}</span> <span class="sheet-row">{{#bigtext9}}<span class="sheet-big-text sheet-span-two">{{bigtext9}}</span>{{/bigtext9}}</span> <span class="sheet-row">{{#bigtext10}}<span class="sheet-big-text sheet-span-two">{{bigtext10}}</span>{{/bigtext10}}</span> <span class="sheet-row">{{#bigtext11}}<span class="sheet-big-text sheet-span-two">{{bigtext11}}</span>{{/bigtext11}}</span> <span class="sheet-row">{{#bigtext12}}<span class="sheet-big-text sheet-span-two">{{bigtext12}}</span>{{/bigtext12}}</span>{{#roll_high}} {{#^rollLess() roll_high roll_target}} <span class="sheet-row"><span class="sheet-tcat sheet-span-two sheet-success">Success!</span> {{/^rollLess() roll_high roll_target}} {{#rollLess() roll_high roll_target}} <span class="sheet-tcat sheet-span-two sheet-failure">Failure...</span> {{/rollLess() roll_high roll_target}} </span><span class="sheet-row sheet-span-two sheet-tcat"><span class="sheet-center">Roll =</span>&nbsp;{{roll_high}}&nbsp;<span class="sheet-center">vs</span>&nbsp;{{roll_target}}</span> {{/roll_high}} {{#roll_low}} {{#^rollGreater() roll_low roll_target}} <span class="sheet-row"><span class="sheet-tcat sheet-span-two sheet-success">Success!</span> {{/^rollGreater() roll_low roll_target}} {{#rollGreater() roll_low roll_target}} <span class="sheet-tcat sheet-span-two sheet-failure">Failure...</span> {{/rollGreater() roll_low roll_target}} </span><span class="sheet-row sheet-span-two sheet-tcat"><span class="sheet-center">Roll =</span>&nbsp;{{roll_low}}&nbsp;<span class="sheet-center">vs</span>&nbsp;{{roll_target}}</span> {{#^rollGreater() roll_low roll_target2}} <span class="sheet-row">{{/^rollGreater() roll_low roll_target2}} {{#rollGreater() roll_low roll_target2}} <span class="sheet-tcat sheet-span-two sheet-failure">Detected</span> <span class="sheet-tcat sheet-span-two sheet-center">roll is >= +21% failure</span> </span><span class="sheet-row sheet-span-two sheet-tcat">{{roll_low}}&nbsp;<span class="sheet-center">vs</span>&nbsp;{{roll_target2}}</span> {{/rollGreater() roll_low roll_target2}} {{/roll_low}} {{#^rollTotal() roll 0}} <span class="sheet-row sheet-span-two sheet-tcat"><span class="sheet-center">Roll =</span>&nbsp;{{roll}}</span> {{/^rollTotal() roll 0}} {{#effect_type}} <span class="sheet-row"><span class="sheet-tcat">Effect Type</span> <span>{{effect_type}}</span> </span>{{/effect_type}} {{#spell_class}} <span class="sheet-row"><span class="sheet-tcat">{{spell_class}}</span> {{#spell_class_level}}<span>Level:{{spell_class_level}}</span>{{/spell_class_level}} </span>{{/spell_class}} {{#school}} <span class="sheet-row"><span class="sheet-tcat">Type</span> <span>{{school}}</span> </span>{{/school}} {{#spell_level}} <span class="sheet-row"><span class="sheet-tcat">Spell Level</span> <span>{{spell_level}}</span> </span>{{/spell_level}} {{#range}} <span class="sheet-row"><span class="sheet-tcat">Range</span> <span>{{range}}</span> </span>{{/range}} {{#duration}} <span class="sheet-row"><span class="sheet-tcat">Duration</span> <span>{{duration}}</span> </span>{{/duration}} {{#area_of_effect}} <span class="sheet-row"><span class="sheet-tcat">Area of Effect</span> <span>{{area_of_effect}}</span> </span>{{/area_of_effect}} {{#components}} <span class="sheet-row"><span class="sheet-tcat">Components</span> <span>{{components}}</span> </span>{{/components}} {{#casting_time}} <span class="sheet-row"><span class="sheet-tcat">Casting Time</span> <span>{{casting_time}}</span> </span>{{/casting_time}} {{#saving_throw}} <span class="sheet-row"><span class="sheet-tcat">Saving Throw</span> <span>{{saving_throw}}</span> </span>{{/saving_throw}} {{#save_type}} <span class="sheet-row"><span class="sheet-tcat">Save Type</span> <span>{{save_type}}</span> </span>{{/save_type}} {{#type}} <span class="sheet-row"><span class="sheet-tcat">Type:</span> <span>{{type}}</span> </span>{{/type}} {{#attribute_mod_1_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_1</span> <span>{{attribute_mod_1_name}}: {{#attribute_mod_1}}{{attribute_mod_1}}{{/attribute_mod_1}}{{#attribute_mod_1_max}}/{{attribute_mod_1_max}}{{/attribute_mod_1_max}}</span> </span>{{/attribute_mod_1_name}} {{#attribute_mod_2_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_2</span> <span>{{attribute_mod_2_name}}: {{#attribute_mod_2}}{{attribute_mod_2}}{{/attribute_mod_2}}{{#attribute_mod_2_max}}/{{attribute_mod_2_max}}{{/attribute_mod_2_max}}</span> </span>{{/attribute_mod_2_name}} {{#attribute_mod_3_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_3</span> <span>{{attribute_mod_3_name}}: {{#attribute_mod_3}}{{attribute_mod_3}}{{/attribute_mod_3}}{{#attribute_mod_3_max}}/{{attribute_mod_3_max}}{{/attribute_mod_3_max}}</span> </span>{{/attribute_mod_3_name}} {{#attribute_mod_4_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_4</span> <span>{{attribute_mod_4_name}}: {{#attribute_mod_4}}{{attribute_mod_4}}{{/attribute_mod_4}}{{#attribute_mod_4_max}}/{{attribute_mod_4_max}}{{/attribute_mod_4_max}}</span> </span>{{/attribute_mod_4_name}} {{#attribute_mod_5_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_5</span> <span>{{attribute_mod_5_name}}: {{#attribute_mod_5}}{{attribute_mod_5}}{{/attribute_mod_5}}{{#attribute_mod_5_max}}/{{attribute_mod_5_max}}{{/attribute_mod_5_max}}</span> </span>{{/attribute_mod_5_name}} {{#attribute_mod_6_name}} <span class="sheet-row"><span class="sheet-tcat">attribute_mod_6</span> <span>{{attribute_mod_6_name}}: {{#attribute_mod_6}}{{attribute_mod_6}}{{/attribute_mod_6}}{{#attribute_mod_6_max}}/{{attribute_mod_6_max}}{{/attribute_mod_6_max}}</span> </span>{{/attribute_mod_6_name}} {{#rollGreater() locked_doors 0}} {{#locked_doors}} <span class="sheet-row sheet-span-two sheet-text">{{locked_doors}}</span> {{/locked_doors}} {{/rollGreater() locked_doors 0}} <span class="sheet-row"><span class="sheet-span-two sheet-tcat sheet-right">{{#uses_max}} {{#^rollTotal() uses_max 0}} {{#uses}} <span class="sheet-inlineroll-reset">Uses:{{uses}}/{{uses_max}}</span> {{/uses}} {{/^rollTotal() uses_max 0}} {{/uses_max}} {{#quantity_max}} {{#quantity}} <span class="sheet-inlineroll-reset">Qty:{{quantity}}/{{quantity_max}}</span> {{/quantity}} {{/quantity_max}} </span></span>{{#allprops() name subtag bigname bigtext1 bigtext2 bigtext3 bigtext4 bigtext5 bigtext6 bigtext7 bigtext8 bigtext9 bigtext10 bigtext11 bigtext12 footer freetext color effect_type school spell_level spell_class spell_class_level range duration area_of_effect components casting_time saving_throw save_type link type roll roll_high roll_low roll_target roll_target2 rolldecimal nwp_mod_applied mod_applied wis_applied current_encumbrance dex_adjustment quantity quantity_max uses uses_max whisper attribute_mod_1_name attribute_mod_1 attribute_mod_1_max attribute_mod_2_name attribute_mod_2 attribute_mod_2_max attribute_mod_3_name attribute_mod_3 attribute_mod_3_max attribute_mod_4_name attribute_mod_4 attribute_mod_4_max attribute_mod_5_name attribute_mod_5 attribute_mod_5_max attribute_mod_6_name attribute_mod_6 attribute_mod_6_max notes locked_doors}} <span class="sheet-row sheet-all-props"><span class="sheet-tcat">{{key}}</span> <span>{{value}}</span> </span>{{/allprops() name subtag bigname bigtext1 bigtext2 bigtext3 bigtext4 bigtext5 bigtext6 bigtext7 bigtext8 bigtext9 bigtext10 bigtext11 bigtext12 footer freetext color effect_type school spell_level spell_class spell_class_level range duration area_of_effect components casting_time saving_throw save_type link type roll roll_high roll_low roll_target roll_target2 rolldecimal nwp_mod_applied mod_applied wis_applied current_encumbrance dex_adjustment quantity quantity_max uses uses_max whisper attribute_mod_1_name attribute_mod_1 attribute_mod_1_max attribute_mod_2_name attribute_mod_2 attribute_mod_2_max attribute_mod_3_name attribute_mod_3 attribute_mod_3_max attribute_mod_4_name attribute_mod_4 attribute_mod_4_max attribute_mod_5_name attribute_mod_5 attribute_mod_5_max attribute_mod_6_name attribute_mod_6 attribute_mod_6_max notes locked_doors}} <span class="sheet-row"><span class="sheet-span-two sheet-smaller-text">{{#nwp_mod_applied}} <span class="sheet-bold">NWP Mod Applied:</span>{{nwp_mod_applied}}&nbsp;{{/nwp_mod_applied}}{{#mod_applied}} <span class="sheet-bold">Mod Applied:</span>{{mod_applied}}&nbsp;{{/mod_applied}}{{#wis_applied}} <span class="sheet-bold">Wis Applied:</span>{{wis_applied}}&nbsp;{{/wis_applied}}{{#dex_adjustment}} <span class="sheet-bold">Dex Adj:</span>{{dex_adjustment}}&nbsp;{{/dex_adjustment}}{{#encumbrance}} <span class="sheet-bold">Encumbrance:</span>{{encumbrance}}&nbsp;{{/encumbrance}}{{#rollTotal() current_encumbrance 0}}{{#current_encumbrance}} <span class="sheet-bold">Encum/Bulk - Normal</span>&nbsp; <span>None</span>{{/current_encumbrance}}{{/rollTotal() current_encumbrance 0}}{{#rollTotal() current_encumbrance 1}}{{#current_encumbrance}} <span class="sheet-bold">Encum/Bulk - Heavy</span>&nbsp; <span>No DEX Bonus to Init.</span>{{/current_encumbrance}}{{/rollTotal() current_encumbrance 1}}{{#rollTotal() current_encumbrance 2}}{{#current_encumbrance}} <span class="sheet-bold">Encum/Bulk - Very Heavy</span>&nbsp; <span>No DEX Bonus to Init, Delayed, +1 Segment if Surprised.</span>{{/current_encumbrance}}{{/rollTotal() current_encumbrance 2}}{{#rollTotal() current_encumbrance 3}}{{#current_encumbrance}} <span class="sheet-bold">Encum/Bulk - Encumbered</span>&nbsp; <span>No DEX Bonus to Init or AC, Go Last in Init, +2 Segments if Surprised, Cannot Charge, Enemies get +2 to-hit.</span>{{/current_encumbrance}}{{/rollTotal() current_encumbrance 3}}</span> </span>{{#notes}} <span class="sheet-row"><span class="sheet-tcat sheet-span-two sheet-left">Notes:</span> <span class="sheet-row sheet-span-two sheet-text" style="font-weight: normal;">{{notes}}</span> </span>{{/notes}} {{#freetext}} <span class="sheet-row"><span class="sheet-span-two sheet-text sheet-free-text">{{freetext}}</span> </span>{{/freetext}} {{#link}} <span class="sheet-row"><span class="sheet-span-two sheet-right">[LINK]({{link}})</span> </span>{{/link}} <span class="sheet-row"><span class="sheet-template-footer sheet-span-two">{{#footer}}{{footer}}{{/footer}}</span></span></div>
</rolltemplate>
</div><datalist id="alignments">
<option value="Lawful Good"></option>
<option value="Neutral Good"></option>
<option value="Chaotic Good"></option>
<option value="Lawful Neutral"></option>
<option value="True Neutral"></option>
<option value="Chaotic Neutral"></option>
<option value="Lawful Evil"></option>
<option value="Neutral Evil"></option>
<option value="Chaotic Evil"></option>
<option value="CUSTOM ENTRY"></option>
</datalist><datalist id="spell_school">
<option value="Abjur"></option>
<option value="Abjur, Evoc"></option>
<option value="Abjur/Alter"></option>
<option value="Abjur/Conj/Summ"></option>
<option value="Abjur/Evoc"></option>
<option value="Alter"></option>
<option value="Alter, Ench"></option>
<option value="Alter/Conj"></option>
<option value="Alter/Conj/Summ"></option>
<option value="Alter/Ench"></option>
<option value="Alter/Evoc"></option>
<option value="Alter/Illus"></option>
<option value="Alter/Illus/Phant"></option>
<option value="Alter/Phant"></option>
<option value="Charm"></option>
<option value="Conj"></option>
<option value="Conj, Alter"></option>
<option value="Conj/Phant"></option>
<option value="Conj/Summ"></option>
<option value="Divin"></option>
<option value="Ench"></option>
<option value="Ench, Alter"></option>
<option value="Ench/Alter"></option>
<option value="Ench/Charm"></option>
<option value="Ench/Charm/Illus/Phant"></option>
<option value="Ench/Divin"></option>
<option value="Ench/Evoc"></option>
<option value="Evoc"></option>
<option value="Evoc, Alter"></option>
<option value="Evoc/Abjur"></option>
<option value="Evoc/Alter"></option>
<option value="Evoc/Alter/Ench/Charm"></option>
<option value="Evoc/Conj"></option>
<option value="Evoc/Divin"></option>
<option value="Evoc/Ench"></option>
<option value="Evoc/Ench/Charm"></option>
<option value="Evoc/Illus"></option>
<option value="Evoc/Illus/Phant"></option>
<option value="Illus"></option>
<option value="Illus/Ench"></option>
<option value="Illus/Phant"></option>
<option value="Illus/Phant/Abjur"></option>
<option value="Illus/Phant/Alter"></option>
<option value="Illus/Phant/Conj/Summ"></option>
<option value="Invoc"></option>
<option value="Necro"></option>
<option value="Necro, Conj"></option>
<option value="Summ"></option>
<option value="Varies"></option>
<option value="CUSTOM ENTRY"></option>
</datalist><datalist id="classes">
<option value="Assassin"></option>
<option value="Bard"></option>
<option value="Cleric"></option>
<option value="Druid"></option>
<option value="Fighter"></option>
<option value="Illusionist"></option>
<option value="Magic-User"></option>
<option value="Monk"></option>
<option value="Paladin"></option>
<option value="Ranger"></option>
<option value="Thief"></option>
<option value="CUSTOM ENTRY"></option>
</datalist><datalist id="races">
<option value="Dwarf"></option>
<option value="Elf"></option>
<option value="Gnome"></option>
<option value="Half-elf"></option>
<option value="Halfling"></option>
<option value="Half-orc"></option>
<option value="Human"></option>
<option value="CUSTOM ENTRY"></option>
</datalist><datalist id="skills">
<option value="Armorer"></option>
<option value="Bowyer/Fletcher"></option>
<option value="Farmer/Gardener"></option>
<option value="Fisher (Netting)"></option>
<option value="Forester"></option>
<option value="Gambler"></option>
<option value="Hunter/Fisher (Hook & Line)"></option>
<option value="Husbandman (Animal Husbandry)"></option>
<option value="Jeweler/Lapidary"></option>
<option value="Leather worker/Tanner"></option>
<option value="Limner/Painter"></option>
<option value="Mason/Carpenter"></option>
<option value="Miner"></option>
<option value="Navigator (Fresh/Salt)"></option>
<option value="Sailor (Fresh/Salt)"></option>
<option value="Shipwright (Boats/Ships)"></option>
<option value="Tailor/Weaver"></option>
<option value="Teamster/Freighter"></option>
<option value="Trader/Barterer"></option>
<option value="Trapper/Furrier"></option>
<option value="Woodworker/Cabinetmaker"></option>
<option value="No Skill of Worth"></option>
<option value="CUSTOM ENTRY"></option>
</datalist><datalist id="nwps">
<option value="Alertness (1, WIS, +1)"></option>
<option value="Animal Handling (1, WIS, +1)"></option>
<option value="Animal Lore (1, INT, 0)"></option>
<option value="Animal Noise (1, WIS, -1)"></option>
<option value="Animal Trainer (1, WIS, 0)"></option>
<option value="Armorer (2, INT, -2)"></option>
<option value="Blacksmith (1, STR, 0)"></option>
<option value="Blind-fighting (1, N/A, N/A)"></option>
<option value="Boating (1, WIS, -1)"></option>
<option value="Boatwright (1, INT, -2)"></option>
<option value="Bowyer/Fletcher (1, DEX, -1)"></option>
<option value="Carpenter (1, STR, 0)"></option>
<option value="Charioteering (1, DEX, -2)"></option>
<option value="Direction Sense (1, WIS, -1)"></option>
<option value="Endurance (2, N/A, N/A)"></option>
<option value="Fire-building (1, WIS, +1)"></option>
<option value="Fishing (1, WIS, +1)"></option>
<option value="Foraging (1, INT, +2)"></option>
<option value="Fungus Identification (1, INT, +6)"></option>
<option value="Gem Cutter (2, DEX, -2)"></option>
<option value="Healing (2, WIS, -2)"></option>
<option value="Hunting (1, WIS, -1)"></option>
<option value="Leatherworker (1, INT, 0)"></option>
<option value="Miner (2, WIS, -3)"></option>
<option value="Mountaineering (1, N/A, N/A)"></option>
<option value="Plant Lore (1, INT, 0)"></option>
<option value="Potter (1, DEX, -2)"></option>
<option value="Riding, Airborne (2, WIS, +2)"></option>
<option value="Riding, Land-based (1, WIS, -3)"></option>
<option value="Rope Use (1, DEX, 0)"></option>
<option value="Running (2, CON, 0)"></option>
<option value="Slow Respiration (1, N/A, N/A)"></option>
<option value="Smelter (1, INT, 0)"></option>
<option value="Sound Analysis (1, WIS, 0)"></option>
<option value="Stone Mason (1, STR, -2)"></option>
<option value="Survival (1, N/A, N/A)"></option>
<option value="Swimming (1, STR, 0)"></option>
<option value="Tracking (1, N/A, N/A)"></option>
<option value="Weaponsmith (3, INT, -3)"></option>
<option value="Weather Sense (1, WIS, +1)"></option>
<option value="Weaver (1, INT, -1)"></option>
<option value="CUSTOM ENTRY"></option>
</datalist>
<script type="text/worker">var zt=()=>self.dispatchEvent==null,V=n=>{let a=getActiveCharacterId(),t={id:"0",type:"setActiveCharacter",data:n};if(zt()==!1){let e=new CustomEvent("message");e.data=t,self.dispatchEvent(e)}else self.onmessage({data:t});return a},Kt=setInterval;setInterval=function(n,a){let t=getActiveCharacterId();Kt(function(){let e=V(t);n(),V(e)},a)};var Xt=setTimeout;setTimeout=function(n,a){let t=getActiveCharacterId();Xt(function(){let e=V(t);n(),V(e)},a)};var me=n=>new Promise(a=>setTimeout(a,n)),w=n=>{let a=getActiveCharacterId(),t=null;return new Promise((e,o)=>{t=V(a);try{getAttrs(n,r=>{e(r)})}catch{o()}}).finally(()=>{V(t)})},h=(n,a)=>{let t=getActiveCharacterId(),e=null;return new Promise((o,r)=>{e=V(t);try{setAttrs(n,a,s=>{o(s)})}catch{r()}}).finally(()=>{V(e)})},y=n=>{let a=getActiveCharacterId(),t=null;return new Promise((e,o)=>{t=V(a);try{getSectionIDs(n,r=>{e(r)})}catch{o()}}).finally(()=>{V(t)})},i=(n,a=0)=>{let t=parseInt(n,10);return isNaN(t)?a:t},O=(n,a=0)=>{let t=parseFloat(n);return isNaN(t)?a:t},$=(n,a="green")=>{let t=`%c ${n}`;console.log(t,`color: ${a}; font-weight:bold`)},b=(n,a=0)=>typeof n<"u"&&n!==a,ge=(n,a)=>{let t=n;return _.each(Object.entries(a),([e,o])=>{t=t.replace(new RegExp(e.replace("{","{"),"gi"),o)}),t},Qt=async n=>/^[a-zA-Z0-9\s]+$/.test(n)?!0:!/[)|\}]/.test(n),Yt=async n=>/^[-+]?[0-9]+$/.test(n)?1:0,fa={},H=()=>{let n=generateRowID();for(;fa[n]===!0;)n=generateRowID();return fa[n]=!0,n};on("change:character_name",async n=>{let a=await w(["character_name"]),t={},e=a[`${n.sourceAttribute}`],o=await Qt(e);t[`${n.sourceAttribute}_error`]=o,await h(t,{silent:!0})});on("change:armortype_magic change:armortype2_magic change:armorshield_magic change:armorhelmet_magic change:armorother_magic change:armorother2_magic change:armorother3_magic change:armorother4_magic change:armorother5_magic change:armorother6_magic change:armorshield_mod change:armorother_mod change:armorother2_mod change:armorother3_mod change:armorother4_mod change:armorother5_mod change:armorother6_mod change:repeating_equipment:equipment_armor_mod change:repeating_equipment:equipment_armor_magic, change:hitpoints_1_class, change:hitpoints_2_class, change:hitpoints_3_class",async n=>{let a=n.sourceAttribute.split("_")[2],t=await w(["armortype_magic","armortype2_magic","armorshield_magic","armorhelmet_magic","armorother_magic","armorother2_magic","armorother3_magic","armorother4_magic","armorother5_magic","armorother6_magic","armorshield_mod","armorother_mod","armorother2_mod","armorother3_mod","armorother4_mod","armorother5_mod","armorother6_mod",`repeating_equipment_${a}_equipment_armor_magic`,`repeating_equipment_${a}_equipment_armor_mod`,"hitpoints_1_class","hitpoints_2_class","hitpoints_3_class"]),e={},o=t[`${n.sourceAttribute}`],r=await Yt(o);e[`${n.sourceAttribute}_error`]=r,await h(e,{silent:!0})});var ue="&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + ( @{weapon_backstab_bonus}[BACKSTAB] ) + ( @{weapon_tohitbonus}[HIT_BON] ) + ( @{weapon_prof_pen}[PROF_PEN] ) + ( @{weapon_dual_pen}[DUAL_PEN] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{To Hit Modifier?|0}[MISC_MOD] ) ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=[[ @{toggle_critdamage} ]]}} @{weapon_tohitacadj}",we=["unarmored_row_id","armortype1_row_id","armortype2_row_id","armorshield_row_id","armorhelmet_row_id","armorother1_row_id","armorother2_row_id","armorother3_row_id","armorother4_row_id","armorother5_row_id","armorother6_row_id"],de=["unarmored_worn","unarmored","unarmored_ac","unarmored_base","unarmored_bulk","unarmored_carried","unarmored_weight","unarmored_cost","armortype_worn","armortype","armortype_ac","armortype_base","armortype_magic","armortype_bulk","armortype_carried","armor_weight","armor_cost","armortype2_worn","armortype2","armortype2_ac","armortype2_base","armortype2_magic","armortype2_bulk","armortype2_carried","armortype2_weight","armortype2_cost","armorshield_worn","armorshield","armorshield_ac","armorshield_base","armorshield_magic","armorshield_mod","armorshield_bulk","armorshield_carried","armorshield_weight","armorshield_cost","armorhelmet_worn","armorhelmet","armorhelmet_ac","armorhelmet_magic","armorhelmet_bulk","armorhelmet_carried","armorhelmet_weight","armorhelmet_cost","armorother_worn","armorother","armorother_ac","armorother_base","armorother_magic","armorother_mod","armorother2_worn","armorother2","armorother2_ac","armorother2_base","armorother2_magic","armorother2_mod","armorother3_worn","armorother3","armorother3_ac","armorother3_base","armorother3_magic","armorother3_mod","armorother4_worn","armorother4","armorother4_ac","armorother4_base","armorother4_magic","armorother4_mod","armorother5_worn","armorother5","armorother5_ac","armorother5_base","armorother5_magic","armorother5_mod","armorother6_worn","armorother6","armorother6_ac","armorother6_base","armorother6_magic","armorother6_mod"],Ma=["unarmored_worn","unarmored","unarmored_ac","unarmored_base","unarmored_bulk","unarmored_carried","unarmored_weight","unarmored_cost"],xa=["armortype_worn","armortype","armortype_ac","armortype_base","armortype_magic","armortype_bulk","armortype_carried","armor_weight","armor_cost"],Ta=["armortype2_worn","armortype2","armortype2_ac","armortype2_base","armortype2_magic","armortype2_bulk","armortype2_carried","armortype2_weight","armortype2_cost"],Sa=["armorshield_worn","armorshield","armorshield_ac","armorshield_base","armorshield_magic","armorshield_mod","armorshield_bulk","armorshield_carried","armorshield_weight","armorshield_cost"],Na=["armorhelmet_worn","armorhelmet","armorhelmet_ac","armorhelmet_magic","armorhelmet_bulk","armorhelmet_carried","armorhelmet_weight","armorhelmet_cost"],Ca=["armorother_worn","armorother","armorother_ac","armorother_base","armorother_magic","armorother_mod"],Da=["armorother2_worn","armorother2","armorother2_ac","armorother2_base","armorother2_magic","armorother2_mod"],Oa=["armorother3_worn","armorother3","armorother3_ac","armorother3_base","armorother3_magic","armorother3_mod"],Ea=["armorother4_worn","armorother4","armorother4_ac","armorother4_base","armorother4_magic","armorother4_mod"],Ia=["armorother5_worn","armorother5","armorother5_ac","armorother5_base","armorother5_magic","armorother5_mod"],Ra=["armorother6_worn","armorother6","armorother6_ac","armorother6_base","armorother6_magic","armorother6_mod"],X=(n,a,t)=>`repeating_${n}_${a}_${t}`,Zt=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(c=>[`repeating_weapon_${c}_DmgBonus`,`repeating_weapon_${c}_macro-text`]),o=await w(e),r={},s="&{template:attacks} {{name=@{character_name}}} {{subtag=@{WeaponName}}} {{attack1=[[1d20 + @{ToHitBonus}[BON] + @{MagicBonus}[MAG] + ?{To Hit Modifier?|0}[MOD] ]]}} {{damage1vsSM=[[@{DamageSmallMedium} + @{DmgBonus}[BON] + @{MagicBonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{damage1vsL=[[@{DamageLarge} + @{DmgBonus}[BON] + @{MagicBonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{WeaponNotes=@{WeaponNotes}}} @{whisper_to-hit}";return _.each(t,c=>{let l=`repeating_weapon_${c}_`,p=o[`${l}macro-text`]||s;r[`${l}macro-text`]=p.replace(/@{DmgBonus}/g,"@{AttackDmgBonus}"),r[`${l}AttackDmgBonus`]=i(o[`${l}DmgBonus`])}),r.sheet_version=n,$("VERSION UPDATE: dmgSwap completed"),await h(r,{silent:!0}),await versionator(n,a)},Jt=async(n,a)=>{let t=await y("repeating_ability"),e=t.map(s=>`repeating_ability_${s}_max`),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_ability_${s}_max`,l=`repeating_ability_${s}_current_max`;r[l]=i(o[c])}),r.sheet_version=n,$("VERSION UPDATE: maxSwap completed"),await h(r,{silent:!0}),await versionator(n,a)},en=async(n,a)=>{let t=await y("repeating_nonweaponproficiencies"),e=t.map(c=>`repeating_nonweaponproficiencies_${c}_macro-text`),o=await w(e),r={},s={nwp_old:"&{template:general} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{name}}} {{=@{short_description}}}{{Success Amount=[[((@{rAttribute})+(@{rSlots}-1)-1d20)cs>1cf<-1]]}}",nwp_new:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{name}}} {{Proficiency Check=[[ 1d20 + [[@{rmodifier}]][MOD] + [[?{Additional modifier?|0}]][MOD] ]] vs [[ @{rAttribute}[ATTR] ]]}}{{freetext=@{short_description}}}"};return _.each(t,c=>{let l=`repeating_nonweaponproficiencies_${c}_macro-text`,p=o[l];p&&(r[l]=p.replace(s.nwp_old,s.nwp_new))}),r.sheet_version=n,$("VERSION UPDATE: nwpMacroUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},an=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(l=>[`repeating_weapon_${l}_roll`,`repeating_weapon_${l}_weaponname`,`repeating_weapon_${l}_tohitbonus`,`repeating_weapon_${l}_magicbonus`,`repeating_weapon_${l}_attackdmgbonus`,`repeating_weapon_${l}_whisper_to-hit`,`repeating_weapon_${l}_macro-text`,`repeating_weapon_${l}_damagesmallmedium`,`repeating_weapon_${l}_damagelarge`,`repeating_weapon_${l}_rateoffire`,`repeating_weapon_${l}_range`,`repeating_weapon_${l}_quantity`,`repeating_weapon_${l}_weight`,`repeating_weapon_${l}_weaponspeed`,`repeating_weapon_${l}_cost`,`repeating_weapon_${l}_weaponnotes`]),o=await w(e),r={},s={"@{rateoffire}":"@{weapon_rateoffire}","@{weaponname}":"@{weapon_name}","@{tohitbonus}":"@{weapon_tohitbonus}","@{magicbonus}":"@{weapon_magicbonus}","@{attackdmgbonus}":"@{weapon_attackdmgbonus}","@{whisper_to-hit}":"@{weapon_whisper_to_hit}","@{damagesmallmedium}":"@{weapon_damagesmallmedium}","@{damagelarge}":"@{weapon_damagelarge}","@{range}":"@{weapon_range}","@{quantity}":"@{weapon_quantity}","@{weight}":"@{weapon_weight}","@{weaponspeed}":"@{weapon_speed}","@{cost}":"@{weapon_cost}","@{macro-text}":"@{weapon_macro_text}","@{weaponnotes}":"@{weapon_notes}"},c="&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{WeaponName}}} {{attack1=[[1d20 + @{ToHitBonus}[BON] + @{MagicBonus}[MAG] + ?{To Hit Modifier?|0}[MOD]) ]]}} {{damage1vsSM=[[@{DamageSmallMedium} + @{AttackDmgBonus}[BON] + @{MagicBonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{damage1vsL=[[@{DamageLarge} + @{AttackDmgBonus}[BON] + @{MagicBonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{WeaponNotes=@{WeaponNotes}}} @{whisper_to-hit}";return _.each(t,l=>{let p=`repeating_weapon_${l}_`;b(o[`${p}rateoffire`])&&(r[`${p}weapon_rateoffire`]=i(o[`${p}rateoffire`])),b(o[`${p}roll`])&&(r[`${p}weapon_roll`]=o[`${p}roll`]),b(o[`${p}weaponname`])&&(r[`${p}weapon_name`]=o[`${p}weaponname`]),b(o[`${p}tohitbonus`])&&(r[`${p}weapon_tohitbonus`]=i(o[`${p}tohitbonus`])),b(o[`${p}magicbonus`])&&(r[`${p}weapon_magicbonus`]=i(o[`${p}magicbonus`])),b(o[`${p}attackdmgbonus`])&&(r[`${p}weapon_attackdmgbonus`]=i(o[`${p}attackdmgbonus`])),b(o[`${p}whisper_to-hit`])&&(r[`${p}weapon_whisper_to_hit`]=o[`${p}whisper_to-hit`]),b(o[`${p}macro-text`],c)&&(r[`${p}weapon_macro_text`]=ge(o[`${p}macro-text`]||"",s)),b(o[`${p}damagesmallmedium`])&&(r[`${p}weapon_damagesmallmedium`]=o[`${p}damagesmallmedium`]),b(o[`${p}damagelarge`])&&(r[`${p}weapon_damagelarge`]=o[`${p}damagelarge`]),b(o[`${p}range`])&&(r[`${p}weapon_range`]=o[`${p}range`]),b(o[`${p}quantity`])&&(r[`${p}weapon_quantity`]=O(o[`${p}quantity`])),b(o[`${p}weight`])&&(r[`${p}weapon_weight`]=O(o[`${p}weight`])),b(o[`${p}weaponspeed`])&&(r[`${p}weapon_speed`]=i(o[`${p}weaponspeed`])),b(o[`${p}cost`])&&(r[`${p}weapon_cost`]=O(o[`${p}cost`])),b(o[`${p}weaponnotes`])&&(r[`${p}weapon_notes`]=o[`${p}weaponnotes`])}),r.sheet_version=n,$("VERSION UPDATE: weaponNameFix completed"),await h(r,{silent:!0}),await versionator(n,a)},tn=async(n,a)=>{let t=await y("repeating_spells"),e=t.flatMap(l=>[`repeating_spells_${l}_roll`,`repeating_spells_${l}_memorized`,`repeating_spells_${l}_level`,`repeating_spells_${l}_name`,`repeating_spells_${l}_school`,`repeating_spells_${l}_range`,`repeating_spells_${l}_duration`,`repeating_spells_${l}_aoe`,`repeating_spells_${l}_components`,`repeating_spells_${l}_ct`,`repeating_spells_${l}_save`,`repeating_spells_${l}_macro-text`,`repeating_spells_${l}_description`,`repeating_spells_${l}_description-show`]),o=await w(e),r={},s={"@{memorized}":"@{spell_memorized}","@{level}":"@{spell_level}","@{name}":"@{spell_name}","@{school}":"@{spell_school}","@{range}":"@{spell_range}","@{duration}":"@{spell_duration}","@{aoe}":"@{spell_aoe}","@{components}":"@{spell_components}","@{ct}":"@{spell_ct}","@{save}":"@{spell_save}","@{macro-text}":"@{spell_macro_text}","@{description}":"@{spell_description}"},c="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{name}}} {{Level:=@{level}}} {{Range:=@{range}}} {{Duration:=@{duration}}} {{AOE:=@{aoe}}} {{Comp:=@{components}}} {{CT:=@{ct}}} {{Save:=@{save}}} {{freetext=@{description}}}";return _.each(t,l=>{let p=`repeating_spells_${l}_`;b(o[`${p}roll`])&&(r[`${p}spell_roll`]=o[`${p}roll`]),b(o[`${p}memorized`])&&(r[`${p}spell_memorized`]=i(o[`${p}memorized`])),b(o[`${p}level`])&&(r[`${p}spell_level`]=o[`${p}level`]),b(o[`${p}name`])&&(r[`${p}spell_name`]=o[`${p}name`]),b(o[`${p}school`])&&(r[`${p}spell_school`]=o[`${p}school`]),b(o[`${p}range`])&&(r[`${p}spell_range`]=o[`${p}range`]),b(o[`${p}duration`])&&(r[`${p}spell_duration`]=o[`${p}duration`]),b(o[`${p}aoe`])&&(r[`${p}spell_aoe`]=o[`${p}aoe`]),b(o[`${p}components`])&&(r[`${p}spell_components`]=o[`${p}components`]),b(o[`${p}ct`])&&(r[`${p}spell_ct`]=o[`${p}ct`]),b(o[`${p}save`])&&(r[`${p}spell_save`]=o[`${p}save`]),b(o[`${p}macro-text`],c)&&(r[`${p}spell_macro_text`]=ge(o[`${p}macro-text`]||"",s)),b(o[`${p}description`])&&(r[`${p}spell_description`]=o[`${p}description`]),b(o[`${p}description-show`])&&(r[`${p}spell_description_show`]=i(o[`${p}description-show`]))}),r.sheet_version=n,$("VERSION UPDATE: spellNameFix completed"),await h(r,{silent:!0}),await versionator(n,a)},nn=async(n,a)=>{let t=await y("repeating_equipment"),e=t.flatMap(s=>[`repeating_equipment_${s}_item-show`,`repeating_equipment_${s}_item`,`repeating_equipment_${s}_location`,`repeating_equipment_${s}_carried`,`repeating_equipment_${s}_quantity`,`repeating_equipment_${s}_quantity_max`,`repeating_equipment_${s}_weight`,`repeating_equipment_${s}_cost`]),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_equipment_${s}_`;b(o[`${c}item-show`])&&(r[`${c}equipment_item_show`]=o[`${c}item-show`]),b(o[`${c}item`])&&(r[`${c}equipment_item`]=o[`${c}item`]),b(o[`${c}location`])&&(r[`${c}equipment_location`]=o[`${c}location`]),b(o[`${c}carried`])&&(r[`${c}equipment_carried`]=o[`${c}carried`]),b(o[`${c}quantity`])&&(r[`${c}equipment_quantity`]=O(o[`${c}quantity`])),b(o[`${c}quantity_max`])&&(r[`${c}equipment_quantity_max`]=O(o[`${c}quantity_max`])),b(o[`${c}weight`])&&(r[`${c}equipment_weight`]=O(o[`${c}weight`])),b(o[`${c}cost`])&&(r[`${c}equipment_cost`]=O(o[`${c}cost`]))}),r.sheet_version=n,$("VERSION UPDATE: equipmentNameFix completed"),await h(r,{silent:!0}),await versionator(n,a)},rn=async(n,a)=>{let t=await y("repeating_ability"),e=t.flatMap(l=>[`repeating_equipment_${l}_roll`,`repeating_equipment_${l}_name`,`repeating_equipment_${l}_short_description`,`repeating_equipment_${l}_current`,`repeating_equipment_${l}_current_max`,`repeating_equipment_${l}_macro-text`,`repeating_equipment_${l}_description`,`repeating_equipment_${l}_description-show`]),o=await w(e),r={},s={"@{name}":"@{ability_name}","@{current}":"@{ability_current}","@{current_max}":"@{ability_current_max}","@{short_description}":"@{ability_short_description}","@{macro-text}":"@{ability_macro_text}","@{description}":"@{ability_description}"},c="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{name}}} {{freetext=@{short_description} @{description}}}";return _.each(t,l=>{let p=`repeating_equipment_${l}_`;b(o[`${p}roll`])&&(r[`${p}ability_roll`]=o[`${p}roll`]),b(o[`${p}name`])&&(r[`${p}ability_name`]=o[`${p}name`]),b(o[`${p}short_description`])&&(r[`${p}ability_short_description`]=o[`${p}short_description`]),b(o[`${p}current`])&&(r[`${p}ability_current`]=i(o[`${p}current`])),b(o[`${p}current_max`])&&(r[`${p}ability_current_max`]=i(o[`${p}current_max`])),b(o[`${p}macro-text`],c)&&(r[`${p}ability_macro_text`]=ge(o[`${p}macro-text`]||"",s)),b(o[`${p}description`])&&(r[`${p}ability_description`]=o[`${p}description`]),b(o[`${p}description-show`])&&(r[`${p}ability_description_show`]=i(o[`${p}description-show`]))}),r.sheet_version=n,$("VERSION UPDATE: abilityNameFix completed"),await h(r,{silent:!0}),await versionator(n,a)},sn=async(n,a)=>{let t=await y("repeating_nonweaponproficiencies"),e=t.flatMap(l=>[`repeating_nonweaponproficiencies_${l}_roll`,`repeating_nonweaponproficiencies_${l}_name`,`repeating_nonweaponproficiencies_${l}_rAttribute`,`repeating_nonweaponproficiencies_${l}_short_description`,`repeating_nonweaponproficiencies_${l}_rSlots`,`repeating_nonweaponproficiencies_${l}_rModifier`,`repeating_nonweaponproficiencies_${l}_macro-text`,`repeating_nonweaponproficiencies_${l}_description-show`,`repeating_nonweaponproficiencies_${l}_description`]),o=await w(e),r={},s={"@{name}":"@{nwp_name}","@{rAttribute}":"@{nwp_attribute}","@{rSlots}":"@{nwp_slots}","@{rModifier}":"@{nwp_modifier}","@{short_description}":"@{nwp_short_description}","@{macro-text}":"@{nwp_macro_text}","@{description}":"@{nwp_description}"},c="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{name}}} {{Proficiency Check=[[ 1d20 + [[@{rmodifier}]][MOD] + [[?{Additional modifier?|0}]][MOD] ]] vs [[ @{rAttribute}[ATTR] ]]}}{{freetext=@{short_description}}}";return _.each(t,l=>{let p=`repeating_nonweaponproficiencies_${l}_`;b(o[`${p}roll`])&&(r[`${p}nwp_roll`]=o[`${p}roll`]),b(o[`${p}name`])&&(r[`${p}nwp_name`]=o[`${p}name`]),b(o[`${p}rAttribute`])&&(r[`${p}nwp_attribute`]=(o[`${p}rAttribute`]||"").toLowerCase()),b(o[`${p}short_description`])&&(r[`${p}nwp_short_description`]=o[`${p}short_description`]),b(o[`${p}rSlots`])&&(r[`${p}nwp_slots`]=i(o[`${p}rSlots`])),b(o[`${p}rModifier`])&&(r[`${p}nwp_modifier`]=i(o[`${p}rModifier`])),b(o[`${p}macro-text`],c)&&(r[`${p}nwp_macro_text`]=ge(o[`${p}macro-text`],s)),b(o[`${p}description-show`])&&(r[`${p}nwp_description_show`]=i(o[`${p}description-show`])),b(o[`${p}description`])&&(r[`${p}nwp_description`]=o[`${p}description`])}),r.sheet_version=n,$("VERSION UPDATE: nwpNameFix completed"),await h(r,{silent:!0}),await versionator(n,a)},cn=async(n,a)=>{let[t,e,o,r]=await Promise.all([y("repeating_nonweaponproficiencies"),y("repeating_weapon"),y("repeating_ability"),y("repeating_spells")]),s=t.map(f=>`repeating_nonweaponproficiencies_${f}_nwp_macro_text`),c=e.map(f=>`repeating_weapon_${f}_weapon_macro_text`),l=o.map(f=>`repeating_ability_${f}_ability_macro_text`),p=r.map(f=>`repeating_spells_${f}_spell_macro_text`),g=await w([...s,...c,...l,...p]),u={},m={nwp_old:"&{template:general} {{name=@{character_name}}}",nwp_new:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}}",wpn_old:"&{template:attacks} {{name=@{character_name}}}",wpn_new:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}}",abl_old:"&{template:general} {{name=@{character_name}}}",abl_new:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}}",spl_old:"&{template:general} {{name=@{character_name}}}",spl_new:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}}"},d=(f,k,v,E)=>{f.forEach(N=>{let I="";k.includes("nonweapon")?I=`repeating_nonweaponproficiencies_${N}_nwp_macro_text`:k.includes("weapon")?I=`repeating_weapon_${N}_weapon_macro_text`:k.includes("ability")?I=`repeating_ability_${N}_ability_macro_text`:k.includes("spells")&&(I=`repeating_spells_${N}_spell_macro_text`),g[I]&&(u[I]=g[I].replace(v,E))})};return d(t,"repeating_nonweaponproficiencies_",m.nwp_old,m.nwp_new),d(e,"repeating_weapon_",m.wpn_old,m.wpn_new),d(o,"repeating_ability_",m.abl_old,m.abl_new),d(r,"repeating_spells_",m.spl_old,m.spl_new),u.sheet_version=n,$("VERSION UPDATE: colorUpdate completed"),await h(u,{silent:!0}),await versionator(n,a)},xe=async()=>{await _t(),await pt(),await lt(),await mt(),await ht(),await gt()},_n=async(n,a)=>{let t={};return await xe(),t.sheet_version=n,$("VERSION UPDATE: autoCalcAbilityRows completed"),await h(t),await versionator(n,a)},pn=async(n,a)=>{let t={};return await nt(1),await ot(1),await rt(1),await st(1),await ct(1),t.sheet_version=n,$("VERSION UPDATE: autoCalcSaveRows(migrate) completed"),await h(t,{silent:!0}),await versionator(n,a)},ln=async(n,a)=>{let t={};return await Ga(1),await za(1),await Ka(1),await Xa(1),await Qa(1),await Ya(1),await Za(1),await Ja(1),await et(),await at(),await tt(),t.sheet_version=n,$("VERSION UPDATE: autoCalcThiefRows(migrate) completed"),await h(t,{silent:!0}),await versionator(n,a)},mn=async(n,a)=>{let t=await y("repeating_weapon"),e=t.map(c=>`repeating_weapon_${c}_weapon_macro_text`),o=await w(e),r={},s="&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{attack1=[[1d20 + @{weapon_tohitbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{To Hit Modifier?|0}[MOD] ]]}} {{damage1vsSM=[[@{weapon_damagesmallmedium} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{damage1vsL=[[@{weapon_damagelarge} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{WeaponNotes=@{weapon_notes}}} @{weapon_whisper_to_hit}";return _.each(t,c=>{let l=`repeating_weapon_${c}_weapon_macro_text`,p=o[l]||s;r[l]=p.replace(/\s*@{weapon_whisper_to_hit}/g,"")}),r.sheet_version=n,$("VERSION UPDATE: removeWhisper completed"),await h(r,{silent:!0}),await versionator(n,a)},hn=async(n,a)=>{let t=await w(["hitpoints_max","hitpoints_1_class","hitpoints_2_class","hitpoints_3_class"]),e={},o=i(t.hitpoints_max),r=i(t.hitpoints_1_class),s=i(t.hitpoints_2_class),c=i(t.hitpoints_3_class);return Math.max(0,r)+Math.max(0,s)+Math.max(0,c)===0&&o>0&&(e.hitpoints_1_class=o),e.sheet_version=n,$("VERSION UPDATE: migrate HP completed"),await h(e,{silent:!0}),typeof Te=="function"&&await Te(),await versionator(n,a)},gn=async(n,a)=>{let t=await w(["armorclass","armortype_ac","armorclass_total","armorbonus","armorshield"]),e={},o=0,r=i(t.armorclass),s=i(t.armortype_ac);return t.armorshield?s===10&&r<10&&(r+=1,e.armortype_ac=r,e.armortype_base=r,e.armortype_worn=1,e.armortype_carried=1,e.armorshield_ac=-1,e.armorshield_base=-1,e.armorshield_worn=1,e.armorshield_carried=1):s===10&&r<10&&(e.armortype_ac=r,e.armortype_base=r,e.armortype_worn=1,e.armortype_carried=1),e.sheet_version=n,$("VERSION UPDATE: Migrate AC completed"),await h(e,{silent:!0}),typeof F=="function"&&await F(o),await versionator(n,a)},Me=async(n,a)=>{let t=await y("repeating_weapon"),e=t.map(l=>`repeating_weapon_${l}_weapon_macro_text`),o=await w(e),r={},s={weapon_old:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{attack1=[[1d20 + @{weapon_tohitbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{To Hit Modifier?|0}[MOD] ]]}} {{damage1vsSM=[[@{weapon_damagesmallmedium} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{damage1vsL=[[@{weapon_damagelarge} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{WeaponNotes=@{weapon_notes}}}",weapon_old_v2:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{attack1=[[1d20 + @{weapon_tohitbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{To Hit Modifier?|0}[MOD]) ]]}} {{damage1vsSM=[[@{weapon_damagesmallmedium} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{damage1vsL=[[@{weapon_damagelarge} + @{weapon_attackdmgbonus}[BON] + @{weapon_magicbonus}[MAG] + ?{Damage Modifier?|0}[MOD] ]]}} {{WeaponNotes=@{weapon_notes}}}",weapon_old_v3:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + @{weapon_backstab_bonus}[BACKSTAB] + @{weapon_tohitbonus}[HIT_BON] + @{weapon_prof_pen}[PROF_PEN] + @{weapon_dual_pen}[DUAL_PEN]+ @{weapon_magicbonus}[MAG_BON] + ?{To Hit Modifier?|0}[MISC_MOD] ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} @{weapon_tohitacadj}",weapon_old_v4:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + @{weapon_backstab_bonus}[BACKSTAB] + @{weapon_tohitbonus}[HIT_BON] + @{weapon_prof_pen}[PROF_PEN] + @{weapon_dual_pen}[DUAL_PEN]+ @{weapon_magicbonus}[MAG_BON] + ?{To Hit Modifier?|0}[MISC_MOD] ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{crit=@{toggle_critdamage}}} @{weapon_tohitacadj}",weapon_old_v5:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + @{weapon_backstab_bonus}[BACKSTAB] + @{weapon_tohitbonus}[HIT_BON] + @{weapon_prof_pen}[PROF_PEN] + @{weapon_dual_pen}[DUAL_PEN]+ @{weapon_magicbonus}[MAG_BON] + ?{To Hit Modifier?|0}[MISC_MOD] ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=@{toggle_critdamage}}} @{weapon_tohitacadj}",weapon_old_v6:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + @{weapon_backstab_bonus}[BACKSTAB] + @{weapon_tohitbonus}[HIT_BON] + @{weapon_prof_pen}[PROF_PEN] + @{weapon_dual_pen}[DUAL_PEN]+ @{weapon_magicbonus}[MAG_BON] + ?{To Hit Modifier?|0}[MISC_MOD] ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=[[ @{toggle_critdamage} ]]}} @{weapon_tohitacadj}",weapon_current:"&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + ( @{weapon_backstab_bonus}[BACKSTAB] ) + ( @{weapon_tohitbonus}[HIT_BON] ) + ( @{weapon_prof_pen}[PROF_PEN] ) + ( @{weapon_dual_pen}[DUAL_PEN] ) + ( @{weapon_magicbonus}[MAG_BON] ) + ( ?{To Hit Modifier?|0}[MISC_MOD] ) ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{critdamagevsSMchatmenu=@{weapon_critdamagesmallmedium_chat_menu}}} {{critdamagevsLchatmenu=@{weapon_critdamagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} {{ammo=[[ @{weapon_ammo} ]]/[[ @{weapon_ammo|max} ]]}} {{crit=[[ @{toggle_critdamage} ]]}} @{weapon_tohitacadj}"},c=[s.weapon_old,s.weapon_old_v2,s.weapon_old_v3,s.weapon_old_v4,s.weapon_old_v5,s.weapon_old_v6];return _.each(t,l=>{let p=`repeating_weapon_${l}_weapon_macro_text`;c.includes(o[p])&&(r[p]=s.weapon_current)}),r.sheet_version=n,$("VERSION UPDATE: weaponMacroUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},$a=async(n,a)=>{let t=await y("repeating_ability"),e=t.map(l=>`repeating_ability_${l}_ability_macro_text`),o=await w(e),r={},s={ability_old:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{freetext=@{ability_short_description} @{ability_description}}}",ability_old_v2:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ @{ability_die} + @{ability_mod}[MOD] ]]}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=@{ability_current|max}}}",ability_old_v3:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ @{ability_die} + @{ability_mod}[MOD] ]]}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=[[ @{ability_current|max} ]]}} {{effect_type=@{ability_effect_type}}} {{spell_level=@{ability_level}}} {{casting_time=@{ability_ct}}} {{range=@{ability_range}}} {{saving_throw=@{ability_save}}} {{area_of_effect=@{ability_aoe}}} {{save_type=@{ability_save_type}}}",ability_old_v4:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ @{ability_die} + @{ability_mod}[MOD] ]]}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=[[ @{ability_current|max} ]]}} {{effect_type=@{ability_effect_type}}} {{spell_level=@{ability_level}}} {{casting_time=@{ability_ct}}} {{range=@{ability_range}}} {{duration=@{ability_duration}}} {{saving_throw=@{ability_save}}} {{area_of_effect=@{ability_aoe}}} {{save_type=@{ability_save_type}}}",ability_old_v5:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ @{ability_die} + @{ability_mod}[MOD] ]]}} {{link=@{ability_link}}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=[[@{ability_current|max}]]}} {{effect_type=@{ability_effect_type}}} {{spell_level=@{ability_level}}} {{casting_time=@{ability_ct}}} {{range=@{ability_range}}} {{duration=@{ability_duration}}} {{saving_throw=@{ability_save}}} {{area_of_effect=@{ability_aoe}}} {{save_type=@{ability_save_type}}}",ability_current:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{ability_name}}} {{roll= [[ 0 + @{ability_die} + @{ability_mod}[MOD] ]]}} {{link=@{ability_link}}} {{freetext=@{ability_short_description} @{ability_description}}} {{uses=@{ability_current}}} {{uses_max=[[ 0 + @{ability_current|max} ]]}} {{effect_type=@{ability_effect_type}}} {{spell_level=@{ability_level}}} {{casting_time=@{ability_ct}}} {{range=@{ability_range}}} {{duration=@{ability_duration}}} {{saving_throw=@{ability_save}}} {{area_of_effect=@{ability_aoe}}} {{save_type=@{ability_save_type}}}"},c=[s.ability_old,s.ability_old_v2,s.ability_old_v3,s.ability_old_v4,s.ability_old_v5];return _.each(t,l=>{let p=`repeating_ability_${l}_ability_macro_text`,g=o[p];c.includes(g)&&(r[p]=s.ability_current)}),r.sheet_version=n,$("VERSION UPDATE: abilityMacroUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},un=async(n,a)=>{let t=await y("repeating_nonweaponproficiencies"),e=t.map(l=>`repeating_nonweaponproficiencies_${l}_nwp_macro_text`),o=await w(e),r={},s={nwp_old:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{nwp_name}}} {{Proficiency Check=[[ 1d20 + [[@{nwp_modifier}]][MOD] + [[?{Additional modifier?|0}]][MOD] ]] vs [[ @{nwp_attribute}[ATTR] ]]}}{{freetext=@{nwp_short_description}}}",nwp_old_v2:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{nwp_name}}} {{roll_low=[[ 1d20 + [[ @{nwp_modifier} ]][MOD] + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[ @{nwp_attribute}[ATTR] ]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}} {{NWP Mod Applied=[[ @{nwp_modifier} ]]}} {{freetext=@{nwp_short_description}}}",nwp_current:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{nwp_name}}} {{roll_low=[[ 1d20 + [[ @{nwp_modifier} ]][MOD] + [[ ?{Modifier?|0} ]][MOD] ]]}} {{roll_target=[[ @{nwp_attribute}[ATTR] ]]}} {{mod_applied=[[ ?{Modifier?|0} ]]}} {{nwp_mod_applied=[[ @{nwp_modifier} ]]}} {{link=@{nwp_link}}} {{freetext=@{nwp_short_description} @{nwp_description}}}"},c=[s.nwp_old,s.nwp_old_v2];return _.each(t,l=>{let p=`repeating_nonweaponproficiencies_${l}_nwp_macro_text`,g=o[p];c.includes(g)&&(r[p]=s.nwp_current)}),r.sheet_version=n,$("VERSION UPDATE: nwpMacroUpdate2 completed"),await h(r,{silent:!0}),await versionator(n,a)},wn=async(n,a)=>{let t=await y("repeating_spells"),e=t.map(l=>`repeating_spells_${l}_spell_macro_text`),o=await w(e),r={},s={spell_old:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{spell_name}}} {{Level:=@{spell_level}}} {{Range:=@{spell_range}}} {{Duration:=@{spell_duration}}} {{AOE:=@{spell_aoe}}} {{Comp:=@{spell_components}}} {{CT:=@{spell_ct}}} {{Save:=@{spell_save}}} {{freetext=@{spell_description}}}",spell_old_v2:"&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{spell_name}}} {{Range:=@{spell_range}}} {{Duration:=@{spell_duration}}} {{AOE:=@{spell_aoe}}} {{Save:=@{spell_save}}}",spell_old_v3:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{spell_name}}} {{school=@{spell_school}}} {{spell_level=@{spell_level}}} {{range=@{spell_range}}} {{duration=@{spell_duration}}} {{area_of_effect=@{spell_aoe}}} {{components=@{spell_components}}} {{casting_time=@{spell_ct}}} {{saving_throw=@{spell_save}}} {{freetext=@{spell_description}}}",spell_current:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{spell_name}}} {{school=@{spell_school}}} {{spell_level=@{spell_level}}} {{spell_class=@{spell_caster_class_name}}} {{spell_class_level=@{spell_caster_class_level}}} {{range=@{spell_range}}} {{duration=@{spell_duration}}} {{area_of_effect=@{spell_aoe}}} {{components=@{spell_components}}} {{casting_time=@{spell_ct}}} {{saving_throw=@{spell_save}}} {{save_type=@{spell_save_type}}} {{link=@{spell_link}}} {{freetext=@{spell_description}}}"},c=[s.spell_old,s.spell_old_v2,s.spell_old_v3];return _.each(t,l=>{let p=`repeating_spells_${l}_spell_macro_text`,g=o[p];c.includes(g)&&(r[p]=s.spell_current)}),r.sheet_version=n,$("VERSION UPDATE: spellsMacroUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},dn=async(n,a)=>{let t=await y("repeating_equipment"),e=t.map(c=>`repeating_equipment_${c}_equipment_macro_text`),o=await w(e),r={},s={equipment_old:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Item/Equipment: @{equipment_item}}} {{freetext=@{equipment_description}}} {{quantity= @{equipment_quantity}}} {{quantity_max=@{equipment_quantity|max}}} {{uses=@{equipment_current}}} {{uses_max=[[ @{equipment_current|max} ]]}}",equipment_current:"@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Item/Equipment: @{equipment_item}}} {{link=@{equipment_link}}} {{freetext=@{equipment_description}}} {{quantity=@{equipment_quantity}}} {{quantity_max=@{equipment_quantity|max}}} {{uses=@{equipment_current}}} {{uses_max=[[ @{equipment_current|max} ]]}}"};return _.each(t,c=>{let l=`repeating_equipment_${c}_equipment_macro_text`;o[l]===s.equipment_old&&(r[l]=s.equipment_current)}),r.sheet_version=n,$("VERSION UPDATE: equipmentMacroUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},yn=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(s=>[`repeating_weapon_${s}_weapon_range`,`repeating_weapon_${s}_weapon_range_short`,`repeating_weapon_${s}_weapon_range_medium`,`repeating_weapon_${s}_weapon_range_long`,`repeating_weapon_${s}_weapon_attack_type`,`repeating_weapon_${s}_weapon_range_error`]),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_weapon_${s}_`,l=i(o[`${c}weapon_attack_type`]);if(l===0||l===2)return;let p=o[`${c}weapon_range`]||"",u=p.replace(/['"]/g,"").replace(/[\/\s\-]/g,",").split(",").filter(N=>N!==""),m=Number(u[0]),d=Number(u[1]),f=Number(u[2]);u.length===1&&!isNaN(m)&&(d=m,f=m);let k=!isNaN(m),v=!isNaN(d),E=!isNaN(f);r[`${c}weapon_range_short`]=k?m:0,r[`${c}weapon_range_medium`]=v?d:0,r[`${c}weapon_range_long`]=E?f:0,k&&v&&E?r[`${c}weapon_range_error`]=1:r[`${c}weapon_range_error`]=p===""?1:0}),r.sheet_version=n,$("VERSION UPDATE: updateRange completed"),await h(r,{silent:!0}),await versionator(n,a)},bn=async(n,a)=>{let t=await y("repeating_weapon"),e=t.map(c=>`repeating_weapon_${c}_weapon_macro_text`),o=await w(e),r={},s="&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=@{weapon_name}}} {{dual=@{weapon_dual}}} {{attack1=[[ 1d20 + @{weapon_backstab_bonus}[BACKSTAB] + @{weapon_tohitbonus}[HIT_BON] + @{weapon_prof_pen}[PROF_PEN] + @{weapon_dual_pen}[DUAL_PEN]+ @{weapon_magicbonus}[MAG_BON] + ?{To Hit Modifier?|0}[MISC_MOD] ]]}} {{damagevsSMchatmenu=@{weapon_damagesmallmedium_chat_menu}}} {{damagevsLchatmenu=@{weapon_damagelarge_chat_menu}}} {{WeaponNotes=@{weapon_notes}}} {{backstab=[[ @{weapon_backstab_mult} ]]}} {{damagetype=@{weapon_attackdmgtype}}} {{rate=@{weapon_rateoffire}}} {{range=@{weapon_range}}} {{length=@{weapon_length}}} {{space=@{weapon_space}}} {{speed=@{weapon_speed}}} @{weapon_tohitacadj}";return _.each(t,c=>{let l=`repeating_weapon_${c}_weapon_macro_text`,p=o[l]||s;p=p.replace(/@{weapon_attack_type_pen}/g,"@{weapon_dual_pen}").replace(/{{attacktype=@{weapon_attack_type}}} /g,""),r[l]=p}),r.sheet_version=n,$("VERSION UPDATE: updateAttackTypeMacro completed"),await h(r,{silent:!0}),await versionator(n,a)},fn=async(n,a)=>{let t=await w(["hitdice","monsterHD"]),e={},o=t.monsterHD,r=t.hitdice;return(o===""||o===void 0)&&(e.monsterHD=r),e.sheet_version=n,$("VERSION UPDATE: monsterHD completed"),await h(e,{silent:!0}),await versionator(n,a)},$n=async(n,a)=>{let t={};return t.armorother_cost=0,t.armorother2_cost=0,t.armorother3_cost=0,t.armorother4_cost=0,t.armorother5_cost=0,t.armorother6_cost=0,t.armorother_weight=0,t.armorother2_weight=0,t.armorother3_weight=0,t.armorother4_weight=0,t.armorother5_weight=0,t.armorother6_weight=0,t.armorother_carried=0,t.armorother2_carried=0,t.armorother3_carried=0,t.armorother4_carried=0,t.armorother5_carried=0,t.armorother6_carried=0,t.armorother_bulk=0,t.armorother2_bulk=0,t.armorother3_bulk=0,t.armorother4_bulk=0,t.armorother5_bulk=0,t.armorother6_bulk=0,$("VERSION UPDATE: clearArmorOther completed"),await h(t,{silent:!0}),await versionator(n,a)},vn=de.concat(we),pe=[{armorType:"unarmored",syncedID:"unarmored_row_id",typeValue:0,defaultAC:10,armorAttrs:"unarmoredAttrs",attrs:Ma},{armorType:"armortype",syncedID:"armortype1_row_id",typeValue:1,defaultAC:10,armorAttrs:"armor1Attrs",attrs:xa},{armorType:"armortype2",syncedID:"armortype2_row_id",typeValue:2,defaultAC:10,armorAttrs:"armor2Attrs",attrs:Ta},{armorType:"armorshield",syncedID:"armorshield_row_id",typeValue:3,defaultAC:0,armorAttrs:"shieldAttrs",attrs:Sa},{armorType:"armorhelmet",syncedID:"armorhelmet_row_id",typeValue:4,defaultAC:10,armorAttrs:"helmetAttrs",attrs:Na},{armorType:"armorother",syncedID:"armorother1_row_id",typeValue:5,defaultAC:10,armorAttrs:"other1Attrs",attrs:Ca},{armorType:"armorother2",syncedID:"armorother2_row_id",typeValue:6,defaultAC:0,armorAttrs:"other2Attrs",attrs:Da},{armorType:"armorother3",syncedID:"armorother3_row_id",typeValue:7,defaultAC:0,armorAttrs:"other3Attrs",attrs:Oa},{armorType:"armorother4",syncedID:"armorother4_row_id",typeValue:8,defaultAC:0,armorAttrs:"other4Attrs",attrs:Ea},{armorType:"armorother5",syncedID:"armorother5_row_id",typeValue:9,defaultAC:0,armorAttrs:"other5Attrs",attrs:Ia},{armorType:"armorother6",syncedID:"armorother6_row_id",typeValue:10,defaultAC:0,armorAttrs:"other6Attrs",attrs:Ra}],he=async(n,a,t,e)=>{let o=n&&n!=="0"?n:null,r=o?o.toLowerCase():null,s=await w(vn),c={},l=pe.map(u=>s[u.syncedID]?s[u.syncedID].toString().toLowerCase():"0");function p(u){let d=Object.entries({unarmoredAttrs:Ma,armor1Attrs:xa,armor2Attrs:Ta,shieldAttrs:Sa,helmetAttrs:Na,other1Attrs:Ca,other2Attrs:Da,other3Attrs:Oa,other4Attrs:Ea,other5Attrs:Ia,other6Attrs:Ra}).find(([f,k])=>k.includes(u));return d?d[0]:null}let g=p(a);if(r===null&&g){let u=pe.findIndex(m=>m.armorAttrs===g);u!==-1&&(r=l[u])}pe.forEach((u,m)=>{let d=l[m];if(g===u.armorAttrs||r===d||e){let k=s[u.syncedID];if((k&&k!=="0"?k:o||d)==="0")return;let E=(s[u.armorType]||"").trim(),N=d.length===20;if(!t&&(E||g===null&&N)){let I=s[u.syncedID]?s[u.syncedID]:N?d:H().toLowerCase();N||(c[u.syncedID]=I,c[`repeating_equipment_${I}_equipment_sync_armor_flag`]=1);let C=`repeating_equipment_${I}_`;c[`${C}equipment_type`]=2,c[`${C}equipment_armor_type`]=u.typeValue,c[`${C}equipment_item`]=E,c[`${C}equipment_armor_worn`]=i(s[`${u.armorType}_worn`]),c[`${C}equipment_armor_ac`]=i(s[`${u.armorType}_ac`]),c[`${C}equipment_armor_base`]=i(s[`${u.armorType}_base`]),c[`${C}equipment_armor_bulk`]=i(s[`${u.armorType}_bulk`]),c[`${C}equipment_weight`]=i(s[`${u.armorType==="armortype"?"armor":u.armorType}_weight`]),c[`${C}equipment_cost`]=i(s[`${u.armorType==="armortype"?"armor":u.armorType}_cost`]),s[`${u.armorType}_magic`]!==void 0&&(c[`${C}equipment_armor_magic`]=s[`${u.armorType}_magic`]),s[`${u.armorType}_mod`]!==void 0&&(c[`${C}equipment_armor_mod`]=s[`${u.armorType}_mod`]),i(s[`${u.armorType}_worn`])===1&&i(s[`${u.armorType}_carried`])===0?(c[`${C}equipment_carried_select`]=1,c[`${u.armorType}_carried`]=1):c[`${C}equipment_carried_select`]=i(s[`${u.armorType}_carried`])}else N&&(t||!E)&&(c[u.syncedID]="0",c[u.armorType]="",c[`${u.armorType}_worn`]=u.armorType==="unarmored"?1:0,c[`${u.armorType}_ac`]=u.defaultAC,c[`${u.armorType}_base`]=u.defaultAC,c[`${u.armorType}_carried`]=1,s[`${u.armorType}_magic`]!==void 0&&(c[`${u.armorType}_magic`]=0),s[`${u.armorType}_mod`]!==void 0&&(c[`${u.armorType}_mod`]=0),s[`${u.armorType}_bulk`]!==void 0&&(c[`${u.armorType}_bulk`]=0),r===d&&!t&&removeRepeatingRow(`repeating_equipment_${r}`))}}),await h(c,{silent:!0}),await Va(r),await F()},qn=async(n,a)=>{let t={};return await he(null,null,0,1),t.sheet_version=n,$("VERSION UPDATE: migrateArmorDetails completed"),await h(t,{silent:!0}),await versionator(n,a)},kn=async(n,a)=>{let t=await y("repeating_equipment"),e=t.flatMap(s=>[`repeating_equipment_${s}_equipment_type`,`repeating_equipment_${s}_equipment_current`,`repeating_equipment_${s}_equipment_current_max`,`repeating_equipment_${s}_equipment_carried_select`,`repeating_equipment_${s}_equipment_carried`,`repeating_equipment_${s}_equipment_quantity`,`repeating_equipment_${s}_equipment_quantity_max`,`repeating_equipment_${s}_equipment_weight`,`repeating_equipment_${s}_equipment_cost`,`repeating_equipment_${s}_equipment_armor_type`,`repeating_equipment_${s}_equipment_armor_worn`,`repeating_equipment_${s}_equipment_armor_ac`,`repeating_equipment_${s}_equipment_armor_base`,`repeating_equipment_${s}_equipment_armor_magic`,`repeating_equipment_${s}_equipment_armor_mod`,`repeating_equipment_${s}_equipment_armor_bulk`,`repeating_equipment_${s}_equipment_macro_text`]),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_equipment_${s}_`;r[`${c}equipment_type`]=i(o[`${c}equipment_type`]),r[`${c}equipment_current`]=i(o[`${c}equipment_current`]),r[`${c}equipment_current_max`]=i(o[`${c}equipment_current_max`]),r[`${c}equipment_carried_select`]=i(o[`${c}equipment_carried`]),r[`${c}equipment_carried`]=i(o[`${c}equipment_carried`]),r[`${c}equipment_quantity`]=i(o[`${c}equipment_quantity`]),r[`${c}equipment_quantity_max`]=i(o[`${c}equipment_quantity_max`]),r[`${c}equipment_weight`]=i(o[`${c}equipment_weight`]),r[`${c}equipment_cost`]=i(o[`${c}equipment_cost`]),r[`${c}equipment_armor_type`]=i(o[`${c}equipment_armor_type`]),r[`${c}equipment_armor_worn`]=i(o[`${c}equipment_armor_worn`]),r[`${c}equipment_armor_ac`]=i(o[`${c}equipment_armor_ac`]),r[`${c}equipment_armor_base`]=i(o[`${c}equipment_armor_base`]),r[`${c}equipment_armor_magic`]=i(o[`${c}equipment_armor_magic`]),r[`${c}equipment_armor_mod`]=i(o[`${c}equipment_armor_mod`]),r[`${c}equipment_armor_bulk`]=i(o[`${c}equipment_armor_bulk`]),r[`${c}equipment_macro_text`]=o[`${c}equipment_macro_text`]}),r.sheet_version=n,$(`VERSION UPDATE: setEquipmentUpdate completed for ${t.length} items.`),await h(r,{silent:!0}),await versionator(n,a)},An=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(s=>[`repeating_weapon_${s}_weapon_attack_type`,`repeating_weapon_${s}_weapon_dual`,`repeating_weapon_${s}_weapon_whisper_to_hit`,`repeating_weapon_${s}_weapon_whisper_to_hit_select`,`repeating_weapon_${s}_weapon_dual_pen`,`repeating_weapon_${s}_weapon_backstab_var`,`repeating_weapon_${s}_weapon_tohitbonus`,`repeating_weapon_${s}_weapon_magicbonus`,`repeating_weapon_${s}_weapon_prof`,`repeating_weapon_${s}_weapon_backstab`,`repeating_weapon_${s}_weapon_backstab_bonus`,`repeating_weapon_${s}_weapon_backstab_mult`,`repeating_weapon_${s}_weapon_attackdmgbonus`,`repeating_weapon_${s}_weapon_num_attacks`,`repeating_weapon_${s}_weapon_quantity`,`repeating_weapon_${s}_weapon_ammo`,`repeating_weapon_${s}_weapon_ammo_max`,`repeating_weapon_${s}_weapon_weight`,`repeating_weapon_${s}_weapon_cost`,`repeating_weapon_${s}_weapon_range_short`,`repeating_weapon_${s}_weapon_range_medium`,`repeating_weapon_${s}_weapon_range_long`,`repeating_weapon_${s}_weapon_length`,`repeating_weapon_${s}_weapon_space`,`repeating_weapon_${s}_weapon_speed`,`repeating_weapon_${s}_weapon_misc`,`repeating_weapon_${s}_weapon_thac_adj0`,`repeating_weapon_${s}_weapon_thac_adj1`,`repeating_weapon_${s}_weapon_thac_adj2`,`repeating_weapon_${s}_weapon_thac_adj3`,`repeating_weapon_${s}_weapon_thac_adj4`,`repeating_weapon_${s}_weapon_thac_adj5`,`repeating_weapon_${s}_weapon_thac_adj6`,`repeating_weapon_${s}_weapon_thac_adj7`,`repeating_weapon_${s}_weapon_thac_adj8`,`repeating_weapon_${s}_weapon_thac_adj9`,`repeating_weapon_${s}_weapon_thac_adj10`,`repeating_weapon_${s}_weapon_macro_text`,`repeating_weapon_${s}_weapon_damagesmallmedium_chat_menu`,`repeating_weapon_${s}_weapon_damagelarge_chat_menu`,`repeating_weapon_${s}_weapon_damagesmallmedium_npc_chat_menu`,`repeating_weapon_${s}_weapon_damagelarge_npc_chat_menu`,`repeating_weapon_${s}_weapon_critdamagesmallmedium_chat_menu`,`repeating_weapon_${s}_weapon_critdamagelarge_chat_menu`,`repeating_weapon_${s}_weapon_critdamagesmallmedium_npc_chat_menu`,`repeating_weapon_${s}_weapon_critdamagelarge_npc_chat_menu`,`repeating_weapon_${s}_weapon_damage_chat_menu_npc`]),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_weapon_${s}_`;r[`${c}weapon_attack_type`]=i(o[`${c}weapon_attack_type`]),r[`${c}weapon_whisper_to_hit_select`]=i(o[`${c}weapon_whisper_to_hit_select`]),r[`${c}weapon_dual_pen`]=i(o[`${c}weapon_dual_pen`]),r[`${c}weapon_backstab_var`]=i(o[`${c}weapon_backstab_var`]),r[`${c}weapon_tohitbonus`]=i(o[`${c}weapon_tohitbonus`]),r[`${c}weapon_magicbonus`]=i(o[`${c}weapon_magicbonus`]),r[`${c}weapon_prof`]=i(o[`${c}weapon_prof`]),r[`${c}weapon_backstab`]=i(o[`${c}weapon_backstab`]),r[`${c}weapon_backstab_bonus`]=i(o[`${c}weapon_backstab_bonus`]),r[`${c}weapon_backstab_mult`]=i(o[`${c}weapon_backstab_mult`]),r[`${c}weapon_attackdmgbonus`]=i(o[`${c}weapon_attackdmgbonus`]),r[`${c}weapon_num_attacks`]=i(o[`${c}weapon_num_attacks`]),r[`${c}weapon_quantity`]=i(o[`${c}weapon_quantity`]),r[`${c}weapon_ammo`]=i(o[`${c}weapon_ammo`]),r[`${c}weapon_ammo_max`]=i(o[`${c}weapon_ammo_max`]),r[`${c}weapon_weight`]=i(o[`${c}weapon_weight`]),r[`${c}weapon_cost`]=i(o[`${c}weapon_cost`]),r[`${c}weapon_range_short`]=i(o[`${c}weapon_range_short`]),r[`${c}weapon_range_medium`]=i(o[`${c}weapon_range_medium`]),r[`${c}weapon_range_long`]=i(o[`${c}weapon_range_long`]);for(let l=0;l<=10;l++)r[`${c}weapon_thac_adj${l}`]=i(o[`${c}weapon_thac_adj${l}`]);r[`${c}weapon_dual`]=o[`${c}weapon_dual`],r[`${c}weapon_whisper_to_hit`]=o[`${c}weapon_whisper_to_hit`],r[`${c}weapon_length`]=o[`${c}weapon_length`],r[`${c}weapon_space`]=o[`${c}weapon_space`],r[`${c}weapon_speed`]=o[`${c}weapon_speed`],r[`${c}weapon_misc`]=o[`${c}weapon_misc`],r[`${c}weapon_macro_text`]=o[`${c}weapon_macro_text`],r[`${c}weapon_damagesmallmedium_chat_menu`]=o[`${c}weapon_damagesmallmedium_chat_menu`],r[`${c}weapon_damagelarge_chat_menu`]=o[`${c}weapon_damagelarge_chat_menu`],r[`${c}weapon_damagesmallmedium_npc_chat_menu`]=o[`${c}weapon_damagesmallmedium_npc_chat_menu`],r[`${c}weapon_damagelarge_npc_chat_menu`]=o[`${c}weapon_damagelarge_npc_chat_menu`],r[`${c}weapon_critdamagesmallmedium_chat_menu`]=o[`${c}weapon_critdamagesmallmedium_chat_menu`],r[`${c}weapon_critdamagelarge_chat_menu`]=o[`${c}weapon_critdamagelarge_chat_menu`],r[`${c}weapon_critdamagesmallmedium_npc_chat_menu`]=o[`${c}weapon_critdamagesmallmedium_npc_chat_menu`],r[`${c}weapon_critdamagelarge_npc_chat_menu`]=o[`${c}weapon_critdamagelarge_npc_chat_menu`],r[`${c}weapon_damage_chat_menu_npc`]=o[`${c}weapon_damage_chat_menu_npc`]}),r.sheet_version=n,$(`VERSION UPDATE: setWeaponsUpdate completed for ${t.length} items.`),await h(r,{silent:!0}),await versionator(n,a)},Mn=async(n,a)=>{let t=await y("nonweaponproficiencies"),e=t.flatMap(s=>[`repeating_nonweaponproficiencies_${s}_nwp_attribute`,`repeating_nonweaponproficiencies_${s}_nwp_slots`,`repeating_nonweaponproficiencies_${s}_nwp_modifier`,`repeating_nonweaponproficiencies_${s}_nwp_macro_text`]),o=await w(e),r={};return _.each(t,s=>{r[`repeating_nonweaponproficiencies_${s}_nwp_attribute`]=o[`repeating_nonweaponproficiencies_${s}_nwp_attribute`],r[`repeating_nonweaponproficiencies_${s}_nwp_slots`]=i(o[`repeating_nonweaponproficiencies_${s}_nwp_slots`]),r[`repeating_nonweaponproficiencies_${s}_nwp_modifier`]=i(o[`repeating_nonweaponproficiencies_${s}_nwp_modifier`]),r[`repeating_nonweaponproficiencies_${s}_nwp_macro_text`]=o[`repeating_nonweaponproficiencies_${s}_nwp_macro_text`]}),r.sheet_version=n,$("VERSION UPDATE: setNWPUpdate completed"),await h(r,{silent:!0}),await versionator(n,a)},va=async()=>{let n=await y("repeating_weapon"),a=n.flatMap(o=>[`repeating_weapon_${o}_weapon_quantity`,`repeating_weapon_${o}_weapon_weight`,`repeating_weapon_${o}_weapon_cost`]),t=await w(a),e={};_.each(n,o=>{e[`repeating_weapon_${o}_weapon_quantity`]=i(t[`repeating_weapon_${o}_weapon_quantity`]),e[`repeating_weapon_${o}_weapon_weight`]=0,e[`repeating_weapon_${o}_weapon_cost`]=0}),Object.keys(e).length>0&&($("CLEARED OLD WEAPON WEIGHT AND COST"),await h(e,{silent:!0}))},xn=async(n,a)=>{let[t,e]=await Promise.all([y("repeating_weapon"),y("repeating_equipment")]),o=[];_.each(t,g=>{o.push(`repeating_weapon_${g}_weapon_name`,`repeating_weapon_${g}_weapon_quantity`,`repeating_weapon_${g}_weapon_weight`,`repeating_weapon_${g}_weapon_cost`)}),_.each(e,g=>{o.push(`repeating_equipment_${g}_equipment_item`,`repeating_equipment_${g}_equipment_quantity`,`repeating_equipment_${g}_equipment_weight`,`repeating_equipment_${g}_equipment_cost`)});let r=await w(o),s={},c=e.map(g=>r[`repeating_equipment_${g}_equipment_item`]),l=e.map(g=>i(r[`repeating_equipment_${g}_equipment_weight`])),p=e.map(g=>i(r[`repeating_equipment_${g}_equipment_cost`]));return _.each(t,g=>{let u=r[`repeating_weapon_${g}_weapon_name`],m=i(r[`repeating_weapon_${g}_weapon_quantity`]),d=i(r[`repeating_weapon_${g}_weapon_weight`]),f=i(r[`repeating_weapon_${g}_weapon_cost`]);if(d!==0||f!==0){let k=c.indexOf(u),v="";if(k===-1)v=H(),s[`repeating_equipment_${v}_equipment_type`]=1,s[`repeating_equipment_${v}_equipment_item`]=u,s[`repeating_equipment_${v}_equipment_quantity`]=m,s[`repeating_equipment_${v}_equipment_quantity_max`]=m,s[`repeating_equipment_${v}_equipment_weight`]=d,s[`repeating_equipment_${v}_equipment_cost`]=f;else{v=e[k];let E=l[k],N=p[k];E==="0"&&N==="0"?(s[`repeating_equipment_${v}_equipment_type`]=1,s[`repeating_equipment_${v}_equipment_quantity`]=m,s[`repeating_equipment_${v}_equipment_quantity_max`]=m,s[`repeating_equipment_${v}_equipment_weight`]=d,s[`repeating_equipment_${v}_equipment_cost`]=f):E!=="0"&&N==="0"?(s[`repeating_equipment_${v}_equipment_type`]=1,s[`repeating_equipment_${v}_equipment_cost`]=f):E==="0"&&N!=="0"&&(s[`repeating_equipment_${v}_equipment_type`]=1,s[`repeating_equipment_${v}_equipment_weight`]=d)}}}),s.sheet_version=n,$("VERSION UPDATE: migrateWeaponWtCostFunction data processed"),await h(s,{silent:!0}),typeof va=="function"&&await va(),await versionator(n,a)},Tn=async(n,a)=>{let t={};return await xn(n,a),t.sheet_version=n,$("VERSION UPDATE: migrateWeaponWtCost completed"),await h(t,{silent:!0}),await versionator(n,a)},Sn=async(n,a)=>{let t=await y("repeating_equipment"),e=t.map(s=>`repeating_equipment_${s}_equipment_type`),o=await w(e),r={};return _.each(t,s=>{let c=`repeating_equipment_${s}_equipment_type`;i(o[c])>=0||(r[c]=0)}),r.sheet_version=n,$("VERSION UPDATE: setEquipmentType completed"),await h(r,{silent:!0}),await versionator(n,a)},Nn=async(n,a)=>{let t={};return await Pe(),t.sheet_version=n,$("VERSION UPDATE: migrateSetSpellsCasterClass completed"),await h(t,{silent:!0}),await versionator(n,a)},Cn=async(n,a)=>{let t={};return await F(0),t.sheet_version=n,$("VERSION UPDATE: recalcAC completed"),await h(t,{silent:!0}),await versionator(n,a)},Dn=async(n,a)=>{let t={};return t.init_macro_text="",t.sheet_version=n,$("VERSION UPDATE: initMacroUpdate completed"),await h(t,{silent:!0}),await versionator(n,a)},On=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(l=>[`repeating_weapon_${l}_weapon_critdamagesmallmedium`,`repeating_weapon_${l}_weapon_critdamagelarge`]),o=await w(e),r={},s="(@{weapon_damagesmallmedium})*2",c="(@{weapon_damagelarge})*2";return _.each(t,l=>{let p=o[`repeating_weapon_${l}_weapon_critdamagesmallmedium`]||s,g=o[`repeating_weapon_${l}_weapon_critdamagelarge`]||c;r[`repeating_weapon_${l}_weapon_critdamagesmallmedium`]=p.replace(/@{weapon_damagesmallmedium}*2/g,"(@{weapon_damagesmallmedium})*2"),r[`repeating_weapon_${l}_weapon_critdamagelarge`]=g.replace(/@{weapon_damagelarge}*2/g,"(@{weapon_damagelarge})*2")}),r.sheet_version=n,$("VERSION UPDATE: updateCriticalDamageMacro completed"),await h(r,{silent:!0}),await versionator(n,a)},En=async()=>{let n=await w(["hitdice","armorclass","strength","intelligence","wisdom","dexterity","constitution","charisma"]),a={old_character:1},t=i(n.strength)+i(n.intelligence)+i(n.wisdom)+i(n.dexterity)+i(n.constitution)+i(n.charisma);i(n.hitdice)===0&&i(n.armorclass)===10&&t===60&&(a.strength=8,a.intelligence=8,a.wisdom=8,a.dexterity=8,a.constitution=8,a.charisma=8,$("New Sheet: Ability defaults set to 8."),typeof xe=="function"&&await xe()),await h(a,{silent:!0})},In=async(n,a)=>{let t=await y("equipment"),e=t.map(c=>`repeating_equipment_${c}_equipment_armor_type`),o=await w([...we,...e]),r={};if(t.length===0){r.sheet_version=n,$("VERSION UPDATE: updateSyncArmorFlag completed (No rows to check)"),await h(r,{silent:!0}),versionator(n,a);return}let s=t.map(async c=>{let l=i(o[`repeating_equipment_${c}_equipment_armor_type`]),{isMatch:p}=await ye(c),g=`repeating_equipment_${c}_equipment_sync_armor_flag`;l!==99&&p?r[g]=1:r[g]=0});await Promise.all(s),r.sheet_version=n,$(`VERSION UPDATE: updateSyncArmorFlag completed (${t.length} rows checked)`),await h(r,{silent:!0}),versionator(n,a)},Rn=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(c=>[`repeating_weapon_${c}_weapon_whisper_to_hit`,`repeating_weapon_${c}_weapon_whisper_to_hit_select`]),o=await w(["toggle_to_hit_table",...e]),r=await Promise.all(t.map(c=>Be(o,c))),s=Object.assign({},...r);return s.sheet_version=n,$("VERSION UPDATE: recalcToHitWhisper completed"),await h(s,{silent:!0}),await versionator(n,a)},Hn=async(n,a)=>{let t=await y("repeating_weapon"),e=t.flatMap(c=>[`repeating_weapon_${c}_weapon_tohitacadj_flag`,`repeating_weapon_${c}_weapon_tohitacadj`]),o=await w([...e]),r=await Promise.all(t.map(c=>Le(o,c))),s=Object.assign({},...r);return s.sheet_version=n,$("VERSION UPDATE: recalcToHitACadj completed"),await h(s,{silent:!0}),await versionator(n,a)},Pn=async(n,a)=>{let t=await w(["minorstrengthfeat","strength","exceptionalstrength"]),e=i(t.minorstrengthfeat),o={};if(e>6){let r=i(t.strength),s=t.exceptionalstrength==="00"?100:i(t.exceptionalstrength);o.minorstrengthfeat=L.getStrengthValue("Minor",r,s),$("VERSION UPDATE: checkOpenDoors calculation performed")}return o.sheet_version=n,$("VERSION UPDATE: checkOpenDoors completed"),await h(o,{silent:!0}),await versionator(n,a)};versionator=async(n,a)=>{if(n<.1)return await Zt(.1,a);if(n<1.2)return await Jt(1.2,a);if(n<1.5)return await en(1.5,a);if(n<1.52)return await an(1.52,a);if(n<1.53)return await tn(1.53,a);if(n<1.54)return await nn(1.54,a);if(n<1.55)return await rn(1.55,a);if(n<1.56)return await sn(1.56,a);if(n<1.57)return await cn(1.57,a);if(n<1.591)return await _n(1.591,a);if(n<1.592)return await pn(1.592,a);if(n<1.593)return await ln(1.593,a);if(n<1.594)return await mn(1.594,a);if(n<1.595)return await Me(1.595,a);if(n<1.596)return await $a(1.596,a);if(n<1.597)return await un(1.597,a);if(n<1.598)return await wn(1.598,a);if(n<1.61)return await yn(1.61,a);if(n<1.62)return await bn(1.62,a);if(n<1.634)return await Me(1.634,a);if(n<1.635)return await hn(1.635,a);if(n<1.636)return await gn(1.636,a);if(n<1.637)return await Me(1.637,a);if(n<1.638)return await fn(1.638,a);if(n<1.639)return await $n(1.639,a);if(n<1.64)return await qn(1.641,a);if(n<1.642)return await dn(1.643,a);if(n<1.644)return await kn(1.644,a);if(n<1.645)return await An(1.645,a);if(n<1.646)return await Tn(1.646,a);if(n<1.648)return await Sn(1.648,a);if(n<1.65)return await Nn(1.65,a);if(n<1.652)return await $a(1.652,a);if(n<1.654)return await Cn(1.654,a);if(n<1.656)return await Dn(1.656,a);if(n<1.658)return await On(1.658,a);if(n<1.659)return await Mn(1.66,a);if(n<1.681)return await In(1.69,a);if(n<1.691)return await Rn(1.691,a);if(n<1.692)return await Hn(1.692,a);if(n<1.693)return await Pn(1.695,a);let t=await w(["sheet_version","old_character"]),e=parseFloat(t.sheet_version)||0,o=(+t.old_character||0)==0;e<a&&($(`VERSION UPDATE: Finalizing version attribute to ${a}`),await h({sheet_version:a},{silent:!0})),o&&await En()};on("sheet:opened",async()=>{let a=await w(["sheet_version","old_character"]),t=parseFloat(a.sheet_version)||0;return i(a.old_character)===0&&t===0&&($("New sheet detected. Initializing..."),await h({sheet_version:1.695,old_character:0},{silent:!0}),t=1.695),$(`Current sheet data version: ${t}, Sheet code version: ${1.695}`),await versionator(t,1.695)});on("change:abilities_info_show change:toggle_exceptional change:intelligence change:wisdom change:dexterity change:constitution change:charisma change:comeliness",async n=>{let a=await w(["intelligence","wisdom","dexterity","constitution","charisma","comeliness","toggle_exceptional"]),t={};i(a.toggle_exceptional)!==1&&(t.exceptional_intelligence_flag=1,t.exceptional_wisdom_flag=1,t.exceptional_dexterity_flag=1,t.exceptional_constitution_flag=1,t.exceptional_charisma_flag=1,t.exceptional_comeliness_flag=1,await h(t,{silent:!0}))});on("change:abilities_info_show change:toggle_exceptional change:strength",n=>{let a={};a.exceptional_strength_flag=1,setAttrs(a,{silent:!0})});on("change:is_npc",async n=>{let a=await w(["is_npc","toggle_npc"]),t={},e=i(a.is_npc),o=i(a.toggle_npc);o=e===0?0:1,t.toggle_npc=o,await h(t,{silent:!0})});var Ln=async()=>{let n=await y("equipment"),a={},t=n.flatMap(s=>[`repeating_equipment_${s}_equipment_quantity`,`repeating_equipment_${s}_equipment_cost`]),e=await w(t),o=[];_.each(n,s=>{let c=i(e[`repeating_equipment_${s}_equipment_quantity`]),l=i(e[`repeating_equipment_${s}_equipment_cost`]);l=c>0?l*c:0,o.push(l)});let r=o.reduce((s,c)=>s+c,0);a.total_equipment_cost=r.toFixed(2),a.total_cost=r.toFixed(2),await h(a,{silent:!0})};on("change:repeating_equipment:equipment_quantity change:repeating_equipment:equipment_cost remove:repeating_equipment",async n=>{await Ln()});var Bn=async()=>{let n=await w(["pp","gp","ep","sp","cp","toggle_lbs"]),a={},e=i(n.toggle_lbs)?10:1,r=((O(n.pp)+O(n.gp)+O(n.ep)+O(n.sp)+O(n.cp))/e).toFixed(2);a.total_coin_weight=r,await h(a,{silent:!0})},Ha=async()=>{let n=await y("equipment"),a={},t=n.flatMap(d=>[`repeating_equipment_${d}_equipment_type`,`repeating_equipment_${d}_equipment_weight`,`repeating_equipment_${d}_equipment_quantity`,`repeating_equipment_${d}_equipment_carried`,`repeating_equipment_${d}_equipment_carried_select`]);await Bn();let e=await w(["total_coin_weight",...t]),o=[],r=[],s=[],c=i(e.total_coin_weight);_.each(n,d=>{let f=i(e[`repeating_equipment_${d}_equipment_type`]),k=0,v=i(e[`repeating_equipment_${d}_equipment_carried_select`]);a[`repeating_equipment_${d}_equipment_carried`]=v===1?1:0,k=v===1?1:0;let E=i(e[`repeating_equipment_${d}_equipment_quantity`]),N=i(e[`repeating_equipment_${d}_equipment_weight`]),I=0,C=0;N=N*E*k,f===1&&(I=N),f===2&&(C=N),o.push(I),r.push(C),s.push(N)});let l=o.reduce((d,f)=>d+f,0),p=r.reduce((d,f)=>d+f,0),g=s.reduce((d,f)=>d+f,0),u=g-p-l,m=Math.round(O(c)+O(g));a.total_weapon_weight=l.toFixed(2),a.total_armor_weight=p.toFixed(2),a.total_equipment_weight=g.toFixed(2),a.total_equipment_weight_adjusted=u.toFixed(2),a.total_weight=m,await h(a,{silent:!0}),await Vn()},Vn=async()=>{let n=await w(["encumbrancebonus","toggle_lbs"]),a={},t=i(n.toggle_lbs),e=t?.1:1,o=350*e,r=i(n.encumbrancebonus),s=O(r*e),l=o+(t?s:r),p=l+o,g=p+o,u=g;a.encumbrancebonus_lbs=s,a.normal_load=o,a.normal_load_adjusted=l,a.heavy_load=p,a.very_heavy_load=g,a.max_load=u+1,await h(a,{silent:!0}),await Pa()},Pa=async n=>{let a=await w(["normal_load_adjusted","heavy_load","very_heavy_load","total_weight","autocalc_movement_flag","current_bulk","current_encumbrance_move","current_encumbrance"]),t={},e=i(a.autocalc_movement_flag),o=i(a.normal_load_adjusted),r=i(a.heavy_load),s=i(a.very_heavy_load),c=i(a.total_weight),l=i(a.current_bulk),p=i(a.current_encumbrance);n?($("Encumbrance Set Manually: Adjusting Movement"),p===0?(t.current_encumbrance_label="Unencumbered",t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):p===1?(t.current_encumbrance_label="Heavy",t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):p===2?(t.current_encumbrance_label="Very Heavy",t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):(t.current_encumbrance_label="Encumbered",t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move))):c<=o?(t.current_encumbrance_label="Unencumbered",p=0,t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):c>o&&c<=r?(t.current_encumbrance_label="Heavy",p=1,t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):c>r&&c<=s?(t.current_encumbrance_label="Very Heavy",p=2,t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)):(t.current_encumbrance_label="Encumbered",p=3,t.current_encumbrance=p,t.current_encumbrance_move=e===1?Math.max(p,l):i(a.current_encumbrance_move)),await h(t,{silent:!0}),await He()};on("sheet:opened change:repeating_equipment:equipment_weight change:repeating_equipment:equipment_quantity change:repeating_equipment:equipment_carried change:repeating_equipment:equipment_carried_select change:repeating_equipment:equipment_armor_worn remove:repeating_equipment change:pp change:gp change:ep change:sp change:cp change:encumbrancebonus change:normal_load change:toggle_lbs",async n=>{await Ha()});var He=async()=>{let n=await w(["current_encumbrance_move","movement"]),a={},t=i(n.movement.toString().replace(/[^0-9]/g,"")),e=i(n.current_encumbrance_move),o=0;e===0?o=t:e===1?o=t-3:e===2?o=t-6:o=t-9,a.movement_normal=o,a.movement_known=o*5,a.movement_run=o*10,await h(a,{silent:!0})};on("change:current_encumbrance_move",async n=>{await He()});on("sheet:opened change:movement change:current_encumbrance change:current_encumbrance_move change:autocalc_movement_flag",async n=>{if(n.sourceType==="player"&&n.sourceAttribute!=="movement")return;let a=await w(["movement"]),t={},e=0,o=i(a.movement.toString().replace(/[^0-9]/g,""));t.movement_heavy=Math.max(o-3,0),t.movement_load=Math.max(o-6,0),t.movement_max=Math.max(o-9,0),await h(t,{silent:!0}),await He(),await F(e)});on("change:current_encumbrance",async n=>{n.sourceType==="player"&&await Pa(1)});var Un=async()=>{let n=await w(["unarmored_bulk","armortype_bulk","armortype2_bulk","armorshield_bulk","unarmored_worn","armortype_worn","armortype2_worn","armorshield_worn","armorshield_carried"]),a={},t=i(n.unarmored_worn),e=i(n.armortype_worn),o=i(n.armortype2_worn),r=i(n.armorshield_worn),s=i(n.armorshield_carried),c=Math.max(r,s),l=i(n.unarmored_bulk||0)*t,p=i(n.armortype_bulk||0)*e,g=i(n.armortype2_bulk||0)*o,u=i(n.armorshield_bulk||0)*c;switch(Math.max(l,p,g,u)){case 0:a.current_bulk_label="Not Bulky",a.current_bulk=0;break;case 1:a.current_bulk_label="Not Bulky/Light",a.current_bulk=0;break;case 2:a.current_bulk_label="Fairly/Moderate",a.current_bulk=1;break;case 3:a.current_bulk_label="Bulky/Heavy",a.current_bulk=2;break;default:console.log("WARNING: failure in bulk calculation.");break}await h(a,{silent:!0}),await Ha()};on("change:unarmored_bulk change:armortype_bulk change:armortype2_bulk change:armorshield_bulk change:armorhelmet_bulk change:unarmored_worn change:armortype_worn change:armortype2_worn change:armorshield_worn change:armorhelmet_worn change:armorshield_carried remove:repeating_equipment",async n=>{await Un()});on("change:repeating_equipment:equipment_carried_select change:repeating_equipment:equipment_type change:repeating_equipment:equipment_magical",async n=>{let a=n.sourceAttribute.split("_")[2],t=n.sourceAttribute,e=/equipment_type/.test(t),o=[`repeating_equipment_${a}_equipment_type`,`repeating_equipment_${a}_equipment_carried_select`],r=await w(["equipment_tabs_type","equipment_tabs_carry",...o]),s={},c=i(r.equipment_tabs_carry),l=i(r.equipment_tabs_type),p=i(r[`repeating_equipment_${a}_equipment_type`]),g=i(r[`repeating_equipment_${a}_equipment_carried_select`]);s[`repeating_equipment_${a}_equipment_carried`]=g===1?1:0,s.equipment_tabs_type=l!==-1&&e?p:l,s.equipment_tabs_carry=c===-1||c===g?-1:g,await h(s)});on("change:equipment_tabs_type change:equipment_tabs_carry",async n=>{let a=await y("equipment"),t={},e=a.flatMap(c=>[`repeating_equipment_${c}_equipment_type`,`repeating_equipment_${c}_equipment_carried_select`,`repeating_equipment_${c}_equipment_magical`]),o=await w(["equipment_tabs_type","equipment_tabs_carry","equipment_magical",...e]),r=i(o.equipment_tabs_type),s=i(o.equipment_tabs_carry);_.each(a,c=>{let l=i(o[`repeating_equipment_${c}_equipment_magical`]),p=i(o[`repeating_equipment_${c}_equipment_type`]),g=i(o[`repeating_equipment_${c}_equipment_carried_select`]);if(r===-1||r===p||r===3&&l)return t[`repeating_equipment_${c}_equipment_show_carry`]=s===-1||s===g?1:0,t[`repeating_equipment_${c}_equipment_show_type`]=1;t[`repeating_equipment_${c}_equipment_show_carry`]=s===-1||s===g?1:0,t[`repeating_equipment_${c}_equipment_show_type`]=0}),await h(t)});var jn=async()=>{let n=await y("equipment"),a={},t=n.flatMap(r=>[`repeating_equipment_${r}_equipment_armor_type`]),[e,o]=await Promise.all([w(t),Ba()]);_.each(n,r=>{let s=i(e[`repeating_equipment_${r}_equipment_armor_type`]),c=s===99?-1:s+1,l=o.map((p,g)=>p===r?`${Math.floor(g)+1}`:null).filter(p=>p!==null);l.length>0&&(c=s+1,l.join(",").split(",").filter(m=>m!==String(c)).forEach(m=>{switch(m){case"1":a.unarmored="",a.unarmored_worn=0,a.unarmored_row_id=0;break;case"2":a.armortype="",a.armortype_worn=0,a.armortype1_row_id=0;break;case"3":a.armortype2="",a.armortype2_worn=0,a.armortype2_row_id=0;break;case"4":a.armorshield="",a.armorshield_worn=0,a.armorshield_row_id=0;break;case"5":a.armorhelmet="",a.armorhelmet_worn=0,a.armorhelmet_row_id=0;break;case"6":a.armorother="",a.armorother_worn=0,a.armorother1_row_id=0;break;case"7":a.armorother2="",a.armorother2_worn=0,a.armorother2_row_id=0;break;case"8":a.armorother3="",a.armorother3_worn=0,a.armorother3_row_id=0;break;case"9":a.armorother4="",a.armorother4_worn=0,a.armorother4_row_id=0;break;case"10":a.armorother5="",a.armorother5_worn=0,a.armorother5_row_id=0;break;case"11":a.armorother6="",a.armorother6_worn=0,a.armorother6_row_id=0;break;default:console.log("WARNING: NOTHING TO DELETE/RESET.");break}}))}),await h(a)},Wn=`${de.map(n=>`change:${n}`).join(" ")}`;on(Wn,async n=>{if(n.sourceType==="sheetworker")return;let a=n.sourceAttribute,t=pe.find(c=>c.armorType===a||c.attrs.includes(a));if(!t)return;let e={},o=await w([...de,t.syncedID]),r=(o[t.armorType]||"").trim(),s=o[t.syncedID]&&o[t.syncedID]!=="0"?o[t.syncedID]:null;if(!r&&t.armorType!=="unarmored"&&!s){let c=a.replace(`${t.armorType}_`,"");if(["worn","carried","ac","base","magic","mod","bulk"].includes(c)){let p=c==="ac"||c==="base"?t.defaultAC:0;await h({[a]:p},{silent:!0});return}}if(!r&&s){let c=`repeating_equipment_${s}`;removeRepeatingRow(c);let l={[t.syncedID]:"0"};t.attrs.forEach(p=>{let g=p.replace(`${t.armorType}_`,"");g==="ac"||g==="base"?l[p]=t.defaultAC:g==="worn"||g==="carried"?l[p]=t.armorType==="unarmored"?1:0:p!==t.armorType&&(l[p]=0)}),await h(l,{silent:!0}),await he(null,t.armorType,1);return}if(!r){t.armorType==="unarmored"&&await h({unarmored_worn:1,unarmored_carried:1},{silent:!0});return}if(!s){let c=H();e[t.syncedID]=c,e[`${t.armorType}_worn`]=1,e[`${t.armorType}_carried`]=1,await h(e,{silent:!0}),s=c}await he(s,t.armorType,0)});var La=async n=>{let a=await w([`repeating_equipment_${n}_equipment_armor_type`,`repeating_equipment_${n}_equipment_item`,`repeating_equipment_${n}_equipment_armor_worn`,`repeating_equipment_${n}_equipment_armor_ac`,`repeating_equipment_${n}_equipment_armor_base`,`repeating_equipment_${n}_equipment_armor_magic`,`repeating_equipment_${n}_equipment_armor_mod`,`repeating_equipment_${n}_equipment_armor_bulk`,`repeating_equipment_${n}_equipment_carried_select`,`repeating_equipment_${n}_equipment_carried`,`repeating_equipment_${n}_equipment_weight`,`repeating_equipment_${n}_equipment_cost`]),t={},e=0,o=i(a[`repeating_equipment_${n}_equipment_armor_type`]),r=a[`repeating_equipment_${n}_equipment_item`],s=i(a[`repeating_equipment_${n}_equipment_armor_worn`]),c=i(a[`repeating_equipment_${n}_equipment_armor_ac`]),l=i(a[`repeating_equipment_${n}_equipment_armor_base`]),p=i(a[`repeating_equipment_${n}_equipment_armor_magic`]),g=i(a[`repeating_equipment_${n}_equipment_armor_mod`]),u=i(a[`repeating_equipment_${n}_equipment_armor_bulk`]),m=i(a[`repeating_equipment_${n}_equipment_carried_select`]),d=i(a[`repeating_equipment_${n}_equipment_weight`]),f=i(a[`repeating_equipment_${n}_equipment_cost`]);s===1?(m=1,t[`repeating_equipment_${n}_equipment_carried_select`]=1):s===0&&(m===0||m===2)&&(t[`repeating_equipment_${n}_equipment_carried_select`]=m);let k=[`fillArmorDetails - id:${n} item:${r} type:${o} worn:${s} ac:${c} base:${l} magic:${p} mod:${g} bulk:${u} carried:${m} weight:${d} cost:${f} UPDATED:`];switch(o){case 99:break;case 0:t.unarmored_worn=s,t.unarmored=r,t.unarmored_ac=c,t.unarmored_base=l,t.unarmored_bulk=u,t.unarmored_carried=m,t.unarmored_row_id=n;break;case 1:t.armortype_worn=s,t.armortype=r,t.armortype_ac=c,t.armortype_base=l,t.armortype_magic=p,t.armortype_bulk=u,t.armortype_carried=m,t.armor_weight=d,t.armor_cost=f,t.armortype1_row_id=n;break;case 2:t.armortype2_worn=s,t.armortype2=r,t.armortype2_ac=c,t.armortype2_base=l,t.armortype2_magic=p,t.armortype2_bulk=u,t.armortype2_carried=m,t.armortype2_weight=d,t.armortype2_cost=f,t.armortype2_row_id=n;break;case 3:t.armorshield_worn=s,t.armorshield=r,t.armorshield_ac=c>=0?0:-Math.abs(c),t.armorshield_base=l>=0?0:-Math.abs(l),t.armorshield_magic=p,t.armorshield_mod=g,t.armorshield_bulk=u,t.armorshield_carried=m,t.armorshield_weight=d,t.armorshield_cost=f,t.armorshield_row_id=n;break;case 4:t.armorhelmet_worn=s,t.armorhelmet=r,t.armorhelmet_base=l,t.armorhelmet_magic=p,t.armorhelmet_carried=m,t.armorhelmet_weight=d,t.armorhelmet_cost=f,t.armorhelmet_row_id=n;break;case 5:t.armorother_worn=s,t.armorother=r,t.armorother_ac=c,t.armorother_base=l,t.armorother_magic=p,t.armorother_mod=g,t.armorother1_row_id=n;break;case 6:t.armorother2_worn=s,t.armorother2=r,t.armorother2_ac=c>=0?0:-Math.abs(c),t.armorother2_base=l>=0?0:-Math.abs(l),t.armorother2_magic=p,t.armorother2_mod=g,t.armorother2_row_id=n;break;case 7:t.armorother3_worn=s,t.armorother3=r,t.armorother3_ac=c>=0?0:-Math.abs(c),t.armorother3_base=l>=0?0:-Math.abs(l),t.armorother3_magic=p,t.armorother3_mod=g,t.armorother3_row_id=n;break;case 8:t.armorother4_worn=s,t.armorother4=r,t.armorother4_ac=c>=0?0:-Math.abs(c),t.armorother4_base=l>=0?0:-Math.abs(l),t.armorother4_magic=p,t.armorother4_mod=g,t.armorother4_row_id=n;break;case 9:t.armorother5_worn=s,t.armorother5=r,t.armorother5_ac=c>=0?0:-Math.abs(c),t.armorother5_base=l>=0?0:-Math.abs(l),t.armorother5_magic=p,t.armorother5_mod=g,t.armorother5_row_id=n;break;case 10:t.armorother6_worn=s,t.armorother6=r,t.armorother6_ac=c>=0?0:-Math.abs(c),t.armorother6_base=l>=0?0:-Math.abs(l),t.armorother6_magic=p,t.armorother6_mod=g,t.armorother6_row_id=n;break;default:console.log("WARNING: Armor row is out of range.");break}await h(t,{silent:!0}),await F(e)},Fn=async n=>{let a=await w([`repeating_equipment_${n}_equipment_item`,`repeating_equipment_${n}_equipment_weapon_type`,`repeating_equipment_${n}_equipment_weapon_speed`,`repeating_equipment_${n}_equipment_weapon_length`,`repeating_equipment_${n}_equipment_weapon_space`,`repeating_equipment_${n}_equipment_weapon_misc`,`repeating_equipment_${n}_equipment_weapon_damagesmallmedium`,`repeating_equipment_${n}_equipment_weapon_damagelarge`,`repeating_equipment_${n}_equipment_weapon_attackdmgtype`,`repeating_equipment_${n}_equipment_weapon_rateoffire`,`repeating_equipment_${n}_equipment_weapon_range`,`repeating_equipment_${n}_equipment_quantity`,`repeating_equipment_${n}_equipment_quantity_max`,`repeating_equipment_${n}_equipment_current`,`repeating_equipment_${n}_equipment_current_max`,`repeating_equipment_${n}_equipment_description`]),t={},e=H();t[`repeating_weapon_${e}_weapon_name`]=a[`repeating_equipment_${n}_equipment_item`],t[`repeating_weapon_${e}_weapon_attack_type`]=i(a[`repeating_equipment_${n}_equipment_weapon_type`]),t[`repeating_weapon_${e}_weapon_speed`]=a[`repeating_equipment_${n}_equipment_weapon_speed`],t[`repeating_weapon_${e}_weapon_length`]=a[`repeating_equipment_${n}_equipment_weapon_length`],t[`repeating_weapon_${e}_weapon_space`]=a[`repeating_equipment_${n}_equipment_weapon_space`],t[`repeating_weapon_${e}_weapon_misc`]=a[`repeating_equipment_${n}_equipment_weapon_misc`],t[`repeating_weapon_${e}_weapon_damagesmallmedium`]=a[`repeating_equipment_${n}_equipment_weapon_damagesmallmedium`],t[`repeating_weapon_${e}_weapon_damagelarge`]=a[`repeating_equipment_${n}_equipment_weapon_damagelarge`],t[`repeating_weapon_${e}_weapon_attackdmgtype`]=a[`repeating_equipment_${n}_equipment_weapon_attackdmgtype`],t[`repeating_weapon_${e}_weapon_rateoffire`]=a[`repeating_equipment_${n}_equipment_weapon_rateoffire`],t[`repeating_weapon_${e}_weapon_range`]=a[`repeating_equipment_${n}_equipment_weapon_range`],t[`repeating_weapon_${e}_weapon_ammo`]=i(a[`repeating_equipment_${n}_equipment_current`]),t[`repeating_weapon_${e}_weapon_ammo_max`]=i(a[`repeating_equipment_${n}_equipment_current_max`]),t[`repeating_weapon_${e}_weapon_quantity`]=i(a[`repeating_equipment_${n}_equipment_quantity`]),t[`repeating_weapon_${e}_weapon_notes`]=a[`repeating_equipment_${n}_equipment_description`],await h(t,{silent:!0}),await Fa(e),await Ve(e)},Ba=async()=>{let n=await w(we);return[n.unarmored_row_id,n.armortype1_row_id,n.armortype2_row_id,n.armorshield_row_id,n.armorhelmet_row_id,n.armorother1_row_id,n.armorother2_row_id,n.armorother3_row_id,n.armorother4_row_id,n.armorother5_row_id,n.armorother6_row_id].map(t=>t?t.toString().toLowerCase():"0")},ye=async n=>{let a=await Ba(),t="";return t=a.includes(n)?1:0,{isMatch:t,armorDetailsArray:a}},Va=async n=>{let a={},{isMatch:t,armorDetailsArray:e}=await ye(n);a.armordetails_array=e.join(","),await h(a,{silent:!0})},Gn=`${we.map(n=>`change:${n}`).join(" ")}`;on(Gn,async n=>{let a=n.sourceAttribute,t=n.newValue?n.newValue.toLowerCase():"0";await Va(t)});on("change:repeating_equipment:equipment_item change:repeating_equipment:equipment_armor_worn change:repeating_equipment:equipment_armor_ac change:repeating_equipment:equipment_armor_base change:repeating_equipment:equipment_armor_magic change:repeating_equipment:equipment_armor_mod change:repeating_equipment:equipment_armor_bulk change:repeating_equipment:equipment_carried_select change:repeating_equipment:equipment_weight change:repeating_equipment:equipment_cost",async n=>{let a=n.sourceAttribute.split("_")[2].toLowerCase();if(n.sourceType==="sheetworker")return;let{isMatch:t}=await ye(a);t&&await La(a)});on("clicked:repeating_equipment:addarmor change:repeating_equipment:equipment_armor_type",async n=>{let t=n.sourceAttribute.toLowerCase().split("_"),e=t[2],o=t.slice(3).join("_"),r=`repeating_equipment_${e}_equipment_armor_type`,s=`repeating_equipment_${e}_equipment_sync_armor_flag`,c=await w([r,s]),l={},p=i(c[r]),g=i(c[s]),u=p!==99;(o==="addarmor"&&u||o==="equipment_armor_type"&&g===1)&&(u?(await La(e),l[s]=1):l[s]=0,await jn(),Object.keys(l).length>0&&await h(l,{silent:!0}))});on("clicked:repeating_equipment:addattack",async n=>{let a=n.sourceAttribute.split("_")[2];await Fn(a)});on("remove:repeating_equipment",async n=>{let a=n.sourceAttribute.split("_")[2].toLowerCase(),t=1,{isMatch:e}=await ye(a);e&&await he(a,null,t)});on("clicked:addturnundead",n=>{let a={},t=H();a[`repeating_ability_${t}_ability_name`]="Turn Undead by Type",a[`repeating_ability_${t}_ability_short_description`]="[Turn Undead by Type](~selected|turn_undead_roll)",setAttrs(a,{silent:!0})});on("clicked:addturnundead2",n=>{let a={},t=H();a[`repeating_ability_${t}_ability_name`]="Turn Undead by HD",a[`repeating_ability_${t}_ability_short_description`]="[Turn Undead by HD](~selected|turn_undead2_roll)",setAttrs(a,{silent:!0})});on("change:spell_tabs change:toggle_show_memorized change:spell_caster_tabs change:toggle_caster2",async n=>{let a=await y("spells"),t={},e=a.flatMap(p=>[`repeating_spells_${p}_spell_memorized`,`repeating_spells_${p}_spell_show_all`,`repeating_spells_${p}_spell_level`,`repeating_spells_${p}_spell_caster_class`]),o=await w(["spell_tabs","toggle_show_memorized","spell_caster_tabs","toggle_caster2",...e]),r=i(o.toggle_show_memorized),s=i(o.spell_caster_tabs),c=i(o.toggle_caster2),l=i(o.spell_tabs);_.each(a,p=>{let g=i(o[`repeating_spells_${p}_spell_memorized`]),u=i(o[`repeating_spells_${p}_spell_caster_class`]),m=i(o[`repeating_spells_${p}_spell_level`]);t[`repeating_spells_${p}_spell_show_memorized`]=r===1&&g>0?1:0,t[`repeating_spells_${p}_spell_show_all`]=r===1?0:1,l===-1||l===m?c===1?t[`repeating_spells_${p}_spell_show`]=1:c===0&&(s===-1||u===0?t[`repeating_spells_${p}_spell_show`]=1:s===0&&u===1?t[`repeating_spells_${p}_spell_show`]=1:s===1&&u===2?t[`repeating_spells_${p}_spell_show`]=1:t[`repeating_spells_${p}_spell_show`]=0):t[`repeating_spells_${p}_spell_show`]=0}),await h(t,{silent:!0})});on("change:repeating_spells:spell_level change:repeating_spells:spell_caster_class",async n=>{if(n.sourceType!=="player")return;let a=n.sourceAttribute.split("_")[2],t=await w([`repeating_spells_${a}_spell_level`,`repeating_spells_${a}_spell_caster_class`,"spell_caster_tabs","spell_tabs"]),e={},o=i(t.spell_caster_tabs),r=i(t[`repeating_spells_${a}_spell_caster_class`]),s=t[`repeating_spells_${a}_spell_level`],c=i(t.spell_tabs);e.spell_tabs=c>=0&&c!==s?s:c,e.spell_caster_tabs=o!==-1&&r<=1?0:1,await h(e,{silent:!0})});var Pe=async()=>{let n=await y("spells"),a={},t=n.flatMap(l=>[`repeating_spells_${l}_spell_caster_class`]),e=await w(["caster_class1_name","caster_class2_name","caster_class1_level","caster_class2_level",...t]),o=e.caster_class1_name,r=e.caster_class2_name,s=i(e.caster_class1_level),c=i(e.caster_class2_level);_.each(n,l=>{switch(i(e[`repeating_spells_${l}_spell_caster_class`])){case 0:a[`repeating_spells_${l}_spell_caster_class_name`]="";break;case 1:a[`repeating_spells_${l}_spell_caster_class_name`]=o,a[`repeating_spells_${l}_spell_caster_class_level`]=s;break;case 2:a[`repeating_spells_${l}_spell_caster_class_name`]=r,a[`repeating_spells_${l}_spell_caster_class_level`]=c;break;default:console.log("WARNING: spell_caster_class value not recognized.");break}}),await h(a,{silent:!0})};on("change:caster_class1_name change:caster_class2_name change:caster_class1_level change:caster_class2_level",async n=>{await Pe()});on("change:repeating_spells:spell_name change:repeating_spells:spell_caster_class",async n=>{if(n.sourceType!=="player")return;let a=n.sourceAttribute.split("_")[2],t=n.previousValue,e=n.sourceAttribute.split("_").slice(3).join("_"),o=t===void 0&&e==="spell_name"?1:0,r=await w([`repeating_spells_${a}_spell_caster_class`,"caster_class1_name","caster_class1_level","caster_class2_name","caster_class2_level","spell_caster_tabs","toggle_caster2"]),s={},c=r.caster_class1_name,l=r.caster_class2_name,p=i(r.caster_class1_level),g=i(r.caster_class2_level),u=i(r.toggle_caster2),m=i(r.spell_caster_tabs),d=i(r[`repeating_spells_${a}_spell_caster_class`]);switch(u===0&&o===1&&m!==-1&&(d=m===0?1:2),d){case 0:s[`repeating_spells_${a}_spell_caster_class_name`]="";break;case 1:s[`repeating_spells_${a}_spell_caster_class_name`]=c,s[`repeating_spells_${a}_spell_caster_class_level`]=p;break;case 2:s[`repeating_spells_${a}_spell_caster_class_name`]=l,s[`repeating_spells_${a}_spell_caster_class_level`]=g;break;default:console.log("WARNING: spell_caster_class value not recognized.");break}await h(s,{silent:!0})});on("change:repeating_spells:spell_name",async n=>{if(n.sourceType!=="player")return;let a=n.sourceAttribute.split("_")[2],t=await w([`repeating_spells_${a}_spell_level`,"spell_tabs"]),e={},o=i(t.spell_tabs),r=t[`repeating_spells_${a}_spell_level`];o===-1||r!="?"||(e[`repeating_spells_${a}_spell_level`]=o,await h(e,{silent:!0}))});var Le=async(n,a)=>{let t={},e=i(n.toggle_ar),o=i(n[`repeating_weapon_${a}_weapon_tohitacadj_flag`]);return t[`repeating_weapon_${a}_weapon_tohitacadj`]=o===1&&e===0?"{{ToHitArmorType0=@{weapon_thac_adj0}}} {{ToHitArmorType1=@{weapon_thac_adj1}}} {{ToHitArmorType2=@{weapon_thac_adj2}}} {{ToHitArmorType3=@{weapon_thac_adj3}}} {{ToHitArmorType4=@{weapon_thac_adj4}}} {{ToHitArmorType5=@{weapon_thac_adj5}}} {{ToHitArmorType6=@{weapon_thac_adj6}}} {{ToHitArmorType7=@{weapon_thac_adj7}}} {{ToHitArmorType8=@{weapon_thac_adj8}}} {{ToHitArmorType9=@{weapon_thac_adj9}}} {{ToHitArmorType10=@{weapon_thac_adj10}}}":"{{ToHitArmorType0}} {{ToHitArmorType1}} {{ToHitArmorType2}} {{ToHitArmorType3}} {{ToHitArmorType4}} {{ToHitArmorType5}} {{ToHitArmorType6}} {{ToHitArmorType7}} {{ToHitArmorType8}} {{ToHitArmorType9}} {{ToHitArmorType10}}",t};on("change:repeating_weapon:weapon_tohitacadj_flag change:repeating_weapon:weapon_thac_adj0 change:repeating_weapon:weapon_thac_adj1 change:repeating_weapon:weapon_thac_adj2 change:repeating_weapon:weapon_thac_adj3 change:repeating_weapon:weapon_thac_adj4 change:repeating_weapon:weapon_thac_adj5 change:repeating_weapon:weapon_thac_adj6 change:repeating_weapon:weapon_thac_adj7 change:repeating_weapon:weapon_thac_adj8 change:repeating_weapon:weapon_thac_adj9 change:repeating_weapon:weapon_thac_adj10",async n=>{let a=n.sourceAttribute.split("_")[2],t=await w([`repeating_weapon_${a}_weapon_tohitacadj_flag`,"toggle_ar"]),e=await Le(t,a);await h(e,{silent:!0})});on("change:toggle_ar",async n=>{let a={},t=await y("repeating_weapon"),e=t.flatMap(r=>[`repeating_weapon_${r}_weapon_tohitacadj_flag`]);e.push("toggle_ar");let o=await w(e);t.forEach(r=>{let s=Le(o,r);Object.assign(a,s)}),await h(a,{silent:!0})});var Be=async(n,a,t)=>{let e={},o=i(n.toggle_to_hit_table),r=i(n.hide_to_hit_table),s=`repeating_weapon_${a}_weapon_whisper_to_hit_select`,c=`repeating_weapon_${a}_weapon_whisper_to_hit`,l=i(n[s]),p="",g="&nbsp;",u=`
&{template:attacks-table} {{color=@{color_option}}} {{ToHitAC-10=[[ @{thac-10} ]]}} {{ToHitAC-9=[[ @{thac-9} ]]}} {{ToHitAC-8=[[ @{thac-8} ]]}} {{ToHitAC-7=[[ @{thac-7} ]]}} {{ToHitAC-6=[[ @{thac-6} ]]}} {{ToHitAC-5=[[ @{thac-5} ]]}} {{ToHitAC-4=[[ @{thac-4} ]]}} {{ToHitAC-3=[[ @{thac-3} ]]}} {{ToHitAC-2=[[ @{thac-2} ]]}} {{ToHitAC-1=[[ @{thac-1} ]]}} {{ToHitAC0=[[ @{thac0} ]]}} {{ToHitAC1=[[ @{thac1} ]]}} {{ToHitAC2=[[ @{thac2} ]]}} {{ToHitAC3=[[ @{thac3} ]]}} {{ToHitAC4=[[ @{thac4} ]]}} {{ToHitAC5=[[ @{thac5} ]]}} {{ToHitAC6=[[ @{thac6} ]]}} {{ToHitAC7=[[ @{thac7} ]]}} {{ToHitAC8=[[ @{thac8} ]]}} {{ToHitAC9=[[ @{thac9} ]]}} {{ToHitAC10=[[ @{thac10} ]] }}`,m=`
&{template:attacks-table} {{color=@{color_option}}} {{ToHitAC-10=[[ @{thac0-10} ]]}} {{ToHitAC-9=[[ @{thac0-9} ]]}} {{ToHitAC-8=[[ @{thac0-8} ]]}} {{ToHitAC-7=[[ @{thac0-7} ]]}} {{ToHitAC-6=[[ @{thac0-6} ]]}} {{ToHitAC-5=[[ @{thac0-5} ]]}} {{ToHitAC-4=[[ @{thac0-4} ]]}} {{ToHitAC-3=[[ @{thac0-3} ]]}} {{ToHitAC-2=[[ @{thac0-2} ]]}} {{ToHitAC-1=[[ @{thac0-1} ]]}} {{ToHitAC0=[[ @{thac00} ]]}} {{ToHitAC1=[[ @{thac01} ]]}} {{ToHitAC2=[[ @{thac02} ]]}} {{ToHitAC3=[[ @{thac03} ]]}} {{ToHitAC4=[[ @{thac04} ]]}} {{ToHitAC5=[[ @{thac05} ]]}} {{ToHitAC6=[[ @{thac06} ]]}} {{ToHitAC7=[[ @{thac07} ]]}} {{ToHitAC8=[[ @{thac08} ]]}} {{ToHitAC9=[[ @{thac09} ]]}} {{ToHitAC10=[[ @{thac010} ]] }}`;return t?l===2?p=g:o===0?(p=u,l=0):(p=m,l=1):r?(p=g,l=2):o===0?(p=u,l=0):(p=m,l=1),e[c]=p,e[s]=l,e};on("change:toggle_to_hit_table change:hide_to_hit_table",async n=>{let a=await y("weapon"),t=a.flatMap(l=>[`repeating_weapon_${l}_weapon_whisper_to_hit_select`,`repeating_weapon_${l}_weapon_whisper_to_hit`]),e=await w(["toggle_to_hit_table","hide_to_hit_table",...t]),o=0,r=a.map(l=>Be(e,l,o)),s=await Promise.all(r),c=Object.assign({},...s);await h(c,{silent:!0})});on("change:repeating_weapon:weapon_whisper_to_hit_select",async n=>{let a=n.sourceAttribute.split("_")[2],t=await w(["toggle_to_hit_table",`repeating_weapon_${a}_weapon_whisper_to_hit_select`,`repeating_weapon_${a}_weapon_whisper_to_hit`]),o=await Be(t,a,1);await h(o,{silent:!0})});on("change:weapon_proficiency_initial change:weapon_proficiency_added_per_level change:weapon_proficiency_penalty",async n=>{let a=await y("weapon"),t={},e=a.flatMap(s=>[`repeating_weapon_${s}_weapon_prof_flag`]),o=await w(["weapon_proficiency_penalty",...e]),r=i(o.weapon_proficiency_penalty);_.each(a,s=>{let c=i(o[`repeating_weapon_${s}_weapon_prof_flag`]);t[`repeating_weapon_${s}_weapon_prof`]=r,t[`repeating_weapon_${s}_weapon_prof_pen`]=c===0?"0":r}),await h(t,{silent:!0})});on("change:repeating_weapon:weapon_prof_flag",async n=>{let a=n.sourceAttribute.split("_")[2],t={},e=await w(["weapon_proficiency_penalty",`repeating_weapon_${a}_weapon_prof_flag`]),o=i(e.weapon_proficiency_penalty),r=i(e[`repeating_weapon_${a}_weapon_prof_flag`]);t[`repeating_weapon_${a}_weapon_prof`]=o,t[`repeating_weapon_${a}_weapon_prof_pen`]=r===0?"0":o,await h(t,{silent:!0})});on("change:backstab change:backstab_bonus change:toggle_thief_skills",async n=>{let a=await y("weapon"),t={},e=a.flatMap(l=>[`repeating_weapon_${l}_weapon_backstab_flag`]),o=await w(["backstab","backstab_bonus","toggle_thief_skills",...e]),r=i(o.toggle_thief_skills),s=i(o.backstab),c=i(o.backstab_bonus);_.each(a,l=>{let p=i(o[`repeating_weapon_${l}_weapon_backstab_flag`]);r===0&&(t[`repeating_weapon_${l}_weapon_backstab_var`]=p===0?0:`+${c}`,t[`repeating_weapon_${l}_weapon_backstab_bonus`]=p===0?0:c,t[`repeating_weapon_${l}_weapon_backstab`]=p===0?1:`x${s}`,t[`repeating_weapon_${l}_weapon_backstab_mult`]=p===0?1:s),r===1&&(t[`repeating_weapon_${l}_weapon_backstab_var`]=0,t[`repeating_weapon_${l}_weapon_backstab_bonus`]=0,t[`repeating_weapon_${l}_weapon_backstab`]=1,t[`repeating_weapon_${l}_weapon_backstab_mult`]=1)}),await h(t,{silent:!0})});on("change:repeating_weapon:weapon_backstab_flag",async n=>{let a=n.sourceAttribute.split("_")[2],t={},e=await w(["backstab","backstab_bonus","toggle_thief_skills",`repeating_weapon_${a}_weapon_backstab_flag`]),o=i(e.toggle_thief_skills),r=i(e.backstab),s=i(e.backstab_bonus),c=i(e[`repeating_weapon_${a}_weapon_backstab_flag`]);o===0&&(t[`repeating_weapon_${a}_weapon_backstab_var`]=c===0?0:`+${s}`,t[`repeating_weapon_${a}_weapon_backstab_bonus`]=c===0?0:s,t[`repeating_weapon_${a}_weapon_backstab`]=c===0?1:`x${r}`,t[`repeating_weapon_${a}_weapon_backstab_mult`]=c===0?1:r),o===1&&(t[`repeating_weapon_${a}_weapon_backstab_var`]=0,t[`repeating_weapon_${a}_weapon_backstab_bonus`]=0,t[`repeating_weapon_${a}_weapon_backstab`]=1,t[`repeating_weapon_${a}_weapon_backstab_mult`]=1),await h(t,{silent:!0})});on("change:repeating_weapon:weapon_dual",async n=>{let a=n.sourceAttribute.split("_")[2],t={},e=await w(["dual_pen_primary","dual_pen_secondary",`repeating_weapon_${a}_weapon_dual`]),o=i(e.dual_pen_primary),r=i(e.dual_pen_secondary),s=e[`repeating_weapon_${a}_weapon_dual`],c=0;s==="Normal"?c=0:s==="Primary"?c=o:s==="Secondary"&&(c=r);let l=Math.min(0,c);t[`repeating_weapon_${a}_weapon_dual_pen`]=l,await h(t,{silent:!0})});var zn=async()=>{let n=await y("weapon"),a={},t=n.flatMap(s=>[`repeating_weapon_${s}_weapon_critdamage_flag`,`repeating_weapon_${s}_weapon_critdamage_mult`]),e=await w(["dual_pen_primary","dual_pen_secondary",...t]),o=i(e.dual_pen_primary),r=i(e.dual_pen_secondary);_.each(n,s=>{let c=e[`repeating_weapon_${s}_weapon_dual`],l=0;c==="Primary"?l=o:c==="Secondary"&&(l=r);let p=Math.min(0,l);a[`repeating_weapon_${s}_weapon_dual_pen`]=p}),await h(a)};on("change:dual_pen_primary change:dual_pen_secondary change:dexterity",async n=>{let a=await w(["dexterity"]),t={},e=i(a.dexterity),o=0;e<6?o=Math.max(-3,e-6):e>=18?o=Math.min(5,Math.floor(e/3)-3):e>15&&(o=e-15);let r=Math.min(0,o-2),s=Math.min(0,o-4);t.dual_pen_primary=r,t.dual_pen_secondary=s,await h(t,{silent:!0}),await zn()});var Kn=async n=>{let a=[`repeating_weapon_${n}_weapon_range`,`repeating_weapon_${n}_weapon_range_short`,`repeating_weapon_${n}_weapon_range_medium`,`repeating_weapon_${n}_weapon_range_long`,`repeating_weapon_${n}_weapon_attack_type`,`repeating_weapon_${n}_weapon_range_error`],t=await w(a),e={},o=i(t[`repeating_weapon_${n}_weapon_attack_type`]);if(o===0||o===2)return;let r=t[`repeating_weapon_${n}_weapon_range`];r=r.replace(/'/g,""),r=r.replace(/"/g,"");let s=r.split("/").join(",").split(" ").join(",").split("-").join(",").split(","),c=Number(s[0]),l=Number(s[1]),p=Number(s[2]);s.length===1&&c>=0&&!l&&!p&&(l=c,p=c),Number.isNaN(c)?(e[`repeating_weapon_${n}_weapon_range_short`]=0,e[`repeating_weapon_${n}_weapon_range_error`]=r===""?1:0):e[`repeating_weapon_${n}_weapon_range_short`]=c,Number.isNaN(l)?(e[`repeating_weapon_${n}_weapon_range_medium`]=0,e[`repeating_weapon_${n}_weapon_range_error`]=r===""?1:0):e[`repeating_weapon_${n}_weapon_range_medium`]=l,Number.isNaN(p)?(e[`repeating_weapon_${n}_weapon_range_long`]=0,e[`repeating_weapon_${n}_weapon_range_error`]=r===""?1:0):e[`repeating_weapon_${n}_weapon_range_long`]=p,!Number.isNaN(c)&&!Number.isNaN(l)&&!Number.isNaN(p)&&(e[`repeating_weapon_${n}_weapon_range_error`]=1),await h(e,{silent:!0})};on("change:repeating_weapon:weapon_range change:repeating_weapon:weapon_attack_type",async n=>{let a=n.sourceAttribute.split("_")[2];await Kn(a)});on("change:repeating_weapon:weapon_attack_type",async n=>{let a=n.sourceAttribute.split("_")[2],t=await w([`repeating_weapon_${a}_weapon_attack_type`,`repeating_weapon_${a}_weapon_attack_type_flag`]),e={},o=i(t[`repeating_weapon_${a}_weapon_attack_type`]),r=i(t[`repeating_weapon_${a}_weapon_attack_type_flag`]);o!==r&&(e[`repeating_weapon_${a}_weapon_attack_type_flag`]=o),await h(e,{silent:!0})});var Te=async()=>{let n=await w(["hitpoints","hitpoints_max","sync_hp_flag","toggle_npc","hitpoints_1_class","hitpoints_2_class","hitpoints_3_class"]),a={},t=i(n.toggle_npc),e=i(n.sync_hp_flag);e=t?0:e;let o=i(n.hitpoints_max),r=Math.max(0,i(n.hitpoints_1_class)),s=Math.max(0,i(n.hitpoints_2_class)),c=Math.max(0,i(n.hitpoints_3_class)),l=r!==0?1:0,p=s!==0?1:0,g=c!==0?1:0,u=l+p+g,m=r+s+c,d=+u>1?O(m/u).toFixed(2):m,f=+(d%1).toFixed(2);a.hitpoints_class_total=m,a.hp_quotient=u,a.hitpoints_total=d,a.hitpoints_remainder_total=f,a.hitpoints_max=e?Math.round(d):o,await h(a,{silent:!0})};on("change:toggle_npc change:sync_hp_flag change:hitpoints change:hitpoints_max change:hitpoints_1_class change:hitpoints_2_class change:hitpoints_3_class",async n=>{await Te()});var F=async n=>{let a=await w([...de,"armor_rating_flag","armorbonus","armorbonus_inverted","armorbonus_toggle","armorclass","armorclass_magic","armorclass_mod","autocalc_ac","current_encumbrance_move","sync_ac_flag","toggle_npc"]);if(i(a.autocalc_ac)+n===0)return;let e={},o=i(a.armorclass),r=i(a.toggle_npc),s=i(a.sync_ac_flag);s=r?0:1;let c=i(a.armor_rating_flag),l=i(a.armorshield_mod)*-1,p=i(a.armorother_mod)*-1,g=i(a.armorother2_mod)*-1,u=i(a.armorother3_mod)*-1,m=i(a.armorother4_mod)*-1,d=i(a.armorother5_mod)*-1,f=i(a.armorother6_mod)*-1,k=i(a.armortype_magic)*-1,v=i(a.armortype2_magic)*-1,E=i(a.armorshield_magic)*-1,N=i(a.armorhelmet_magic)*-1,I=i(a.armorother_magic)*-1,C=i(a.armorother2_magic)*-1,Ue=i(a.armorother3_magic)*-1,je=i(a.armorother4_magic)*-1,We=i(a.armorother5_magic)*-1,Fe=i(a.armorother6_magic)*-1,Ge=i(a.unarmored_worn),be=i(a.armortype_worn),fe=i(a.armortype2_worn),J=i(a.armorshield_worn),dt=i(a.armorhelmet_worn),ee=i(a.armorother_worn),ae=i(a.armorother2_worn),te=i(a.armorother3_worn),ne=i(a.armorother4_worn),oe=i(a.armorother5_worn),re=i(a.armorother6_worn),yt=i(a.current_encumbrance_move),ze=i(a.armorbonus_toggle),R=i(a.armorbonus),Ke=0;yt===3&&R<0?(ze=0,R=0,Ke=1):R<0?R=i(a.armorbonus)*ze:R=i(a.armorbonus),e.encumbrance_flag=Ke;let Xe=i(a.unarmored_base,10),Qe=i(a.armortype_base),Ye=i(a.armortype2_base),Ze=i(a.armorshield_base),Je=i(a.armorother_base),ea=i(a.armorother2_base)>=0?0:-Math.abs(i(a.armorother2_base)),aa=i(a.armorother3_base)>=0?0:-Math.abs(i(a.armorother3_base)),ta=i(a.armorother4_base)>=0?0:-Math.abs(i(a.armorother4_base)),na=i(a.armorother5_base)>=0?0:-Math.abs(i(a.armorother5_base)),oa=i(a.armorother6_base)>=0?0:-Math.abs(i(a.armorother6_base)),ra=i(a.unarmored_ac),sa=i(a.armortype_ac),ca=i(a.armortype2_ac),ia=i(a.armorshield_ac),_a=i(a.armorother_ac),pa=i(a.armorother2_ac)>=0?0:-Math.abs(i(a.armorother2_ac)),la=i(a.armorother3_ac)>=0?0:-Math.abs(i(a.armorother3_ac)),ma=i(a.armorother4_ac)>=0?0:-Math.abs(i(a.armorother4_ac)),ha=i(a.armorother5_ac)>=0?0:-Math.abs(i(a.armorother5_ac)),ga=i(a.armorother6_ac)>=0?0:-Math.abs(i(a.armorother6_ac)),bt=be?Qe:10,ft=fe?Ye:10,$t=J?Ze:0,vt=ee?Je:10,qt=ae?ea:0,kt=te?aa:0,At=ne?ta:0,Mt=oe?na:0,xt=re?oa:0,Tt=Ge?Xe:10,St=be?sa:10,Nt=fe?ca:10,ua=J?ia:0,Ct=ee?_a:10,Dt=ae?pa:0,Ot=te?la:0,Et=ne?ma:0,It=oe?ha:0,Rt=re?ga:0,Ht=Ge?ra:10,se=J?l:0,ce=J?E:0,Pt=Math.min(Qe,Ye,Je,Xe)+Ze+ea+aa+ta+na+oa,Lt=Math.min(sa,ca,_a,ra)+(ia+pa+la+ma+ha+ga),wa=Math.min(bt,ft,vt,Tt)+($t+qt+kt+At+Mt+xt),$e=Math.min(St,Nt,Ct,Ht)+(Dt+Ot+Et+It+Rt),da=k+v+N+I+C+Ue+je+We+Fe+E,Q=be*k+fe*v+dt*N+ee*I+ae*C+te*Ue+ne*je+oe*We+re*Fe,ya=p+g+u+m+d+f+l,Y=ee*p+ae*g+te*u+ne*m+oe*d+re*f,ve=Y+Q,qe=$e+Y+Q,ba=1;R>0&&qe>=10&&(ba=0);let ke=qe+R*ba,G=ua+se+ce,Ae=ke+G;R>0&&G>=10&&(Ae=ke+R+G);let Bt=(-1*(Q+ce)<=0?"":"+")+-1*(Q+ce),Vt=(-1*da<=0?"":"+")+-1*da,Ut=(-1*(Y+se)<=0?"":"+")+-1*(Y+se),jt=(-1*ya<=0?"":"+")+-1*ya,Wt=(-1*R<=0?"":"+")+-1*R,Ft=(-1*ve<=0?"":"+")+-1*ve,Gt=(-1*G<=0?"":"+")+-1*G;e.armorclass_rating_used=wa,e.armorclass_rating=c===1?"-":wa,e.armorclass_rating_best=Pt,e.armorclass_base_used=$e+ua,e.armorclass_base=$e,e.armorclass_base_best=Lt,e.armorclass_magic=Q,e.armorclass_magic_with_shield=Bt,e.armorclass_magic_total=Vt,e.armorclass_mod=Y,e.armorclass_mod_with_shield=Ut,e.armorclass_mod_total=jt,e.armorclass_combined_mod_magic=ve,e.armorclass_combined_mod_magic_inverted=Ft,e.armorclass_rear=qe,e.armorbonus_inverted=Wt,e.armorclass_shieldless=ke,e.armorclass_shield_magic=ce,e.armorclass_shield_mod=se,e.armorclass_combined_shield_mod_magic=G,e.armorclass_combined_shield_mod_magic_inverted=Gt,e.armorclass_total=Ae,e.armorclass=s?Ae:o,await h(e,{silent:!0})};on("change:armor_details_show change:armor_rating_flag change:toggle_npc change:sync_ac_flag change:autocalc_ac change:unarmored change:armortype change:armortype2 change:armorshield change:armorhelmet change:armorother change:armorother2 change:armorother3 change:armorother4 change:armorother5 change:armorother6 change:armorclass_mod change:armorclass_magic change:armorbonus change:armorbonus_toggle change:unarmored_worn change:armortype_worn change:armortype2_worn change:armorshield_worn change:armorhelmet_worn change:armorother_worn change:armorother2_worn change:armorother3_worn change:armorother4_worn change:armorother5_worn change:armorother6_worn change:armortype_base change:armortype2_base change:armorshield_base change:armorother_base change:armorother2_base change:armorother3_base change:armorother4_base change:armorother5_base change:armorother6_base change:unarmored_base change:armortype_ac change:armortype2_ac change:armorshield_ac change:armorhelmet_ac change:armorother_ac change:armorother2_ac change:armorother3_ac change:armorother4_ac change:armorother5_ac change:armorother6_ac change:unarmored_ac change:armorshield_mod change:armorother_mod change:armorother2_mod change:armorother3_mod change:armorother4_mod change:armorother5_mod change:armorother6_mod change:armortype_magic change:armortype2_magic change:armorshield_magic change:armorhelmet_magic change:armorother_magic change:armorother2_magic change:armorother3_magic change:armorother4_magic change:armorother5_magic change:armorother6_magic clicked:calcac",async n=>{let t=n.triggerName==="clicked:calcac"?1:0;await F(t)});var Ve=async(n,a)=>{let t;if(a==null){let m=await w(["toggle_auto_damage"]);t=i(m.toggle_auto_damage)}else t=a;let e={},o=`Damage vs S/M [[ (@{repeating_weapon_${n}_weapon_damagesmallmedium}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,r=` vs LG [[ (@{repeating_weapon_${n}_weapon_damagelarge}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,s=`Damage vs S/M [[ (@{repeating_weapon_${n}_weapon_damagesmallmedium}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,c=` vs LG [[ (@{repeating_weapon_${n}_weapon_damagelarge}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,l=`Damage vs S/M [[ (@{repeating_weapon_${n}_weapon_critdamagesmallmedium}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,p=` vs LG [[ (@{repeating_weapon_${n}_weapon_critdamagelarge}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,g=`Damage vs S/M [[ (@{repeating_weapon_${n}_weapon_critdamagesmallmedium}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`,u=` vs LG [[ (@{repeating_weapon_${n}_weapon_critdamagelarge}) * @{repeating_weapon_${n}_weapon_backstab_mult}[MULT] + ( @{repeating_weapon_${n}_weapon_attackdmgbonus}[DMG_BON] ) + ( @{repeating_weapon_${n}_weapon_magicbonus}[MAG_BON] ) + ( ?{Damage Modifier?|0}[MISC_MOD] ) ]]`;return t===0?(e[`repeating_weapon_${n}_weapon_damagesmallmedium_chat_menu`]=`[Roll Damage](~@{character_id}|repeating_weapon_${n}_weapon_damagesmallmedium_roll)`,e[`repeating_weapon_${n}_weapon_damagelarge_chat_menu`]=`[Roll Damage vs LG](~@{character_id}|repeating_weapon_${n}_weapon_damagelarge_roll)`,e[`repeating_weapon_${n}_weapon_damagesmallmedium_npc_chat_menu`]=`[Damage](~@{character_id}|repeating_weapon_${n}_weapon_damagesmallmedium_npc_roll)`,e[`repeating_weapon_${n}_weapon_damagelarge_npc_chat_menu`]=`[Damage vs LG](~@{character_id}|repeating_weapon_${n}_weapon_damagelarge_npc_roll)`,e[`repeating_weapon_${n}_weapon_critdamagesmallmedium_chat_menu`]=`[Roll Damage](~@{character_id}|repeating_weapon_${n}_weapon_critdamagesmallmedium_roll)`,e[`repeating_weapon_${n}_weapon_critdamagelarge_chat_menu`]=`[Roll Damage vs LG](~@{character_id}|repeating_weapon_${n}_weapon_critdamagelarge_roll)`,e[`repeating_weapon_${n}_weapon_critdamagesmallmedium_npc_chat_menu`]=`[Damage](~@{character_id}|repeating_weapon_${n}_weapon_critdamagesmallmedium_npc_roll)`,e[`repeating_weapon_${n}_weapon_critdamagelarge_npc_chat_menu`]=`[Damage vs LG](~@{character_id}|repeating_weapon_${n}_weapon_critdamagelarge_npc_roll)`):(e[`repeating_weapon_${n}_weapon_damagesmallmedium_chat_menu`]=o,e[`repeating_weapon_${n}_weapon_damagelarge_chat_menu`]=r,e[`repeating_weapon_${n}_weapon_damagesmallmedium_npc_chat_menu`]=s,e[`repeating_weapon_${n}_weapon_damagelarge_npc_chat_menu`]=c,e[`repeating_weapon_${n}_weapon_critdamagesmallmedium_chat_menu`]=l,e[`repeating_weapon_${n}_weapon_critdamagelarge_chat_menu`]=p,e[`repeating_weapon_${n}_weapon_critdamagesmallmedium_npc_chat_menu`]=g,e[`repeating_weapon_${n}_weapon_critdamagelarge_npc_chat_menu`]=u),e};on("change:repeating_weapon:weapon_name change:repeating_weapon:weapon_damagesmallmedium change:repeating_weapon:weapon_damagelarge change:repeating_weapon:weapon_critdamagesmallmedium change:repeating_weapon:weapon_critdamagelarge change:repeating_weapon:weapon_attackdmgbonus change:repeating_weapon:weapon_critdamage_flag",async n=>{let a=n.sourceAttribute.split("_")[2],t=await Ve(a);await h(t,{silent:!0})});on("change:toggle_critdamage change:toggle_auto_damage",async n=>{let a=await y("weapon"),t=a.map(l=>`repeating_weapon_${l}_weapon_critdamage_flag`),e=await w(["toggle_auto_damage",...t]),o={},r=i(e.toggle_auto_damage),s=a.map(async l=>{let p=`repeating_weapon_${l}_weapon_critdamage_flag`,g=i(e[p]);return o[p]=1-g,await Ve(l,r)});(await Promise.all(s)).forEach(l=>{Object.assign(o,l)}),await h(o,{silent:!0})});var Ua=["weapon_use","weapon_attack_type","weapon_attack_type_flag","weapon_critdamage_flag","weapon_prof_pen","weapon_whisper_to_hit_select","weapon_dual_pen","weapon_backstab_var","weapon_tohitbonus","weapon_magicbonus","weapon_prof","weapon_backstab","weapon_backstab_bonus","weapon_backstab_mult","weapon_attackdmgbonus","weapon_num_attacks","weapon_quantity","weapon_ammo","weapon_ammo_max","weapon_weight","weapon_cost","weapon_range_short","weapon_range_medium","weapon_range_long","weapon_thac_adj0","weapon_thac_adj1","weapon_thac_adj2","weapon_thac_adj3","weapon_thac_adj4","weapon_thac_adj5","weapon_thac_adj6","weapon_thac_adj7","weapon_thac_adj8","weapon_thac_adj9","weapon_thac_adj10"],Xn=["weapon_range_error","weapon_dual","weapon_tohitacadj","weapon_whisper_to_hit","weapon_length","weapon_space","weapon_speed","weapon_misc","weapon_damagesmallmedium_chat_menu","weapon_damagelarge_chat_menu","weapon_damagesmallmedium_npc_chat_menu","weapon_damagelarge_npc_chat_menu","weapon_critdamagesmallmedium_chat_menu","weapon_critdamagelarge_chat_menu","weapon_critdamagesmallmedium_npc_chat_menu","weapon_critdamagelarge_npc_chat_menu","weapon_damage_chat_menu_npc"],qa=[...Ua,...Xn],ja=["equipment_type","equipment_magical","equipment_show_type","equipment_current","equipment_current_max","equipment_carried_select","equipment_carried","equipment_quantity","equipment_quantity_max","equipment_weight","equipment_cost","equipment_armor_type","equipment_armor_worn","equipment_armor_ac","equipment_armor_base","equipment_armor_magic","equipment_armor_mod","equipment_armor_bulk","equipment_sync_armor_flag","equipment_weapon_type"],Qn=["equipment_macro_text","equipment_weapon_speed","equipment_weapon_misc","equipment_weapon_length","equipment_weapon_space","equipment_weapon_damagesmallmedium","equipment_weapon_damagelarge","equipment_weapon_attackdmgtype","equipment_weapon_rateoffire","equipment_weapon_range"],ka=[...ja,...Qn],Wa=["nwp_slots","nwp_modifier"],Yn=["nwp_attribute","nwp_attribute_value","nwp_macro_text"],Aa=[...Wa,...Yn],Zn=async n=>{let a=await w(["default_attack_macro"]),t={},e=a.default_attack_macro||ue;t[`repeating_weapon_${n}_weapon_macro_text`]=e,await h(t,{silent:!0})},Fa=async n=>{let a=["toggle_to_hit_table","hide_to_hit_table"],t=qa.map(l=>X("weapon",n,l)),e=[...a,...t],o=await w(e),r=i(o.toggle_to_hit_table),s=i(o.hide_to_hit_table),c=qa.reduce((l,p)=>{let g=X("weapon",n,p);return rawValue=o[g],Ua.includes(p)&&(l[g]=+rawValue||0),p==="weapon_whisper_to_hit_select"?s?l[g]=2:l[g]=r?1:0:l[g]=rawValue||"",l},{});await h(c)},Jn=async n=>{let a=["equipment_tabs_type","equipment_tabs_carry"],t=ka.map(p=>X("equipment",n,p)),e=[...a,...t],o=await w(e),r=i(o.equipment_tabs_type),s=`repeating_equipment_${n}_equipment_type`,c=i(o[s]),l=ka.reduce((p,g)=>{let u=X("equipment",n,g),m=o[u];return ja.includes(g)?g==="equipment_type"?p[u]=r!==-1?r:c:g==="equipment_magical"?p[u]=c===3||r===3?1:+m||0:p[u]=+m||0:p[u]=m||"",p},{});await h(l,{silent:!0})},eo=async n=>{let a=Aa.map(o=>X("nonweaponproficiencies",n,o)),t=await w(a),e=Aa.reduce((o,r)=>{let s=X("nonweaponproficiencies",n,r),c=t[s];return Wa.includes(r)?o[s]=+c||0:o[s]=c||"",o},{});await h(e,{silent:!0})};on("change:repeating_weapon:weapon_name change:repeating_equipment:equipment_item change:repeating_nonweaponproficiencies:nwp_name",async n=>{if(n.sourceType!=="player"||n.previousValue!==void 0)return;let a=n.sourceAttribute.split("_")[2];n.sourceAttribute.includes("equipment_item")&&await Jn(a),n.sourceAttribute.includes("weapon_name")&&(await Fa(a),await Zn(a)),n.sourceAttribute.includes("nwp_name")&&await eo(a)});on("sheet:opened",async n=>{let a={},t=await y("weapon"),e=await y("ability"),o=await y("nonweaponproficiencies"),r=await y("equipment"),s=await y("spells");if(t.length===0){let c=H();a[`repeating_weapon_${c}_weapon_value`]=1}if(e.length===0){let c=H();a[`repeating_ability_${c}_ability_value`]=1}if(o.length===0){let c=H();a[`repeating_nonweaponproficiencies_${c}_nwp_value`]=1}if(r.length===0){let c=H();a[`repeating_equipment_${c}_equipment_value`]=1}if(s.length===0){let c=H();a[`repeating_spells_${c}_spell_value`]=1}await h(a,{silent:!0})});on("change:default_attack_macro",async n=>{if((await w(["default_attack_macro"])).default_attack_macro!=="")return;let e={};e.default_attack_macro=ue,await h(e,{silent:!0})});on("change:repeating_weapon:weapon_macro_text",async n=>{let a=n.sourceAttribute.split("_")[2],t=await w([`repeating_weapon_${a}_weapon_macro_text`,"default_attack_macro"]);if(t[`repeating_weapon_${a}_weapon_macro_text`]!=="")return;let o={},r=t.default_attack_macro||ue;o[`repeating_weapon_${a}_weapon_macro_text`]=r,await h(o,{silent:!0})});on("clicked:updateweaponsmacros",async n=>{let a={},e=(await w(["default_attack_macro"])).default_attack_macro||ue,o=await y("weapon");_.each(o,r=>{a[`repeating_weapon_${r}_weapon_macro_text`]=e}),await h(a,{silent:!0})});on("clicked:resetallmacros clicked:resetequipmentmacros clicked:resetweaponsmacros clicked:resetabilitiesmacros clicked:resetnwpsmacros clicked:resetspellsmacros",async n=>{let t=n.triggerName.match(/clicked:(\w+)/),e=t?t[1]:null,o={};if(e==="resetallmacros"){o.surprise_macro_text="",o.surprise_others_macro_text="",o.init_macro_text="";let r=await y("equipment");_.each(r,g=>{o[`repeating_equipment_${g}_equipment_macro_text`]=""});let s=await y("weapon");_.each(s,g=>{o[`repeating_weapon_${g}_weapon_macro_text`]=""});let c=await y("ability");_.each(c,g=>{o[`repeating_ability_${g}_ability_macro_text`]=""});let l=await y("nonweaponproficiencies");_.each(l,g=>{o[`repeating_nonweaponproficiencies_${g}_nwp_macro_text`]=""});let p=await y("spells");_.each(p,g=>{o[`repeating_spells_${g}_spell_macro_text`]=""})}if(e==="resetequipmentmacros"){let r=await y("equipment");_.each(r,s=>{o[`repeating_equipment_${s}_equipment_macro_text`]=""})}if(e==="resetweaponsmacros"){let r=await y("weapon");_.each(r,s=>{o[`repeating_weapon_${s}_weapon_macro_text`]=""})}if(e==="resetabilitiesmacros"){let r=await y("ability");_.each(r,s=>{o[`repeating_ability_${s}_ability_macro_text`]=""})}if(e==="resetnwpsmacros"){let r=await y("nonweaponproficiencies");_.each(r,s=>{o[`repeating_nonweaponproficiencies_${s}_nwp_macro_text`]=""})}if(e==="resetspellsmacros"){let r=await y("spells");_.each(r,s=>{o[`repeating_spells_${s}_spell_macro_text`]=""})}h(o,{silent:!0})});var Ga=async n=>{let a=await w(["pickpockets","pickpockets_base","pickpockets_racial_mod","pickpockets_ability_mod","pickpockets_magic"]),t={},e=i(a.pickpockets_base),o=i(a.pickpockets_racial_mod),r=i(a.pickpockets_ability_mod),s=i(a.pickpockets_magic),c=i(a.pickpockets),l=Math.max(0,e+o+r+s);n===1&&c>=0&&l===0?t.pickpockets_base=c:t.pickpockets=l,h(t,{silent:!0})},za=async n=>{let a=await w(["openlocks","openlocks_base","openlocks_racial_mod","openlocks_ability_mod","openlocks_magic"]),t={},e=i(a.openlocks_base),o=i(a.openlocks_racial_mod),r=i(a.openlocks_ability_mod),s=i(a.openlocks_magic),c=i(a.openlocks),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.openlocks_base=c:t.openlocks=l,h(t,{silent:!0})},Ka=async n=>{let a=await w(["findtraps","findtraps_base","findtraps_racial_mod","findtraps_ability_mod","findtraps_magic"]),t={},e=i(a.findtraps_base),o=i(a.findtraps_racial_mod),r=i(a.findtraps_ability_mod),s=i(a.findtraps_magic),c=i(a.findtraps),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.findtraps_base=c:t.findtraps=l,h(t,{silent:!0})},Xa=async n=>{let a=await w(["movequietly","movequietly_base","movequietly_racial_mod","movequietly_ability_mod","movequietly_magic"]),t={},e=i(a.movequietly_base),o=i(a.movequietly_racial_mod),r=i(a.movequietly_ability_mod),s=i(a.movequietly_magic),c=i(a.movequietly),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.movequietly_base=c:t.movequietly=l,h(t,{silent:!0})},Qa=async n=>{let a=await w(["hideinshadows","hideinshadows_base","hideinshadows_racial_mod","hideinshadows_ability_mod","hideinshadows_magic"]),t={},e=i(a.hideinshadows_base),o=i(a.hideinshadows_racial_mod),r=i(a.hideinshadows_ability_mod),s=i(a.hideinshadows_magic),c=i(a.hideinshadows),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.hideinshadows_base=c:t.hideinshadows=l,h(t,{silent:!0})},Ya=async n=>{let a=await w(["hearnoise","hearnoise_base","hearnoise_racial_mod","hearnoise_ability_mod","hearnoise_magic"]),t={},e=i(a.hearnoise_base),o=i(a.hearnoise_racial_mod),r=i(a.hearnoise_ability_mod),s=i(a.hearnoise_magic),c=i(a.hearnoise),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.hearnoise_base=c:t.hearnoise=l,h(t,{silent:!0})},Za=async n=>{let a=await w(["climbwalls","climbwalls_base","climbwalls_racial_mod","climbwalls_ability_mod","climbwalls_magic"]),t={},e=i(a.climbwalls_base);e=e>=99.1?e.toFixed(1):Math.floor(e);let o=i(a.climbwalls_racial_mod),r=i(a.climbwalls_ability_mod),s=i(a.climbwalls_magic),c=i(a.climbwalls),l=Math.max(0,Math.min(100,e+o+r+s)),p="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Climb Walls}} {{roll_low=[[ 1d100 ]]%}} {{roll_target=[[ @{climbwalls} ]]%}}",g="@{whisper_pc} &{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Climb Walls}} {{roll_low=[[ 1d100 + [[1d10/10]] ]]%}} {{roll_target=[[ @{climbwalls} ]]%}}";n===1?c>=0&&l===0?t.climbwalls_base=c:t.climbwalls=l:(t.climbwalls=l,t.climbwalls_macro_text=l>=99.1?g:p),h(t,{silent:!0})},Ja=async n=>{let a=await w(["readlanguages","readlanguages_base","readlanguages_racial_mod","readlanguages_ability_mod","readlanguages_magic"]),t={},e=i(a.readlanguages_base),o=i(a.readlanguages_racial_mod),r=i(a.readlanguages_ability_mod),s=i(a.readlanguages_magic),c=i(a.readlanguages),l=Math.max(0,Math.min(100,e+o+r+s));n===1&&c>=0&&l===0?t.readlanguages_base=c:t.readlanguages=l,h(t,{silent:!0})},et=async()=>{let n=await w(["thiefmisc","thiefmisc_base","thiefmisc_racial_mod","thiefmisc_ability_mod","thiefmisc_magic"]),a={},t=i(n.thiefmisc_base),e=i(n.thiefmisc_racial_mod),o=i(n.thiefmisc_ability_mod),r=i(n.thiefmisc_magic),s=Math.max(0,Math.min(100,t+e+o+r));a.thiefmisc=s,h(a,{silent:!0})},at=async()=>{let n=await w(["thiefmisc1","thiefmisc1_base","thiefmisc1_racial_mod","thiefmisc1_ability_mod","thiefmisc1_magic"]),a={},t=i(n.thiefmisc1_base),e=i(n.thiefmisc1_racial_mod),o=i(n.thiefmisc1_ability_mod),r=i(n.thiefmisc1_magic),s=Math.max(0,Math.min(100,t+e+o+r));a.thiefmisc1=s,h(a,{silent:!0})},tt=async()=>{let n=await w(["thiefmisc2","thiefmisc2_base","thiefmisc2_racial_mod","thiefmisc2_ability_mod","thiefmisc2_magic"]),a={},t=i(n.thiefmisc2_base),e=i(n.thiefmisc2_racial_mod),o=i(n.thiefmisc2_ability_mod),r=i(n.thiefmisc2_magic),s=Math.max(0,Math.min(100,t+e+o+r));a.thiefmisc2=s,h(a,{silent:!0})};on("change:pickpockets_base change:pickpockets_racial_mod change:pickpockets_ability_mod change:pickpockets_magic",async n=>{await Ga()});on("change:openlocks_base change:openlocks_racial_mod change:openlocks_ability_mod change:openlocks_magic",async n=>{await za()});on("change:findtraps_base change:findtraps_racial_mod change:findtraps_ability_mod change:findtraps_magic",async n=>{await Ka()});on("change:movequietly_base change:movequietly_racial_mod change:movequietly_ability_mod change:movequietly_magic",async n=>{await Xa()});on("change:hideinshadows_base change:hideinshadows_racial_mod change:hideinshadows_ability_mod change:hideinshadows_magic",async n=>{await Qa()});on("change:hearnoise_base change:hearnoise_racial_mod change:hearnoise_ability_mod change:hearnoise_magic",async n=>{await Ya()});on("change:climbwalls_base change:climbwalls_racial_mod change:climbwalls_ability_mod change:climbwalls_magic",async n=>{await Za()});on("change:readlanguages_base change:readlanguages_racial_mod change:readlanguages_ability_mod change:readlanguages_magic",async n=>{await Ja()});on("change:thiefmisc_base change:thiefmisc_racial_mod change:thiefmisc_ability_mod change:thiefmisc_magic",async n=>{await et()});on("change:thiefmisc1_base change:thiefmisc1_racial_mod change:thiefmisc1_ability_mod change:thiefmisc1_magic",async n=>{await at()});on("change:thiefmisc2_base change:thiefmisc2_racial_mod change:thiefmisc2_ability_mod change:thiefmisc2_magic",async n=>{await tt()});on("change:thief_level change:autofill_thief change:sync_thief_class change:thief_class_selected change:class change:secondclass change:thirdclass change:level change:level_2 change:level_3",async n=>{let a=await w(["thief_level","autofill_thief","sync_thief_class","thief_class_selected","class","secondclass","thirdclass","level","level_2","level_3"]);if(!i(a.autofill_thief))return;let e={},o=["pickpockets_base","openlocks_base","findtraps_base","movequietly_base","hideinshadows_base","hearnoise_base","climbwalls_base","readlanguages_base"],r={0:[0,0,0,0,0,0,0,0],1:[30,25,20,15,10,10,85,0],2:[35,29,25,21,15,10,86,0],3:[40,33,30,27,20,15,87,0],4:[45,37,35,33,25,15,88,20],5:[50,42,40,40,31,20,90,25],6:[55,47,45,47,37,20,92,30],7:[60,52,50,55,43,25,94,35],8:[65,57,55,62,49,25,96,40],9:[70,62,60,70,56,30,98,45],10:[80,67,65,78,63,30,99,50],11:[90,72,70,86,70,35,99.1,55],12:[100,77,75,94,77,35,99.2,60],13:[105,82,80,99,85,40,99.3,65],14:[110,87,85,99,93,40,99.4,70],15:[115,92,90,99,99,50,99.5,75],16:[125,97,95,99,99,50,99.6,80],17:[125,99,99,99,99,55,99.7,80]},s=i(a.sync_thief_class),c=i(a.thief_class_selected),l=i(a.thief_level);if(s&&c>=1&&c<=3){let u=[a.class,a.secondclass,a.thirdclass],m=[a.level,a.level_2,a.level_3],d=c-1,f=(u[d]||"").trim(),k=+m[d]||0,v=await le(f);l=k,e.thief_level=v===4?l:0}let p=Math.min(Math.max(l,0),17),g=r[p];o.forEach((u,m)=>{e[u]=g[m]}),await h(e,{silent:!0})});var nt=async n=>{let a=await w(["saveparalysispoisondeath","saveparalysispoisondeath_base","saveparalysispoisondeath_racial_mod","saveparalysispoisondeath_ability_mod","saveparalysispoisondeath_misc_mod","saveparalysispoisondeath_temp_mod"]),t={},e=i(a.saveparalysispoisondeath_base),o=i(a.saveparalysispoisondeath_racial_mod),r=i(a.saveparalysispoisondeath_ability_mod),s=i(a.saveparalysispoisondeath_misc_mod),c=i(a.saveparalysispoisondeath_temp_mod),l=i(a.saveparalysispoisondeath),p=e+o+r+s+c;n===1&&l<=20&&p===20?t.saveparalysispoisondeath_base=l:t.saveparalysispoisondeath=p,await h(t,{silent:!0})},ot=async n=>{let a=await w(["savepetrificationpolymorph","savepetrificationpolymorph_base","savepetrificationpolymorph_racial_mod","savepetrificationpolymorph_ability_mod","savepetrificationpolymorph_misc_mod","savepetrificationpolymorph_temp_mod"]),t={},e=i(a.savepetrificationpolymorph_base),o=i(a.savepetrificationpolymorph_racial_mod),r=i(a.savepetrificationpolymorph_ability_mod),s=i(a.savepetrificationpolymorph_misc_mod),c=i(a.savepetrificationpolymorph_temp_mod),l=i(a.savepetrificationpolymorph),p=e+o+r+s+c;n===1&&l<=20&&p===20?t.savepetrificationpolymorph_base=l:t.savepetrificationpolymorph=p,await h(t,{silent:!0})},rt=async n=>{let a=await w(["saverodsstaveswands","saverodsstaveswands_base","saverodsstaveswands_racial_mod","saverodsstaveswands_ability_mod","saverodsstaveswands_misc_mod","saverodsstaveswands_temp_mod"]),t={},e=i(a.saverodsstaveswands_base),o=i(a.saverodsstaveswands_racial_mod),r=i(a.saverodsstaveswands_ability_mod),s=i(a.saverodsstaveswands_misc_mod),c=i(a.saverodsstaveswands_temp_mod),l=i(a.saverodsstaveswands),p=e+o+r+s+c;n===1&&l<=20&&p===20?t.saverodsstaveswands_base=l:t.saverodsstaveswands=p,await h(t,{silent:!0})},st=async n=>{let a=await w(["savebreathweapons","savebreathweapons_base","savebreathweapons_racial_mod","savebreathweapons_ability_mod","savebreathweapons_misc_mod","savebreathweapons_temp_mod"]),t={},e=i(a.savebreathweapons_base),o=i(a.savebreathweapons_racial_mod),r=i(a.savebreathweapons_ability_mod),s=i(a.savebreathweapons_misc_mod),c=i(a.savebreathweapons_temp_mod),l=i(a.savebreathweapons),p=e+o+r+s+c;n===1&&l<=20&&p===20?t.savebreathweapons_base=l:t.savebreathweapons=p,await h(t,{silent:!0})},ct=async n=>{let a=await w(["savespells","savespells_base","savespells_racial_mod","savespells_ability_mod","savespells_misc_mod","savespells_temp_mod"]),t={},e=i(a.savespells_base),o=i(a.savespells_racial_mod),r=i(a.savespells_ability_mod),s=i(a.savespells_misc_mod),c=i(a.savespells_temp_mod),l=i(a.savespells),p=e+o+r+s+c;n===1&&l<=20&&p===20?t.savespells_base=l:t.savespells=p,await h(t,{silent:!0})},ao=async()=>{let n=await w(["savemisc","savemisc_base","savemisc_racial_mod","savemisc_ability_mod","savemisc_misc_mod","savemisc_temp_mod"]),a={},t=i(n.savemisc_base),e=i(n.savemisc_racial_mod),o=i(n.savemisc_ability_mod),r=i(n.savemisc_misc_mod),s=i(n.savemisc_temp_mod),c=t+e+o+r+s;a.savemisc=c,await h(a,{silent:!0})},to=async()=>{let n=await w(["savemisc1","savemisc1_base","savemisc1_racial_mod","savemisc1_ability_mod","savemisc1_misc_mod","savemisc1_temp_mod"]),a={},t=i(n.savemisc1_base),e=i(n.savemisc1_racial_mod),o=i(n.savemisc1_ability_mod),r=i(n.savemisc1_misc_mod),s=i(n.savemisc1_temp_mod),c=t+e+o+r+s;a.savemisc1=c,await h(a,{silent:!0})},no=async()=>{let n=await w(["savemisc2","savemisc2_base","savemisc2_racial_mod","savemisc2_ability_mod","savemisc2_misc_mod","savemisc2_temp_mod"]),a={},t=i(n.savemisc2_base),e=i(n.savemisc2_racial_mod),o=i(n.savemisc2_ability_mod),r=i(n.savemisc2_misc_mod),s=i(n.savemisc2_temp_mod),c=t+e+o+r+s;a.savemisc2=c,await h(a,{silent:!0})};on("change:saveparalysispoisondeath_base change:saveparalysispoisondeath_racial_mod change:saveparalysispoisondeath_ability_mod change:saveparalysispoisondeath_misc_mod change:saveparalysispoisondeath_temp_mod",async n=>{await nt()});on("change:savepetrificationpolymorph_base change:savepetrificationpolymorph_racial_mod change:savepetrificationpolymorph_ability_mod change:savepetrificationpolymorph_misc_mod change:savepetrificationpolymorph_temp_mod",async n=>{await ot()});on("change:saverodsstaveswands_base change:saverodsstaveswands_racial_mod change:saverodsstaveswands_ability_mod change:saverodsstaveswands_misc_mod change:saverodsstaveswands_temp_mod",async n=>{await rt()});on("change:savebreathweapons_base change:savebreathweapons_racial_mod change:savebreathweapons_ability_mod change:savebreathweapons_misc_mod change:savebreathweapons_temp_mod",async n=>{await st()});on("change:savespells_base change:savespells_racial_mod change:savespells_ability_mod change:savespells_misc_mod change:savespells_temp_mod",async n=>{await ct()});on("change:savemisc_base change:savemisc_racial_mod change:savemisc_ability_mod change:savemisc_misc_mod change:savemisc_temp_mod",async n=>{await ao()});on("change:savemisc1_base change:savemisc1_racial_mod change:savemisc1_ability_mod change:savemisc1_misc_mod change:savemisc1_temp_mod",async n=>{await to()});on("change:savemisc2_base change:savemisc2_racial_mod change:savemisc2_ability_mod change:savemisc2_misc_mod change:savemisc2_temp_mod",async n=>{await no()});on("change:saves_class change:saves_level change:autofill_saves",async n=>{let a=await w(["saves_class","saves_level","autofill_saves"]);if(!i(a.autofill_saves))return;let e=i(a.saves_class);if(!e)return;let o=["saveparalysispoisondeath_base","savepetrificationpolymorph_base","saverodsstaveswands_base","savebreathweapons_base","savespells_base"],r={assassin:[{lvl:5,s:[13,12,14,16,15]},{lvl:9,s:[12,11,12,15,13]},{lvl:13,s:[11,10,10,14,11]},{lvl:16,s:[10,9,8,13,9]},{lvl:99,s:[10,9,8,13,9]}],cleric:[{lvl:4,s:[10,13,14,16,15]},{lvl:7,s:[9,12,13,15,14]},{lvl:10,s:[7,10,11,13,12]},{lvl:13,s:[6,9,10,12,11]},{lvl:16,s:[5,8,9,11,10]},{lvl:19,s:[4,7,8,10,9]},{lvl:99,s:[2,5,6,8,7]}],druid:[{lvl:4,s:[10,13,14,16,15]},{lvl:7,s:[9,12,13,15,14]},{lvl:10,s:[7,10,11,13,12]},{lvl:13,s:[6,9,10,12,11]},{lvl:15,s:[5,8,9,11,10]},{lvl:99,s:[5,8,9,11,10]}],fighter:[{lvl:1,s:[16,17,18,20,19]},{lvl:3,s:[14,15,16,17,17]},{lvl:5,s:[13,14,15,16,16]},{lvl:7,s:[11,12,13,13,14]},{lvl:9,s:[10,11,12,12,13]},{lvl:11,s:[8,9,10,9,11]},{lvl:13,s:[7,8,9,8,10]},{lvl:15,s:[5,6,7,5,8]},{lvl:17,s:[4,5,6,4,7]},{lvl:99,s:[3,4,5,4,6]}],magicuser:[{lvl:6,s:[14,13,11,15,12]},{lvl:11,s:[13,11,9,13,10]},{lvl:16,s:[11,9,7,11,8]},{lvl:21,s:[10,7,5,9,6]},{lvl:99,s:[8,5,3,7,4]}],thief:[{lvl:5,s:[13,12,14,16,15]},{lvl:9,s:[12,11,12,15,13]},{lvl:13,s:[11,10,10,14,11]},{lvl:17,s:[10,9,8,13,9]},{lvl:21,s:[9,8,6,12,7]},{lvl:99,s:[8,7,4,11,5]}]},c={1:r.cleric,2:r.druid,3:r.fighter,4:r.magicuser,5:r.thief,6:r.thief,7:r.assassin,8:r.fighter}[e];if(!c)return;let l=i(a.saves_level),p=c.find(u=>l<u.lvl)||c[c.length-1],g={};o.forEach((u,m)=>{g[u]=p.s[m]}),await h(g)});on("change:matrix_class",async n=>{let a=await w(["matrix_class"]),t={},e=i(a.matrix_class);t.toggle_matrixhd=e===5?1:0,await h(t,{silent:!0})});var le=async n=>{let a=n.trim().toLowerCase();return/cleric|druid|monk/.test(a)?1:/fighter|paladin|ranger|bard|cavalier|barbarian/.test(a)?2:/magic-user|illusionist|magic|mage|wizard/.test(a)?3:/thief|assassin|rogue|thief-acrobat|acrobat/.test(a)?4:99},it=async n=>{let a=await w(["thac00","autofill_matrix"]);if(!i(a.autofill_matrix)||i(a.matrix_level)===0&&n===99)return;let o={},r=i(a.thac00);o["thac0-10"]=r+10,o["thac0-9"]=r+9,o["thac0-8"]=r+8,o["thac0-7"]=r+7,o["thac0-6"]=r+6,o["thac0-5"]=r+5,o["thac0-4"]=r+4,o["thac0-3"]=r+3,o["thac0-2"]=r+2,o["thac0-1"]=r+1,o.thac01=r-1,o.thac02=r-2,o.thac03=r-3,o.thac04=r-4,o.thac05=r-5,o.thac06=r-6,o.thac07=r-7,o.thac08=r-8,o.thac09=r-9,o.thac010=r-10,await h(o,{silent:!0})};on("change:matrix_class change:matrix_level change:matrix_hitdice change:autofill_matrix change:sync_matrix_class change:toggle_fighter5 change:class_selected change:class change:secondclass change:thirdclass change:level change:level_2 change:level_3",async n=>{let a=await w(["matrix_class","matrix_level","matrix_hitdice","autofill_matrix","toggle_fighter5","sync_matrix_class","class_selected","class","secondclass","thirdclass","level","level_2","level_3"]);if(!i(a.autofill_matrix))return;let e={},o=i(a.sync_matrix_class),r=i(a.class_selected),s=i(a.matrix_level),c=i(a.matrix_class),l=(a.class||"").trim(),p=(a.secondclass||"").trim(),g=(a.thirdclass||"").trim(),u=i(a.matrix_hitdice),m=i(a.toggle_fighter5);o&&(r===1&&(c=await le(l),s=i(a.level),e.matrix_level=s,e.matrix_class=c),r===2&&(c=await le(p),s=i(a.level_2),e.matrix_level=s,e.matrix_class=c),r===3&&(c=await le(g),s=i(a.level_3),e.matrix_level=s,e.matrix_class=c)),c!==0&&(c===1&&(s===0||(s<4?(e["thac-10"]=25,e["thac-9"]=24,e["thac-8"]=23,e["thac-7"]=22,e["thac-6"]=21,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=19,e.thac2=18,e.thac3=17,e.thac4=16,e.thac5=15,e.thac6=14,e.thac7=13,e.thac8=12,e.thac9=11,e.thac10=10):s<7?(e["thac-10"]=23,e["thac-9"]=22,e["thac-8"]=21,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=19,e.thac00=18,e.thac0=18,e.thac1=17,e.thac2=16,e.thac3=15,e.thac4=14,e.thac5=13,e.thac6=12,e.thac7=11,e.thac8=10,e.thac9=9,e.thac10=8):s<10?(e["thac-10"]=21,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=19,e["thac-2"]=18,e["thac-1"]=17,e.thac00=16,e.thac0=16,e.thac1=15,e.thac2=14,e.thac3=13,e.thac4=12,e.thac5=11,e.thac6=10,e.thac7=9,e.thac8=8,e.thac9=7,e.thac10=6):s<13?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=19,e["thac-4"]=18,e["thac-3"]=17,e["thac-2"]=16,e["thac-1"]=15,e.thac00=14,e.thac0=14,e.thac1=13,e.thac2=12,e.thac3=11,e.thac4=10,e.thac5=9,e.thac6=8,e.thac7=7,e.thac8=6,e.thac9=5,e.thac10=4):s<16?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=19,e["thac-6"]=18,e["thac-5"]=17,e["thac-4"]=16,e["thac-3"]=15,e["thac-2"]=14,e["thac-1"]=13,e.thac00=12,e.thac0=12,e.thac1=11,e.thac2=10,e.thac3=9,e.thac4=8,e.thac5=7,e.thac6=6,e.thac7=5,e.thac8=4,e.thac9=3,e.thac10=2):s<19?(e["thac-10"]=20,e["thac-9"]=19,e["thac-8"]=18,e["thac-7"]=17,e["thac-6"]=16,e["thac-5"]=15,e["thac-4"]=14,e["thac-3"]=13,e["thac-2"]=12,e["thac-1"]=11,e.thac00=10,e.thac0=10,e.thac1=9,e.thac2=8,e.thac3=7,e.thac4=6,e.thac5=5,e.thac6=4,e.thac7=3,e.thac8=2,e.thac9=1,e.thac10=0):s>=19&&(e["thac-10"]=19,e["thac-9"]=18,e["thac-8"]=17,e["thac-7"]=16,e["thac-6"]=15,e["thac-5"]=14,e["thac-4"]=13,e["thac-3"]=12,e["thac-2"]=11,e["thac-1"]=10,e.thac00=9,e.thac0=9,e.thac1=8,e.thac2=7,e.thac3=6,e.thac4=5,e.thac5=4,e.thac6=3,e.thac7=2,e.thac8=1,e.thac9=0,e.thac10=-1)),e.attack_matrix_flag=0),(c===2||c===6)&&(s===0?(e["thac-10"]=26,e["thac-9"]=25,e["thac-8"]=24,e["thac-7"]=23,e["thac-6"]=22,e["thac-5"]=21,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=20,e.thac2=19,e.thac3=18,e.thac4=17,e.thac5=16,e.thac6=15,e.thac7=14,e.thac8=13,e.thac9=12,e.thac10=11):s<3?(e["thac-10"]=25-m,e["thac-9"]=24-m,e["thac-8"]=23-m,e["thac-7"]=22-m,e["thac-6"]=21-m,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20-m,e.thac0=20-m,e.thac1=19-m,e.thac2=18-m,e.thac3=17-m,e.thac4=16-m,e.thac5=15-m,e.thac6=14-m,e.thac7=13-m,e.thac8=12-m,e.thac9=11-m,e.thac10=10-m):s<5?(e["thac-10"]=23-m,e["thac-9"]=22-m,e["thac-8"]=21-m,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20-m,e["thac-1"]=19-m,e.thac00=18-m,e.thac0=18-m,e.thac1=17-m,e.thac2=16-m,e.thac3=15-m,e.thac4=14-m,e.thac5=13-m,e.thac6=12-m,e.thac7=11-m,e.thac8=10-m,e.thac9=9-m,e.thac10=8-m):s<7?(e["thac-10"]=21-m,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20-m,e["thac-3"]=19-m,e["thac-2"]=18-m,e["thac-1"]=17-m,e.thac00=16-m,e.thac0=16-m,e.thac1=15-m,e.thac2=14-m,e.thac3=13-m,e.thac4=12-m,e.thac5=11-m,e.thac6=10-m,e.thac7=9-m,e.thac8=8-m,e.thac9=7-m,e.thac10=6-m):s<9?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20-m,e["thac-5"]=19-m,e["thac-4"]=18-m,e["thac-3"]=17-m,e["thac-2"]=16-m,e["thac-1"]=15-m,e.thac00=14-m,e.thac0=14-m,e.thac1=13-m,e.thac2=12-m,e.thac3=11-m,e.thac4=10-m,e.thac5=9-m,e.thac6=8-m,e.thac7=7-m,e.thac8=6-m,e.thac9=5-m,e.thac10=4-m):s<11?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20-m,e["thac-7"]=19-m,e["thac-6"]=18-m,e["thac-5"]=17-m,e["thac-4"]=16-m,e["thac-3"]=15-m,e["thac-2"]=14-m,e["thac-1"]=13-m,e.thac00=12-m,e.thac0=12-m,e.thac1=11-m,e.thac2=10-m,e.thac3=9-m,e.thac4=8-m,e.thac5=7-m,e.thac6=6-m,e.thac7=5-m,e.thac8=4-m,e.thac9=3-m,e.thac10=2-m):s<13?(e["thac-10"]=20-m,e["thac-9"]=19-m,e["thac-8"]=18-m,e["thac-7"]=17-m,e["thac-6"]=16-m,e["thac-5"]=15-m,e["thac-4"]=14-m,e["thac-3"]=13-m,e["thac-2"]=12-m,e["thac-1"]=11-m,e.thac00=10-m,e.thac0=10-m,e.thac1=9-m,e.thac2=8-m,e.thac3=7-m,e.thac4=6-m,e.thac5=5-m,e.thac6=4-m,e.thac7=3-m,e.thac8=2-m,e.thac9=1-m,e.thac10=0-m):s<15?(e["thac-10"]=18-m,e["thac-9"]=17-m,e["thac-8"]=16-m,e["thac-7"]=15-m,e["thac-6"]=14-m,e["thac-5"]=13-m,e["thac-4"]=12-m,e["thac-3"]=11-m,e["thac-2"]=10-m,e["thac-1"]=9-m,e.thac00=8-m,e.thac0=8-m,e.thac1=7-m,e.thac2=6-m,e.thac3=5-m,e.thac4=4-m,e.thac5=3-m,e.thac6=2-m,e.thac7=1-m,e.thac8=0-m,e.thac9=-1-m,e.thac10=-2-m):s<17?(e["thac-10"]=16-m,e["thac-9"]=15-m,e["thac-8"]=14-m,e["thac-7"]=13-m,e["thac-6"]=12-m,e["thac-5"]=11-m,e["thac-4"]=10-m,e["thac-3"]=9-m,e["thac-2"]=8-m,e["thac-1"]=7-m,e.thac00=6-m,e.thac0=6-m,e.thac1=5-m,e.thac2=4-m,e.thac3=3-m,e.thac4=2-m,e.thac5=1-m,e.thac6=0-m,e.thac7=-1-m,e.thac8=-2-m,e.thac9=-3-m,e.thac10=-4-m):s>=17&&(e["thac-10"]=14-m,e["thac-9"]=13-m,e["thac-8"]=12-m,e["thac-7"]=11-m,e["thac-6"]=10-m,e["thac-5"]=9-m,e["thac-4"]=8-m,e["thac-3"]=7-m,e["thac-2"]=6-m,e["thac-1"]=5-m,e.thac00=4-m,e.thac0=4-m,e.thac1=3-m,e.thac2=2-m,e.thac3=1-m,e.thac4=0-m,e.thac5=-1-m,e.thac6=-2-m,e.thac7=-3-m,e.thac8=-4-m,e.thac9=-5-m,e.thac10=-6-m),e.attack_matrix_flag=0),c===3&&(s===0||(s<6?(e["thac-10"]=26,e["thac-9"]=25,e["thac-8"]=24,e["thac-7"]=23,e["thac-6"]=22,e["thac-5"]=21,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=20,e.thac2=19,e.thac3=18,e.thac4=17,e.thac5=16,e.thac6=15,e.thac7=14,e.thac8=13,e.thac9=12,e.thac10=11):s<11?(e["thac-10"]=24,e["thac-9"]=23,e["thac-8"]=22,e["thac-7"]=21,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=19,e.thac0=19,e.thac1=18,e.thac2=17,e.thac3=16,e.thac4=15,e.thac5=14,e.thac6=13,e.thac7=12,e.thac8=11,e.thac9=10,e.thac10=9):s<16?(e["thac-10"]=21,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=19,e["thac-2"]=18,e["thac-1"]=17,e.thac00=16,e.thac0=16,e.thac1=15,e.thac2=14,e.thac3=13,e.thac4=12,e.thac5=11,e.thac6=10,e.thac7=9,e.thac8=8,e.thac9=7,e.thac10=6):s<21?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=19,e["thac-5"]=18,e["thac-4"]=17,e["thac-3"]=16,e["thac-2"]=15,e["thac-1"]=14,e.thac00=13,e.thac0=13,e.thac1=12,e.thac2=11,e.thac3=10,e.thac4=9,e.thac5=8,e.thac6=7,e.thac7=6,e.thac8=5,e.thac9=4,e.thac10=3):s>=21&&(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=19,e["thac-7"]=18,e["thac-6"]=17,e["thac-5"]=16,e["thac-4"]=15,e["thac-3"]=14,e["thac-2"]=13,e["thac-1"]=12,e.thac00=11,e.thac0=11,e.thac1=10,e.thac2=9,e.thac3=8,e.thac4=7,e.thac5=6,e.thac6=5,e.thac7=4,e.thac8=3,e.thac9=2,e.thac10=1)),e.attack_matrix_flag=0),c===4&&(s===0||(s<5?(e["thac-10"]=26,e["thac-9"]=25,e["thac-8"]=24,e["thac-7"]=23,e["thac-6"]=22,e["thac-5"]=21,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=20,e.thac2=19,e.thac3=18,e.thac4=17,e.thac5=16,e.thac6=15,e.thac7=14,e.thac8=13,e.thac9=12,e.thac10=11):s<9?(e["thac-10"]=24,e["thac-9"]=23,e["thac-8"]=22,e["thac-7"]=21,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=19,e.thac0=19,e.thac1=18,e.thac2=17,e.thac3=16,e.thac4=15,e.thac5=14,e.thac6=13,e.thac7=12,e.thac8=11,e.thac9=10,e.thac10=9):s<13?(e["thac-10"]=21,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=19,e["thac-2"]=18,e["thac-1"]=17,e.thac00=16,e.thac0=16,e.thac1=15,e.thac2=14,e.thac3=13,e.thac4=12,e.thac5=11,e.thac6=10,e.thac7=9,e.thac8=8,e.thac9=7,e.thac10=6):s<17?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=19,e["thac-4"]=18,e["thac-3"]=17,e["thac-2"]=16,e["thac-1"]=15,e.thac00=14,e.thac0=14,e.thac1=13,e.thac2=12,e.thac3=11,e.thac4=10,e.thac5=9,e.thac6=8,e.thac7=7,e.thac8=6,e.thac9=5,e.thac10=4):s<21?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=19,e["thac-6"]=18,e["thac-5"]=17,e["thac-4"]=16,e["thac-3"]=15,e["thac-2"]=14,e["thac-1"]=13,e.thac00=12,e.thac0=12,e.thac1=11,e.thac2=10,e.thac3=9,e.thac4=8,e.thac5=7,e.thac6=6,e.thac7=5,e.thac8=4,e.thac9=3,e.thac10=2):s>=21&&(e["thac-10"]=20,e["thac-9"]=19,e["thac-8"]=18,e["thac-7"]=17,e["thac-6"]=16,e["thac-5"]=15,e["thac-4"]=14,e["thac-3"]=13,e["thac-2"]=12,e["thac-1"]=11,e.thac00=10,e.thac0=10,e.thac1=9,e.thac2=8,e.thac3=7,e.thac4=6,e.thac5=5,e.thac6=4,e.thac7=3,e.thac8=2,e.thac9=1,e.thac10=0)),e.attack_matrix_flag=0),c===5&&(u===0||(u===1?(e["thac-10"]=26,e["thac-9"]=25,e["thac-8"]=24,e["thac-7"]=23,e["thac-6"]=22,e["thac-5"]=21,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=20,e.thac2=19,e.thac3=18,e.thac4=17,e.thac5=16,e.thac6=15,e.thac7=14,e.thac8=13,e.thac9=12,e.thac10=11):u===2?(e["thac-10"]=25,e["thac-9"]=24,e["thac-8"]=23,e["thac-7"]=22,e["thac-6"]=21,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=19,e.thac2=18,e.thac3=17,e.thac4=16,e.thac5=15,e.thac6=14,e.thac7=13,e.thac8=12,e.thac9=11,e.thac10=10):u===3?(e["thac-10"]=24,e["thac-9"]=23,e["thac-8"]=22,e["thac-7"]=21,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=19,e.thac0=19,e.thac1=18,e.thac2=17,e.thac3=16,e.thac4=15,e.thac5=14,e.thac6=13,e.thac7=12,e.thac8=11,e.thac9=10,e.thac10=9):u===4?(e["thac-10"]=23,e["thac-9"]=22,e["thac-8"]=21,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=19,e.thac00=18,e.thac0=18,e.thac1=17,e.thac2=16,e.thac3=15,e.thac4=14,e.thac5=13,e.thac6=12,e.thac7=11,e.thac8=10,e.thac9=9,e.thac10=8):u===5?(e["thac-10"]=21,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=19,e["thac-2"]=18,e["thac-1"]=17,e.thac00=16,e.thac0=16,e.thac1=15,e.thac2=14,e.thac3=13,e.thac4=12,e.thac5=11,e.thac6=10,e.thac7=9,e.thac8=8,e.thac9=7,e.thac10=6):u===6?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=19,e["thac-3"]=18,e["thac-2"]=17,e["thac-1"]=16,e.thac00=15,e.thac0=15,e.thac1=14,e.thac2=13,e.thac3=12,e.thac4=11,e.thac5=10,e.thac6=9,e.thac7=8,e.thac8=7,e.thac9=6,e.thac10=5):u===7?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=19,e["thac-5"]=18,e["thac-4"]=17,e["thac-3"]=16,e["thac-2"]=15,e["thac-1"]=14,e.thac00=13,e.thac0=13,e.thac1=12,e.thac2=11,e.thac3=10,e.thac4=9,e.thac5=8,e.thac6=7,e.thac7=6,e.thac8=5,e.thac9=4,e.thac10=3):u===8?(e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=19,e["thac-6"]=18,e["thac-5"]=17,e["thac-4"]=16,e["thac-3"]=15,e["thac-2"]=14,e["thac-1"]=13,e.thac00=12,e.thac0=12,e.thac1=11,e.thac2=10,e.thac3=9,e.thac4=8,e.thac5=7,e.thac6=6,e.thac7=5,e.thac8=4,e.thac9=3,e.thac10=2):u===9?(e["thac-10"]=20,e["thac-9"]=19,e["thac-8"]=18,e["thac-7"]=17,e["thac-6"]=16,e["thac-5"]=15,e["thac-4"]=14,e["thac-3"]=13,e["thac-2"]=12,e["thac-1"]=11,e.thac00=10,e.thac0=10,e.thac1=9,e.thac2=8,e.thac3=7,e.thac4=6,e.thac5=5,e.thac6=4,e.thac7=3,e.thac8=2,e.thac9=1,e.thac10=0):u===10?(e["thac-10"]=19,e["thac-9"]=18,e["thac-8"]=17,e["thac-7"]=16,e["thac-6"]=15,e["thac-5"]=14,e["thac-4"]=13,e["thac-3"]=12,e["thac-2"]=11,e["thac-1"]=10,e.thac00=9,e.thac0=9,e.thac1=8,e.thac2=7,e.thac3=6,e.thac4=5,e.thac5=4,e.thac6=3,e.thac7=2,e.thac8=1,e.thac9=0,e.thac10=-1):u===11?(e["thac-10"]=18,e["thac-9"]=17,e["thac-8"]=16,e["thac-7"]=15,e["thac-6"]=14,e["thac-5"]=13,e["thac-4"]=12,e["thac-3"]=11,e["thac-2"]=10,e["thac-1"]=9,e.thac00=8,e.thac0=8,e.thac1=7,e.thac2=6,e.thac3=5,e.thac4=4,e.thac5=3,e.thac6=2,e.thac7=1,e.thac8=0,e.thac9=-1,e.thac10=-2):u===12&&(e["thac-10"]=17,e["thac-9"]=16,e["thac-8"]=15,e["thac-7"]=14,e["thac-6"]=13,e["thac-5"]=12,e["thac-4"]=11,e["thac-3"]=10,e["thac-2"]=9,e["thac-1"]=8,e.thac00=7,e.thac0=7,e.thac1=6,e.thac2=5,e.thac3=4,e.thac4=3,e.thac5=2,e.thac6=1,e.thac7=0,e.thac8=-1,e.thac9=-2,e.thac10=-3)),e.attack_matrix_flag=0),c===99&&(console.error("Error: Class not recognized or class name is empty."),e["thac-10"]=20,e["thac-9"]=20,e["thac-8"]=20,e["thac-7"]=20,e["thac-6"]=20,e["thac-5"]=20,e["thac-4"]=20,e["thac-3"]=20,e["thac-2"]=20,e["thac-1"]=20,e.thac00=20,e.thac0=20,e.thac1=20,e.thac2=20,e.thac3=20,e.thac4=20,e.thac5=20,e.thac6=20,e.thac7=20,e.thac8=20,e.thac9=20,e.thac10=20,e.attack_matrix_flag=0),await h(e,{silent:!0}),await it(c))});on("sheet:opened change:thac0 change:thac00 change:autofill_matrix change:sync_matrix_level change:sync_matrix_class change:sync_class_selected",async n=>{let a=await w(["thac0","thac1","thac2","thac00","thac01","thac02","autofill_matrix"]);if(!i(a.autofill_matrix))return;let e={},o=i(a.thac0),r=i(a.thac1),s=i(a.thac2),c=i(a.thac00),l=i(a.thac01),p=i(a.thac02),g=o+r+s,u=c+l+p;e.attack_matrix_flag=g===60&&u===60?1:0,await h(e,{silent:!0})});on("change:thac00",async n=>{await it()});on("change:sync_caster_class1 change:sync_caster_class2 change:caster_class1_selected change:caster_class2_selected change:class change:secondclass change:thirdclass change:level change:level_2 change:level_3",async n=>{let a=await w(["sync_caster_class1","sync_caster_class2","caster_class1_selected","caster_class2_selected","class","secondclass","thirdclass","level","level_2","level_3"]),t={},e=i(a.sync_caster_class1),o=i(a.sync_caster_class2),r=i(a.caster_class1_selected),s=i(a.caster_class2_selected),c=(a.class||"").trim(),l=(a.secondclass||"").trim(),p=(a.thirdclass||"").trim(),g=i(a.level),u=i(a.level_2),m=i(a.level_3);e&&(r===1&&(t.caster_class1_level=g,t.caster_class1_name=c),r===2&&(t.caster_class1_level=u,t.caster_class1_name=l),r===3&&(t.caster_class1_level=m,t.caster_class1_name=p)),o&&(s===1&&(t.caster_class2_level=g,t.caster_class2_name=c),s===2&&(t.caster_class2_level=u,t.caster_class2_name=l),s===3&&(t.caster_class2_level=u,t.caster_class2_name=p)),await h(t,{silent:!0}),await Pe()});var j=(n,a,t,e)=>n<t?(console.log(`WARNING: ${a} value is not a number or out of range. [${n}]. Defaulting to ${t}.`),t):n>e?(console.log(`WARNING: ${a} value is out of range. [${n}]. Defaulting to ${e}.`),e):Math.min(Math.max(n,t),e),q=class{constructor(a,t,e,o,r,s){this.meleebonus=a,this.dmgbonus=t,this.majorstrengthfeat=s,this.minorstrengthfeat=o,this.minorstrengthfeat_locked=r,this.encumbrancebonus=e}getMeleeAttackBonus(){return this.meleebonus}getMeleeDamageBonus(){return this.dmgbonus}getMajorStrengthCheck(){return this.majorstrengthfeat}getMinorStrengthCheck(a=!1){return a?this.minorstrengthfeat_locked:this.minorstrengthfeat}getEncumbranceBonus(){return this.encumbrancebonus}},Se=class{constructor(){this.strength_dict={3:new q(-3,-1,-350,1,0,0),4:new q(-2,-1,-250,1,0,0),5:new q(-2,-1,-250,1,0,0),6:new q(-1,0,-150,1,0,0),7:new q(-1,0,-150,1,0,0),8:new q(0,0,0,2,0,1),9:new q(0,0,0,2,0,1),10:new q(0,0,0,2,0,2),11:new q(0,0,0,2,0,2),12:new q(0,0,100,2,0,4),13:new q(0,0,100,2,0,4),14:new q(0,0,200,2,0,7),15:new q(0,0,200,2,0,7),16:new q(0,1,350,3,0,10),17:new q(1,1,500,3,0,13),18:{None:new q(1,2,750,3,0,16),"01-50":new q(1,3,1e3,3,0,20),"51-75":new q(2,3,1250,4,0,25),"76-90":new q(2,4,1500,4,0,30),"91-99":new q(2,5,2e3,4,1,35),"00":new q(3,6,3e3,5,2,40)},19:new q(3,7,4500,7,3,50),20:new q(3,8,5e3,7,3,60),21:new q(4,9,6e3,9,4,70),22:new q(4,10,7500,11,4,80),23:new q(5,11,9e3,11,5,90),24:new q(6,12,12e3,19,7,100),25:new q(7,14,15e3,23,9,100)}}getEntry(a,t){let e=j(a,"strength",3,25);return e!==18?this.strength_dict[e]:t<=0?this.strength_dict[e].None:t<=50?this.strength_dict[e]["01-50"]:t<=75?this.strength_dict[e]["51-75"]:t<=90?this.strength_dict[e]["76-90"]:t<=99?this.strength_dict[e]["91-99"]:this.strength_dict[e]["00"]}getStrengthValue(a,t,e=0,o=!1){switch(a){case"Attack":return this.getEntry(t,e).getMeleeAttackBonus();case"Damage":return this.getEntry(t,e).getMeleeDamageBonus();case"Major":return this.getEntry(t,e).getMajorStrengthCheck();case"Minor":return this.getEntry(t,e).getMinorStrengthCheck(o);case"Encumbrance":return this.getEntry(t,e).getEncumbranceBonus();default:return console.log("WARNING: Invalid Test."),"Invalid Test"}}},A=class{constructor(a,t,e,o){this.bonuslanguages=a,this.knowspell=t,this.minspells=e,this.maxspells=o}getBonusLanguages(){return this.bonuslanguages}getKnowSpell(){return this.knowspell}getMinSpells(){return this.minspells}getMaxSpells(){return this.maxspells}},Ne=class{constructor(){this.intelligence_dict={3:new A(0,0,0,0),4:new A(0,0,0,0),5:new A(0,0,0,0),6:new A(0,0,0,0),7:new A(0,0,0,0),8:new A(1,0,0,0),9:new A(1,35,4,6),10:new A(2,45,5,7),11:new A(2,45,5,7),12:new A(3,45,5,7),13:new A(3,55,6,9),14:new A(4,55,6,9),15:new A(4,65,7,11),16:new A(5,65,7,11),17:new A(6,75,8,14),18:new A(7,85,9,18),19:new A(8,95,10,99),20:new A(9,96,11,99),21:new A(10,97,12,99),22:new A(11,98,13,99),23:new A(12,99,14,99),24:new A(13,100,15,99),25:new A(14,100,16,99)}}getEntry(a){return this.intelligence_dict[j(a,"intelligence",3,25)]}},M=class{constructor(a,t,e){this.mentalsavebonus=a,this.spellbonus=t,this.spellfailure=e}getMentalSaveBonus(){return this.mentalsavebonus}getSpellBonus(){return this.spellbonus}getSpellFailure(){return this.spellfailure}},Ce=class{constructor(){this.wisdom_dict={3:new M("-3","None",20),4:new M("-2","None",20),5:new M("-1","None",20),6:new M("-1","None",20),7:new M("-1","None",20),8:new M("0","None",20),9:new M("0","None",20),10:new M("0","None",15),11:new M("0","None",10),12:new M("0","None",5),13:new M("0","1/0/0/0/0/0/0",0),14:new M("0","2/0/0/0/0/0/0",0),15:new M("1","2/1/0/0/0/0/0",0),16:new M("2","2/2/0/0/0/0/0",0),17:new M("3","2/2/1/0/0/0/0",0),18:new M("4","2/2/1/1/0/0/0",0),19:new M("4","3/2/1/2/0/0/0",0),20:new M("4","3/3/1/3/0/0/0",0),21:new M("4","3/3/2/3/1/0/0",0),22:new M("4","3/3/2/4/2/0/0",0),23:new M("4","3/3/2/4/4/0/0",0),24:new M("4","3/3/2/4/4/2/1",0),25:new M("4","3/3/2/4/4/3/1",0)}}getEntry(a){return this.wisdom_dict[j(a,"wisdom",3,25)]}},x=class{constructor(a,t,e){this.surprisebonus=a,this.rangedbonus=t,this.armorbonus=e}getSurpriseBonus(){return this.surprisebonus}getRangedBonus(){return this.rangedbonus}getArmorBonus(){return this.armorbonus}},De=class{constructor(){this.dexterity_dict={3:new x(3,-3,4),4:new x(2,-2,3),5:new x(1,-1,2),6:new x(0,0,1),7:new x(0,0,0),8:new x(0,0,0),9:new x(0,0,0),10:new x(0,0,0),11:new x(0,0,0),12:new x(0,0,0),13:new x(0,0,0),14:new x(0,0,0),15:new x(0,0,-1),16:new x(-1,1,-2),17:new x(-2,2,-3),18:new x(-3,3,-4),19:new x(-3,3,-4),20:new x(-3,3,-4),21:new x(-4,4,-5),22:new x(-4,4,-5),23:new x(-4,4,-5),24:new x(-5,5,-6),25:new x(-5,5,-6)}}getEntry(a){return this.dexterity_dict[j(a,"dexterity",3,25)]}},T=class{constructor(a,t,e){this.hitpointbonus=a,this.systemshock=t,this.resurrectionsurvival=e}getHitpointBonus(){return this.hitpointbonus}getSystemShock(){return this.systemshock}getResurrectionSurvival(){return this.resurrectionsurvival}},Oe=class{constructor(){this.constitution_dict={3:new T("-2",35,40),4:new T("-1",40,45),5:new T("-1",45,50),6:new T("0",50,55),7:new T("0",55,60),8:new T("0",60,65),9:new T("0",65,70),10:new T("0",70,75),11:new T("0",75,80),12:new T("0",80,85),13:new T("0",85,90),14:new T("0",88,92),15:new T("1",91,94),16:new T("2",95,96),17:new T("3",97,98),18:new T("4",99,100),19:new T("5",99,100),20:new T("5",99,100),21:new T("6",99,100),22:new T("6",99,100),23:new T("6",99,100),24:new T("7",99,100),25:new T("7",99,100)}}getEntry(a){return this.constitution_dict[j(a,"constitution",3,25)]}},S=class{constructor(a,t,e,o){this.maximumhenchmen=a,this.loyaltybonus=t,this.reactionbonus=e,this.comeliness=o}MaximumHenchmen(){return this.maximumhenchmen}getLoyaltyBonus(){return this.loyaltybonus}getReactionBonus(){return this.reactionbonus}getComeliness(){return this.comeliness}},Ee=class{constructor(){this.charisma_dict={3:new S(1,-30,-25,-5),4:new S(1,-25,-20,-3),5:new S(2,-20,-15,-3),6:new S(2,-15,-10,-1),7:new S(3,-10,-5,-1),8:new S(3,-5,0,-1),9:new S(4,0,0,0),10:new S(4,0,0,0),11:new S(4,0,0,0),12:new S(5,0,0,0),13:new S(5,0,5,1),14:new S(6,5,10,1),15:new S(7,15,15,1),16:new S(8,20,25,2),17:new S(10,30,30,2),18:new S(15,40,35,3),19:new S(20,50,40,5),20:new S(25,60,45,5),21:new S(30,70,50,5),22:new S(35,80,55,5),23:new S(40,90,60,5),24:new S(45,100,65,5),25:new S(50,100,70,5)}}getEntry(a){return this.charisma_dict[j(a,"charisma",3,25)]}},D=class{constructor(a,t,e,o,r){this.pickPockets=a,this.openLocks=t,this.findRemoveTraps=e,this.moveSilently=o,this.hideInShadows=r}getPickPockets(){return this.pickPockets}getOpenLocks(){return this.openLocks}getFindRemoveTraps(){return this.findRemoveTraps}getMoveSilently(){return this.moveSilently}getHideInShadows(){return this.hideInShadows}},Ie=class{constructor(){this.dexterity_dict={9:new D(-15,-10,-10,-20,-10),10:new D(-10,-5,-10,-15,-5),11:new D(-5,0,-5,-10,0),12:new D(0,0,0,-5,0),13:new D(0,0,0,0,0),14:new D(0,0,0,0,0),15:new D(0,0,0,0,0),16:new D(0,5,0,0,0),17:new D(5,10,0,5,5),18:new D(10,15,5,10,10),19:new D(15,20,10,12,12),20:new D(20,25,15,15,15),21:new D(25,30,20,18,18),22:new D(30,35,25,20,20),23:new D(35,40,30,23,23),24:new D(40,45,35,25,25),25:new D(45,50,40,30,30)}}getEntry(a){return this.dexterity_dict[j(a,"dexterity",9,25)]}},B=class{constructor(a,t,e,o,r,s,c,l){this.pickPockets=a,this.openLocks=t,this.findRemoveTraps=e,this.moveSilently=o,this.hideInShadows=r,this.hearNoise=s,this.climbWalls=c,this.readLanguages=l}getPickPockets(){return this.pickPockets}getOpenLocks(){return this.openLocks}getFindRemoveTraps(){return this.findRemoveTraps}getMoveSilently(){return this.moveSilently}getHideInShadows(){return this.hideInShadows}getHearNoise(){return this.hearNoise}getClimbWalls(){return this.climbWalls}getReadLanguages(){return this.readLanguages}},Re=class{constructor(){this.dexterity_dict={0:new B(0,0,0,0,0,0,0,0),1:new B(0,0,0,0,0,0,0,0),2:new B(0,10,15,0,0,0,-10,-5),3:new B(5,-5,0,5,10,5,0,0),4:new B(0,5,10,5,5,10,-15,0),5:new B(10,0,0,0,5,0,0,0),6:new B(5,5,5,10,15,5,-15,-5),7:new B(-5,5,5,0,0,5,5,-10)}}getEntry(a){return this.dexterity_dict[j(a,"thief_race_selected",0,7)]}},L=new Se,ie=new Ne,_e=new Ce,z=new De,K=new Oe,W=new Ee,Z=new Ie,U=new Re,P=(n,a,t="int")=>t==="int"?parseInt(n[a])||0:t==="float"?parseFloat(n[a])||0:t==="str"?n[a]:null,_t=async()=>{let n=await w(["strength","exceptionalstrength"]),a={},t=await P(n,"strength","int"),e=await P(n,"exceptionalstrength");await P(n,"exceptionalstrength","str")==="00"&&(e=100),a.exceptionalstrength=e,a.meleebonus=(L.getStrengthValue("Attack",t,e)<=0?"":"+")+L.getStrengthValue("Attack",t,e),a.dmgbonus=(L.getStrengthValue("Damage",t,e)<=0?"":"+")+L.getStrengthValue("Damage",t,e),a.majorstrengthfeat=L.getStrengthValue("Major",t,e),a.minorstrengthfeat=L.getStrengthValue("Minor",t,e),a.minorstrengthfeat_locked=L.getStrengthValue("Minor",t,e,!0),a.encumbrancebonus=(L.getStrengthValue("Encumbrance",t,e)<=0?"":"+")+L.getStrengthValue("Encumbrance",t,e),await h(a)},pt=async()=>{let n=await w(["intelligence","bonuslanguages","race"]),a={},t=await P(n,"intelligence","int"),e=await P(n,"race","str"),o=+ie.getEntry(t).getBonusLanguages();/human/gi.test(e)?a.bonuslanguages=o:/dwarf/gi.test(e)||/gnome/gi.test(e)||/orc/gi.test(e)?a.bonuslanguages=Math.min(o,2):/half-elf/gi.test(e)||/halfling/gi.test(e)||/hobbit/gi.test(e)?(o<=5?o=0:o===6?o=1:o===7?o=2:o===8?o=3:o===9?o=4:o===10?o=5:o===11?o=6:o===12?o=7:o===13?o=8:o>=14&&(o=9),a.bonuslanguages=o):/elf/gi.test(e)?(o<=4?o=0:o===5?o=1:o==6?o=2:o===7?o=3:o===8?o=4:o===9?o=5:o===10?o=6:o===11?o=7:o===12?o=8:o===13?o=9:o>=14&&(o=10),a.bonuslanguages=o):a.bonuslanguages=0,a.knowspell=ie.getEntry(t).getKnowSpell(),a.minspells=ie.getEntry(t).getMinSpells(),a.maxspells=ie.getEntry(t).getMaxSpells(),await h(a,{silent:!0})},lt=async()=>{let n=await w(["wisdom"]),a={},t=await P(n,"wisdom","int");a.mentalsavebonus=(_e.getEntry(t).getMentalSaveBonus()<=0?"":"+")+_e.getEntry(t).getMentalSaveBonus(),a.spellbonus=_e.getEntry(t).getSpellBonus(),a.spellfailure=_e.getEntry(t).getSpellFailure(),await h(a,{silent:!0})},mt=async()=>{let n=await w(["dexterity"]),a={},t=await P(n,"dexterity","int"),e=z.getEntry(t).getSurpriseBonus(),o=(-1*e<=0?"":"+")+-1*e;a.surprisebonus=z.getEntry(t).getSurpriseBonus(),a.surprisebonus_inverted=o,a.rangedbonus=(z.getEntry(t).getRangedBonus()<=0?"":"+")+z.getEntry(t).getRangedBonus(),a.armorbonus=(z.getEntry(t).getArmorBonus()<=0?"":"+")+z.getEntry(t).getArmorBonus(),await h(a)},ht=async()=>{let n=await w(["constitution","class","secondclass","thirdclass"]),a={},t=await P(n,"constitution","int"),e=[n.class,n.secondclass,n.thirdclass];/fighter/gi.test(e)||/paladin/gi.test(e)||/ranger/gi.test(e)?a.hitpointbonus=(K.getEntry(t).getHitpointBonus()<=0?"":"+")+K.getEntry(t).getHitpointBonus():a.hitpointbonus=(Math.min(K.getEntry(t).getHitpointBonus(),2)<=0?"":"+")+Math.min(K.getEntry(t).getHitpointBonus(),2),a.systemshock=K.getEntry(t).getSystemShock(),a.resurrectionsurvival=K.getEntry(t).getResurrectionSurvival(),await h(a)},gt=async()=>{let n=await w(["charisma"]),a={},t=await P(n,"charisma","int");a.maximumhenchmen=W.getEntry(t).MaximumHenchmen(),a.loyaltybonus=(W.getEntry(t).getLoyaltyBonus()<=0?"":"+")+W.getEntry(t).getLoyaltyBonus(),a.reactionbonus=(W.getEntry(t).getReactionBonus()<=0?"":"+")+W.getEntry(t).getReactionBonus(),a.comeliness_cha_adj=(W.getEntry(t).getComeliness()<=0?"":"+")+W.getEntry(t).getComeliness(),await setAttrs(a,{silent:!0})},oo=async n=>{let a=await w(["dexterity"]),t={},e=await P(a,"dexterity","int"),o=Z.getEntry(e).getPickPockets(),r=Z.getEntry(e).getOpenLocks(),s=Z.getEntry(e).getFindRemoveTraps(),c=Z.getEntry(e).getMoveSilently(),l=Z.getEntry(e).getHideInShadows();t.pickpockets_ability_mod=n===1?o:0,t.openlocks_ability_mod=n===1?r:0,t.findtraps_ability_mod=n===1?s:0,t.movequietly_ability_mod=n===1?c:0,t.hideinshadows_ability_mod=n===1?l:0,await h(t)},ro=async n=>{let a=await w(["thief_race_selected"]),t={},e=await P(a,"thief_race_selected","int"),o=U.getEntry(e).getPickPockets(),r=U.getEntry(e).getOpenLocks(),s=U.getEntry(e).getFindRemoveTraps(),c=U.getEntry(e).getMoveSilently(),l=U.getEntry(e).getHideInShadows(),p=U.getEntry(e).getHearNoise(),g=U.getEntry(e).getClimbWalls(),u=U.getEntry(e).getReadLanguages();t.pickpockets_racial_mod=n===1?o:0,t.openlocks_racial_mod=n===1?r:0,t.findtraps_racial_mod=n===1?s:0,t.movequietly_racial_mod=n===1?c:0,t.hideinshadows_racial_mod=n===1?l:0,t.hearnoise_racial_mod=n===1?p:0,t.climbwalls_racial_mod=n===1?g:0,t.readlanguages_racial_mod=n===1?u:0,await h(t)};on("change:autofill_thief_dex change:dexterity",async n=>{let a=await w(["autofill_thief_dex"]),t=i(a.autofill_thief_dex);await oo(t)});var so=async n=>{let a=n.trim().toLowerCase();return/human/.test(a)?1:/dwarf/.test(a)?2:/half-elf/.test(a)?5:/elf/.test(a)?3:/gnome/.test(a)?4:/halfling|hobbit/.test(a)?6:/half-orc/.test(a)?7:0};on("change:race change:autofill_thief_race change:thief_race_selected",async n=>{let a=n.sourceAttribute,t=await w(["race","autofill_thief_race"]),e={},o=i(t.autofill_thief_race),r=(t.race||"human").trim();(a==="autofill_thief_race"||a==="race")&&(e.thief_race_selected=await so(r)),await h(e,{silent:!0}),await ro(o)});on("change:strength change:exceptionalstrength",async n=>{await _t()});on("change:intelligence change:race",async n=>{await pt()});on("change:wisdom",async n=>{await lt()});on("change:dexterity",async n=>{await mt()});on("change:constitution change:class change:secondclass change:thirdclass",async n=>{await ht()});on("change:charisma change:comeliness",async n=>{await gt()});var ut=async()=>{let n=await w(["character_avatar","sheet_image","sheet_image_url"]),a={},t=i(n.sheet_image),e=(function(s){let c=/(\.png|\.jpg|\.gif)/i,l=s.match(c);return l?s.slice(0,l.index+l[0].length):s})(n.character_avatar),o=n.sheet_image_url||e;t===0&&(a.sheet_image_src=o),t===1&&(a.sheet_image_src=e),t===2&&(a.sheet_image_src=""),await h(a,{silent:!0})};on("change:character_avatar change:sheet_image change:sheet_image_url",async n=>{await ut()});on("clicked:postimage",async n=>{await ut();let a="?{Display the portrait image?|YES,@{sheet_image_src}|NO,&nbsp;}";await new Promise(t=>{startRoll(a,e=>{finishRoll(e.rollId),t()})})});on("change:psionic_ability_strength_max change:psionic_attack change:psionic_defense",async n=>{let a=await w(["psionic_ability_strength_max"]),t={},e=i(a.psionic_ability_strength_max);t.psionic_attack_max=O(e/2).toFixed(1),t.psionic_defense_max=O(e/2).toFixed(1),await h(t,{silent:!0})});var co=async()=>{let n=await y("weapon"),a={};if(n.length===0){a.weapon_in_use="",a.weapon_in_use_speed="",a.weapon_in_use_misc="",await h(a,{silent:!0});return}let t=[],e=n.flatMap(r=>[`repeating_weapon_${r}_weapon_name`,`repeating_weapon_${r}_weapon_use`,`repeating_weapon_${r}_weapon_speed`,`repeating_weapon_${r}_weapon_misc`]),o=await w(e);if(n.forEach(r=>{let s=i(o[`repeating_weapon_${r}_weapon_use`]);if(s===1){let c=o[`repeating_weapon_${r}_weapon_name`]||"Unknown",p=String(o[`repeating_weapon_${r}_weapon_speed`]||"0").match(/\d+/),g=p?i(p[0]):0,u=o[`repeating_weapon_${r}_weapon_misc`]||"";t.push({id:r,name:c,inUse:s,speed:g,misc:u})}}),t.length>0){t.sort((s,c)=>s.speed-c.speed);let r=t[0];a.weapon_in_use=r.name,a.weapon_in_use_speed=r.speed,a.weapon_in_use_misc=r.misc}else a.weapon_in_use="",a.weapon_in_use_speed="",a.weapon_in_use_misc="";await h(a,{silent:!0})};on("change:repeating_weapon:weapon_name change:repeating_weapon:weapon_use change:repeating_weapon:weapon_speed change:repeating_weapon:weapon_misc remove:repeating_weapon",async n=>{await co()});var wt=async n=>{let a=await y(n),e=(await w([`_reporder_repeating_${n}`]))[`_reporder_repeating_${n}`]||"",r=(e?e.split(","):[]).filter(c=>a.includes(c.toLowerCase()));return[...new Set([...r,...a])]};on("clicked:spell-sort-alphabetical clicked:spell-sort-level",async n=>{let a=n.triggerName.replace("clicked:",""),t=await w(["spells_sheet_busy"]);if(i(t.spells_sheet_busy)!==1){await h({spells_sheet_busy:1});try{let e="spells",o=await wt(e),r=await y(e);if(r.length>0){let s=r.flatMap(d=>[`repeating_spells_${d}_spell_caster_class`,`repeating_spells_${d}_spell_level`,`repeating_spells_${d}_spell_name`]),c=await w(s),l={},p=r.map(d=>({id:d,casterClass:c[`repeating_spells_${d}_spell_caster_class`]||0,level:c[`repeating_spells_${d}_spell_level`],name:(c[`repeating_spells_${d}_spell_name`]||"").trim()})),g=d=>d==="?"?-1:d||0;a==="spell-sort-alphabetical"?p.sort((d,f)=>d.name.localeCompare(f.name,void 0,{sensitivity:"base"})):a==="spell-sort-level"&&p.sort((d,f)=>{let k=g(d.level),v=g(f.level);return d.casterClass-f.casterClass||k-v||d.name.localeCompare(f.name,void 0,{sensitivity:"base"})});let u=p.map(d=>`${d.id}`);setSectionOrder("spells",u),u.length>35?await me(100):await me(20);let m=[...new Set(o.map(d=>d.toLowerCase()))];l.spells_previous_order_array=m.join(","),await h(l,{silent:!0})}}catch(e){console.error("Error: Sort failed.",e)}finally{await h({spells_sheet_busy:0})}}});on("clicked:spell-sort-undo",async n=>{let a=await w(["spells_sheet_busy"]);if(i(a.spells_sheet_busy)!==1){await h({spells_sheet_busy:1});try{let t="spells",[e,o]=await Promise.all([w(["spells_previous_order_array"]),y(t)]),r=e.spells_previous_order_array||"";if(r){let s=new Set(o.map(l=>l.toLowerCase())),c=[...new Set(r.split(",").map(l=>l.toLowerCase()).filter(l=>s.has(l)))];setSectionOrder(t,c),await h({spells_previous_order_array:""},{silent:!0})}}catch(t){console.error("Error: Undo failed",t)}finally{await h({spells_sheet_busy:0})}}});on("clicked:equipment-sort-alphabetical clicked:equipment-sort-location",async n=>{let a=n.triggerName.replace("clicked:",""),t=await w(["equipment_sheet_busy"]);if(i(t.equipment_sheet_busy)!==1){await h({equipment_sheet_busy:1});try{let e="equipment",o=await wt(e),r=await y(e);if(r.length>0){let s=r.flatMap(m=>[`repeating_equipment_${m}_equipment_item`,`repeating_equipment_${m}_equipment_location`]),c=await w(s),l={},p=r.map(m=>({id:m,name:(c[`repeating_equipment_${m}_equipment_item`]||"").trim(),location:(c[`repeating_equipment_${m}_equipment_location`]||"").trim()}));a==="equipment-sort-alphabetical"?p.sort((m,d)=>m.name.localeCompare(d.name,void 0,{sensitivity:"base"})):a==="equipment-sort-location"&&p.sort((m,d)=>{let f=m.location.localeCompare(d.location,void 0,{sensitivity:"base"});return f!==0?f:m.name.localeCompare(d.name,void 0,{sensitivity:"base"})});let g=p.map(m=>m.id);setSectionOrder(e,g),g.length>35?await me(100):await me(20);let u=[...new Set(o.map(m=>m.toLowerCase()))];l.equipment_previous_order_array=u.join(","),await h(l,{silent:!0})}}catch(e){console.error("Error: Sort failed.",e)}finally{await h({equipment_sheet_busy:0})}}});on("clicked:equipment-sort-undo",async n=>{let a=await w(["equipment_sheet_busy"]);if(i(a.equipment_sheet_busy)!==1){await h({equipment_sheet_busy:1});try{let t="equipment",[e,o]=await Promise.all([w(["equipment_previous_order_array"]),y(t)]),r=e.equipment_previous_order_array||"";if(r){let s=new Set(o.map(l=>l.toLowerCase())),c=[...new Set(r.split(",").map(l=>l.toLowerCase()).filter(l=>s.has(l)))];setSectionOrder(t,c),await h({equipment_previous_order_array:""},{silent:!0})}}catch(t){console.error("Error: Undo failed.",t)}finally{await h({equipment_sheet_busy:0})}}});</script>