Files
roll20-character-sheets/ADnD_1E/1ESheet.html
T
Vince a56bd8467d ADnD1e update
- announcements section added
- added info about upcoming repeating attribute changes
- updated the non-repeating attribute names to lowercase and title text to match.  For aesthetic reasons only.  Trying to be consistant with all attribute names on the sheet.
2020-12-30 22:13:32 -08:00

1855 lines
98 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="sheet-useBackground">
<input type="checkbox" class="sheet-useBackground" style="display:none;" name="attr_background" value="1" checked />
<input type="checkbox" class="sheet-useBackground" style="display:none;" name="attr_background" value="2" />
<div class="sheet-background">
<div class="sheet-wrapper">
<span class="sheet-announcements-title">Announcements</span>
<input type="checkbox" class="sheet-sect-show" name="attr_toggle_announcements" value="1" style="width: 135px; margin: 0 -20px 0 -110px;" checked /><span></span>
<div class="sheet-sect sheet-announcements">
<h4>Important Sheet Announcements</h4>
<ul>
<li>12/30/20'<br>
An important update to repeating attributes is coming soon.<br><br>
I am planning on updating the 1e sheet in order to bring it inline with Roll20's recommended
<button type="roll" class="sheet-button-url" value="https://wiki.roll20.net/Building_Character_Sheets#Best_Practices">"Best Practices"</button>
as well as adding some additional quality of life improvements.(monster sheet, localization/translations, additional auto-calculations, tabbed layout, and more...)<br><br>
In order to proceed, it is necessary to correct an underlying issue with the sheet's current repeating attributes. New repeating attributes will need to be created. Existing attribute data will be copied over to the new attributes as needed. This will be handled automatically in a future sheet update without losing any functionality. I predict that a vast majority of the sheet's users will be unaffected by this change. That said,<br><br>
<b>any existing, "off-sheet" macros (token/ability and/or collection macros) that use the old repeating attribute names will no longer function properly (ie generating a chat error: no attribute found) until they are manually edited to use the new repeating names.</b> While I can automatically migrate attributes through a sheet update, I cannot update a users custom macros... I apologize for any inconvenience this may cause some of you.<br><br>
Going forward, the new repeating naming schema will incorporate the repeating section's name as part of the repeating attribute's name. example;<br>
old style: @{repeating_weapon_$0_name}<br>
new style: @{repeating_weapon_$0_<b>weapon</b>_name}<br><br>
This schema will apply to all repeating sections and hovering over a field on the sheet will show the attribute's name. This subtle but important difference ensures that the sheet uses unique attribute names in order to prevent any issues with sheetworker calculations, macros, and/or Roll20 features.<br><br>
More details about this update as well as upcoming updates can be found on the
<button type="roll" class="sheet-button-url" value="https://app.roll20.net/forum/post/8460127/ad-and-d-1e-update">Current AD&D1e sheet thread on Roll20.</button><br><br>
A "beta" game has been made available for testing as well;
<button type="roll" class="sheet-button-url" value="https://app.roll20.net/join/731454/6RYNIQ">Join link here.</button>
Feel free to import characters and review the latest changes. Please report any bugs and/or suggestions to the 1e discussion thread linked above.
<br><br>
Sincerely.<br>
- Vince
</li>
</ul>
</div>
<div class="sheet-center" style="padding-top:10px;"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_1E/images/logo.png" /></div>
<div class="sheet-personal_attributes" style="margin:-40px 0 10px 0;">
<div class="sheet-header">PERSONAL ATTRIBUTES</div>
<input type="checkbox" class="sheet-sect-show" title="@{personal_attributes-info-show}" name="attr_personal_attributes-info-show" value="1" style="width: 230px; margin: 0 -20px 0 -200px;" checked="checked" /><span></span>
<table class="sheet-sect">
<tr>
<td>
<table>
<tr>
<td class="sheet-right">Name:</td>
<td colspan="3"><input type="text" class="sheet-input-large" name="attr_character_name" title="@{character_name}" placeholder="Character Name" /></td>
</tr>
<tr>
<td class="sheet-right">Alignment:</td>
<td colspan="3"><input type="text" class="sheet-input-large" name="attr_alignment" title="@{alignment}" placeholder="Description" /></td>
</tr>
<tr>
<td class="sheet-right">Class 1:</td>
<td><input type="text" class="sheet-input-large" name="attr_class" title="@{class}" placeholder="Class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="text" class="sheet-input-small" name="attr_level" title="@{level}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">Class 2:</td>
<td><input type="text" class="sheet-input-large" name="attr_secondclass" title="@{secondclass}" placeholder="2nd class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="text" class="sheet-input-small" name="attr_level_2" title="@{level_2}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">Class 3:</td>
<td><input type="text" class="sheet-input-large" name="attr_thirdclass" title="@{thirdclass}" placeholder="3rd class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="text" class="sheet-input-small" name="attr_level_3" title="@{level_3}" value="0" /></td>
</tr>
</table>
</td>
<td>
<table style="margin-top:20px;">
<tr>
<td class="sheet-right sheet-text-large" style="padding:10px 5px 10px 40px;">HP:</td>
<td><input type="text" class="sheet-box" name="attr_HitPoints" title="@{HitPoints}" value="0" /></td>
<td></td>
<td colspan="3" style="min-width: 14em; text-align: center;">
<span class="sheet-right sheet-text-large" style="padding: 10px 5px 10px 12px;">AC:</span>
<input type="text" class="sheet-box" name="attr_ArmorClass" title="@{ArmorClass}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">HP Max:</td>
<td><input type="text" class="sheet-input-small" name="attr_hitpoints_max" title="@{hitpoints|max}" value="0" /></td>
<td class="sheet-right">Armor:</td>
<td colspan="3"><input type="text" class="sheet-input-large" name="attr_armortype" title="@{armortype}" style="width:100%;" placeholder="Description" /></td>
</tr>
<tr>
<td class="sheet-right">Hit Dice:</td>
<td><input type="text" class="sheet-input-small" name="attr_hitdice" title="@{hitdice}" value="1" /></td>
<td class="sheet-right">Shield:</td>
<td colspan="3"><input type="text" class="sheet-input-small" name="attr_armorshield" title="@{armorshield}" style="width:100%;" placeholder="Description" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td class="sheet-right">Wt:</td>
<td><input type="text" class="sheet-input-small" name="attr_armor_weight" title="@{armor_weight}" value="0" /></td>
<td class="sheet-right">Cost:</td>
<td><input type="text" class="sheet-input-small" name="attr_armor_cost" title="@{armor_cost}" value="0" /></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td class="sheet-right">Race:</td>
<td><input type="text" class="sheet-input-large" name="attr_race" title="@{race}" placeholder="Description" /></td>
<td class="sheet-right">XP:</td>
<td><input type="text" class="sheet-input-medium" name="attr_xp" title="@{xp}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">Deity:</td>
<td><input type="text" class="sheet-input-large" name="attr_deity" title="@{deity}" placeholder="Description" /></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-right">Gender:</td>
<td><input type="text" class="sheet-input-medium" name="attr_gender" title="@{gender}" placeholder="N/A" /></td>
<td class="sheet-right">Age:</td>
<td><input type="text" class="sheet-input-small" name="attr_age" title="@{age}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">Ht:</td>
<td><input type="text" class="sheet-input-small" name="attr_height" title="@{height}" value="0" /></td>
<td class="sheet-right">Wt:</td>
<td><input type="text" class="sheet-input-small" name="attr_weight" title="@{weight}" value="0" /></td>
</tr>
<tr>
<td class="sheet-right">Eyes:</td>
<td><input type="text" class="sheet-input-medium" name="attr_eyes" title="@{eyes}" placeholder="Color" /></td>
<td class="sheet-right">Hair:</td>
<td><input type="text" class="sheet-input-medium" name="attr_hair" title="@{hair}" placeholder="Color" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" style="white-space: nowrap;">Languages:
<input type="text" name="attr_languages" placeholder="languages known" style="width: 87%;">
</td>
</tr>
</table>
</div>
<div class="sheet-abilities">
<div class="sheet-header">ABILITIES</div>
<input type="checkbox" class="sheet-sect-show" title="@{abilities-info-show}" name="attr_abilities-info-show" value="1" style="width: 115px; margin: 0 -20px 0 -85px;" checked="checked" /><span></span>
<table class="sheet-sect">
<tr>
<td class="sheet-center"><span class="sheet-text-large">STR</span></td>
<td><input type="text" class="sheet-input-small" name="attr_strength" title="@{strength}" value="10" />
(<input type="text" name="attr_ExceptionalStrength" title="@{ExceptionalStrength}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right">To Hit:</td>
<td><input type="text" class="sheet-input-small" name="attr_meleebonus" title="@{meleebonus}" value="0" /></td>
<td class="sheet-right">DMG Bonus:</td>
<td><input type="text" class="sheet-input-small" name="attr_dmgbonus" title="@{dmgbonus}" value="0" /></td>
<td class="sheet-right">Encumbrance:</td>
<td><input type="text" class="sheet-input-small" name="attr_encumbrancebonus" title="@{encumbrancebonus}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_minorstrengthfeat-roll" title="%{selected|minorstrengthfeat-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Minor Strength Feat}} {{1d6 Roll=[[1d6cs<@{MinorStrengthFeat}cf>@{MinorStrengthFeat}]] }}">&nbsp;Open Doors</button></td>
<td><input type="text" class="sheet-input-small" name="attr_minorstrengthfeat" title="@{minorstrengthfeat}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_majorstrengthfeat-roll" title="%{selected|majorstrengthfeat-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Major Strength Feat}} {{ Major STR Feat=[[1d100cs<@{MajorStrengthFeat}cf>@{MajorStrengthFeat} ]] %}}">&nbsp;Bend Bars</button></td>
<td><input type="text" class="sheet-input-small" name="attr_majorstrengthfeat" title="@{majorstrengthfeat}" value="0" /></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">INT</span></td>
<td><input type="text" class="sheet-input-small" name="attr_intelligence" title="@{intelligence}" value="10" />
(<input type="text" name="attr_exceptionalintelligence" title="@{exceptionalintelligence}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right">Add. Lang:</td>
<td><input type="text" class="sheet-input-small" name="attr_bonuslanguages" title="@{bonuslanguages}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_knowspell-roll" title="%{selected|knowspell-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Chance to Know Spell}} {{Roll=[[1d100cs<@{KnowSpell}cf>@{KnowSpell}]] %}}">&nbsp;Know Spell</button></td>
<td><input type="text" class="sheet-input-small" name="attr_knowspell" title="@{knowspell}" value="0" /></td>
<td class="sheet-right">Min Spells:</td>
<td><input type="text" class="sheet-input-small" name="attr_minspells" title="@{minspells}" value="0" /></td>
<td class="sheet-right">Max Spells:</td>
<td><input type="text" class="sheet-input-small" name="attr_maxspells" title="@{maxspells}" value="0" /></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">WIS</span></td>
<td><input type="text" class="sheet-input-small" name="attr_wisdom" title="@{wisdom}" value="10" />
(<input type="text" name="attr_exceptionalwisdom" title="@{exceptionalwisdom}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_mentalsave-roll" title="%{selected|mentalsave-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Mental Save}} {{Roll=[[1d20cs>@{MentalSaveBonus}cf<@{MentalSaveBonus}]]}}">&nbsp;Mental Save</button></td>
<td><input type="text" class="sheet-input-small" name="attr_mentalsavebonus" title="@{mentalsavebonus}" value="0" /></td>
<td class="sheet-right">Spell Bonus:</td>
<td><input type="text" class="sheet-input-small" name="attr_spellbonus" title="@{spellbonus}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_spellfailure-roll" title="%{selected|spellfailure-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Chance of Spell Failure}} {{Roll=[[1d100cs>@{SpellFailure}cf<@{SpellFailure}]] %}}">&nbsp;Spell Fail</button></td>
<td><input type="text" class="sheet-input-small" name="attr_spellfailure" title="@{spellfailure}" value="0" /></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">DEX</span></td>
<td><input type="text" class="sheet-input-small" name="attr_dexterity" title="@{dexterity}" value="10" />
(<input type="text" name="attr_exceptionaldexterity" title="@{exceptionaldexterity}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_surprise-roll" title="%{selected|surprise-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Surprise}} {{Roll=[[ 1d6 + @{SurpriseBonus}[BON] + ?{Modifier?|0}[MOD] ]]}}" >&nbsp;Surprise</button></td>
<td><input type="text" class="sheet-input-small" name="attr_surprisebonus" title="@{surprisebonus}" value="0" /></td>
<td class="sheet-right">Missile Hit:</td>
<td><input type="text" class="sheet-input-small" name="attr_rangedbonus" title="@{rangedbonus}" value="0" /></td>
<td class="sheet-right">AC Bonus:</td>
<td><input type="text" class="sheet-input-small" name="attr_armorbonus" title="@{armorbonus}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" style="margin-right:-50px;" type="roll" name="attr_init-roll" title="%{selected|init-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Initiative!}} {{Roll=[[ 1d6 + @{SurpriseBonus}[BON] + ?{Modifier?|0}[MOD] ]]}}" >&nbsp;INITIATIVE</button></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">CON</span></td>
<td><input type="text" class="sheet-input-small" name="attr_constitution" title="@{constitution}" value="10" />
(<input type="text" name="attr_exceptionalconstitution" title="@{exceptionalconstitution}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right">HP Bonus:</td>
<td><input type="text" class="sheet-input-small" name="attr_hitpointbonus" title="@{hitpointbonus}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_systemshock-roll" title="%{selected|systemshock-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=System Shock Survival}} {{ Roll=[[1d100cs<@{SystemShock}cf>@{SystemShock} ]] %}}">&nbsp;Sys Shock</button></td>
<td><input type="text" class="sheet-input-small" name="attr_systemshock" title="@{systemshock}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_resurrectionsurvival-roll" title="%{selected|resurrectionsurvival-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Resurrection Survival}} {{Roll=[[ 1d100cs<@{ResurrectionSurvival}cf>@{ResurrectionSurvival} ]] %}}">&nbsp;Res Survive</button></td>
<td><input type="text" class="sheet-input-small" name="attr_resurrectionsurvival" title="@{resurrectionsurvival}" value="0" /></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">CHA</span></td>
<td><input type="text" class="sheet-input-small" name="attr_charisma" title="@{charisma}" value="10" />
(<input type="text" name="attr_exceptionalcharisma" title="@{exceptionalcharisma}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td class="sheet-right">Max Hench:</td>
<td><input type="text" class="sheet-input-small" name="attr_maximumhenchmen" title="@{maximumhenchmen}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_loyalty-roll" title="%{selected|loyalty-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Loyalty}} {{Roll=[[ 1d100 + @{LoyaltyBonus}[BON] ]] %}}">&nbsp;Loyalty</button></td>
<td><input type="text" class="sheet-input-small" name="attr_loyaltybonus" title="@{loyaltybonus}" value="0" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_reaction-roll" title="%{selected|reaction-roll}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Reaction}} {{Roll=[[ 1d100 + @{ReactionBonus}[BON] ]] %}}" >&nbsp;React</button></td>
<td><input type="text" class="sheet-input-small" name="attr_reactionbonus" title="@{reactionbonus}" value="0" /></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="sheet-center"><span class="sheet-text-large">COM</span></td>
<td><input type="text" class="sheet-input-small" name="attr_comeliness" title="@{comeliness}" value="10" />
(<input type="text" name="attr_exceptionalcomeliness" title="@{exceptionalcomeliness}" value="0" min="0" max="100" style="width:2.5em;">)</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<table class="sheet-sect sheet-border" style="margin-top:5px;">
<tr>
<td class="sheet-text-large sheet-right">Movement:</td>
<td></td>
<td></td>
<td class="sheet-right">Run <span class="sheet-text-small">(x10)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_run" title="@{movement_run}" value="(@{movement}*10)" disabled /></td>
<td class="sheet-right">Normal <span class="sheet-text-small">(x5)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_normal" title="@{movement_normal}" value="(@{movement}*5)" disabled /></td>
<td class="sheet-right">Crawl <span class="sheet-text-small">(1/2)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_crawl" title="@{movement_crawl}" value="(@{movement}*0.5)" disabled /></td>
</tr>
<tr>
<td></td>
<td class="sheet-right">Base:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement" title="@{movement}" min="0" value="12" />
&nbsp;<input type="checkbox" name="attr_current_encumbrance" value="0" checked="checked" readonly="readonly" /></td>
<td class="sheet-right">Heavy <span class="sheet-text-small">(-3)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_heavy" title="@{movement_heavy}" value="(@{movement}-3)" disabled />
&nbsp;<input type="checkbox" name="attr_current_encumbrance" value="1" readonly="readonly" /></td>
<td class="sheet-right">Very Heavy <span class="sheet-text-small">(-6)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_load" title="@{movement_load}" value="(@{movement}-6)" disabled />
&nbsp;<input type="checkbox" name="attr_current_encumbrance" value="2" readonly="readonly" /></td>
<td class="sheet-right">Max <span class="sheet-text-small">(-9)</span>:</td>
<td><input type="text" class="sheet-input-small" name="attr_movement_max" title="@{movement_max}" value="(@{movement}-9)" disabled />
&nbsp;<input type="checkbox" name="attr_current_encumbrance" value="3" readonly="readonly" /></td>
</tr>
</table>
<hr>
</div>
<div class="sheet-saves">
<div class="sheet-header">SAVES</div>
<input type="checkbox" class="sheet-sect-show" title="@{saves-info-show}" name="attr_saves-info-show" value="1" style="width: 90px; margin: 0 -20px 0 -60px;" checked="checked" /><span></span>
<table class="sheet-sect sheet-center">
<tr>
<td colspan="2">Paralysis, Poison, and Death<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Paralysis, Poison, Death=[[?{Mod?|0}+1d20cs>@{saveparalysispoisondeath}cf<@{saveparalysispoisondeath}]]}} {{Mod Applied=?{Mod?|0}}}" name="roll_saveparalysispoisondeath" title="%{selected|saveparalysispoisondeath}"> Roll</button><input type="text" class="sheet-input-small" name="attr_saveparalysispoisondeath" title="@{saveparalysispoisondeath}" value="0" /></td>
<td colspan="2">Petrification, Polymorph<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Petrification, Polymorph=[[?{Mod?|0}+1d20cs>@{savepetrificationpolymorph}cf<@{savepetrificationpolymorph}]]}} {{Mod Applied=?{Mod?|0}}}" name="roll_savepetrificationpolymorph" title="%{selected|savepetrificationpolymorph}"> Roll</button><input type="text" class="sheet-input-small" name="attr_savepetrificationpolymorph" title="@{savepetrificationpolymorph}" value="0" /></td>
<td colspan="2">Rods, Staves, and Wands<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Rods, Staves, Wands=[[?{Mod?|0}+1d20cs>@{saverodsstaveswands}cf<@{saverodsstaveswands}]]}} {{Mod Applied=?{Mod?|0}}}" name="roll_saverodsstaveswands" title="%{selected|saverodsstaveswands}"> Roll</button><input type="text" class="sheet-input-small" name="attr_saverodsstaveswands" title="@{saverodsstaveswands}" value="0" /></td>
<td colspan="2">Breath Weapon<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Breath Weapons=[[?{Mod?|0}+1d20cs>@{savebreathweapons}cf<@{savebreathweapons}]]}} {{Mod Applied=?{Mod?|0}}}" name="roll_savebreathweapons" title="%{selected|savebreathweapons}"> Roll</button><input type="text" class="sheet-input-small" name="attr_savebreathweapons" title="@{savebreathweapons}" value="0" /></td>
<td colspan="2">Spells<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Spells=[[?{Mod?|0}+1d20cs>@{savespells}cf<@{savespells}]]}} {{Mod Applied=?{Mod?|0}}}" name="roll_savespells" title="%{selected|savespells}"> Roll</button><input type="text" class="sheet-input-small" name="attr_savespells" title="@{savespells}" value="0" /></td>
</tr>
</table>
<hr>
</div>
<div class="sheet-weapons">
<div class="sheet-header">WEAPONS</div>
<input type="checkbox" class="sheet-sect-show" title="@{weapons-info-show}" name="attr_weapons-info-show" value="1" style="width: 115px; margin: 0 -20px 0 -85px;" checked="checked" /><span></span>
<div class="sheet-sect">
<fieldset class="repeating_weapon">
<div class="sheet-sect sheet-border">
<table class="sheet-sect sheet-center" style="width:99%;">
<tr>
<td><button class="sheet-button" type="roll" name="attr_attack-roll" title="%{selected|repeating_weapon_$X_attack-roll}" value="@{macro-text}" >&nbsp;Roll&nbsp;</button></td>
<td style="width:22%;" colspan="2"><input type="text" name="attr_WeaponName" title="@{repeating_weapon_$X_WeaponName}" placeholder="Enter Weapon" style="width:100%;" /><br>Weapon</td>
<td style="width:11%;"><input type="text" class="sheet-input-small" name="attr_ToHitBonus" title="@{repeating_weapon_$X_ToHitBonus}" value="0" /><br>To-Hit Bonus</td>
<td colspan="2" style="width:11%;"><input type="text" class="sheet-input-small" name="attr_MagicBonus" title="@{repeating_weapon_$X_MagicBonus}" value="0" /><br>Magic Bonus</td>
<td colspan="2" style="width:11%;"><input type="text" class="sheet-input-small" name="attr_AttackDmgBonus" title="@{repeating_weapon_$X_AttackDmgBonus}" value="0" /><br>DMG Bonus</td><input type="hidden" name="attr_DmgBonus" value="0" />
<td>
<select name="attr_whisper_to-hit" style="width: 88%;height: 2em;margin: 4px 0 4px 0;">
<option value="&#x00A;/w gm &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=To Hit Armor Class}} {{ToHitAC-10to0=[[ @{THAC-10} ]]|[[ @{THAC-9} ]]|[[ @{THAC-8} ]]|[[ @{THAC-7} ]]|[[ @{THAC-6} ]]|[[ @{THAC-5} ]]|[[ @{THAC-4} ]]|[[ @{THAC-3} ]]|[[ @{THAC-2} ]]|[[ @{THAC-1} ]]|[[ @{THAC0} ]]}} {{ToHitAC1to10=[[ @{THAC0} ]]|[[ @{THAC1} ]]|[[ @{THAC2} ]]|[[ @{THAC3} ]]|[[ @{THAC4} ]]|[[ @{THAC5} ]]|[[ @{THAC6} ]]|[[ @{THAC7} ]]|[[ @{THAC8} ]]|[[ @{THAC9} ]]|[[ @{THAC10} ]] }}" selected="">Table</option>
<option value="&#x00A;/w gm &{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=THACO}} {{ToHitAC-10to0=@{THAC0-10}|@{THAC0-9}|@{THAC0-8}|@{THAC0-7}|@{THAC0-6}|@{THAC0-5}|@{THAC0-4}|@{THAC0-3}|@{THAC0-2}|@{THAC0-1}|**@{THAC00}**}} {{ToHitAC1to10=**@{THAC00}**|@{THAC01}|@{THAC02}|@{THAC03}|@{THAC04}|@{THAC05}|@{THAC06}|@{THAC07}|@{THAC08}|@{THAC09}|@{THAC010} }}">THACO</option>
<option value="&nbsp;">no</option>
</select><br>
<b title="Include '/w gm to-hit AC table or THACO'?">/w gm?</b>
</td>
<td><textarea name="attr_macro-text" title="@{repeating_weapon_$X_macro-text}" class="sheet-macro-text" style="width:96%; margin:5px 0 0 0;">&{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}</textarea><br>Macro-Text</td>
</tr>
<tr>
<td><input type="text" class="sheet-input-small" name="attr_DamageSmallMedium" title="@{repeating_weapon_$X_DamageSmallMedium} e.g. '1d4'" value="0" /><br>DMG vs S/M</td>
<td><input type="text" class="sheet-input-small" name="attr_DamageLarge" title="@{repeating_weapon_$X_DamageLarge} e.g. '1d4+1'" value="0" /><br>DMG vs L</td>
<td><input type="text" class="sheet-input-small" name="attr_RateOfFire" title="@{repeating_weapon_$X_RateOfFire}" value="0" /><br>Rate of Fire</td>
<td><input type="text" class="sheet-input-medium" name="attr_Range" title="@{repeating_weapon_$X_Range}" value="0" /><br>Range S/M/L</td>
<td><input type="text" class="sheet-input-small" name="attr_quantity" title="@{repeating_weapon_$X_quantity}" min="0" value="0" /><br>Qty</td>
<td><input type="text" class="sheet-input-small" name="attr_weight" title="@{repeating_weapon_$X_weight}" min="0" value="0" /><br>Wt</td>
<td><input type="text" class="sheet-input-small" name="attr_WeaponSpeed" title="@{repeating_weapon_$X_WeaponSpeed}" value="0" /><br>Speed</td>
<td><input type="text" class="sheet-input-small" name="attr_cost" title="@{repeating_weapon_$X_cost}" min="0" value="0" /><br>Cost</td>
<td colspan="3"><textarea class="sheet-weapons" name="attr_WeaponNotes" title="@{repeating_weapon_$X_WeaponNotes}" style="width:96%;" placeholder="Description"></textarea><br>Weapon Notes</td>
</tr>
</table>
<input type="hidden" name="attr_weapon_total_weight" value="0" />
<input type="hidden" name="attr_weapon_runningtotal" value="0" />
</div>
</fieldset>
</div>
<hr>
</div>
<div class="sheet-to_hit_AC">
<div class="sheet-header">TO HIT AC TABLE</div>
<input type="checkbox" class="sheet-sect-show" title="@{to_hit_ac-info-show} Use the To Hit tables from the DMG to input values." name="attr_to_hit_ac-info-show" value="1" style="width: 170px;margin: 0 -20px 0 -140px;" checked="checked" /><span></span>
<table class="sheet-sect sheet-center">
<tr class="sheet-to-hit">
<td>-10</td>
<td>-9</td>
<td>-8</td>
<td>-7</td>
<td>-6</td>
<td>-5</td>
<td>-4</td>
<td>-3</td>
<td>-2</td>
<td>-1</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>10</td>
</tr>
<tr class="sheet-to-hit-input">
<td><input type="text" name="attr_THAC-10" title="@{THAC-10}" value="10" /></td>
<td><input type="text" name="attr_THAC-9" title="@{THAC-9}" value="10" /></td>
<td><input type="text" name="attr_THAC-8" title="@{THAC-8}" value="10" /></td>
<td><input type="text" name="attr_THAC-7" title="@{THAC-7}" value="10" /></td>
<td><input type="text" name="attr_THAC-6" title="@{THAC-6}" value="10" /></td>
<td><input type="text" name="attr_THAC-5" title="@{THAC-5}" value="10" /></td>
<td><input type="text" name="attr_THAC-4" title="@{THAC-4}" value="10" /></td>
<td><input type="text" name="attr_THAC-3" title="@{THAC-3}" value="10" /></td>
<td><input type="text" name="attr_THAC-2" title="@{THAC-2}" value="10" /></td>
<td><input type="text" name="attr_THAC-1" title="@{THAC-1}" value="10" /></td>
<td><input type="text" name="attr_THAC0" title="@{THAC0}" value="10" /></td>
<td><input type="text" name="attr_THAC1" title="@{THAC1}" value="10" /></td>
<td><input type="text" name="attr_THAC2" title="@{THAC2}" value="10" /></td>
<td><input type="text" name="attr_THAC3" title="@{THAC3}" value="10" /></td>
<td><input type="text" name="attr_THAC4" title="@{THAC4}" value="10" /></td>
<td><input type="text" name="attr_THAC5" title="@{THAC5}" value="10" /></td>
<td><input type="text" name="attr_THAC6" title="@{THAC6}" value="10" /></td>
<td><input type="text" name="attr_THAC7" title="@{THAC7}" value="10" /></td>
<td><input type="text" name="attr_THAC8" title="@{THAC8}" value="10" /></td>
<td><input type="text" name="attr_THAC9" title="@{THAC9}" value="10" /></td>
<td><input type="text" name="attr_THAC10" title="@{THAC10}" value="10" /></td>
</tr>
</table>
<hr>
</div>
<div class="sheet-thac0">
<div class="sheet-header">THAC0</div>
<input type="checkbox" class="sheet-sect-show" title="@{thac0-show} enter THAC0 to auto-calc table (values are not based off of the To Hit tables from the DMG)" name="attr_thac0-show" value="1" style="width: 90px;margin: 0 -20px 0 -60px;" checked="checked" /><span></span>
<table class="sheet-sect sheet-center">
<tr class="sheet-to-hit">
<td>-10</td>
<td>-9</td>
<td>-8</td>
<td>-7</td>
<td>-6</td>
<td>-5</td>
<td>-4</td>
<td>-3</td>
<td>-2</td>
<td>-1</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>10</td>
</tr>
<tr class="sheet-to-hit-input">
<td><input type="text" name="attr_THAC0-10" title="@{THAC0-10}" value="[[@{THAC00}+10]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-9" title="@{THAC0-9}" value="[[@{THAC00}+9]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-8" title="@{THAC0-8}" value="[[@{THAC00}+8]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-7" title="@{THAC0-7}" value="[[@{THAC00}+7]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-6" title="@{THAC0-6}" value="[[@{THAC00}+6]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-5" title="@{THAC0-5}" value="[[@{THAC00}+5]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-4" title="@{THAC0-4}" value="[[@{THAC00}+4]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-3" title="@{THAC0-3}" value="[[@{THAC00}+3]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-2" title="@{THAC0-2}" value="[[@{THAC00}+2]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC0-1" title="@{THAC0-1}" value="[[@{THAC00}+1]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC00" title="@{THAC00}" value="19" style="font-weight:bold; border: 1px solid black;" /></td>
<td><input type="text" name="attr_THAC01" title="@{THAC01}" value="[[@{THAC00}-1]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC02" title="@{THAC02}" value="[[@{THAC00}-2]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC03" title="@{THAC03}" value="[[@{THAC00}-3]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC04" title="@{THAC04}" value="[[@{THAC00}-4]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC05" title="@{THAC05}" value="[[@{THAC00}-5]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC06" title="@{THAC06}" value="[[@{THAC00}-6]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC07" title="@{THAC07}" value="[[@{THAC00}-7]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC08" title="@{THAC08}" value="[[@{THAC00}-8]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC09" title="@{THAC09}" value="[[@{THAC00}-9]]" min="2" max="20" disabled /></td>
<td><input type="text" name="attr_THAC010" title="@{THAC010}" value="[[@{THAC00}-10]]" min="2" max="20" disabled /></td>
</tr>
</table>
<hr>
</div>
<div class="sheet-thief_skills">
<div class="sheet-header">THIEF SKILLS</div>
<input type="checkbox" class="sheet-sect-show" title="@{thief_skills-info-show}" name="attr_thief_skills-info-show" value="1" style="width: 135px; margin: 0 -20px 0 -105px;" /><span></span>
<table class="sheet-sect">
<tr>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_pickpockets" title="%{selected|pickpockets}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Pick Pockets=[[1d100cs<@{PickPockets}cf>@{pickpockets}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="text" name="attr_pickpockets" class="sheet-input-small" title="@{pickpockets}" value="0" /></td>
<td>Pick Pockets</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_movequietly" title="%{selected|movequietly}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Move Quietly=[[1d100cs<@{movequietly}cf>@{movequietly}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="text" name="attr_movequietly" class="sheet-input-small" title="@{movequietly}" value="0" /></td>
<td>Move Silently</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_climbwalls" title="%{selected|climbwalls}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Climb Walls=[[1d100cs<@{climbwalls}cf>@{climbwalls}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="text" name="attr_climbwalls" class="sheet-input-small" title="@{climbwalls}" value="0" /></td>
<td>Climb Walls</td>
</tr>
<tr>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_openlocks" title="%{selected|openlocks}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Open Locks=[[1d100cs<@{openlocks}cf>@{openlocks}]] %}}"> Roll</button></td>
<td><input type="text" name="attr_openlocks" class="sheet-input-small" title="@{openlocks}" value="0" /></td>
<td>Open Locks</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_hideinshadows" title="%{selected|HideInShadows}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Hide In Shadows=[[1d100cs<@{hideinshadows}cf>@{hideinshadows}]] %}}"> Roll</button></td>
<td><input type="text" name="attr_hideinshadows" class="sheet-input-small" title="@{hideinshadows}" value="0" /></td>
<td>Hide In Shadows</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_readlanguages" title="%{selected|readlanguages}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Read Languages=[[1d100cs<@{readlanguages}cf>@{readlanguages}]] %}}"> Roll</button></td>
<td><input type="text" name="attr_readlanguages" class="sheet-input-small" title="@{readlanguages}" value="0" /></td>
<td>Read Languages</td>
</tr>
<tr>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_findtraps" title="%{selected|findtraps}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Find/Remove Traps=[[1d100cs<@{FindTraps}cf>@{FindTraps}]] %}}"> Roll</button></td>
<td><input type="text" name="attr_findtraps" class="sheet-input-small" title="@{findtraps}" value="0" /></td>
<td>Find/Remove Traps</td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="roll_hearnoise" title="%{selected|hearnoise}" value="&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Ability Check}} {{Hear Noise=[[1d100cs<@{hearnoise}cf>@{hearnoise}]] %}}"> Roll</button></td>
<td><input type="text" name="attr_hearnoise" class="sheet-input-small" title="@{hearnoise}" value="0" /></td>
<td>Hear Noise</td>
<td></td>
<td><input type="text" name="attr_backstab" class="sheet-input-small" title="@{backstab}" value="2" min="2" max="5" /></td>
<td>Backstab</td>
</tr>
</table>
<hr>
</div>
<div class="sheet-wealth">
<div class="sheet-header">WEALTH</div>
<input type="checkbox" class="sheet-sect-show" title="@{wealth-info-show}" name="attr_wealth-info-show" value="1" style="width: 100px; margin: 0 -20px 0 -70px;" /><span></span>
<div class="sheet-sect">
<table class="sheet-sect sheet-center">
<tr>
<td style="width:20%;"><b class="sheet-text-large">Carried Coins:</b></td>
<td style="width:15%;">PP: <input type="text" class="sheet-input-medium" name="attr_pp" title="@{pp}" min="0" value="0" /></td>
<td style="width:15%;">GP: <input type="text" class="sheet-input-medium" name="attr_gp" title="@{gp}" min="0" value="0" /></td>
<td style="width:15%;">EP: <input type="text" class="sheet-input-medium" name="attr_ep" title="@{ep}" min="0" value="0" /></td>
<td style="width:15%;">SP: <input type="text" class="sheet-input-medium" name="attr_sp" title="@{sp}" min="0" value="0" /></td>
<td style="width:15%;">CP: <input type="text" class="sheet-input-medium" name="attr_cp" title="@{cp}" min="0" value="0" /></td>
</tr>
<tr>
<td style="width:20%;"><b class="sheet-text-large">Total Coins:</b></td>
<td style="width:15%;">PP: <input type="text" class="sheet-input-medium" name="attr_pp-total" title="@{pp-total}" min="0" value="0" /></td>
<td style="width:15%;">GP: <input type="text" class="sheet-input-medium" name="attr_gp-total" title="@{gp-total}" min="0" value="0" /></td>
<td style="width:15%;">EP: <input type="text" class="sheet-input-medium" name="attr_ep-total" title="@{ep-total}" min="0" value="0" /></td>
<td style="width:15%;">SP: <input type="text" class="sheet-input-medium" name="attr_sp-total" title="@{sp-total}" min="0" value="0" /></td>
<td style="width:15%;">CP: <input type="text" class="sheet-input-medium" name="attr_cp-total" title="@{cp-total}" min="0" value="0" /></td>
</tr>
</table>
<div class="sheet-table">
<b style="margin-left:20px;">Wealth Notes</b>
<input type="checkbox" class="sheet-sect-show" title="@{wealthnotes-show}" name="attr_wealthnotes-show" value="1" style="width: 115px; margin: 0 -20px 0 -90px;" checked="checked" /><span></span>
<div class="sheet-table-row sheet-sect">
<textarea name="attr_wealthNotes" title="@{wealthNotes}" placeholder="Wealth Notes"></textarea>
</div>
</div>
</div>
<hr>
</div>
<div class="sheet-equipment">
<div class="sheet-header">EQUIPMENT</div>
<input type="checkbox" class="sheet-sect-show" title="@{equipment-info-show}" name="attr_equipment-info-show" value="1" style="width: 125px; margin: 0 -20px 0 -95px;" /><span></span>
<div class="sheet-table sheet-sect sheet-repeating-fields">
<table class="sheet-sect sheet-center">
<tr>
<td style="width:4%;"></td>
<td style="width:38%;">Item/Description</td>
<td style="width:20%;">Location</td>
<td style="width:7%;">Carried?</td>
<td style="width:7%;">Qty</td>
<td style="width:1%;">/</td>
<td style="width:7%;">Max</td>
<td style="width:7%;">Wt</td>
<td style="width:10%;">Cost</td>
</tr>
</table>
<div class="sheet-sect">
<fieldset class="repeating_equipment">
<table class="sheet-sect sheet-center">
<tr>
<td style="width:4%;"><input type="checkbox" class="sheet-counted sheet-sect-show" title="@{repeating_equipment_$X_item-show}" name="attr_item-show" value="1" style="opacity:0; position:absolute; cursor:default; z-index: 1; width:0;" checked="checked" /><span></span></td>
<td style="width:38%;"><input type="text" name="attr_item" title="@{repeating_equipment_$X_item}" placeholder="Item/Description" /></td>
<td style="width:20%;"><input type="text" name="attr_location" title="@{repeating_equipment_$X_location}" placeholder="Location" /></td>
<td style="width:7%;"><input type="checkbox" name="attr_carried" title="@{repeating_equipment_$X_carried}" value="1" /></td>
<td style="width:7%;"><input type="text" name="attr_quantity" title="@{repeating_equipment_$X_quantity}" min="0" value="0" /></td>
<td style="width:1%;">/</td>
<td style="width:7%;"><input type="text" name="attr_quantity_max" title="@{repeating_equipment_$X_quantity|max}" value="1" /></td>
<td style="width:7%;"><input type="text" name="attr_weight" title="@{repeating_equipment_$X_weight}" value="0" /></td>
<td style="width:10%;"><input type="text" name="attr_cost" title="@{repeating_equipment_$X_cost}" value="0" /></td>
</tr>
</table>
<input type="hidden" name="attr_equipment_total_weight" value="0" />
<input type="hidden" name="attr_equipment_runningtotal" value="0" />
</fieldset>
</div>
<table class="sheet-sect">
<tr>
<td rowspan="5" style="width:74%; vertical-align:top;">
<div class="sheet-table sheet-left">
<b style="margin-left:20px;">Equipment Notes</b>
<input type="checkbox" class="sheet-sect-show" title="@{itemnotes-show}" name="attr_itemnotes-show" value="1" style="width: 135px; margin: 0 -20px 0 -105px;" checked="checked" /><span></span>
<div class="sheet-table-row sheet-sect">
<textarea name="attr_itemnotes" title="@{itemnotes}" placeholder="Equipment Notes"></textarea>
</div>
</div>
<table class="sheet-sect sheet-center">
<tr>
<td><b class="sheet-text-large">Carrying Capacity:</b></td>
<td><input type="text" class="sheet-input-medium" name="attr_normal_load" title="@{normal_load} Enter the maximum amount for a 'Normal load'(default 350gp based on STR 8-11. Add STR bonus if applicable.)" value="350" /><br>Normal&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="0" checked="checked" readonly="readonly" /></td>
<td><input type="text" class="sheet-input-medium" name="attr_heavy_load" title="@{heavy_load} Enter the maximum amount for a 'Heavy load'(default 700gp based on STR 8-11. Add STR bonus if applicable.)" value="700" /><br>Heavy&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="1" readonly="readonly" /></td>
<td><input type="text" class="sheet-input-medium" name="attr_very_heavy_load" title="@{very_heavy_load} Enter the maximum amount for a 'Very heavy load'(default 1050gp based on STR 8-11. Add STR bonus if applicable.)" value="1050" /><br>Very Heavy&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="2" readonly="readonly" /></td>
<td><input type="text" class="sheet-input-medium" name="attr_max_load" title="@{max_load} Minimum amount for a max/encumbered load(defaults to 'Very heavy load' + 1)." value="(@{very_heavy_load}+1)" disabled /><b class="sheet-text-large">+</b><br>Max&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="3" readonly="readonly" /></td>
</tr>
<tr>
<td colspan="5">
Strength Encumbrance Bonus:
<input class="sheet-input-small" name="attr_encumbrancebonus" title="@{encumbrancebonus}" value="0" readonly="">&nbsp;&nbsp;<b>hint:</b> increases carrying capacity limits.
</td>
</tr>
</table>
</td>
<td style="width:10%;" class="sheet-right">Equipment:</td>
<td style="width:7%;"><input type="text" style="width:100%;" name="attr_total_equipment_weight" title="@{total_equipment_weight}" value="0" readonly="readonly" /></td>
<td style="width:10%;"><input type="text" style="width:100%;" name="attr_total_equipment_cost" title="@{total_equipment_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Armor:</td>
<td><input type="text" style="width:100%;" name="attr_total_armor_weight" title="@{total_armor_weight}" value="0" readonly="readonly" /></td>
<td><input type="text" style="width:100%;" name="attr_total_armor_cost" title="@{total_armor_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Weapons:</td>
<td><input type="text" style="width:100%;" name="attr_total_weapon_weight" title="@{total_weapon_weight}" value="0" readonly="readonly" /></td>
<td><input type="text" style="width:100%;" name="attr_total_weapon_cost" title="@{total_weapon_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Coins:</td>
<td><input type="text" style="width:100%;" name="attr_total_coin_weight" title="@{total_coin_weight}" value="0" readonly="readonly" /></td>
<td class="sheet-center"><b>&nbsp;-&nbsp;-&nbsp;-&nbsp;</b></td>
</tr>
<tr>
<td class="sheet-right">TOTALS:</td>
<td><input type="text" style="width:100%;" name="attr_total_weight" title="@{total_weight}" value="0" readonly="readonly" /></td>
<td><input type="text" style="width:100%;" name="attr_total_cost" title="@{total_cost}" value="0" readonly="readonly" /></td>
</tr>
</table>
</div>
<hr>
</div>
<div class="sheet-special_abilities">
<div class="sheet-header">SPECIAL ABILITIES</div>
<input type="checkbox" class="sheet-sect-show" title="@{special_abilities-info-show}" name="attr_special_abilities-info-show" value="1" style="width: 180px; margin: 0 -20px 0 -150px;" /><span></span>
<div class="sheet-sect">
<fieldset class="repeating_ability">
<div class="sheet-sect sheet-border">
<table class="sheet-sect sheet-center" style="width:99%;">
<tr>
<td style="width:5%;"><button class="sheet-button" type="roll" name="attr_roll" title="%{repeating_ability_$X_roll}" value="@{macro-text}"></button></td>
<td style="width:22%;"><input type="text" name="attr_name" title="@{repeating_ability_$X_name}" placeholder="Ability Name" /><br>Name</td>
<td style="width:44%;"><textarea name="attr_short_description" title="@{repeating_ability_$X_short_description}" class="sheet-weapons" style="width:100%;" placeholder="Short Description"></textarea><br>Short Description</td>
<td style="width:8%;"><input type="text" name="attr_current" title="@{repeating_ability_$X_current}" value="0" class="sheet-input-small" /><br>Cur</td>
<td style="width:1%;">/<br>/</td>
<td style="width:8%;"><input type="text" name="attr_current_max" title="@{repeating_ability_$X_current|max}" value="0" class="sheet-input-small" /><br>Max</td>
<!--attr_max kept as hidden attribute in order migrate attribute data to-->
<input type="hidden" name="attr_max" value="1">
<td style="width:10%;"><textarea name="attr_macro-text" title="@{repeating_ability_$X_macro-text}" class="sheet-macro-text" style="width:90%; height:1em;" >&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Special Ability: @{name}}} {{=@{short_description}}}</textarea><br>Macro-Text</td>
</tr>
</table>
<b style="margin-left:20px;">Ability Description</b>
<input type="checkbox" class="sheet-sect-show" title="@{repeating_ability_$X_description-show}" name="attr_description-show" value="1" style="opacity: 0;width: 160px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -135px; cursor: pointer; z-index: 1" /><span></span>
<div class="sheet-table sheet-sect">
<div class="sheet-table-row sheet-center sheet-sect">
<textarea name="attr_description" title="@{repeating_ability_$X_description}" placeholder="Ability Description"></textarea>
</div>
</div>
</div>
</fieldset>
<div class="sheet-table">
<b style="margin-left:20px;">Special Abilities Notes</b>
<input type="checkbox" class="sheet-sect-show" title="@{special_abilitiesnotes-show}" name="attr_special_abilitiesnotes-show" value="1" style="width: 180px; margin: 0 -20px 0 -150px;" /><span></span>
<div class="sheet-table-row sheet-sect">
<textarea name="attr_special_abilitiesnotes" title="@{special_abilitiesnotes}" placeholder="Special Abilities Notes"></textarea>
</div>
</div>
</div>
<hr>
</div>
<div class="sheet-nonweapon_proficiencies">
<div class="sheet-header">NON WEAPON PROFICIENCIES</div>
<input type="checkbox" class="sheet-sect-show" title="@{nonweapon_proficiencies-info-show}" name="attr_nonweapon_proficiencies-info-show" value="1" style="width: 275px; margin: 0px -20px 0 -245px;" /><span></span>
<div class="sheet-sect">
<fieldset class="repeating_nonweaponproficiencies">
<div class="sheet-sect sheet-border">
<table class="sheet-sect sheet-center" style="width:99%;">
<tr>
<td style="width:5%;"><button class="sheet-button" type="roll" name="attr_roll" title="%{repeating_nonweaponproficiencies_$X_roll}" value="@{macro-text}"></button></td>
<td style="width:20%; padding-right:20px;"><input type="text" style="width:100%;" name="attr_name" title="@{repeating_nonweaponproficiencies_$X_name}" placeholder="Proficiency Name" /><br>Proficiency</td>
<td class="sheet-right">Attribute:</td>
<td class="sheet-left" style="padding-left:5px;">
<select name="attr_rAttribute" style="width: 7em; vertical-align: text-bottom; margin-top: -5px;">
<option value="0" selected="">None</option>
<option value="@{Strength}">Strength</option>
<option value="@{Dexterity}">Dexterity</option>
<option value="@{Constitution}">Constitution</option>
<option value="@{Intelligence}">Intelligence</option>
<option value="@{Wisdom}">Wisdom</option>
<option value="@{Charisma}">Charisma</option>
</select>
</td>
<td><textarea name="attr_short_description" title="@{repeating_nonweaponproficiencies_$X_short_description}" class="sheet-weapons" style="width:90%;" placeholder="Short Description"></textarea><br>Short Description</td>
<td><input type="number" name="attr_rSlots" title="@{repeating_nonweaponproficiencies_$X_rSlots}" value="0" class="sheet-input-small" style="margin-bottom: 6px;"/><br>Slots</td>
<td>/<br><span style="opacity: 0;margin: 2px;">/</span></td>
<td><input type="number" name="attr_rModifier" title="@{repeating_nonweaponproficiencies_$X_rmodifier}" value="0" class="sheet-input-small" style="margin-bottom: 6px;"/><br>Modifier</td>
<td>
<textarea name="attr_macro-text" title="@{repeating_nonweaponproficiencies_$X_macro-text}" class="sheet-macro-text" style="width:90%; height:1em;">&{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}}}</textarea>
<br>Macro-Text
</td>
</tr>
</table>
<b style="margin-left:20px;">Non Weapon Proficiency Description</b>
<input type="checkbox" class="sheet-sect-show" title="@{repeating_nonweaponproficiencies_$X_description-show}" name="attr_description-show" value="1" style="opacity: 0;width: 275px;height: 20px;position: relative;top: 0;left: 0;margin: 0px -20px 0 -245px;cursor: pointer;z-index: 1;" /><span></span>
<div class="sheet-table sheet-sect">
<div class="sheet-table-row sheet-center sheet-sect">
<textarea name="attr_description" title="@{repeating_nonweaponproficiencies_$X_description}" placeholder="Ability Description" ></textarea>
</div>
</div>
</div>
</fieldset>
</div>
<hr>
</div>
<div class="sheet-spells">
<div class="sheet-header">SPELLS</div>
<input type="checkbox" class="sheet-sect-show" title="@{spells-info-show}" name="attr_spells-info-show" value="1" style="width: 90px; margin: 0 -20px 0 -60px;" /><span></span>
<div class="sheet-sect">
<table class="sheet-sect sheet-center">
<tr>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
<td colspan="2">Cur&nbsp;/&nbsp;Max</td>
</tr>
<tr>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_0_current" title="@{spells_lvl_0_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_0_max" title="@{spells_lvl_0_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_1_current" title="@{spells_lvl_1_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_1_max" title="@{spells_lvl_1_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_2_current" title="@{spells_lvl_2_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_2_max" title="@{spells_lvl_2_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_3_current" title="@{spells_lvl_3_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_3_max" title="@{spells_lvl_3_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_4_current" title="@{spells_lvl_4_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_4_max" title="@{spells_lvl_4_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_5_current" title="@{spells_lvl_5_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_5_max" title="@{spells_lvl_5_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_6_current" title="@{spells_lvl_6_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_6_max" title="@{spells_lvl_6_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_7_current" title="@{spells_lvl_7_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_7_max" title="@{spells_lvl_7_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_8_current" title="@{spells_lvl_8_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_8_max" title="@{spells_lvl_8_max}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_9_current" title="@{spells_lvl_9_current}" value="0" style="width:3em;" /></td>
<td><input type="text" class="sheet-input-small" name="attr_spells_lvl_9_max" title="@{spells_lvl_9_max}" value="0" style="width:3em;" /></td>
</tr>
<tr class="sheet-to-hit">
<td colspan="2">Cantrips</td>
<td colspan="2">1st</td>
<td colspan="2">2nd</td>
<td colspan="2">3rd</td>
<td colspan="2">4th</td>
<td colspan="2">5th</td>
<td colspan="2">6th</td>
<td colspan="2">7th</td>
<td colspan="2">8th</td>
<td colspan="2">9th</td>
</tr>
</table>
<br>
<div class="sheet-spell-tabs">
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="0"><span class="sheet-tab">Cantrips</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="1"><span class="sheet-tab">1st</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="2"><span class="sheet-tab">2nd</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="3"><span class="sheet-tab">3rd</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="4"><span class="sheet-tab">4th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="5"><span class="sheet-tab">5th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="6"><span class="sheet-tab">6th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="7"><span class="sheet-tab">7th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="8"><span class="sheet-tab">8th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="9"><span class="sheet-tab">9th</span>
<input type="radio" class="sheet-tab-hidden sheet-tab" name="attr_spell_tabs" value="-1"><span class="sheet-tab">All</span>
</div>
<div class="sheet-sect">
<fieldset class="repeating_spells">
<input type="hidden" class="sheet-toggle-show" name="attr_spell_show" value="1">
<div class="sheet-spell-display sheet-sect sheet-border">
<div class="sheet-table sheet-center" style="width:99%;">
<div class="sheet-table-row">
<span class="sheet-input-sm"><button class="sheet-button" type="roll" name="attr_roll" title="%{selected|repeating_spells_$X_roll}" value="@{macro-text}"></button></span>
<span class="sheet-input-sm"><input type="text" name="attr_memorized" title="@{repeating_spells_$X_memorized}" style="width: 100% ; height: 1.8em" value="0"><br>#Mem</span>
<span class="sheet-input-sm1">
<select name="attr_level" class="sheet-input-select" title="@{repeating_spells_$X_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>
<br>Lvl
</span>
<span class="sheet-input-long"><input type="text" name="attr_name" title="@{repeating_spells_$X_name}" style="width:100%; height:1.8em;" placeholder="Spell Name" /><br>Name</span>
<span class="sheet-input-med1"><input type="text" name="attr_school" title="@{repeating_spells_$X_school}" style="width:100%; height:1.8em;" value="N/A" /><br>School</span>
<span class="sheet-input-med1"><input type="text" name="attr_range" title="@{repeating_spells_$X_range}" style="width:100%; height:1.8em;" value="N/A" /><br>Range</span>
<span class="sheet-input-med1"><input type="text" name="attr_duration" title="@{repeating_spells_$X_duration}" style="width:100%; height:1.8em;" value="N/A" /><br>Duration</span>
<span class="sheet-input-med1"><input type="text" name="attr_aoe" title="@{repeating_spells_$X_aoe}" style="width:100%; height:1.8em;" value="N/A" /><br>Area</span>
<span class="sheet-input-med"><input type="text" name="attr_components" title="@{repeating_spells_$X_components}" style="width:100%; height:1.8em;" value="N/A" /><br>Comp</span>
<span class="sheet-input-sm"><input type="text" name="attr_ct" title="@{repeating_spells_$X_ct}" style="width:100%; height:1.8em;" value="N/A" /><br>CT</span>
<span class="sheet-input-med"><input type="text" name="attr_save" title="@{repeating_spells_$X_save}" style="width:100%; height:1.8em;" value="N/A" /><br>Save</span>
<span class="sheet-input"><textarea name="attr_macro-text" class="sheet-macro-text-short" title="@{repeating_spells_$X_macro-text}">&{template:general} {{color=@{color_option}}} {{name=@{character_name}}} {{subtag=Casts: @{name}}} {{Range:=@{range}}} {{Duration:=@{duration}}} {{AOE:=@{aoe}}} {{Save:=@{save}}}</textarea><br><span style="white-space: nowrap;">Macro-Text</span></span>
</div>
</div>
<b style="margin-left:20px;">Spell Description</b>
<input type="checkbox" class="sheet-sect-show" title="@{repeating_spells_$X_description-show}" name="attr_description-show" value="1" style="opacity: 0;width: 140px;height: 20px; position: relative; top: 0; left: 0;margin: 0 -20px 0 -115px; cursor: pointer; z-index: 1" /><span></span>
<div class="sheet-table sheet-sect">
<div class="sheet-table-row sheet-center sheet-sect">
<textarea name="attr_description" title="@{repeating_spells_$X_description}" placeholder="Spell Description" ></textarea>
</div>
</div>
</div>
</fieldset>
</div>
<div class="sheet-table-row" style="margin-top: 1em;">
<b style="margin-left:20px;">Spells Notes</b>
<input type="checkbox" class="sheet-sect-show" title="@{spellsnotes-show}" name="attr_spellsnotes-show" value="1" style="width: 140px; margin: 0 -20px 0 -115px;" /><span></span>
<div class="sheet-table sheet-sect">
<div class="sheet-table-row sheet-center sheet-sect">
<textarea name="attr_spellsnotes" title="@{spellsnotes}" placeholder="Spells Notes"></textarea>
</div>
</div>
</div>
</div>
<hr>
</div>
<div class="sheet-notes">
<div class="sheet-header">NOTES</div>
<input type="checkbox" class="sheet-sect-show" title="@{notes-info-show}" name="attr_notes-info-show" value="1" style="width: 90px; margin: 0 -20px 0 -60px;" /><span></span>
<div class="sheet-sect">
<div class="sheet-table">
<div class="sheet-table-row sheet-center">
<textarea name="attr_notes" title="@{notes}" placeholder="Misc Notes"></textarea>
</div>
</div>
</div>
<hr>
</div>
<h4>Settings</h4>
<div class="sheet-options sheet-text-small">
<span style="margin-right: 2em;">
Background:
<input type="radio" class="sheet-useBackground" name="attr_background" value="1" title="No background image." checked="">Off
<input type="radio" class="sheet-useBackground" name="attr_background" value="2" title="Enable background image.">On
</span>
<span>
Roll Template Color:
<select name="attr_color_option" title="@{color_option}" style="width: 8em;">
<option value="black" selected>black</option>
<option value="grey">grey</option>
<option value="darkgrey">darkgrey</option>
<option value="white">white</option>
<option value="red">red</option>
<option value="darkred">darkred</option>
<option value="orange">orange</option>
<option value="darkorange">darkorange</option>
<option value="yellow">yellow</option>
<option value="darkyellow">darkyellow</option>
<option value="green">green</option>
<option value="darkgreen">darkgreen</option>
<option value="blue">blue</option>
<option value="darkblue">darkblue</option>
<option value="purple">purple</option>
<option value="darkpurple">darkpurple</option>
</select>
</span>
</div>
<div class="sheet-footer sheet-text-small">
<div class="sheet-data">
<span class="sheet-data sheet-center">Questions/feedback?:
<button type="roll" class="sheet-button-url" value="https://app.roll20.net/forum/post/8460127/ad-and-d-1e-update">Current AD&D1e sheet thread on Roll20.</button>
</span>
</div>
<div class="sheet-data" style="float: right; margin-top: -1.5em;">
<span class="sheet-data sheet-center">Original Author: Adam Ness | Contributions by: Vince &amp; Community. |
<span>sheet v.<input name="attr_sheet_version" type="text" value="0" class="sheet-version" style="margin: -5px 0 0 -5px;" readonly /><i>12/30/20'</i></span>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="sheet-roll_templates">
<!-- Attack Roll Template -->
<rolltemplate class="sheet-rolltemplate-attacks">
<table class="sheet-rolltemplate-attacks {{#color}}color-{{color}}{{/color}}">
{{#name}}<tr><th>{{name}}</th></tr>{{/name}}
{{#subtag}}<tr><td class="sheet-subheader">{{subtag}}</td></tr>{{/subtag}}
{{#attack1}}<tr><td><span class="sheet-tcat">Attack = </span>{{attack1}}</td></tr>{{/attack1}}
{{#damage1vsSM}}<tr><td><span class="sheet-tcat">Damage vs S/M = </span>{{damage1vsSM}}</td></tr>{{/damage1vsSM}}
{{#damage1vsL}}<tr><td><span class="sheet-tcat">Damage vs L = </span>{{damage1vsL}}</td></tr>{{/damage1vsL}}
{{#attack2}}<tr><td><span class="sheet-tcat">Attack 2 = </span>{{attack2}}</td></tr>{{/attack2}}
{{#damage2vsSM}}<tr><td><span class="sheet-tcat">Damage vs S/M = </span>{{damage2vsSM}}</td></tr>{{/damage2vsSM}}
{{#damage2vsL}}<tr><td><span class="sheet-tcat">Damage vs L = </span>{{damage2vsL}}</td></tr>{{/damage2vsL}}
{{#attack3}}<tr><td><span class="sheet-tcat">Attack 3 = </span>{{attack3}}</td></tr>{{/attack3}}
{{#damage3vsSM}}<tr><td><span class="sheet-tcat">Damage vs S/M = </span>{{damage3vsSM}}</td></tr>{{/damage3vsSM}}
{{#damage3vsL}}<tr><td><span class="sheet-tcat">Damage vs L = </span>{{damage3vsL}}</td></tr>{{/damage3vsL}}
{{#attack4}}<tr><td><span class="sheet-tcat">Attack 4 = </span>{{attack4}}</td></tr>{{/attack4}}
{{#damage4vsSM}}<tr><td><span class="sheet-tcat">Damage vs S/M = </span>{{damage4vsSM}}</td></tr>{{/damage4vsSM}}
{{#damage4vsL}}<tr><td><span class="sheet-tcat">Damage vs L = </span>{{damage4vsL}}</td></tr>{{/damage4vsL}}
{{#ToHitAC-10to0}}<tr><td class="sheet-ToHit">-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|&nbsp;**0**<br>{{ToHitAC-10to0}}</td></tr>{{/ToHitAC-10to0}}
{{#ToHitAC1to10}}<tr><td class="sheet-ToHit"> **0**| 1| 2| 3| 4| 5| 6| 7| 8| 9|10<br>{{ToHitAC1to10}}</td></tr>{{/ToHitAC1to10}}
{{#allprops() name subtag color attack1 attack2 attack3 attack4 damage1vsSM damage2vsSM damage3vsSM damage4vsSM damage1vsL damage2vsL damage3vsL damage4vsL ToHitAC-10to0 ToHitAC1to10 WeaponNotes freetext}}
<tr><td><span class="sheet-tcat">{{key}} = </span>{{value}}</td></tr>
{{/allprops() name subtag color attack1 attack2 attack3 attack4 damage1vsSM damage2vsSM damage3vsSM damage4vsSM damage1vsL damage2vsL damage3vsL damage4vsL ToHitAC-10to0 ToHitAC1to10 WeaponNotes freetext}}
{{#WeaponNotes}}<tr><td class="sheet-text">**Notes:** {{WeaponNotes}}</td></tr>{{/WeaponNotes}}
{{#freetext}}<tr><td colspan="2" class="sheet-text">{{freetext}}</td></tr>{{/freetext}}
</table>
</rolltemplate>
<!-- General Roll Template -->
<rolltemplate class="sheet-rolltemplate-general">
<table class="sheet-rolltemplate-general {{#color}}color-{{color}}{{/color}}">
{{#name}}<tr><th colspan="2">{{name}}</th></tr>{{/name}}
{{#subtag}}<tr><td colspan="2" class="sheet-subheader">{{subtag}}</td></tr>{{/subtag}}
{{#allprops() name subtag freetext color}}
<tr><td style="vertical-align:middle;"><span class="sheet-tcat">{{key}}</span></td><td>{{value}}</td></tr>
{{/allprops() name subtag freetext color}}
{{#freetext}}<tr><td colspan="2" class="sheet-text">{{freetext}}</td></tr>{{/freetext}}
</table>
</rolltemplate>
</div>
<script type="text/worker">
/* ---- BEGIN: TheAaronSheet.js ---- */
// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js
// By: The Aaron, Arcane Scriptomancer
// Contact: https://app.roll20.net/users/104025/the-aaron
var TAS = TAS || (function(){
'use strict';
var version = '0.2.5',
lastUpdate = 1504710542,
loggingSettings = {
debug: {
key: 'debug',
title: 'DEBUG',
color: {
bgLabel: '#7732A2',
label: '#F2EF40',
bgText: '#FFFEB7',
text: '#7732A2'
}
},
error: {
key: 'error',
title: 'Error',
color: {
bgLabel: '#C11713',
label: 'white',
bgText: '#C11713',
text: 'white'
}
},
warn: {
key: 'warn',
title: 'Warning',
color: {
bgLabel: '#F29140',
label: 'white',
bgText: '#FFD8B7',
text: 'black'
}
},
info: {
key: 'info',
title: 'Info',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#B3B2EB',
text: 'black'
}
},
notice: {
key: 'notice',
title: 'Notice',
color: {
bgLabel: '#33C133',
label: 'white',
bgText: '#ADF1AD',
text: 'black'
}
},
log: {
key: 'log',
title: 'Log',
color: {
bgLabel: '#f2f240',
label: 'black',
bgText: '#ffff90',
text: 'black'
}
},
callstack: {
key: 'TAS',
title: 'function',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#B3B2EB',
text: 'black'
}
},
callstack_async: {
key: 'TAS',
title: 'ASYNC CALL',
color: {
bgLabel: '#413FA9',
label: 'white',
bgText: '#413FA9',
text: 'white'
}
},
TAS: {
key: 'TAS',
title: 'TAS',
color: {
bgLabel: 'grey',
label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)',
bgText: 'grey',
text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)'
}
}
},
config = {
debugMode: false,
logging: {
log: true,
notice: true,
info: true,
warn: true,
error: true,
debug: false
}
},
callstackRegistry = [],
queuedUpdates = {}, //< Used for delaying saves till the last moment.
complexType = function(o){
switch(typeof o){
case 'string':
return 'string';
case 'boolean':
return 'boolean';
case 'number':
return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer'));
case 'function':
return 'function: '+(o.name ? o.name+'()' : '(anonymous)');
case 'object':
return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object')));
default:
return typeof o;
}
},
dataLogger = function(primaryLogger,secondaryLogger,data){
_.each(data,function(m){
var type = complexType(m);
switch(type){
case 'string':
primaryLogger(m);
break;
case 'undefined':
case 'null':
case 'NaN':
primaryLogger('['+type+']');
break;
case 'number':
case 'not a number':
case 'integer':
case 'decimal':
case 'boolean':
primaryLogger('['+type+']: '+m);
break;
default:
primaryLogger('['+type+']:=========================================');
secondaryLogger(m);
primaryLogger('=========================================================');
break;
}
});
},
colorLog = function(options){
var coloredLoggerFunction,
key = options.key,
label = options.title || 'TAS',
lBGColor = (options.color && options.color.bgLabel) || 'blue',
lTxtColor = (options.color && options.color.label) || 'white',
mBGColor = (options.color && options.color.bgText) || 'blue',
mTxtColor = (options.color && options.color.text) || 'white';
coloredLoggerFunction = function(message){
/* eslint-disable no-console */
console.log(
'%c '+label+': %c '+message + ' ',
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
'background-color: '+mBGColor+';color: '+mTxtColor+';'
);
/* eslint-enable no-console */
};
return function(){
if('TAS'===key || config.logging[key]){
/* eslint-disable no-console */
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
/* eslint-enable no-console */
}
};
},
logDebug = colorLog(loggingSettings.debug),
logError = colorLog(loggingSettings.error),
logWarn = colorLog(loggingSettings.warn),
logInfo = colorLog(loggingSettings.info),
logNotice = colorLog(loggingSettings.notice),
logLog = colorLog(loggingSettings.log),
log = colorLog(loggingSettings.TAS),
logCS = colorLog(loggingSettings.callstack),
logCSA = colorLog(loggingSettings.callstack_async),
registerCallstack = function(callstack,label){
var idx=_.findIndex(callstackRegistry,function(o){
return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) &&
_.difference(o.stack,callstack).length === 0 &&
o.label === label;
});
if(-1 === idx){
idx=callstackRegistry.length;
callstackRegistry.push({
stack: callstack,
label: label
});
}
return idx;
},
setConfigOption = function(options){
var newconf =_.defaults(options,config);
newconf.logging=_.defaults(
(options && options.logging)||{},
config.logging
);
config=newconf;
},
isDebugMode = function(){
return config.debugMode;
},
debugMode = function(){
config.logging.debug=true;
config.debugMode = true;
},
getCallstack = function(){
var e = new Error('dummy'),
stack = _.map(_.rest(e.stack.replace(/^[^(]+?[\n$]/gm, '')
.replace(/^\s+at\s+/gm, '')
.replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@')
.split('\n')),function(l){
return l.replace(/\s+.*$/,'');
});
return stack;
},
logCallstackSub = function(cs){
var matches, csa;
_.find(cs,function(line){
matches = line.match(/TAS_CALLSTACK_(\d+)/);
if(matches){
csa=callstackRegistry[matches[1]];
logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'====================');
logCallstackSub(csa.stack);
return true;
}
logCS(line);
return false;
});
},
logCallstack = function(){
var cs;
if(config.debugMode){
cs = getCallstack();
cs.shift();
log('==============================> CALLSTACK <==============================');
logCallstackSub(cs);
log('=========================================================================');
}
},
wrapCallback = function (label, callback, context){
var callstack;
if('function' === typeof label){
context=callback;
callback=label;
label=undefined;
}
if(!config.debugMode){
return (function(cb,ctx){
return function(){
cb.apply(ctx||{},arguments);
};
}(callback,context));
}
callstack = getCallstack();
callstack.shift();
return (function(cb,ctx,cs,lbl){
var ctxref=registerCallstack(cs,lbl);
/*jshint -W054 */
return new Function('cb','ctx','TASlog',
"return function TAS_CALLSTACK_"+ctxref+"(){"+
"var start,end;"+
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
"start=_.now();"+
"cb.apply(ctx||{},arguments);"+
"end=_.now();"+
"TASlog('Exiting: '+(cb.name||'(anonymous function)')+' :: '+(end-start)+'ms elapsed');"+
"};")(cb,ctx,log);
/*jshint +W054 */
}(callback,context,callstack,label));
},
prepareUpdate = function( attribute, value ){
queuedUpdates[attribute]=value;
},
applyQueuedUpdates = function() {
setAttrs(queuedUpdates);
queuedUpdates = {};
},
namesFromArgs = function(args,base){
return _.chain(args)
.reduce(function(memo,attr){
if('string' === typeof attr) {
memo.push(attr);
} else if(_.isArray(args) || _.isArguments(args)){
memo = namesFromArgs(attr,memo);
}
return memo;
},(_.isArray(base) && base) || [])
.uniq()
.value();
},
addId = function(obj,value){
Object.defineProperty(obj,'id',{
value: value,
writable: false,
enumerable: false
});
},
addProp = function(obj,prop,value,fullname){
(function(){
var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop),
full_pname = fullname || prop,
pvalue=value;
_.each(['S','I','F'],function(p){
if( !_.has(obj,p)){
Object.defineProperty(obj, p, {
value: {},
enumerable: false,
readonly: true
});
}
});
if( !_.has(obj,'D')){
Object.defineProperty(obj, 'D', {
value: _.reduce(_.range(10),function(m,d){
Object.defineProperty(m, d, {
value: {},
enumerable: true,
readonly: true
});
return m;
},{}),
enumerable: false,
readonly: true
});
}
// Raw value
Object.defineProperty(obj, pname, {
enumerable: true,
set: function(v){
if(v!==pvalue) {
pvalue=v;
prepareUpdate(full_pname,v);
}
},
get: function(){
return pvalue;
}
});
// string value
Object.defineProperty(obj.S, pname, {
enumerable: true,
set: function(v){
var val=v.toString();
if(val !== pvalue) {
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return pvalue.toString();
}
});
// int value
Object.defineProperty(obj.I, pname, {
enumerable: true,
set: function(v){
var val=parseInt(v,10) || 0;
if(val !== pvalue){
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return parseInt(pvalue,10) || 0;
}
});
// float value
Object.defineProperty(obj.F, pname, {
enumerable: true,
set: function(v){
var val=parseFloat(v) || 0;
if(val !== pvalue) {
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return parseFloat(pvalue) || 0;
}
});
_.each(_.range(10),function(d){
Object.defineProperty(obj.D[d], pname, {
enumerable: true,
set: function(v){
var val=(parseFloat(v) || 0).toFixed(d);
if(val !== pvalue){
pvalue=val;
prepareUpdate(full_pname,val);
}
},
get: function(){
return (parseFloat(pvalue) || 0).toFixed(d);
}
});
});
}());
},
repeating = function( section ) {
return (function(s){
var sectionName = s,
attrNames = [],
fieldNames = [],
operations = [],
after = [],
repAttrs = function TAS_Repeating_Attrs(){
attrNames = namesFromArgs(arguments,attrNames);
return this;
},
repFields = function TAS_Repeating_Fields(){
fieldNames = namesFromArgs(arguments,fieldNames);
return this;
},
repReduce = function TAS_Repeating_Reduce(func, initial, final, context) {
operations.push({
type: 'reduce',
func: (func && _.isFunction(func) && func) || _.noop,
memo: (_.isUndefined(initial) && 0) || initial,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repMap = function TAS_Repeating_Map(func, final, context) {
operations.push({
type: 'map',
func: (func && _.isFunction(func) && func) || _.noop,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repEach = function TAS_Repeating_Each(func, final, context) {
operations.push({
type: 'each',
func: (func && _.isFunction(func) && func) || _.noop,
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repTap = function TAS_Repeating_Tap(final, context) {
operations.push({
type: 'tap',
final: (final && _.isFunction(final) && final) || _.noop,
context: context || {}
});
return this;
},
repAfter = function TAS_Repeating_After(callback,context) {
after.push({
callback: (callback && _.isFunction(callback) && callback) || _.noop,
context: context || {}
});
return this;
},
repExecute = function TAS_Repeating_Execute(callback,context){
var rowSet = {},
attrSet = {},
fieldIds = [],
fullFieldNames = [];
repAfter(callback,context);
// call each operation per row.
// call each operation's final
getSectionIDs("repeating_"+sectionName,function(ids){
fieldIds = ids;
fullFieldNames = _.reduce(fieldIds,function(memo,id){
return memo.concat(_.map(fieldNames,function(name){
return 'repeating_'+sectionName+'_'+id+'_'+name;
}));
},[]);
getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){
_.each(attrNames,function(aname){
if(values.hasOwnProperty(aname)){
addProp(attrSet,aname,values[aname]);
}
});
rowSet = _.reduce(fieldIds,function(memo,id){
var r={};
addId(r,id);
_.each(fieldNames,function(name){
var fn = 'repeating_'+sectionName+'_'+id+'_'+name;
addProp(r,name,values[fn],fn);
});
memo[id]=r;
return memo;
},{});
_.each(operations,function(op){
var res;
switch(op.type){
case 'tap':
_.bind(op.final,op.context,rowSet,attrSet)();
break;
case 'each':
_.each(rowSet,function(r){
_.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,rowSet,attrSet)();
break;
case 'map':
res = _.map(rowSet,function(r){
return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,res,rowSet,attrSet)();
break;
case 'reduce':
res = op.memo;
_.each(rowSet,function(r){
res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)();
});
_.bind(op.final,op.context,res,rowSet,attrSet)();
break;
}
});
// finalize attrs
applyQueuedUpdates();
_.each(after,function(op){
_.bind(op.callback,op.context)();
});
});
});
};
return {
attrs: repAttrs,
attr: repAttrs,
column: repFields,
columns: repFields,
field: repFields,
fields: repFields,
reduce: repReduce,
inject: repReduce,
foldl: repReduce,
map: repMap,
collect: repMap,
each: repEach,
forEach: repEach,
tap: repTap,
'do': repTap,
after: repAfter,
last: repAfter,
done: repAfter,
execute: repExecute,
go: repExecute,
run: repExecute
};
}(section));
},
repeatingSimpleSum = function(section, field, destination){
repeating(section)
.attr(destination)
.field(field)
.reduce(function(m,r){
return m + (r.F[field]);
},0,function(t,r,a){
a.S[destination]=t;
})
.execute();
};
/* eslint-disable no-console */
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ The Aaron Sheet v'+version+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ Last update: '+(new Date(lastUpdate*1000))+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
/* eslint-enable no-console */
return {
/* Repeating Sections */
repeatingSimpleSum: repeatingSimpleSum,
repeating: repeating,
/* Configuration */
config: setConfigOption,
/* Debugging */
callback: wrapCallback,
callstack: logCallstack,
debugMode: debugMode,
isDebugMode: isDebugMode,
_fn: wrapCallback,
/* Logging */
debug: logDebug,
error: logError,
warn: logWarn,
info: logInfo,
notice: logNotice,
log: logLog
};
}());
/* ---- END: TheAaronSheet.js ---- */
on('change:repeating_equipment remove:repeating_equipment', function(){
TAS.repeating('equipment')
.attrs('total_equipment_weight','total_equipment_cost')
.fields('item','quantity','weight','weightTotal','carried','equipment_totalweight','cost','equipment_runningtotal')
.reduce(function(m,r){
m.weightTotal=(r.F.weight*r.I.quantity);
if(r.carried === '1'){m.weight+=m.weightTotal;}
else{m.weight=m.weight;}
r.equipment_totalweight=m.weightTotal;
m.cost+=(r.F.cost*r.I.quantity);
r.D[2].equipment_runningtotal=m.cost;
return m;
},{weight:0,cost:0, desc: []},function(m,r,a){
a.total_equipment_weight=m.weight;
a.D[2].total_equipment_cost=m.cost;
console.log("===== Equipment Running Totals =====" + '\n' +"EquipmentWeightRunningTotal = " + m.weight + '\n' +"EquipmentCostRunningTotal = " + m.cost);
})
.execute();
});
on('change:repeating_weapon remove:repeating_weapon', function(){
TAS.repeating('weapon')
.attrs('total_weapon_weight','total_weapon_cost')
.fields('name','quantity','weight','weapon_totalweight','cost','weapon_runningtotal')
.reduce(function(m,r){
m.weight+=(r.F.weight*r.I.quantity);
r.D[2].weapon_totalweight=(r.F.weight*r.I.quantity);
m.cost+=(r.F.cost*r.I.quantity);
r.D[2].weapon_runningtotal=m.cost;
return m;
},{weight:0,cost:0, desc: []},function(m,r,a){
a.total_weapon_weight=m.weight;
a.D[2].total_weapon_cost=m.cost;
console.log("===== Weapon Running Totals =====" + '\n' +"WeaponWeightRunningTotal = " + m.weight + '\n' +"WeaponCostRunningTotal = " + m.cost);
})
.execute();
});
on('sheet:opened change:pp change:gp change:ep change:sp change:cp change:armor_weight change:armor_cost', function(){
getAttrs(['pp','gp','ep','sp','cp','armor_weight','armor_cost'], function(values){
setAttrs({
total_coin_weight: Math.round(((parseFloat(values.pp) + parseFloat(values.gp) + parseFloat(values.ep) + parseFloat(values.sp) + parseFloat(values.cp)))),
total_armor_weight: (parseFloat(values.armor_weight)),
total_armor_cost: (parseFloat(values["armor_cost"],10)).toFixed(2)
});
});
});
on('sheet:opened change:total_armor_weight change:total_weapon_weight change:total_coin_weight change:total_equipment_weight change:repeating_equipment remove:repeating_equipment change:repeating_weapon remove:repeating_weapon change:pp change:gp change:ep change:sp change:cp change:armor_weight change:armor_cost change:total_armor_cost change:total_weapon_cost change:total_equipment_cost', function(){
getAttrs(['total_armor_weight','total_weapon_weight','total_coin_weight','total_equipment_weight','total_armor_cost','total_weapon_cost','total_equipment_cost'], function(values){
setAttrs({
total_weight: Math.round(parseFloat(values.total_armor_weight) + parseFloat(values.total_weapon_weight) + parseFloat(values.total_coin_weight) + parseFloat(values.total_equipment_weight)),
total_cost: (parseFloat(values["total_armor_cost"],10) + parseFloat(values["total_weapon_cost"],10) + parseFloat(values["total_equipment_cost"],10)).toFixed(2)
});
});
});
/* check and set encumbrance */
on('sheet:opened change:normal_load change:heavy_load change:very_heavy_load change:max_load change:total_weight', function(){
getAttrs(['normal_load','heavy_load','very_heavy_load','max_load','total_weight'], function(values){
if(values.total_weight <= values.normal_load) {setAttrs({current_encumbrance:0}); console.log("===== Encumbrance is Normal =====");}
else if(values.total_weight > values.normal_load && values.total_weight <= values.heavy_load) {setAttrs({current_encumbrance:1}); console.log("===== Encumbrance is Heavy =====");}
else if(values.total_weight > values.heavy_load && values.total_weight <= values.very_heavy_load) {setAttrs({current_encumbrance:2}); console.log("===== Encumbrance is Very Heavy =====");}
else {setAttrs({current_encumbrance:3}); console.log("===== Encumbrance is Max =====");}
});
});
// Spell Tabs
on('change:spell_tabs', () => {
getSectionIDs('repeating_spells', idarray => {
const fieldnames = [];
idarray.forEach(id => {
fieldnames.push(`repeating_spells_${id}_level`);
});
getAttrs(['spell_tabs', ...fieldnames], v => {
const output = {};
const level = +v.spell_tabs||0;
idarray.forEach(id => {
const thislevel = +v[`repeating_spells_${id}_level`] || 0;
output[`repeating_spells_${id}_spell_show`] = (level === -1 || level === thislevel) ? 1 : 0;
});
setAttrs(output);
});
});
});
var Sheet = Sheet || (function() {
var version = 1.51,
Debug = false,
// copy DmgBonus value to AttackDmgBonus
dmgSwap = function() {
getSectionIDs("repeating_weapon", function(idarray) { //Get oldSectionID
var update={};
_.each(idarray, function(currentID, i) {
getAttrs(['repeating_weapon_' + currentID + '_DmgBonus'], function(v) { //Get oldAttribute from FieldID
update['repeating_weapon_' + currentID + '_AttackDmgBonus'] = v['repeating_weapon_' + currentID + '_DmgBonus']; //replaces old attribute value with new
setAttrs(update,{silent:true}); //Update
});
});
});
// replace all instances of @{DmgBonus} with @{AttackDmgBonus} in macro-text
var update = {}, attrs = [];
getSectionIDs("repeating_weapon", function(idarray) {
_.each(idarray, function(itemid) {
attrs.push("repeating_weapon_" + itemid + "_macro-text");
});
getAttrs(attrs, function(v) {
_.each(idarray, function(id) {
update["repeating_weapon_" + id + "_macro-text"] = v["repeating_weapon_" + id + "_macro-text"].replace(new RegExp('@{DmgBonus}', 'g'), '@{AttackDmgBonus}');
});
setAttrs(update,{silent:true});
});
});
},
// copy max value to current_max
maxSwap = function() {
getSectionIDs("repeating_ability", function(idarray) { //Get oldSectionID
var update={};
_.each(idarray, function(currentID, i) {
getAttrs(['repeating_ability_' + currentID + '_max'], function(v) { //Get oldAttribute from FieldID
update['repeating_ability_' + currentID + '_current_max'] = v['repeating_ability_' + currentID + '_max']; //replaces old attribute value with new
setAttrs(update,{silent:true}); //Update
});
});
});
},
//replace default macro-text of non weapon proficiencies ONLY IF they haven't been edited
nwpMacroUpdate = function() {
var update = {}, attrs = [];
getSectionIDs("repeating_nonweaponproficiencies", function(idarray) {
_.each(idarray, function(itemid) {
attrs.push("repeating_nonweaponproficiencies_" + itemid + "_macro-text");
});
getAttrs(attrs, function(v) {
_.each(idarray, function(id) {
update["repeating_nonweaponproficiencies_" + id + "_macro-text"] = v["repeating_nonweaponproficiencies_" + id + "_macro-text"].replace('&{template:general} {{name=@{character_name}}} {{subtag=Non Weapon Proficiency: @{name}}} {{=@{short_description}}}{{Success Amount=[[((@{rAttribute})+(@{rSlots}-1)-1d20)cs>1cf<-1]]}}',
'&{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}}}');
});
console.log("nwpMacroUpdate check completed on: " +attrs);
setAttrs(update,{silent:true});
});
});
},
//add {{color=@{color}}} to repeating section macro-text
colorUpdate = function() {
//update repeating_weapon_
var updateWeapon = {}, attrsWeapon = [];
getSectionIDs("repeating_weapon", function(idarray) {
_.each(idarray, function(itemid) {
attrsWeapon.push("repeating_weapon_" + itemid + "_macro-text");
});
getAttrs(attrsWeapon, function(v) {
_.each(idarray, function(id) {
updateWeapon["repeating_weapon_" + id + "_macro-text"] = v["repeating_weapon_" + id + "_macro-text"].replace('&{template:attacks} {{name=@{character_name}}}',
'&{template:attacks} {{color=@{color_option}}} {{name=@{character_name}}}');
});
console.log("colorUpdate check completed on: " +attrsWeapon);
setAttrs(updateWeapon,{silent:true});
});
});
//update repeating_ability_
var updateAbility = {}, attrsAbility = [];
getSectionIDs("repeating_ability", function(idarray) {
_.each(idarray, function(itemid) {
attrsAbility.push("repeating_ability_" + itemid + "_macro-text");
});
getAttrs(attrsAbility, function(v) {
_.each(idarray, function(id) {
updateAbility["repeating_ability_" + id + "_macro-text"] = v["repeating_ability_" + id + "_macro-text"].replace('&{template:general} {{name=@{character_name}}}',
'&{template:general} {{color=@{color_option}}} {{name=@{character_name}}}');
});
console.log("colorUpdate check completed on: " +attrsAbility);
setAttrs(updateAbility,{silent:true});
});
});
//update repeating_spells_
var updateSpells = {}, attrsSpells = [];
getSectionIDs("repeating_spells", function(idarray) {
_.each(idarray, function(itemid) {
attrsSpells.push("repeating_spells_" + itemid + "_macro-text");
});
getAttrs(attrsSpells, function(v) {
_.each(idarray, function(id) {
updateSpells["repeating_spells_" + id + "_macro-text"] = v["repeating_spells_" + id + "_macro-text"].replace('&{template:general} {{name=@{character_name}}}',
'&{template:general} {{color=@{color_option}}} {{name=@{character_name}}}');
});
console.log("colorUpdate check completed on: " +attrsSpells);
setAttrs(updateSpells,{silent:true});
});
});
},
/* recalculateSheet */
recalculateSheet = function(oldversion) {
if (oldversion < 0.1) {
//call your functions here
dmgSwap();
}
if (oldversion < 1.2) {
maxSwap();
}
if (oldversion < 1.5) {
nwpMacroUpdate();
colorUpdate();
}
},
/* checkForUpdate looks at current version of page in
* sheet_version and compares to code Sheet.version calls
* recalulateSheet if versions don't match or if recalculate
* button was pressed. */
checkForUpdate = function() {
getAttrs(["sheet_version","sheet_forcesync","recalc1"],function(v){
var setter={},currVer=0,setAny=0,recalc=false;
currVer=parseFloat(v["sheet_version"],10)||0;
console.log("Current sheet data version:"+currVer+", Sheet code version:" + version );
if ( currVer!== version ) {
recalc=true;
setter["sheet_version"]= version;
setAny=1;
}
if (v["recalc1"] && v["recalc1"]!="0" ) {
currVer=-1;
recalc=true;
setter["recalc1"]=0;
setAny=1;
}
if (v["sheet_forcesync"] && v["sheet_forcesync"]!="0" ) {
currVer=-1;
recalc=true;
setter["sheet_forcesync"]=0;
setAny=1;
}
if (setAny) {
setAttrs( setter);
}
if (recalc) {
recalculateSheet(currVer);
}
});
};
return {
version:version,
checkForUpdate:checkForUpdate,
dmgSwap:dmgSwap,
maxSwap:maxSwap,
nwpMacroUpdate:nwpMacroUpdate,
colorUpdate:colorUpdate
};
}());
//sheet
on("sheet:opened",function() {Sheet.checkForUpdate();});
on("change:recalc1",function() {Sheet.checkForUpdate();});
console.log("...recalc checking for update");
</script>