Files
roll20-character-sheets/AD&D_1E/1ESheet.html
T

1384 lines
77 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="radio" class="sheet-useBackground" style="display:none;" name="attr_background" value="1" checked />
<input type="radio" class="sheet-useBackground" style="display:none;" name="attr_background" value="2" />
<div class="sheet-background">
<div class="sheet-wrapper">
<div class="sheet-center" style="padding-top:10px;"><img src="https://i.imgur.com/I7XAra9.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="opacity: 0;width: 230px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -200px; cursor: pointer; z-index: 1" 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="@{character_Alignment}" value="" placeholder="Description" /></td>
</tr>
<tr>
<td class="sheet-right">Class 1:</td>
<td><input type="text" class="sheet-input-large" name="attr_Class" title="@{character_Class}" placeholder="Class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="number" class="sheet-input-small" name="attr_Level" title="@{character_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}" value="" placeholder="2nd class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="number" 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}" value="" placeholder="3rd class" /></td>
<td class="sheet-right">Lvl:</td>
<td><input type="number" 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="number" class="sheet-box" name="attr_HitPoints" title="@{HitPoints}" value="0" /></td>
<td class="sheet-right sheet-text-large" style="padding:10px 5px 10px 55px">AC:</td>
<td colspan="3"><input type="number" 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}" value="" 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}" value="" 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}" value="" 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}" value="" 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}" value="" 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}" value="" placeholder="Color" /></td>
<td class="sheet-right">Hair:</td>
<td><input type="text" class="sheet-input-medium" name="attr_Hair" title="@{Hair}" value="" placeholder="Color" /></td>
</tr>
</table>
</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="opacity: 0;width: 115px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -85px; cursor: pointer; z-index: 1" checked="checked" /><span></span>
<table class="sheet-sect">
<tr>
<td class="sheet-right"><span class="sheet-text-large">STR&nbsp;&nbsp;</span></td>
<td><input type="text" class="sheet-input-small" name="attr_Strength" title="@{Strength}" value="10" style="text-align:left; padding-left:9px;" /></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} {{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} {{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-right"><span class="sheet-text-large">INT&nbsp;&nbsp;</span></td>
<td><input type="number" class="sheet-input-small" name="attr_Intelligence" title="@{Intelligence}" value="10" /></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} {{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-right"><span class="sheet-text-large">WIS&nbsp;&nbsp;</span></td>
<td><input type="number" class="sheet-input-small" name="attr_Wisdom" title="@{Wisdom}" value="10" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_MentalSave-roll" title="%{selected|MentalSave-roll}"value="&{template:general} {{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} {{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-right"><span class="sheet-text-large">DEX&nbsp;&nbsp;</span></td>
<td><input type="number" class="sheet-input-small" name="attr_dexterity" title="@{dexterity}" value="10" /></td>
<td class="sheet-right"><button class="sheet-button" type="roll" name="attr_surprise-roll" title="%{selected|surprise-roll}" value="&{template:general} {{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" type="roll" name="attr_init-roll" title="%{selected|init-roll}" value="&{template:general} {{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-right"><span class="sheet-text-large">CON&nbsp;&nbsp;</span></td>
<td><input type="number" class="sheet-input-small" name="attr_constitution" title="@{constitution}" value="10" /></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} {{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} {{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-right"><span class="sheet-text-large">CHA&nbsp;&nbsp;</span></td>
<td><input type="number" class="sheet-input-small" name="attr_Charisma" title="@{Charisma}" value="10" /></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} {{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} {{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>
</table>
<table class="sheet-sect sheet-border" style="margin-top:5px;">
<tr>
<td class="sheet-text-large sheet-center">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="number" 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_Very_Heavy}" 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="opacity: 0;width: 90px;height: 20px; position: relative; top: 0; left: 0;margin: 0 -20px 0 -60px; cursor: pointer; z-index: 1" checked="checked" /><span></span>
<table class="sheet-sect sheet-center">
<tr>
<td colspan="2">Rods, Staves, and Wands<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Rods, Staves, Wands=[[1d20cs>@{SaveRodsStavesWands}cf<@{SaveRodsStavesWands}]]}}" name="roll_SaveRodsStavesWands" title="%{selected|SaveRodsStavesWands}"> Roll</button><input type="number" 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} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Breath Weapons=[[1d20cs>@{SaveBreathWeapons}cf<@{SaveBreathWeapons}]]}}" name="roll_SaveBreathWeapons" title="%{selected|SaveBreathWeapons}"> Roll</button><input type="number" class="sheet-input-small" name="attr_SaveBreathWeapons" title="@{SaveBreathWeapons}" value="0" /></td>
<td colspan="2">Paralysis, Poison, and Death<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Paralysis, Poison, Death=[[1d20cs>@{SaveParalysisPoisonDeath}cf<@{SaveParalysisPoisonDeath}]]}}" name="roll_SaveParalysisPoisonDeath" title="%{selected|SaveParalysisPoisonDeath}"> Roll</button><input type="number" 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} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Petrification, Polymorph=[[1d20cs>@{SavePetrificationPolymorph}cf<@{SavePetrificationPolymorph}]]}}" name="roll_SavePetrificationPolymorph" title="%{selected|SavePetrificationPolymorph}"> Roll</button><input type="number" class="sheet-input-small" name="attr_SavePetrificationPolymorph" title="@{SavePetrificationPolymorph}" value="0" /></td>
<td colspan="2">Spells<br><button class="sheet-button" type="roll" value="/me must make a saving throw!&#x00A;&{template:general} {{name=@{character_name}}} {{subtag=Saving Throw}} {{Spells=[[1d20cs>@{SaveSpells}cf<@{SaveSpells}]]}}" name="roll_SaveSpells" title="%{selected|SaveSpells}"> Roll</button><input type="number" 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="opacity: 0;width: 115px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -85px; cursor: pointer; z-index: 1" 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" value="" style="width:100%;" /><br>Weapon</td>
<td style="width:11%;"><input class="sheet-input-small" type="text" name="attr_ToHitBonus" title="@{repeating_weapon_$X_ToHitBonus}" value="0" /><br>To-Hit Bonus</td>
<td colspan="2" style="width:11%;"><input class="sheet-input-small" type="text" name="attr_MagicBonus" title="@{repeating_weapon_$X_MagicBonus}" value="0" /><br>Magic Bonus</td>
<td colspan="2" style="width:11%;"><input class="sheet-input-small" type="text" name="attr_DmgBonus" title="@{repeating_weapon_$X_DmgBonus}" value="0" /><br>DMG Bonus</td>
<td><b title="Include '/w gm to-hit AC' table?">/w gm?</b><br>
<select name="attr_whisper_to-hit" style="width:100%; height:2em;">
<option value="&#x00A;/w gm &amp;{template:attacks} {{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="">yes</option>
<option value="&nbsp;">no</option>
</select>
</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} {{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}</textarea><br>Macro-Text</td>
</tr>
<tr>
<td><input class="sheet-input-small" type="text" name="attr_DamageSmallMedium" title="@{repeating_weapon_$X_DamageSmallMedium}" value="0" /><br>DMG vs S/M</td>
<td><input class="sheet-input-small" type="text" name="attr_DamageLarge" title="@{repeating_weapon_$X_DamageLarge}" value="0" /><br>DMG vs L</td>
<td><input class="sheet-input-small" type="text" name="attr_RateOfFire" title="@{repeating_weapon_$X_RateOfFire}" value="0" /><br>Rate of Fire</td>
<td><input class="sheet-input-medium" type="text" name="attr_Range" title="@{repeating_weapon_$X_Range}" value="0" /><br>Range S/M/L</td>
<td><input class="sheet-input-small" type="text" name="attr_quantity" title="@{repeating_weapon_$X_quantity}" min="0" value="0" /><br>Qty</td>
<td><input class="sheet-input-small" type="text" name="attr_weight" title="@{repeating_weapon_$X_weight}" min="0" value="0" /><br>Wt</td>
<td><input class="sheet-input-small" type="text" name="attr_WeaponSpeed" title="@{repeating_weapon_$X_WeaponSpeed}" value="0" /><br>Speed</td>
<td><input class="sheet-input-small" type="text" 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}" value="" 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 ARMOR CLASS</div>
<input type="checkbox" class="sheet-sect-show" title="@{to_hit_AC-info-show}" name="attr_to_hit_AC-info-show" value="1" style="opacity: 0;width: 200px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -170px; cursor: pointer; z-index: 1" 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="00" /></td>
<td><input type="text" name="attr_THAC-9" title="@{THAC-9}" value="00" /></td>
<td><input type="text" name="attr_THAC-8" title="@{THAC-8}" value="00" /></td>
<td><input type="text" name="attr_THAC-7" title="@{THAC-7}" value="00" /></td>
<td><input type="text" name="attr_THAC-6" title="@{THAC-6}" value="00" /></td>
<td><input type="text" name="attr_THAC-5" title="@{THAC-5}" value="00" /></td>
<td><input type="text" name="attr_THAC-4" title="@{THAC-4}" value="00" /></td>
<td><input type="text" name="attr_THAC-3" title="@{THAC-3}" value="00" /></td>
<td><input type="text" name="attr_THAC-2" title="@{THAC-2}" value="00" /></td>
<td><input type="text" name="attr_THAC-1" title="@{THAC-1}" value="00" /></td>
<td><input type="text" name="attr_THAC0" title="@{THAC0}" value="00" /></td>
<td><input type="text" name="attr_THAC1" title="@{THAC1}" value="00" /></td>
<td><input type="text" name="attr_THAC2" title="@{THAC2}" value="00" /></td>
<td><input type="text" name="attr_THAC3" title="@{THAC3}" value="00" /></td>
<td><input type="text" name="attr_THAC4" title="@{THAC4}" value="00" /></td>
<td><input type="text" name="attr_THAC5" title="@{THAC5}" value="00" /></td>
<td><input type="text" name="attr_THAC6" title="@{THAC6}" value="00" /></td>
<td><input type="text" name="attr_THAC7" title="@{THAC7}" value="00" /></td>
<td><input type="text" name="attr_THAC8" title="@{THAC8}" value="00" /></td>
<td><input type="text" name="attr_THAC9" title="@{THAC9}" value="00" /></td>
<td><input type="text" name="attr_THAC10" title="@{THAC10}" value="00" /></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="opacity: 0;width: 135px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -105px; cursor: pointer; z-index: 1" /><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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Pick Pockets=[[1d100cs<@{PickPockets}cf>@{PickPockets}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Move Quietly=[[1d100cs<@{MoveQuietly}cf>@{MoveQuietly}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Climb Walls=[[1d100cs<@{ClimbWalls}cf>@{ClimbWalls}]] %}}"> Roll</button></td>
<td style="width: 47px;"><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Open Locks=[[1d100cs<@{OpenLocks}cf>@{OpenLocks}]] %}}"> Roll</button></td>
<td><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Hide In Shadows=[[1d100cs<@{HideInShadows}cf>@{HideInShadows}]] %}}"> Roll</button></td>
<td><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Read Languages=[[1d100cs<@{ReadLanguages}cf>@{ReadLanguages}]] %}}"> Roll</button></td>
<td><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Find/Remove Traps=[[1d100cs<@{FindTraps}cf>@{FindTraps}]] %}}"> Roll</button></td>
<td><input type="number" 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} {{name=@{character_name}}} {{subtag=Ability Check}} {{Hear Noise=[[1d100cs<@{HearNoise}cf>@{HearNoise}]] %}}"> Roll</button></td>
<td><input type="number" name="attr_HearNoise" class="sheet-input-small" title="@{HearNoise}" value="0" /></td>
<td>Hear Noise</td>
<td></td>
<td></td>
<td></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="opacity: 0;width: 100px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -70px; cursor: pointer; z-index: 1" /><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 class="sheet-input-medium" type="number" name="attr_pp" title="@{pp}" min="0" value="0" /></td>
<td style="width:15%;">GP: <input class="sheet-input-medium" type="number" name="attr_gp" title="@{gp}" min="0" value="0" /></td>
<td style="width:15%;">EP: <input class="sheet-input-medium" type="number" name="attr_ep" title="@{ep}" min="0" value="0" /></td>
<td style="width:15%;">SP: <input class="sheet-input-medium" type="number" name="attr_sp" title="@{sp}" min="0" value="0" /></td>
<td style="width:15%;">CP: <input class="sheet-input-medium" type="number" 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 class="sheet-input-medium" type="number" name="attr_pp-total" title="@{pp-total}" min="0" value="0" /></td>
<td style="width:15%;">GP: <input class="sheet-input-medium" type="number" name="attr_gp-total" title="@{gp-total}" min="0" value="0" /></td>
<td style="width:15%;">EP: <input class="sheet-input-medium" type="number" name="attr_ep-total" title="@{ep-total}" min="0" value="0" /></td>
<td style="width:15%;">SP: <input class="sheet-input-medium" type="number" name="attr_sp-total" title="@{sp-total}" min="0" value="0" /></td>
<td style="width:15%;">CP: <input class="sheet-input-medium" type="number" 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="opacity: 0;width: 115px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -90px; cursor: pointer; z-index: 1" 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="opacity: 0;width: 125px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -95px; cursor: pointer; z-index: 1" /><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;" checked="checked" /><span></span></td>
<td style="width:38%;"><input style="width:100%;" type="text" name="attr_item" title="@{repeating_equipment_$X_item}" value="" placeholder="Item/Description" /></td>
<td style="width:20%;"><input style="width:100%;" type="text" name="attr_location" title="@{repeating_equipment_$X_location}" value="" 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="number" name="attr_quantity" title="@{repeating_equipment_$X_quantity}" min="0" value="0" /></td>
<td style="width:1%;">/</td>
<td style="width:7%;"><input type="number" name="attr_quantity_max" title="@{repeating_equipment_$X_quantity_max}" min="0" value="1" /></td>
<td style="width:7%;"><input style="width:100%;" type="text" name="attr_weight" title="@{repeating_equipment_$X_weight}" value="0" /></td>
<td style="width:10%;"><input style="width:100%;" 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="opacity: 0;width: 135px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -105px; cursor: pointer; z-index: 1" 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 class="sheet-input-medium" type="text" name="attr_normal_load" title="@{normal_load} Enter the maximum amount for a normal load(default values based off of STR 8-11)." value="350" /><br>Normal&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="0" checked="checked" readonly="readonly" /></td>
<td><input class="sheet-input-medium" type="text" name="attr_heavy_load" title="@{heavy_load} Enter the maximum amount for a heavy load(default values based off of STR 8-11)." value="700" /><br>Heavy&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="1" readonly="readonly" /></td>
<td><input class="sheet-input-medium" type="text" name="attr_very_heavy_load" title="@{very_heavy_load} Enter the maximum amount for a very heavy load(default values based off of STR 8-11)." value="1050" /><br>Very Heavy&nbsp;
<input type="checkbox" name="attr_current_encumbrance" value="2" readonly="readonly" /></td>
<td><input class="sheet-input-medium" type="text" name="attr_max_load" title="@{max_load} Minimum amount for a max/encumbered load(default values based off of STR 8-11)." 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>
</table>
</td>
<td style="width:10%;" class="sheet-right">Equipment:</td>
<td style="width:7%;"><input style="width:100%;" type="text" name="attr_total_equipment_weight" title="@{total_equipment_weight}" value="0" readonly="readonly" /></td>
<td style="width:10%;"><input style="width:100%;" type="text" name="attr_total_equipment_cost" title="@{total_equipment_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Armor:</td>
<td><input style="width:100%;" type="text" name="attr_total_armor_weight" title="@{total_armor_weight}" value="0" readonly="readonly" /></td>
<td><input style="width:100%;" type="text" name="attr_total_armor_cost" title="@{total_armor_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Weapons:</td>
<td><input style="width:100%;" type="text" name="attr_total_weapon_weight" title="@{total_weapon_weight}" value="0" readonly="readonly" /></td>
<td><input style="width:100%;" type="text" name="attr_total_weapon_cost" title="@{total_weapon_cost}" value="0" readonly="readonly" /></td>
</tr>
<tr>
<td class="sheet-right">Coins:</td>
<td><input style="width:100%;" type="text" 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 style="width:100%;" type="text" name="attr_total_weight" title="@{total_weight}" value="0" readonly="readonly" /></td>
<td><input style="width:100%;" type="text" 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="opacity: 0;width: 180px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -150px; cursor: pointer; z-index: 1" /><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}" value="" placeholder="Ability Name" /><br>Name</td>
<td style="width:44%;"><textarea name="attr_short_description" title="@{repeating_ability_$X_short_description}" value="" 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_max" title="@{repeating_ability_$X_max}" value="0" class="sheet-input-small" /><br>Max</td>
<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} {{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="opacity: 0;width: 180px;height: 20px;position: relative;top: 0;left: 0;margin: 0 -20px 0 -150px; cursor: pointer; z-index: 1" /><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-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="opacity: 0;width: 90px;height: 20px; position: relative; top: 0; left: 0;margin: 0 -20px 0 -60px; cursor: pointer; z-index: 1" /><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>
</tr>
<tr>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_1_current" title="@{spells_lvl_1_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_1_max" title="@{spells_lvl_1_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_2_current" title="@{spells_lvl_2_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_2_max" title="@{spells_lvl_2_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_3_current" title="@{spells_lvl_3_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_3_max" title="@{spells_lvl_3_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_4_current" title="@{spells_lvl_4_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_4_max" title="@{spells_lvl_4_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_5_current" title="@{spells_lvl_5_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_5_max" title="@{spells_lvl_5_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_6_current" title="@{spells_lvl_6_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_6_max" title="@{spells_lvl_6_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_7_current" title="@{spells_lvl_7_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_7_max" title="@{spells_lvl_7_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_8_current" title="@{spells_lvl_8_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_8_max" title="@{spells_lvl_8_max}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" name="attr_spells_lvl_9_current" title="@{spells_lvl_9_current}" value="0" style="width:3em;" /></td>
<td><input class="sheet-input-small" type="text" 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">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-sect">
<fieldset class="repeating_spells">
<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="%{selected|repeating_spells_$X_roll}" value="@{macro-text}"></button></td>
<td style="width:5%;"><input type="text" name="attr_level" title="@{repeating_spells_$X_level}" style="width:100%; height:1.8em;" value="0" /><br>Lvl</td>
<td style="width:20%;" colspan="2"><input type="text" name="attr_name" title="@{repeating_spells_$X_name}" style="width:100%; height:1.8em;" value="" placeholder="Spell Name" /><br>Name</td>
<td style="width:15%;" colspan="2"><input type="text" name="attr_school" title="@{repeating_spells_$X_school}" style="width:100%; height:1.8em;" value="N/A" /><br>School</td>
<td style="width:10%;"><input type="text" name="attr_range" title="@{repeating_spells_$X_range}" style="width:100%; height:1.8em;" value="N/A" /><br>Range</td>
<td style="width:10%;"><input type="text" name="attr_duration" title="@{repeating_spells_$X_duration}" style="width:100%; height:1.8em;" value="N/A" /><br>Duration</td>
<td style="width:10%;"><input type="text" name="attr_aoe" title="@{repeating_spells_$X_aoe}" style="width:100%; height:1.8em;" value="N/A" /><br>Area</td>
<td style="width:5%;"><input type="text" name="attr_components" title="@{repeating_spells_$X_components}" style="width:100%; height:1.8em;" value="N/A" /><br>Comp</td>
<td style="width:5%;"><input type="text" name="attr_ct" title="@{repeating_spells_$X_ct}" style="width:100%; height:1.8em;" value="N/A" /><br>CT</td>
<td style="width:5%;"><input type="text" name="attr_save" title="@{repeating_spells_$X_save}" style="width:100%; height:1.8em;" value="N/A" /><br>Save</td>
<td style="width:10%;"><textarea name="attr_macro-text" title="@{repeating_spells_$X_macro-text}" class="sheet-macro-text" style="width:90%; height:1em;" >&{template:general} {{name=@{character_name}}} {{subtag=Casts: @{name}}} {{Range:=@{range}}} {{Duration:=@{duration}}} {{AOE:=@{aoe}}} {{Save:=@{save}}}</textarea><br>Macro-Text</td>
</tr>
</table>
<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">
<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="opacity: 0;width: 105px;height: 20px; position: relative; top: 0; left: 0;margin: 0 -20px 0 -80px; cursor: pointer; z-index: 1" checked="checked" /><span></span>
<div class="sheet-table-row sheet-sect">
<textarea name="attr_spellsNotes" title="@{spellsNotes}" placeholder="Spells Notes"></textarea>
</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="opacity: 0;width: 90px;height: 20px; position: relative; top: 0; left: 0;margin: 0 -20px 0 -60px; cursor: pointer; z-index: 1" /><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>
<div class="sheet-footer">
<div class="sheet-table sheet-text-small">
<div class="sheet-table-row">
<span class="sheet-data sheet-center">Original Author: Adam Ness | Contributions by: Vince, & Roll20 Community. | Version <i>2.28.16'</i></span>
</div>
<div class="sheet-table-row">
<span class="sheet-data sheet-center">Questions/feedback? Please use the Character Sheets forum:<input type="text" style="border:none; line-height:12px; width:256px;" value="https://app.roll20.net/forum/post/2791950/ad-and-d-1e-update-beta" /></span>
</div>
</div>
<div class="sheet-options sheet-text-small">
Background:
<input type="checkbox" class="sheet-useBackground" name="attr_background" value="1" title="No background image." checked="checked" />Off
<input type="checkbox" class="sheet-useBackground" name="attr_background" value="2" title="Enable background image." />On
</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}}
<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}}
{{#WeaponNotes}}<tr><td class="sheet-text">**Notes:** {{WeaponNotes}}</td></tr>{{/WeaponNotes}}
</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 color}}
<tr><td style="vertical-align:middle;"><span class="sheet-tcat">{{key}}</span></td><td>{{value}}</td></tr>
{{/allprops() name subtag color}}
</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.1',
lastUpdate = 1453794214,
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 momment.
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){
console.log(
'%c '+label+': %c '+message,
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
'background-color: '+mBGColor+';color: '+mTxtColor+';'
);
};
return function(){
if('TAS'===key || config.logging[key]){
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
}
};
},
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;
},
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);
return new Function('cb','ctx','TASlog',
"return function TAS_CALLSTACK_"+ctxref+"(){"+
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
"cb.apply(ctx||{},arguments);"+
"TASlog('Exiting: '+(cb.name||'(anonymous function)'));"+
"};")(cb,ctx,log);
}(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,
writeable: 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){
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();
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;
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;
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);
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[destination]=t;
})
.execute();
};
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;');
return {
/* Repeating Sections */
repeatingSimpleSum: repeatingSimpleSum,
repeating: repeating,
/* Configuration */
config: setConfigOption,
/* Debugging */
callback: wrapCallback,
callstack: logCallstack,
debugMode: debugMode,
_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('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: (parseInt(values.pp) + parseInt(values.gp) + parseInt(values.ep) + parseInt(values.sp) + parseInt(values.cp)),
total_armor_weight: (parseInt(values.armor_weight)),
total_armor_cost: (parseInt(values.armor_cost)).toFixed(2)
});
});
});
on('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: (parseInt(values.total_armor_weight) + parseInt(values.total_weapon_weight) + parseInt(values.total_coin_weight) + parseInt(values.total_equipment_weight)),
total_cost: (parseInt(values.total_armor_cost) + parseInt(values.total_weapon_cost) + parseInt(values.total_equipment_cost)).toFixed(2)
});
});
});
/* check and set encumbrance */
on('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 =====");}
});
});
</script>