Files
roll20-character-sheets-tester/Level Up - Advanced 5th Edition/levelup.html
T
seregrauko cf4cc66644 Added basic NPC Sheet
Added NPC sheet to allow for Monster/NPC stats and information to be recorded
2021-10-24 12:41:21 +01:00

3902 lines
195 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.
<datalist id="classlist">
<option data-i18n="Adept">Adept</option>
<option data-i18n="Bard">Bard</option>
<option data-i18n="Berserker">Berserker</option>
<option data-i18n="Cleric">Cleric</option>
<option data-i18n="Druid">Druid</option>
<option data-i18n="Fighter">Fighter</option>
<option data-i18n="Herald">Herald</option>
<option data-i18n="Ranger">Ranger</option>
<option data-i18n="Rogue">Rogue</option>
<option data-i18n="Sorcerer">Sorcerer</option>
<option data-i18n="Warlock">Warlock</option>
<option data-i18n="Warlord">Warlord</option>
<option data-i18n="Wizard">Wizard</option>
</datalist>
<datalist id="heritagelist">
<option data-i18n="Dragonborn">Dragonborn</option>
<option data-i18n="Dwarf">Dwarf</option>
<option data-i18n="Elf">Elf</option>
<option data-i18n="Gnome">Gnome</option>
<option data-i18n="Halfling">Halfling</option>
<option data-i18n="Human">Human</option>
<option data-i18n="Orc">Orc</option>
<option data-i18n="Planetouched">Planetouched</option>
<option data-i18n="Mixed Heritage">Mixed Heritage</option>
</datalist>
<datalist id="culturelist">
<option data-i18n="Caravanner">Caravanner</option>
<option data-i18n="Circusfolk">Circusfolk</option>
<option data-i18n="Collegiate">Collegiate</option>
<option data-i18n="Cosmopolitan">Cosmopolitan</option>
<option data-i18n="Dragoncult">Dragoncult</option>
<option data-i18n="Dragonbound">Dragonbound</option>
<option data-i18n="Forsaken">Forsaken</option>
<option data-i18n="Godbound">Godbound</option>
<option data-i18n="Imperial">Imperial</option>
<option data-i18n="Lone Wanderer">Lone Wanderer</option>
<option data-i18n="Nomad">Nomad</option>
<option data-i18n="Settler">Settler</option>
<option data-i18n="Steamforged">Steamforged</option>
<option data-i18n="Stoneworthy">Stoneworthy</option>
<option data-i18n="Tyrannized">Tyrannized</option>
<option data-i18n="Villager">Villager</option>
<option data-i18n="Warhordling">Warhordling</option>
<option data-i18n="Wildling">Wildling</option>
<option data-i18n="Deep Dwarf">Deep Dwarf</option>
<option data-i18n="Deep Gnome">Deep Gnome</option>
<option data-i18n="Eladrin">Eladrin</option>
<option data-i18n="Forest Gnome">Forest Gnome</option>
<option data-i18n="Forgotten Folx">Forgotten Folx</option>
<option data-i18n="High Elf">High Elf</option>
<option data-i18n="Hill Dwarf">Hill Dwarf</option>
<option data-i18n="Kithbáin Halfling">Kithbáin Halfling</option>
<option data-i18n="Mountain Dwarf">Mountain Dwarf</option>
<option data-i18n="Mustbairn Halfling">Mustbairn Halfling</option>
<option data-i18n="Shadow Elf">Shadow Elf</option>
<option data-i18n="Stoic Orc">Stoic Orc</option>
<option data-i18n="Stout Halfling">Stout Halfling</option>
<option data-i18n="Tinker Gnome">Tinker Gnome</option>
<option data-i18n="Tunnel Halfling">Tunnel Halfling</option>
<option data-i18n="Wood Elf">Wood Elf</option>
</datalist>
<datalist id="backgroundlist">
<option data-i18n="Acolyte">Acolyte</option>
<option data-i18n="Artisan">Artisan</option>
<option data-i18n="Charlatan">Charlatan</option>
<option data-i18n="Criminal">Criminal</option>
<option data-i18n="Cultist">Cultist</option>
<option data-i18n="Entertainer">Entertainer</option>
<option data-i18n="Exile">Exile</option>
<option data-i18n="Farmer">Farmer</option>
<option data-i18n="Folk Hero">Folk Hero</option>
<option data-i18n="Gambler">Gambler</option>
<option data-i18n="Guard">Guard</option>
<option data-i18n="Guildmember">Guildmember</option>
<option data-i18n="Hermit">Hermit</option>
<option data-i18n="Marauder">Marauder</option>
<option data-i18n="Noble">Noble</option>
<option data-i18n="Outlander">Outlander</option>
<option data-i18n="Sage">Sage</option>
<option data-i18n="Sailor">Sailor</option>
<option data-i18n="Soldier">Soldier</option>
<option data-i18n="Trader">Trader</option>
<option data-i18n="Urchin">Urchin</option>
</datalist>
<datalist id="archtypelist">
<option data-i18n="Brawler">Brawler</option>
<option data-i18n="Exalted Athlete">Exalted Athlete</option>
<option data-i18n="Warrior Monk">Warrior Monk</option>
<option data-i18n="Dreadnought">Dreadnought</option>
<option data-i18n="Rager">Rager</option>
<option data-i18n="Tempest">Tempest</option>
<option data-i18n="Healer">Healer</option>
<option data-i18n="Oracle">Oracle</option>
<option data-i18n="Sun Priest">Sun Priest</option>
<option data-i18n="Warpriest">Warpriest</option>
<option data-i18n="Loremaster">Loremaster</option>
<option data-i18n="Minstrel">Minstrel</option>
<option data-i18n="Mountebank">Mountebank</option>
<option data-i18n="Warchanter">Warchanter</option>
<option data-i18n="Guardian">Guardian</option>
<option data-i18n="Skinchanger">Skinchanger</option>
<option data-i18n="Treespeaker">Treespeaker</option>
<option data-i18n="Brute">Brute</option>
<option data-i18n="Gladiator">Gladiator</option>
<option data-i18n="Knight">Knight</option>
<option data-i18n="Sharpshooter">Sharpshooter</option>
<option data-i18n="Green Knight">Green Knight</option>
<option data-i18n="Holy Champion">Holy Champion</option>
<option data-i18n="Inquisitor">Inquisitor</option>
<option data-i18n="Gambling General">Gambling General</option>
<option data-i18n="Swift Strategist">Swift Strategist</option>
<option data-i18n="Talented Tachician">Talented Tachician</option>
<option data-i18n="Beastmaster">Beastmaster</option>
<option data-i18n="Warden">Warden</option>
<option data-i18n="Wildborn">Wildborn</option>
<option data-i18n="Burglar">Burglar</option>
<option data-i18n="Cutthroat">Cutthroat</option>
<option data-i18n="Investigator">Investigator</option>
<option data-i18n="Trapsmith">Trapsmith</option>
<option data-i18n="Draconist">Draconist</option>
<option data-i18n="Enigma">Enigma</option>
<option data-i18n="Traveller">Traveller</option>
<option data-i18n="Alienist">Alienist</option>
<option data-i18n="Diabolist">Diabolist</option>
<option data-i18n="Spellbound">Spellbound</option>
<option data-i18n="Arcanist">Arcanist</option>
<option data-i18n="Mage">Mage</option>
<option data-i18n="Pyromancer">Pyromancer</option>
</datalist>
<datalist id="dicelist">
<option>1d4</option>
<option>1d6</option>
<option>1d8</option>
</datalist>
<datalist id="statlist">
<option data-i18n="strength">strength</option>
<option data-i18n="dexterity">dexterity</option>
<option data-i18n="constitution">constitution</option>
<option data-i18n="intelligence">intelligence</option>
<option data-i18n="wisdom">wisdom</option>
<option data-i18n="charisma">charisma</option>
</datalist>
<datalist id="destinylist">
<option data-i18n="chaos">chaos</option>
<option data-i18n="comingofage">comingofage</option>
<option data-i18n="devotion">devotion</option>
<option data-i18n="dominion">dominion</option>
<option data-i18n="excellence">excellence</option>
<option data-i18n="knowledge">knowledge</option>
<option data-i18n="metamorphosis">metamorphosis</option>
<option data-i18n="revenge">revenge</option>
<option data-i18n="underdog">underdog</option>
<option data-i18n="wealth">wealth</option>
</datalist>
<datalist id="damagetypelist">
<option data-i18n="acid">acid</option>
<option data-i18n="bludgeoning">bludgeoning</option>
<option data-i18n="cold">cold</option>
<option data-i18n="fire">fire</option>
<option data-i18n="force">force</option>
<option data-i18n="lightning">lightning</option>
<option data-i18n="necrotic">necrotic</option>
<option data-i18n="piercing">piercing</option>
<option data-i18n="poison">poison</option>
<option data-i18n="psychic">psychic</option>
<option data-i18n="radiant">radiant</option>
<option data-i18n="slashing">slashing</option>
<option data-i18n="thunder">thunder</option>
</datalist>
<datalist id="sizelist">
<option data-i18n="fine">fine</option>
<option data-i18n="diminutive">diminutive</option>
<option data-i18n="tiny">tiny</option>
<option data-i18n="small">small</option>
<option data-i18n="medium">medium</option>
<option data-i18n="large">large</option>
<option data-i18n="huge">huge</option>
<option data-i18n="garantuan">garantuan</option>
<option data-i18n="colossal">colossal</option>
</datalist>
<datalist id="creaturetypelist">
<option data-i18n="aberration">aberration</option>
<option data-i18n="animal">animal</option>
<option data-i18n="celestial">celestial</option>
<option data-i18n="construct">construct</option>
<option data-i18n="dragon">dragon</option>
<option data-i18n="elemental">elemental</option>
<option data-i18n="fey">fey</option>
<option data-i18n="fiend">fiend</option>
<option data-i18n="giant">giant</option>
<option data-i18n="humanoid">humanoid</option>
<option data-i18n="monstrosity">monstrosity</option>
<option data-i18n="ooze">ooze</option>
<option data-i18n="plant">plant</option>
<option data-i18n="undead">undead</option>
<option data-i18n="vermin">vermin</option>
</datalist>
<input type="hidden" class="sheet-npctoggle" name="attr_pcnpcTab" value="npc"/>
<input type="hidden" class="sheet-statsinfotoggle" name="attr_statsinfoTab" value="stats"/>
<input type="hidden" class="sheet-tabstoggle" name="attr_sheetTab" value="Character"/>
<div class="sheet-pcnpc">
<label data-i18n-title="pc" title="pc">
<input name="attr_pcnpc_type" type="radio" value="pc"><span data-i18n="pc"></span></input>
</label>
<label data-i18n-title="npc" title="npc">
<input name="attr_pcnpc_type" type="radio" value="npc"><span data-i18n="npc"></span></input>
</label>
</div>
<div class='sheet-PC'>
<div class='sheet-header'>
<div class="sheet-character-name">
<img alt='LevelUp Logo' src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Level%20Up%20-%20Advanced%205th%20Edition/levelup-logo.jpg">
<label data-i18n-title="character_name" title="character name">
<input data-i18n-placeholder="character_name" name="attr_character_name" placeholder="character name" spellcheck="false" title="@{character_name}" type="text" value="" />
<span data-i18n="character_name">character name</span>
</label>
</div>
<div class="sheet-character-info">
<label data-i18n-title="classlevelarchtype" title="classlevelarchtype">
<span data-i18n="classlevelarchtype">Class, Level & Archtype</span>
<input type="hidden" name="attr_totallevel"/>
<div class="sheet-classlist">
<fieldset class="repeating_class">
<label data-i18n-title="repeatingclass" title="repeatingclass">
<input data-i18n-placeholder="class" name="attr_class" placeholder="class" spellcheck="false" title="@{class}" type="text" list="classlist"/>
<input data-i18n-placeholder="archtype" name="attr_archtype" placeholder="archtype" spellcheck="false" title="@{archtype}" type="text" list="archtypelist"/>
<input data-i18n-placeholder="level" name="attr_level" placeholder="level" spellcheck="false" title="@{level}" type="number"/>
</label>
</fieldset>
</div>
</label>
<label data-i18n-title="experience_points_xp" title="experienced points">
<span data-i18n="experience_points_xp">experienced points</span>
<input data-i18n-placeholder="xp" name="attr_xp" placeholder="xp" spellcheck="false" title="@{xp}" type="text" value="" />
</label>
<label data-i18n-title="heritage" title="heritage">
<span data-i18n="heritage">Heritage</span>
<input data-i18n-placeholder="heritage" name="attr_heritage" placeholder="heritage" spellcheck="false" title="@{heritage}" type="text" list="heritagelist"//>
</label>
<label data-i18n-title="culture" title="culture">
<span data-i18n="culture">culture</span>
<input data-i18n-placeholder="culture" name="attr_culture" placeholder="culture" spellcheck="false" title="@{culture}" type="text" list="culturelist"/>
</label>
<label data-i18n-title="background" title="background">
<span data-i18n="background">background</span>
<input data-i18n-placeholder="background" name="attr_background" placeholder="background" spellcheck="false" title="@{background}" type="text" list="backgroundlist"/>
</label>
</div>
</div>
<div class="sheet-tabs">
<label data-i18n-title="character" title="character">
<input name="attr_sheet_type" type="radio" value="character"><span data-i18n="character"></span></input>
</label>
<label data-i18n-title="features" title="features">
<input name="attr_sheet_type" type="radio" value="features"><span data-i18n="features"></span></input>
</label>
<label data-i18n-title="backgrounds" title="backgrounds">
<input name="attr_sheet_type" type="radio" value="backgrounds"><span data-i18n="backgrounds"></span></input>
</label>
<label data-i18n-title="inventory" title="inventory">
<input name="attr_sheet_type" type="radio" value="inventory"><span data-i18n="inventory"></span></input>
</label>
<label data-i18n-title="spells" title="spells">
<input name="attr_sheet_type" type="radio" value="spells"><span data-i18n="spells"></span></input>
</label>
</div>
<div class="sheet-character">
<div class="sheet-charactermiddle">
<div class="sheet-abilityscores">
<div class="sheet-abilityscore-title" data-i18n='ability_scores'>ability scores</div>
<div class='sheet-display-strength'>
<label data-i18n-title="strength" title="strength">
<span data-i18n="strength">strength</span>
</label>
<label data-i18n-title="strengthstat" title="strengthstat">
<input data-i18n-placeholder="strength" name="attr_strength" placeholder="strength" spellcheck="false" title="@{strength}" type="number" value="" />
</label>
<label data-i18n-title="strengthmod" title="strengthmod">
<input data-i18n-placeholder="strengthmod" name="attr_strengthmod" placeholder="0" spellcheck="false" title="@{strengthmod}" type="number"/>
</label>
<label data-i18n-title="strengthsave" title="strengthsave">
<button type="roll" name="attr_strengthsaveroll"></button>
<span data-i18n="save">save</span>
<input data-i18n-placeholder="strengthsave" name="attr_strengthsave" placeholder="0" spellcheck="false" title="@{strengthsave}" type="number"/>
</label>
<label data-i18n-title="strengthsaveprof" title="strengthsaveprof">
<input data-i18n-placeholder="strengthsaveprof" name="attr_strengthsaveprof" title="@{strengthsaveprof}" type="checkbox" value="1"/>
<span data-i18n="prof">prof</span>
</label>
</div>
<div class='sheet-display-dexterity'>
<label data-i18n-title="dexterity" title="dexterity">
<span data-i18n="dexterity">dexterity</span>
</label>
<label data-i18n-title="dexteritystat" title="dexteritystat">
<input data-i18n-placeholder="dexterity" name="attr_dexterity" placeholder="dexterity" spellcheck="false" title="@{dexterity}" type="number" value="" />
</label>
<label data-i18n-title="dexteritymod" title="dexteritymod">
<input data-i18n-placeholder="dexteritymod" name="attr_dexteritymod" placeholder="0" spellcheck="false" title="@{dexteritymod}" type="number"/>
</label>
<label data-i18n-title="dexteritysave" title="dexteritysave">
<button type="roll" name="attr_dexteritysaveroll"></button>
<span data-i18n="save">save</span>
<input data-i18n-placeholder="dexteritysave" name="attr_dexteritysave" placeholder="0" spellcheck="false" title="@{dexteritysave}" type="number"/>
</label>
<label data-i18n-title="dexteritysaveprof" title="dexteritysaveprof">
<input data-i18n-placeholder="dexteritysaveprof" name="attr_dexteritysaveprof" title="@{dexteritysaveprof}" type="checkbox" value="1"/>
<span data-i18n="prof">prof</span>
</label>
</div>
<div class='sheet-display-constitution'>
<label data-i18n-title="constitution" title="constitution">
<span data-i18n="constitution">constitution</span>
</label>
<label data-i18n-title="constitutionstat" title="constitutionstat">
<input data-i18n-placeholder="constitution" name="attr_constitution" placeholder="constitution" spellcheck="false" title="@{constitution}" type="number" value="" />
</label>
<label data-i18n-title="constitutionmod" title="constitutionmod">
<input data-i18n-placeholder="constitutionmod" name="attr_constitutionmod" placeholder="0" spellcheck="false" title="@{constitutionmod}" type="number"/>
</label>
<label data-i18n-title="constitutionsave" title="constitutionsave">
<button type="roll" name="attr_constitutionsaveroll"></button>
<span data-i18n="save">&nbsp;save</span>
<input data-i18n-placeholder="constitutionsave" name="attr_constitutionsave" placeholder="0" spellcheck="false" title="@{constitutionsave}" type="number"/>
</label>
<label data-i18n-title="constitutionsaveprof" title="constitutionsaveprof">
<input data-i18n-placeholder="constitutionsaveprof" name="attr_constitutionsaveprof" title="@{constitutionsaveprof}" type="checkbox" value="1" />
<span data-i18n="prof">prof</span>
</label>
</div>
<div class='sheet-display-intelligence'>
<label data-i18n-title="intelligence" title="intelligence">
<span data-i18n="intelligence">intelligence</span>
</label>
<label data-i18n-title="intelligencestat" title="intelligencestat">
<input data-i18n-placeholder="intelligence" name="attr_intelligence" placeholder="intelligence" spellcheck="false" title="@{intelligence}" type="number" value="" />
</label>
<label data-i18n-title="intelligencemod" title="intelligencemod">
<input data-i18n-placeholder="intelligencemod" name="attr_intelligencemod" placeholder="0" spellcheck="false" title="@{intelligencemod}" type="number"/>
</label>
<label data-i18n-title="intelligencesave" title="intelligencesave">
<button type="roll" name="attr_intelligencesaveroll"></button>
<span data-i18n="save">&nbsp;save</span>
<input data-i18n-placeholder="intelligencesave" name="attr_intelligencesave" placeholder="0" spellcheck="false" title="@{intelligencesave}" type="number"/>
</label>
<label data-i18n-title="intelligencesaveprof" title="intelligencesaveprof">
<input data-i18n-placeholder="intelligencesaveprof" name="attr_intelligencesaveprof" title="@{intelligencesaveprof}" type="checkbox" value="1" />
<span data-i18n="prof">prof</span>
</label>
</div>
<div class='sheet-display-wisdom'>
<label data-i18n-title="wisdom" title="wisdom">
<span data-i18n="wisdom">wisdom</span>
</label>
<label data-i18n-title="wisdomstat" title="wisdomstat">
<input data-i18n-placeholder="wisdom" name="attr_wisdom" placeholder="wisdom" spellcheck="false" title="@{wisdom}" type="number" value="" />
</label>
<label data-i18n-title="wisdommod" title="wisdommod">
<input data-i18n-placeholder="wisdommod" name="attr_wisdommod" placeholder="0" spellcheck="false" title="@{wisdommod}" type="number"/>
</label>
<label data-i18n-title="wisdomsave" title="wisdomsave">
<button type="roll" name="attr_wisdomsaveroll"></button>
<span data-i18n="save">&nbsp;save</span>
<input data-i18n-placeholder="wisdomsave" name="attr_wisdomsave" placeholder="0" spellcheck="false" title="@{wisdomsave}" type="number"/>
</label>
<label data-i18n-title="wisdomsaveprof" title="wisdomsaveprof">
<input data-i18n-placeholder="wisdomsaveprof" name="attr_wisdomsaveprof" title="@{wisdomsaveprof}" type="checkbox" value="1" />
<span data-i18n="prof">prof</span>
</label>
</div>
<div class='sheet-display-charisma'>
<label data-i18n-title="charisma" title="charisma">
<span data-i18n="charisma">charisma</span>
</label>
<label data-i18n-title="charismastat" title="charismastat">
<input data-i18n-placeholder="charisma" name="attr_charisma" placeholder="charisma" spellcheck="false" title="@{charisma}" type="number" value="" />
</label>
<label data-i18n-title="charismamod" title="charismamod">
<input data-i18n-placeholder="charismamod" name="attr_charismamod" placeholder="0" spellcheck="false" title="@{charismamod}" type="number"/>
</label>
<label data-i18n-title="charismasave" title="charismasave">
<button type="roll" name="attr_charismasaveroll"></button>
<span data-i18n="save">&nbsp;save</span>
<input data-i18n-placeholder="charismasave" name="attr_charismasave" placeholder="0" spellcheck="false" title="@{charismasave}" type="number"/>
</label>
<label data-i18n-title="charismasaveprof" title="charismasaveprof">
<input data-i18n-placeholder="charismasaveprof" name="attr_charismasaveprof" title="@{charismasaveprof}" type="checkbox" value="1" />
<span data-i18n="prof">prof</span>
</label>
</div>
</div>
<div class="sheet-miscscores">
<div class='sheet-display-profbonus'>
<label data-i18n-title="proficiencybonusstat" title="proficiencybonusstat">
<input data-i18n-placeholder="proficiencybonusstat" name="attr_proficiencybonus" placeholder="proficiencybonus" spellcheck="false" title="@{proficiencybonus}" type="number" value="" />
</label>
<label data-i18n-title="proficiencybonus" title="proficiencybonus">
<span data-i18n="proficiencybonus">proficiencybonus</span>
</label>
</div>
<div class='sheet-display-initiative'>
<label data-i18n-title="initiative" title="initiative">
<span data-i18n="initiative">initiative</span>
</label>
<label data-i18n-title="initiative2nd" title="initiative2nd">
<span data-i18n="Ability_skill">Ability_skill</button>
</label>
</div>
<div class='sheet-display-acsizespeed'>
<div class='sheet-display-armor_class'>
<label data-i18n-title="armor_classstat" title="armor_classstat">
<input data-i18n-placeholder="armor_class" name="attr_armor_class" placeholder="armor_class" spellcheck="false" title="@{armor_class}" type="number" value="" />
</label>
<label data-i18n-title="armor_class" title="armor_class">
<span data-i18n="armor_class">armor_class</span>
</label>
</div>
<div class='sheet-display-sizespeed'>
<div class='sheet-display-size'>
<label data-i18n-title="size" title="size">
<span data-i18n="size">size</span>
</label>
<label data-i18n-title="sizestat" title="sizestat">
<input data-i18n-placeholder="size" name="attr_size" placeholder="size" spellcheck="false" title="@{size}" type="number" value="" />
</label>
</div>
<div class='sheet-display-speed'>
<label data-i18n-title="speed" title="speed">
<span data-i18n="speed">speed</span>
</label>
<label data-i18n-title="speedstat" title="speedstat">
<input data-i18n-placeholder="speed" name="attr_speed" placeholder="speed" spellcheck="false" title="@{speed}" type="number" value="" />
</label>
</div>
</div>
</div>
<div class='sheet-display-hpsupply'>
<div class='sheet-display-hp'>
<label data-i18n-title="hit_points_current" title="hit_points_current">
<span data-i18n="hit_points_current">hit_points_current</span>
<input data-i18n-placeholder="hit_points_current" name="attr_hit_points_current" placeholder="hit_points_current" spellcheck="false" title="@{hit_points_current}" type="number" value="" />
</label>
</div>
<div class='sheet-display-hdhpmax'>
<div class="sheet-display-hd">
<label data-i18n-title="hit_dice" title="hit_dice">
<span data-i18n="hit_dice">hit_dice</span>
<input data-i18n-placeholder="hit_dice" name="attr_hit_dice" placeholder="hit_dice" spellcheck="false" title="@{hit_dice}" type="number" value="" />
</label>
<label data-i18n-title="hit_dice_total" title="hit_dice_total">
<span data-i18n="hit_dice_total">total</span>
<input data-i18n-placeholder="hit_dice_total" name="attr_hit_dice_total" placeholder="hit_dice_total" spellcheck="false" title="@{hit_dice_total}" type="number" value="" />
</label>
</div>
<div class="sheet-display-hpmax">
<label data-i18n-title="hit_points_maximum" title="hit_points_maximum">
<span data-i18n="hit_points_maximum">hit_points_maximum</span>
<input data-i18n-placeholder="hit_points_maximum" name="attr_hit_points_maximum" placeholder="hit_points_maximum" spellcheck="false" title="@{hit_points_maximum}" type="number" value="" />
</label>
</div>
</div>
<div class='sheet-display-hptemp'>
<label data-i18n-title="hit_points_temp" title="hit_points_temp">
<span data-i18n="hit_points_temp">temporary_hit_points</span>
<input data-i18n-placeholder="hit_points_temp" name="attr_hit_points_temp" placeholder="hit_points_temp" spellcheck="false" title="@{hit_points_temp}" type="number" value="" />
</label>
</div>
<div class='sheet-display-death_saves'>
<label data-i18n-title="death_saves" title="death_saves">
<span data-i18n="death_saves">death_saves</span>
</label>
<label data-i18n-title="death_saves_success" title="death_saves_success">
<span data-i18n="death_saves_success">successes</span>
</label>
<label data-i18n-title="death_saves_success1" title="death_saves_success1">
<input data-i18n-placeholder="death_saves_success1" name="attr_death_saves_success1" placeholder="death_saves_success1" spellcheck="false" title="@{death_saves_success1}" type="checkbox" value="" />
</label>
<label data-i18n-title="death_saves_success2" title="death_saves_success2">
<input data-i18n-placeholder="death_saves_success2" name="attr_death_saves_success2" placeholder="death_saves_success2" spellcheck="false" title="@{death_saves_success2}" type="checkbox" value="" />
</label>
<label data-i18n-title="death_saves_success3" title="death_saves_success3">
<input data-i18n-placeholder="death_saves_success3" name="attr_death_saves_success3" placeholder="death_saves_success3" spellcheck="false" title="@{death_saves_success3}" type="checkbox" value="" />
</label>
<label data-i18n-title="death_saves_fail" title="death_saves_fail">
<span data-i18n="death_saves_fail">failures</span>
</label>
<label data-i18n-title="death_saves_fail1" title="death_saves_fail1">
<input data-i18n-placeholder="death_saves_fail1" name="attr_death_saves_fail1" placeholder="death_saves_fail1" spellcheck="false" title="@{death_saves_fail1}" type="checkbox" value="" />
</label>
<label data-i18n-title="death_saves_fail2" title="death_saves_fail2">
<input data-i18n-placeholder="death_saves_fail2" name="attr_death_saves_fail2" placeholder="death_saves_fail2" spellcheck="false" title="@{death_saves_fail2}" type="checkbox" value="" />
</label>
<label data-i18n-title="death_saves_fail3" title="death_saves_fail3">
<input data-i18n-placeholder="death_saves_fail3" name="attr_death_saves_fail3" placeholder="death_saves_fail3" spellcheck="false" title="@{death_saves_fail3}" type="checkbox" value="" />
</label>
</div>
<div class='sheet-display-fatigue_strife'>
<label data-i18n-title="fatigue" title="fatigue">
<span data-i18n="fatigue">fatigue</span>
</label>
<label data-i18n-title="fatigue1" title="fatigue1">
<input data-i18n-placeholder="fatigue1" name="attr_fatigue1" placeholder="fatigue1" spellcheck="false" title="@{fatigue1}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue2" title="fatigue2">
<input data-i18n-placeholder="fatigue2" name="attr_fatigue2" placeholder="fatigue2" spellcheck="false" title="@{fatigue2}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue3" title="fatigue3">
<input data-i18n-placeholder="fatigue3" name="attr_fatigue3" placeholder="fatigue3" spellcheck="false" title="@{fatigue3}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue4" title="fatigue4">
<input data-i18n-placeholder="fatigue4" name="attr_fatigue4" placeholder="fatigue4" spellcheck="false" title="@{fatigue4}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue5" title="fatigue5">
<input data-i18n-placeholder="fatigue5" name="attr_fatigue5" placeholder="fatigue5" spellcheck="false" title="@{fatigue5}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue6" title="fatigue6">
<input data-i18n-placeholder="fatigue6" name="attr_fatigue6" placeholder="fatigue6" spellcheck="false" title="@{fatigue6}" type="checkbox" value="1" />
</label>
<label data-i18n-title="fatigue7" title="fatigue7">
<input data-i18n-placeholder="fatigue7" name="attr_fatigue7" placeholder="fatigue7" spellcheck="false" title="@{fatigue7}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife" title="strife">
<span data-i18n="strife">strife</span>
</label>
<label data-i18n-title="strife1" title="strife1">
<input data-i18n-placeholder="strife1" name="attr_strife1" placeholder="strife1" spellcheck="false" title="@{strife1}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife2" title="strife2">
<input data-i18n-placeholder="strife2" name="attr_strife2" placeholder="strife2" spellcheck="false" title="@{strife2}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife3" title="strife3">
<input data-i18n-placeholder="strife3" name="attr_strife3" placeholder="strife3" spellcheck="false" title="@{strife3}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife4" title="strife4">
<input data-i18n-placeholder="strife4" name="attr_strife4" placeholder="strife4" spellcheck="false" title="@{strife4}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife5" title="strife5">
<input data-i18n-placeholder="strife5" name="attr_strife5" placeholder="strife5" spellcheck="false" title="@{strife5}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife6" title="strife6">
<input data-i18n-placeholder="strife6" name="attr_strife6" placeholder="strife6" spellcheck="false" title="@{strife6}" type="checkbox" value="1" />
</label>
<label data-i18n-title="strife7" title="strife7">
<input data-i18n-placeholder="strife7" name="attr_strife7" placeholder="strife7" spellcheck="false" title="@{strife7}" type="checkbox" value="1" />
</label>
</div>
<div class='sheet-display-supply'>
<label data-i18n-title="supply" title="supply">
<span data-i18n="supply">supply</span>
<input data-i18n-placeholder="supply" name="attr_supply" placeholder="supply" spellcheck="false" title="@{supply}" type="number" value="" />
</label>
<label data-i18n-title="supply_max" title="supply_max">
<span data-i18n="supply_max">supply_max</span>
<input data-i18n-placeholder="supply_max" name="attr_supply_max" placeholder="supply_max" spellcheck="false" title="@{supply_max}" type="number" value="" />
</label>
</div>
</div>
</div>
<div class="sheet-destinyskill">
<div class='sheet-display-destiny'>
<label data-i18n-title="destiny" title="destiny">
<span data-i18n="destiny">destiny</span>
<input data-i18n-placeholder="destiny" name="attr_destiny" placeholder="destiny" spellcheck="false" title="@{destiny}" type="text" value="" list="destinylist"/>
</label>
<label data-i18n-title="destiny_source" title="destiny_source">
<span data-i18n="destiny_source">destiny_source</span>
<input data-i18n-placeholder="destiny_source" name="attr_destiny_source" placeholder="destiny_source" spellcheck="false" title="@{destiny_source}" type="text" value="" />
</label>
<label data-i18n-title="destiny_inspiration" title="destiny_inspiration">
<span data-i18n="destiny_inspiration">destiny_inspiration</span>
<input data-i18n-placeholder="destiny_inspiration" name="attr_destiny_inspiration" placeholder="destiny_inspiration" spellcheck="false" title="@{destiny_inspiration}" type="text" value="" />
</label>
<label data-i18n-title="destiny_fulfillment" title="destiny_fulfillment">
<span data-i18n="destiny_fulfillment">destiny_fulfillment</span>
<input data-i18n-placeholder="destiny_fulfillment" name="attr_destiny_fulfillment" placeholder="destiny_fulfillment" spellcheck="false" title="@{destiny_fulfillment}" type="text" value="" />
</label>
</div>
<div class='sheet-display-skill'>
<label data-i18n-title="skills" title="skills">
<span data-i18n="skills">skills</span>
</label>
<label data-i18n-title="passive_stealth" title="passive_stealth">
<span data-i18n="passive_stealth">passive_stealth</span>
</label>
<label data-i18n-title="passive_stealthx" title="passive_stealthx">
<input data-i18n-placeholder="passive_stealth" name="attr_passive_stealth" placeholder="passive_stealth" spellcheck="false" title="@{passive_stealth}" type="number" value="" />
</label>
<label data-i18n-title="passive_insight" title="passive_insight">
<span data-i18n="passive_insight">passive_insight</span>
</label>
<label data-i18n-title="passive_insightx" title="passive_insightx">
<input data-i18n-placeholder="passive_insight" name="attr_passive_insight" placeholder="passive_insight" spellcheck="false" title="@{passive_insight}" type="number" value="" />
</label>
<label data-i18n-title="passive_perception" title="passive_perception">
<span data-i18n="passive_perception">passive_perception</span>
</label>
<label data-i18n-title="passive_perceptionx" title="passive_perceptionx">
<input data-i18n-placeholder="passive_perception" name="attr_passive_perception" placeholder="passive_perception" spellcheck="false" title="@{passive_perception}" type="number" value="" />
</label>
<label data-i18n-title="passive_misc" title="passive_misc">
<span data-i18n="passive_misc">passive_misc</span>
<input data-i18n-placeholder="passive_misc_title" name="attr_passive_misc_title" placeholder="passive_misc_title" spellcheck="false" title="@{passive_misc_title}" type="text" value="" />
</label>
<label data-i18n-title="passive_miscx" title="passive_miscx">
<input data-i18n-placeholder="passive_misc" name="attr_passive_misc" placeholder="passive_misc" spellcheck="false" title="@{passive_misc}" type="number" value="" />
</label>
<label data-i18n-title="jackofalltrades" title="jackofalltrades">
<span data-i18n="jackofalltrades">jackofalltrades</span>
</label>
<label data-i18n-title="jackofalltrades_check" title="jackofalltrades_check">
<input data-i18n-placeholder="jackofalltrades_check" name="attr_jackofalltrades_check" placeholder="jackofalltrades_check" spellcheck="false" title="@{jackofalltrades_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="skill" title="skill">
<span data-i18n="skill">Skill</span>
</label>
<label data-i18n-title="specialty" title="specialty">
<span data-i18n="specialty">Specialty</span>
</label>
<label data-i18n-title="expertise_dice" title="expertise_dice">
<span data-i18n="expertise_dice">Expertise Dice</span>
</label>
<label data-i18n-title="skill2" title="skill2">
<span data-i18n="skill">Skill</span>
</label>
<label data-i18n-title="specialty2" title="specialty2">
<span data-i18n="specialty">Specialty</span>
</label>
<label data-i18n-title="expertise_dice2" title="expertise_dice2">
<span data-i18n="expertise_dice">Expertise Dice</span>
</label>
<label data-i18n-title="acrobatics_check" title="acrobatics_check">
<input data-i18n-placeholder="acrobatics_check" name="attr_acrobatics_check" placeholder="acrobatics_check" spellcheck="false" title="@{acrobatics_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="acrobatics_button" title="acrobatics_button">
<button type="roll" name="attr_acrobatics_roll" value=""/>
</label>
<label data-i18n-title="acrobatics" title="acrobatics">
<span data-i18n="acrobatics">acrobatics</span>
</label>
<label data-i18n-title="acrobatics_specialty" title="acrobatics_specialty">
<input data-i18n-placeholder="acrobatics_specialty" name="attr_acrobatics_specialty" placeholder="acrobatics_specialty" spellcheck="false" title="@{acrobatics_specialty}" type="text" value="" />
</label>
<label data-i18n-title="acrobatics_exdice" title="acrobatics_exdice">
<input data-i18n-placeholder="acrobatics_exdice" name="attr_acrobatics_exdice" placeholder="acrobatics_exdice" spellcheck="false" title="@{acrobatics_exdice}" type="text" value="" list="dicelist"/>
</label>
<label data-i18n-title="medicine_check" title="medicine_check">
<input data-i18n-placeholder="medicine_check" name="attr_medicine_check" placeholder="medicine_check" spellcheck="false" title="@{medicine_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="medicine_button" title="medicine_button">
<button type="roll" name="attr_medicine_roll" value=""/>
</label>
<label data-i18n-title="medicine" title="medicine">
<span data-i18n="medicine">medicine</span>
</label>
<label data-i18n-title="medicine_specialty" title="medicine_specialty">
<input data-i18n-placeholder="medicine_specialty" name="attr_medicine_specialty" placeholder="medicine_specialty" spellcheck="false" title="@{medicine_specialty}" type="text" value="" />
</label>
<label data-i18n-title="medicine_exdice" title="medicine_exdice">
<input data-i18n-placeholder="medicine_exdice" name="attr_medicine_exdice" placeholder="medicine_exdice" spellcheck="false" title="@{medicine_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="animalhandling_check" title="animalhandling_check">
<input data-i18n-placeholder="animalhandling_check" name="attr_animalhandling_check" placeholder="animalhandling_check" spellcheck="false" title="@{animalhandling_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="animalhandling_button" title="animalhandling_button">
<button type="roll" name="attr_animalhandling_roll"/>
</label>
<label data-i18n-title="animalhandling" title="animalhandling">
<span data-i18n="animalhandling">animalhandling</span>
</label>
<label data-i18n-title="animalhandling_specialty" title="animalhandling_specialty">
<input data-i18n-placeholder="animalhandling_specialty" name="attr_animalhandling_specialty" placeholder="animalhandling_specialty" spellcheck="false" title="@{animalhandling_specialty}" type="text" value="" />
</label>
<label data-i18n-title="animalhandling_exdice" title="animalhandling_exdice">
<input data-i18n-placeholder="animalhandling_exdice" name="attr_animalhandling_exdice" placeholder="animalhandling_exdice" spellcheck="false" title="@{animalhandling_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="nature_check" title="nature_check">
<input data-i18n-placeholder="nature_check" name="attr_nature_check" placeholder="nature_check" spellcheck="false" title="@{nature_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="nature_button" title="nature_button">
<button type="roll" name="attr_nature_roll"/>
</label>
<label data-i18n-title="nature" title="nature">
<span data-i18n="nature">nature</span>
</label>
<label data-i18n-title="nature_specialty" title="nature_specialty">
<input data-i18n-placeholder="nature_specialty" name="attr_nature_specialty" placeholder="nature_specialty" spellcheck="false" title="@{nature_specialty}" type="text" value="" />
</label>
<label data-i18n-title="nature_exdice" title="nature_exdice">
<input data-i18n-placeholder="nature_exdice" name="attr_nature_exdice" placeholder="nature_exdice" spellcheck="false" title="@{nature_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="arcana_check" title="arcana_check">
<input data-i18n-placeholder="arcana_check" name="attr_arcana_check" placeholder="arcana_check" spellcheck="false" title="@{arcana_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="arcana_button" title="arcana_button">
<button type="roll" name="attr_arcana_roll"/>
</label>
<label data-i18n-title="arcana" title="arcana">
<span data-i18n="arcana">arcana</span>
</label>
<label data-i18n-title="arcana_specialty" title="arcana_specialty">
<input data-i18n-placeholder="arcana_specialty" name="attr_arcana_specialty" placeholder="arcana_specialty" spellcheck="false" title="@{arcana_specialty}" type="text" value="" />
</label>
<label data-i18n-title="arcana_exdice" title="arcana_exdice">
<input data-i18n-placeholder="arcana_exdice" name="attr_arcana_exdice" placeholder="arcana_exdice" spellcheck="false" title="@{arcana_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="perception_check" title="perception_check">
<input data-i18n-placeholder="perception_check" name="attr_perception_check" placeholder="perception_check" spellcheck="false" title="@{perception_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="perception_button" title="perception_button">
<button type="roll" name="attr_perception_roll"/>
</label>
<label data-i18n-title="perception" title="perception">
<span data-i18n="perception">perception</span>
</label>
<label data-i18n-title="perception_specialty" title="perception_specialty">
<input data-i18n-placeholder="perception_specialty" name="attr_perception_specialty" placeholder="perception_specialty" spellcheck="false" title="@{perception_specialty}" type="text" value="" />
</label>
<label data-i18n-title="perception_exdice" title="perception_exdice">
<input data-i18n-placeholder="perception_exdice" name="attr_perception_exdice" placeholder="perception_exdice" spellcheck="false" title="@{perception_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="athletics_check" title="athletics_check">
<input data-i18n-placeholder="athletics_check" name="attr_athletics_check" placeholder="athletics_check" spellcheck="false" title="@{athletics_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="athletics_button" title="athletics_button">
<button type="roll" name="attr_athletics_roll"/>
</label>
<label data-i18n-title="athletics" title="athletics">
<span data-i18n="athletics">athletics</span>
</label>
<label data-i18n-title="athletics_specialty" title="athletics_specialty">
<input data-i18n-placeholder="athletics_specialty" name="attr_athletics_specialty" placeholder="athletics_specialty" spellcheck="false" title="@{athletics_specialty}" type="text" value="" />
</label>
<label data-i18n-title="athletics_exdice" title="athletics_exdice">
<input data-i18n-placeholder="athletics_exdice" name="attr_athletics_exdice" placeholder="athletics_exdice" spellcheck="false" title="@{athletics_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="performance_check" title="performance_check">
<input data-i18n-placeholder="performance_check" name="attr_performance_check" placeholder="performance_check" spellcheck="false" title="@{performance_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="performance_button" title="performance_button">
<button type="roll" name="attr_performance_roll"/>
</label>
<label data-i18n-title="performance" title="performance">
<span data-i18n="performance">performance</span>
</label>
<label data-i18n-title="performance_specialty" title="performance_specialty">
<input data-i18n-placeholder="performance_specialty" name="attr_performance_specialty" placeholder="performance_specialty" spellcheck="false" title="@{performance_specialty}" type="text" value="" />
</label>
<label data-i18n-title="performance_exdice" title="performance_exdice">
<input data-i18n-placeholder="performance_exdice" name="attr_performance_exdice" placeholder="performance_exdice" spellcheck="false" title="@{performance_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="culture_check" title="culture_check">
<input data-i18n-placeholder="culture_check" name="attr_culture_check" placeholder="culture_check" spellcheck="false" title="@{culture_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="culture_button" title="culture_button">
<button type="roll" name="attr_culture_roll"/>
</label>
<label data-i18n-title="culture" title="culture">
<span data-i18n="culture">culture</span>
</label>
<label data-i18n-title="culture_specialty" title="culture_specialty">
<input data-i18n-placeholder="culture_specialty" name="attr_culture_specialty" placeholder="culture_specialty" spellcheck="false" title="@{culture_specialty}" type="text" value="" />
</label>
<label data-i18n-title="culture_exdice" title="culture_exdice">
<input data-i18n-placeholder="culture_exdice" name="attr_culture_exdice" placeholder="culture_exdice" spellcheck="false" title="@{culture_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="persuasion_check" title="persuasion_check">
<input data-i18n-placeholder="persuasion_check" name="attr_persuasion_check" placeholder="persuasion_check" spellcheck="false" title="@{persuasion_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="persuasion_button" title="persuasion_button">
<button type="roll" name="attr_persuasion_roll"/>
</label>
<label data-i18n-title="persuasion" title="persuasion">
<span data-i18n="persuasion">persuasion</span>
</label>
<label data-i18n-title="persuasion_specialty" title="persuasion_specialty">
<input data-i18n-placeholder="persuasion_specialty" name="attr_persuasion_specialty" placeholder="persuasion_specialty" spellcheck="false" title="@{persuasion_specialty}" type="text" value="" />
</label>
<label data-i18n-title="persuasion_exdice" title="persuasion_exdice">
<input data-i18n-placeholder="persuasion_exdice" name="attr_persuasion_exdice" placeholder="persuasion_exdice" spellcheck="false" title="@{persuasion_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="deception_check" title="deception_check">
<input data-i18n-placeholder="deception_check" name="attr_deception_check" placeholder="deception_check" spellcheck="false" title="@{deception_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="deception_button" title="deception_button">
<button type="roll" name="attr_deception_roll"/>
</label>
<label data-i18n-title="deception" title="deception">
<span data-i18n="deception">deception</span>
</label>
<label data-i18n-title="deception_specialty" title="deception_specialty">
<input data-i18n-placeholder="deception_specialty" name="attr_deception_specialty" placeholder="deception_specialty" spellcheck="false" title="@{deception_specialty}" type="text" value="" />
</label>
<label data-i18n-title="deception_exdice" title="deception_exdice">
<input data-i18n-placeholder="deception_exdice" name="attr_deception_exdice" placeholder="deception_exdice" spellcheck="false" title="@{deception_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="religion_check" title="religion_check">
<input data-i18n-placeholder="religion_check" name="attr_religion_check" placeholder="religion_check" spellcheck="false" title="@{religion_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="religion_button" title="religion_button">
<button type="roll" name="attr_religion_roll"/>
</label>
<label data-i18n-title="religion" title="religion">
<span data-i18n="religion">religion</span>
</label>
<label data-i18n-title="religion_specialty" title="religion_specialty">
<input data-i18n-placeholder="religion_specialty" name="attr_religion_specialty" placeholder="religion_specialty" spellcheck="false" title="@{religion_specialty}" type="text" value="" />
</label>
<label data-i18n-title="religion_exdice" title="religion_exdice">
<input data-i18n-placeholder="religion_exdice" name="attr_religion_exdice" placeholder="religion_exdice" spellcheck="false" title="@{religion_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="engineering_check" title="engineering_check">
<input data-i18n-placeholder="engineering_check" name="attr_engineering_check" placeholder="engineering_check" spellcheck="false" title="@{engineering_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="engineering_button" title="engineering_button">
<button type="roll" name="attr_engineering_roll"/>
</label>
<label data-i18n-title="engineering" title="engineering">
<span data-i18n="engineering">engineering</span>
</label>
<label data-i18n-title="engineering_specialty" title="engineering_specialty">
<input data-i18n-placeholder="engineering_specialty" name="attr_engineering_specialty" placeholder="engineering_specialty" spellcheck="false" title="@{engineering_specialty}" type="text" value="" />
</label>
<label data-i18n-title="engineering_exdice" title="engineering_exdice">
<input data-i18n-placeholder="engineering_exdice" name="attr_engineering_exdice" placeholder="engineering_exdice" spellcheck="false" title="@{engineering_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="sleightofhand_check" title="sleightofhand_check">
<input data-i18n-placeholder="sleightofhand_check" name="attr_sleightofhand_check" placeholder="sleightofhand_check" spellcheck="false" title="@{sleightofhand_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="sleightofhand_button" title="sleightofhand_button">
<button type="roll" name="attr_sleightofhand_roll"/>
</label>
<label data-i18n-title="sleightofhand" title="sleightofhand">
<span data-i18n="sleightofhand">sleightofhand</span>
</label>
<label data-i18n-title="sleightofhand_specialty" title="sleightofhand_specialty">
<input data-i18n-placeholder="sleightofhand_specialty" name="attr_sleightofhand_specialty" placeholder="sleightofhand_specialty" spellcheck="false" title="@{sleightofhand_specialty}" type="text" value="" />
</label>
<label data-i18n-title="sleightofhand_exdice" title="sleightofhand_exdice">
<input data-i18n-placeholder="sleightofhand_exdice" name="attr_sleightofhand_exdice" placeholder="sleightofhand_exdice" spellcheck="false" title="@{sleightofhand_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="history_check" title="history_check">
<input data-i18n-placeholder="history_check" name="attr_history_check" placeholder="history_check" spellcheck="false" title="@{history_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="history_button" title="history_button">
<button type="roll" name="attr_history_roll"/>
</label>
<label data-i18n-title="history" title="history">
<span data-i18n="history">history</span>
</label>
<label data-i18n-title="history_specialty" title="history_specialty">
<input data-i18n-placeholder="history_specialty" name="attr_history_specialty" placeholder="history_specialty" spellcheck="false" title="@{history_specialty}" type="text" value="" />
</label>
<label data-i18n-title="history_exdice" title="history_exdice">
<input data-i18n-placeholder="history_exdice" name="attr_history_exdice" placeholder="history_exdice" spellcheck="false" title="@{history_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="stealth_check" title="stealth_check">
<input data-i18n-placeholder="stealth_check" name="attr_stealth_check" placeholder="stealth_check" spellcheck="false" title="@{stealth_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="stealth_button" title="stealth_button">
<button type="roll" name="attr_stealth_roll"/>
</label>
<label data-i18n-title="stealth" title="stealth">
<span data-i18n="stealth">stealth</span>
</label>
<label data-i18n-title="stealth_specialty" title="stealth_specialty">
<input data-i18n-placeholder="stealth_specialty" name="attr_stealth_specialty" placeholder="stealth_specialty" spellcheck="false" title="@{stealth_specialty}" type="text" value="" />
</label>
<label data-i18n-title="stealth_exdice" title="stealth_exdice">
<input data-i18n-placeholder="stealth_exdice" name="attr_stealth_exdice" placeholder="stealth_exdice" spellcheck="false" title="@{stealth_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="insight_check" title="insight_check">
<input data-i18n-placeholder="insight_check" name="attr_insight_check" placeholder="insight_check" spellcheck="false" title="@{insight_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="insight_button" title="insight_button">
<button type="roll" name="attr_insight_roll"/>
</label>
<label data-i18n-title="insight" title="insight">
<span data-i18n="insight">insight</span>
</label>
<label data-i18n-title="insight_specialty" title="insight_specialty">
<input data-i18n-placeholder="insight_specialty" name="attr_insight_specialty" placeholder="insight_specialty" spellcheck="false" title="@{insight_specialty}" type="text" value="" />
</label>
<label data-i18n-title="insight_exdice" title="insight_exdice">
<input data-i18n-placeholder="insight_exdice" name="attr_insight_exdice" placeholder="insight_exdice" spellcheck="false" title="@{insight_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="survival_check" title="survival_check">
<input data-i18n-placeholder="survival_check" name="attr_survival_check" placeholder="survival_check" spellcheck="false" title="@{survival_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="survival_button" title="survival_button">
<button type="roll" name="attr_survival_roll"/>
</label>
<label data-i18n-title="survival" title="survival">
<span data-i18n="survival">survival</span>
</label>
<label data-i18n-title="survival_specialty" title="survival_specialty">
<input data-i18n-placeholder="survival_specialty" name="attr_survival_specialty" placeholder="survival_specialty" spellcheck="false" title="@{survival_specialty}" type="text" value="" />
</label>
<label data-i18n-title="survival_exdice" title="survival_exdice">
<input data-i18n-placeholder="survival_exdice" name="attr_survival_exdice" placeholder="survival_exdice" spellcheck="false" title="@{survival_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="intimidation_check" title="intimidation_check">
<input data-i18n-placeholder="intimidation_check" name="attr_intimidation_check" placeholder="intimidation_check" spellcheck="false" title="@{intimidation_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="intimidation_button" title="intimidation_button">
<button type="roll" name="attr_intimidation_roll"/>
</label>
<label data-i18n-title="intimidation" title="intimidation">
<span data-i18n="intimidation">intimidation</span>
</label>
<label data-i18n-title="intimidation_specialty" title="intimidation_specialty">
<input data-i18n-placeholder="intimidation_specialty" name="attr_intimidation_specialty" placeholder="intimidation_specialty" spellcheck="false" title="@{intimidation_specialty}" type="text" value="" />
</label>
<label data-i18n-title="intimidation_exdice" title="intimidation_exdice">
<input data-i18n-placeholder="intimidation_exdice" name="attr_intimidation_exdice" placeholder="intimidation_exdice" spellcheck="false" title="@{intimidation_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="misc1_check" title="misc1_check">
<input data-i18n-placeholder="misc1_check" name="attr_misc1_check" placeholder="misc1_check" spellcheck="false" title="@{misc1_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="misc1_button" title="misc1_button">
<button type="roll" name="attr_misc1_roll"/>
</label>
<label data-i18n-title="misc1" title="misc1">
<input data-i18n-placeholder="misc1" name="attr_misc1" placeholder="misc1" spellcheck="false" title="@{misc1}" type="text" value="" />
</label>
<label data-i18n-title="misc1_exdice" title="misc1_exdice">
<input data-i18n-placeholder="misc1_exdice" name="attr_misc1_exdice" placeholder="misc1_exdice" spellcheck="false" title="@{misc1_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="investigation_check" title="investigation_check">
<input data-i18n-placeholder="investigation_check" name="attr_investigation_check" placeholder="investigation_check" spellcheck="false" title="@{investigation_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="investigation_button" title="investigation_button">
<button type="roll" name="attr_investigation_roll"/>
</label>
<label data-i18n-title="investigation" title="investigation">
<span data-i18n="investigation">investigation</span>
</label>
<label data-i18n-title="investigation_specialty" title="investigation_specialty">
<input data-i18n-placeholder="investigation_specialty" name="attr_investigation_specialty" placeholder="investigation_specialty" spellcheck="false" title="@{investigation_specialty}" type="text" value="" />
</label>
<label data-i18n-title="investigation_exdice" title="investigation_exdice">
<input data-i18n-placeholder="investigation_exdice" name="attr_investigation_exdice" placeholder="investigation_exdice" spellcheck="false" title="@{investigation_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="misc2_check" title="misc2_check">
<input data-i18n-placeholder="misc2_check" name="attr_misc2_check" placeholder="misc2_check" spellcheck="false" title="@{misc2_check}" type="checkbox" value="1" />
</label>
<label data-i18n-title="misc2_button" title="misc2_button">
<button type="roll" name="attr_misc2_roll"/>
</label>
<label data-i18n-title="misc2" title="misc2">
<input data-i18n-placeholder="misc2" name="attr_misc2" placeholder="misc2" spellcheck="false" title="@{misc2}" type="text" value="" />
</label>
<label data-i18n-title="misc2_exdice" title="misc2_exdice">
<input data-i18n-placeholder="misc2_exdice" name="attr_misc2_exdice" placeholder="misc2_exdice" spellcheck="false" title="@{misc2_exdice}" type="text" value="" list="dicelist" />
</label>
<label data-i18n-title="toolprofs" title="toolprofs">
<span data-i18n="toolprofs">toolprofs</span>
</label>
<label data-i18n-title="tool" title="tool">
<span data-i18n="tool">Tool</span>
</label>
<label data-i18n-title="toolexpertise_dice" title="toolexpertise_dice">
<span data-i18n="expertise_dice">Expertise Dice</span>
</label>
<div class="sheet-toollist">
<fieldset class="repeating_tools">
<label data-i18n-title="repeatingtools" title="repeatingtools">
<input data-i18n-placeholder="toolprof" name="attr_toolprof" placeholder="toolprof" spellcheck="false" title="@{toolprof}" type="checkbox" value="1" />
<button data-i18n-placeholder="toolroll" type="roll" name="attr_toolroll"></button>
<input data-i18n-placeholder="toolname" name="attr_toolname" placeholder="toolname" spellcheck="false" title="@{toolname}" type="text" value="" />
<input data-i18n-placeholder="toolexdice" name="attr_toolexdice" placeholder="toolexdice" spellcheck="false" title="@{toolexdice}" list="dicelist" type="text" value="" />
</label>
</fieldset>
</div>
</div>
</div>
</div>
<div class="sheet-attacks">
<label data-i18n-title="attacks_and_spellcasting" title="attacks_and_spellcasting">
<span data-i18n="attacks_and_spellcasting">attacks_and_spellcasting</span>
</label>
<label data-i18n-title="name" title="name">
<span data-i18n="name">name</span>
</label>
<label data-i18n-title="atk_bonus" title="atk_bonus">
<span data-i18n="atk_bonus">atk_bonus</span>
</label>
<label data-i18n-title="damage" title="damage">
<span data-i18n="damage">damage</span>
</label>
<label data-i18n-title="type" title="type">
<span data-i18n="type">type</span>
</label>
<label data-i18n-title="range" title="range">
<span data-i18n="range">range</span>
</label>
<label data-i18n-title="notes" title="notes">
<span data-i18n="notes">notes</span>
</label>
<div class="sheet-attacklist">
<fieldset class="repeating_attacks">
<label data-i18n-title="repeatingattacks" title="repeatingattacks">
<button data-i18n-placeholder="attackroll" type="roll" name="attr_attackroll"></button>
<input data-i18n-placeholder="attackname" name="attr_attackname" placeholder="attackname" spellcheck="false" title="@{attackname}" type="text" value="" />
<input data-i18n-placeholder="attackbonus" name="attr_attackbonus" placeholder="attackbonus" spellcheck="false" title="@{attackbonus}" type="text" value="" />
<input data-i18n-placeholder="attackdamage" name="attr_attackdamage" placeholder="attackdamage" spellcheck="false" title="@{attackdamage}" type="text" value="" />
<input data-i18n-placeholder="attackdamagetype" name="attr_attackdamagetype" placeholder="attackdamagetype" spellcheck="false" title="@{attackdamagetype}" type="text" value="" list="damagetypelist"/>
<input data-i18n-placeholder="attackrange" name="attr_attackrange" placeholder="attackrange" spellcheck="false" title="@{attackrange}" type="text" value="" />
<input data-i18n-placeholder="attacknotes" name="attr_attacknotes" placeholder="attacknotes" spellcheck="false" title="@{attacknotes}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
</div>
<div class="sheet-features">
<div class="sheet-display-featandtraits">
<label data-i18n-title="featandtraits" title="featandtraits">
<span data-i18n="featandtraits">featandtraits</span>
<textarea data-i18n-placeholder="featandtraits" name="attr_featandtraits" placeholder="featandtraits" spellcheck="false" title="@{featandtraits}" type="text" value="" />
</label>
</div>
<div class='sheet-display-langprofs'>
<label data-i18n-title="langprofs" title="langprofs">
<span data-i18n="langprofs">langprofs</span>
<textarea data-i18n-placeholder="langprofs" name="attr_langprofs" placeholder="langprofs" spellcheck="false" title="@{langprofs}" type="text" value="" />
</label>
</div>
<div class="sheet-combatmaneuvers">
<label data-i18n-title="combat_maneuvers" title="combat_maneuvers">
<span data-i18n="combat_maneuvers">combat_maneuvers</span>
</label>
<label data-i18n-title="maneuvers_known_title" title="maneuvers_known_title">
<span data-i18n="maneuvers_known">maneuvers_known</span>
</label>
<label data-i18n-title="maneuvers_known" title="maneuvers_known">
<input data-i18n-placeholder="maneuvers_known" name="attr_maneuvers_known" placeholder="maneuvers_known" spellcheck="false" title="@{maneuvers_known}" type="number" value="" />
</label>
<label data-i18n-title="traditions_known_title" title="traditions_known_title">
<span data-i18n="traditions_known">traditions_known</span>
</label>
<label data-i18n-title="traditions_known" title="traditions_known">
<input data-i18n-placeholder="traditions_known" name="attr_traditions_known" placeholder="traditions_known" spellcheck="false" title="@{traditions_known}" type="text" value="" />
</label>
<label data-i18n-title="maneuver_savedc" title="maneuver_savedc">
<span data-i18n="maneuver_savedc">maneuver_savedc</span>
<span data-i18n="maneuver_saveform">maneuver_saveform</span>
<input data-i18n-placeholder="maneuver_savedc" name="attr_maneuver_savedc" placeholder="maneuver_savedc" spellcheck="false" title="@{maneuver_savedc}" type="number" value="" />
</label>
<label data-i18n-title="exertion_points" title="exertion_points">
<span data-i18n="exertion_points">exertion_points</span>
<span data-i18n="exertion_form">exertion_form</span>
<input data-i18n-placeholder="exertion_points" name="attr_exertion_points" placeholder="exertion_points" spellcheck="false" title="@{exertion_points}" type="number" value="" />
</label>
<label data-i18n-title="maneuver" title="maneuver">
<span data-i18n="maneuver">maneuver</span>
</label>
<label data-i18n-title="exertion_cost" title="exertion_cost">
<span data-i18n="exertion_cost">exertion_cost</span>
</label>
<label data-i18n-title="activation" title="activation">
<span data-i18n="activation">activation</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg#</span>
</label>
<div class="sheet-maneuverlist">
<fieldset class="repeating_maneuvers">
<label data-i18n-title="repeatingmaneuvers" title="repeatingmaneuvers">
<input data-i18n-placeholder="maneuvername" name="attr_maneuvername" placeholder="maneuvername" spellcheck="false" title="@{maneuvername}" type="text" value="" />
<input data-i18n-placeholder="maneuvercost" name="attr_maneuvercost" placeholder="maneuvercost" spellcheck="false" title="@{maneuvercost}" type="text" value="" />
<input data-i18n-placeholder="maneuveractivation" name="attr_maneuveractivation" placeholder="maneuveractivation" spellcheck="false" title="@{maneuveractivation}" type="text" value="" />
<input data-i18n-placeholder="maneuverpg" name="attr_maneuverpg" placeholder="maneuverpg" spellcheck="false" title="@{maneuverpg}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
<div class='sheet-display-explorationknacks'>
<label data-i18n-title="explorationknacks" title="explorationknacks">
<span data-i18n="explorationknacks">explorationknacks</span>
<textarea data-i18n-placeholder="explorationknacks" name="attr_explorationknacks" placeholder="explorationknacks" spellcheck="false" title="@{explorationknacks}" type="text" value="" />
</label>
</div>
</div>
<div class="sheet-backgrounds">
<div class="sheet-appearance">
<div class='sheet-display-character_appearance'>
<label data-i18n-title="character_appearance" title="character_appearance">
<span data-i18n="character_appearance">character_appearance</span>
<textarea data-i18n-placeholder="character_appearance" name="attr_character_appearance" placeholder="character_appearance" spellcheck="false" title="@{character_appearance}" type="text" value="" />
</label>
</div>
<div class="sheet-display-character_description">
<label data-i18n-title="age" title="age">
<span data-i18n="age">Age</span>
<input data-i18n-placeholder="age" name="attr_age" placeholder="class level archtype" spellcheck="false" title="@{age}" type="text" value="" />
</label>
<label data-i18n-title="height" title="height">
<span data-i18n="height">height</span>
<input data-i18n-placeholder="height" name="attr_height" placeholder="height" spellcheck="false" title="@{height}" type="text" value="" />
</label>
<label data-i18n-title="weight" title="weight">
<span data-i18n="weight">weight</span>
<input data-i18n-placeholder="weight" name="attr_weight" placeholder="weight" spellcheck="false" title="@{weight}" type="text" value="" />
</label>
<label data-i18n-title="eyes" title="eyes">
<span data-i18n="eyes">eyes</span>
<input data-i18n-placeholder="eyes" name="attr_eyes" placeholder="eyes" spellcheck="false" title="@{eyes}" type="text" value="" />
</label>
<label data-i18n-title="skin" title="skin">
<span data-i18n="skin">skin</span>
<input data-i18n-placeholder="skin" name="attr_skin" placeholder="skin" spellcheck="false" title="@{skin}" type="text" value="" />
</label>
<label data-i18n-title="hair" title="hair">
<span data-i18n="hair">hair</span>
<input data-i18n-placeholder="hair" name="attr_hair" placeholder="hair" spellcheck="false" title="@{hair}" type="text" value="" />
</label>
</div>
</div>
<div class="sheet-background">
<div class='sheet-display-character_background'>
<label data-i18n-title="character_background" title="character_background">
<span data-i18n="character_background">character_background</span>
<textarea data-i18n-placeholder="character_background" name="attr_character_background" placeholder="character_background" spellcheck="false" title="@{character_background}" type="text" value="" />
</label>
</div>
<div class='sheet-display-character_allies_and_org'>
<label data-i18n-title="character_allies_and_org" title="character_allies_and_org">
<span data-i18n="character_allies_and_org">character_allies_and_org</span>
<textarea data-i18n-placeholder="character_allies_and_org" name="attr_character_allies_and_org" placeholder="character_allies_and_org" spellcheck="false" title="@{character_allies_and_org}" type="text" value="" />
</label>
</div>
</div>
</div>
<div class="sheet-inventory">
<div class="sheet-followers">
<label data-i18n-title="followers_and_strongholds" title="followers_and_strongholds">
<span data-i18n="followers_and_strongholds">followers_and_strongholds</span>
</label>
<label data-i18n-title="name" title="name">
<span data-i18n="name">name</span>
</label>
<label data-i18n-title="type" title="type">
<span data-i18n="type">type</span>
</label>
<label data-i18n-title="ability" title="ability">
<span data-i18n="ability">ability</span>
</label>
<div class="sheet-followerlist">
<fieldset class="repeating_followers">
<label data-i18n-title="repeatingfollowers" title="repeatingfollowers">
<input data-i18n-placeholder="followername" name="attr_followername" placeholder="followername" spellcheck="false" title="@{followername}" type="text" value="" />
<input data-i18n-placeholder="followertype" name="attr_followertype" placeholder="followertype" spellcheck="false" title="@{followertype}" type="text" value="" />
<input data-i18n-placeholder="followerability" name="attr_followerability" placeholder="followerability" spellcheck="false" title="@{followerability}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-equipment_and_treasure">
<div class="sheet-equipment">
<label data-i18n-title="equipment" title="equipment">
<span data-i18n="equipment">equipment</span>
</label>
<label data-i18n-title="total_wt" title="total_wt">
<span data-i18n="total_wt">total_wt</span>
<input data-i18n-placeholder="total_wt" name="attr_total_wt" placeholder="total_wt" spellcheck="false" title="@{total_wt}" type="number" value="" />
</label>
<label data-i18n-title="wt" title="wt">
<span data-i18n="wt">wt</span>
</label>
<label data-i18n-title="item" title="item">
<span data-i18n="item">item</span>
</label>
<label data-i18n-title="properties" title="properties">
<span data-i18n="properties">properties</span>
</label>
<div class="sheet-equipmentlist">
<fieldset class="repeating_equipment">
<label data-i18n-title="repeatingequipment" title="repeatingequipment">
<input data-i18n-placeholder="equipmentwt" name="attr_equipmentwt" placeholder="equipmentwt" spellcheck="false" title="@{equipmentwt}" type="number" value="" />
<input data-i18n-placeholder="equipmentitem" name="attr_equipmentitem" placeholder="equipmentitem" spellcheck="false" title="@{equipmentitem}" type="text" value="" />
<input data-i18n-placeholder="equipmentproperties" name="attr_equipmentproperties" placeholder="equipmentproperties" spellcheck="false" title="@{equipmentproperties}" type="text" value="" />
</label>
</fieldset>
</div>
<label data-i18n-title="bulky_items" title="bulky_items">
<span data-i18n="bulky_items">bulky_items</span>
</label>
<label data-i18n-title="bulky_items_max" title="bulky_items_max">
<span data-i18n="bulky_items_max">bulky_items_max</span>
<input data-i18n-placeholder="bulky_items_max" name="attr_bulky_items_max" placeholder="bulky_items_max" spellcheck="false" title="@{bulky_items_max}" type="number" value="" />
</label>
<div class="sheet-bulkylist">
<fieldset class="repeating_bulky">
<label data-i18n-title="repeatingbulky" title="repeatingbulky">
<input data-i18n-placeholder="bulkyname" name="attr_bulkyname" placeholder="bulkyname" spellcheck="false" title="@{bulkyname}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-treasure">
<label data-i18n-title="treasure" title="treasure">
<span data-i18n="treasure">treasure</span>
<textarea data-i18n-placeholder="treasure" name="attr_treasure" placeholder="treasure" spellcheck="false" title="@{treasure}" type="text" value="" />
</label>
</div>
</div>
<div class="sheet-display-coins">
<label data-i18n-title="cp" title="cp">
<span data-i18n="cp">cp</span>
<input data-i18n-placeholder="cp" name="attr_cp" placeholder="cp" spellcheck="false" title="@{cp}" type="number" value="" />
</label>
<label data-i18n-title="sp" title="sp">
<span data-i18n="sp">sp</span>
<input data-i18n-placeholder="sp" name="attr_sp" placeholder="sp" spellcheck="false" title="@{sp}" type="number" value="" />
</label>
<label data-i18n-title="ep" title="ep">
<span data-i18n="ep">ep</span>
<input data-i18n-placeholder="ep" name="attr_ep" placeholder="ep" spellcheck="false" title="@{ep}" type="number" value="" />
</label>
<label data-i18n-title="gp" title="gp">
<span data-i18n="gp">gp</span>
<input data-i18n-placeholder="gp" name="attr_gp" placeholder="gp" spellcheck="false" title="@{gp}" type="number" value="" />
</label>
<label data-i18n-title="pp" title="pp">
<span data-i18n="pp">pp</span>
<input data-i18n-placeholder="pp" name="attr_pp" placeholder="pp" spellcheck="false" title="@{pp}" type="number" value="" />
</label>
</div>
</div>
<div class="sheet-spells">
<div class="sheet-spellcasting_class">
<label data-i18n-title="spellcasting_class" title="spellcasting_class">
<span data-i18n="spellcasting_class">spellcasting_class</span>
</label>
<label data-i18n-title="spellcasting_ability" title="spellcasting_ability">
<span data-i18n="spellcasting_ability">spellcasting_ability</span>
</label>
<label data-i18n-title="spellsave_dc" title="spellsave_dc">
<span data-i18n="spellsave_dc">spellsave_dc</span>
</label>
<label data-i18n-title="spellsave_form" title="spellsave_form">
<span data-i18n="spellsave_form">spellsave_form</span>
</label>
<label data-i18n-title="spellattack_bonus" title="spellattack_bonus">
<span data-i18n="spellattack_bonus">spellattack_bonus</span>
</label>
<label data-i18n-title="spellattack_form" title="spellattack_form">
<span data-i18n="spellattack_form">spellattack_form</span>
</label>
<label data-i18n-title="sorcerer_warlock" title="sorcerer_warlock">
<span data-i18n="sorcerer_warlock">sorcerer_warlock</span>
</label>
<label data-i18n-title="spell_points" title="spell_points">
<span data-i18n="spell_points">spell_points</span>
</label>
<div class="sheet-spellclasslist">
<fieldset class="repeating_spellclass">
<label data-i18n-title="repeatingspellclass" title="repeatingspellclass">
<input data-i18n-placeholder="spellclassname" name="attr_spellclassname" placeholder="spellclassname" spellcheck="false" title="@{spellclassname}" type="text" value="" />
<input data-i18n-placeholder="spellclassability" name="attr_spellclassability" placeholder="spellclassability" spellcheck="false" title="@{spellclassability}" type="text" value="" list="statlist"/>
<input data-i18n-placeholder="spellclassdc" name="attr_spellclassdc" placeholder="spellclassdc" spellcheck="false" title="@{spellclassdc}" type="number" value="" />
<input data-i18n-placeholder="spellclassattack" name="attr_spellclassattack" placeholder="spellclassattack" spellcheck="false" title="@{spellclassattack}" type="number" value="" />
<input data-i18n-placeholder="spellclasspoints" name="attr_spellclasspoints" placeholder="spellclasspoints" spellcheck="false" title="@{spellclasspoints}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-spells">
<div class="sheet-display-cantrips">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="0" title="0">
<span data-i18n="0">0</span>
</label>
</div>
<label data-i18n-title="cantrips" title="cantrips">
<span data-i18n="cantrips">cantrips</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-cantriplist">
<fieldset class="repeating_cantrips">
<label data-i18n-title="repeatingcantrips" title="repeatingcantrips">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level1">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="1" title="1">
<span data-i18n="1">1</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown1" placeholder="0" spellcheck="false" title="@{spellknown1}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots1" placeholder="0" spellcheck="false" title="@{spellslots1}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended1" placeholder="0" spellcheck="false" title="@{spellexpended1}" type="number" value="" />
</label>
<label data-i18n-title="sp2" title="sp2">
<span data-i18n="sp2">sp2</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl1list">
<fieldset class="repeating_lvl1">
<label data-i18n-title="repeatinglvl1" title="repeatinglvl1">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level2">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="2" title="2">
<span data-i18n="2">2</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown2" placeholder="0" spellcheck="false" title="@{spellknown2}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots2" placeholder="0" spellcheck="false" title="@{spellslots2}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended2" placeholder="0" spellcheck="false" title="@{spellexpended2}" type="number" value="" />
</label>
<label data-i18n-title="sp3" title="sp3">
<span data-i18n="sp3">sp3</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl2list">
<fieldset class="repeating_lvl2">
<label data-i18n-title="repeatinglvl2" title="repeatinglvl2">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level3">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="3" title="3">
<span data-i18n="3">3</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown3" placeholder="0" spellcheck="false" title="@{spellknown3}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots3" placeholder="0" spellcheck="false" title="@{spellslots3}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended3" placeholder="0" spellcheck="false" title="@{spellexpended3}" type="number" value="" />
</label>
<label data-i18n-title="sp5" title="sp5">
<span data-i18n="sp5">sp5</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl3list">
<fieldset class="repeating_lvl3">
<label data-i18n-title="repeatinglvl3" title="repeatinglvl3">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level4">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="4" title="4">
<span data-i18n="4">4</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown4" placeholder="0" spellcheck="false" title="@{spellknown4}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots4" placeholder="0" spellcheck="false" title="@{spellslots4}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended4" placeholder="0" spellcheck="false" title="@{spellexpended4}" type="number" value="" />
</label>
<label data-i18n-title="sp6" title="sp6">
<span data-i18n="sp6">sp6</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl4list">
<fieldset class="repeating_lvl4">
<label data-i18n-title="repeatinglvl4" title="repeatinglvl4s">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level5">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="5" title="5">
<span data-i18n="5">5</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown5" placeholder="0" spellcheck="false" title="@{spellknown5}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots5" placeholder="0" spellcheck="false" title="@{spellslots5}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended5" placeholder="0" spellcheck="false" title="@{spellexpended5}" type="number" value="" />
</label>
<label data-i18n-title="sp7" title="sp7">
<span data-i18n="sp7">sp7</span>
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl5list">
<fieldset class="repeating_lvl5">
<label data-i18n-title="repeatinglvl5" title="repeatinglvl5">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level6">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="6" title="6">
<span data-i18n="6">6</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown6" placeholder="0" spellcheck="false" title="@{spellknown6}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots6" placeholder="0" spellcheck="false" title="@{spellslots6}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended6" placeholder="0" spellcheck="false" title="@{spellexpended6}" type="number" value="" />
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl6list">
<fieldset class="repeating_lvl6">
<label data-i18n-title="repeatinglvl6" title="repeatinglvl6">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level7">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="7" title="7">
<span data-i18n="7">7</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown7" placeholder="0" spellcheck="false" title="@{spellknown7}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots7" placeholder="0" spellcheck="false" title="@{spellslots7}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended7" placeholder="0" spellcheck="false" title="@{spellexpended7}" type="number" value="" />
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl7list">
<fieldset class="repeating_lvl7">
<label data-i18n-title="repeatinglvl7" title="repeatinglvl7">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level8">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="8" title="8">
<span data-i18n="8">8</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown8" placeholder="0" spellcheck="false" title="@{spellknown8}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots8" placeholder="0" spellcheck="false" title="@{spellslots8}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended8" placeholder="0" spellcheck="false" title="@{spellexpended8}" type="number" value="" />
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl8list">
<fieldset class="repeating_lvl8">
<label data-i18n-title="repeatinglvl8" title="repeatinglvl8">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-display-level9">
<div class="sheet-lvl">
<label data-i18n-title="lvl" title="lvl">
<span data-i18n="lvl">lvl</span>
</label>
<label data-i18n-title="9" title="9">
<span data-i18n="9">9</span>
</label>
</div>
<label data-i18n-title="known" title="known">
<span data-i18n="known">known</span>
<input data-i18n-placeholder="0" name="attr_spellknown9" placeholder="0" spellcheck="false" title="@{spellknown9}" type="number" value="" />
</label>
<label data-i18n-title="slots" title="slots">
<span data-i18n="slots">slots</span>
<input data-i18n-placeholder="0" name="attr_spellslots9" placeholder="0" spellcheck="false" title="@{spellslots9}" type="number" value="" />
</label>
<label data-i18n-title="expended" title="expended">
<span data-i18n="expended">expended</span>
<input data-i18n-placeholder="0" name="attr_spellexpended9" placeholder="0" spellcheck="false" title="@{spellexpended9}" type="number" value="" />
</label>
<label data-i18n-title="pg" title="pg">
<span data-i18n="pg">pg</span>
</label>
<div class="sheet-lvl9list">
<fieldset class="repeating_lvl9">
<label data-i18n-title="repeatinglvl9" title="repeatinglvl9">
<input data-i18n-placeholder="spellname" name="attr_spellname" placeholder="spellname" spellcheck="false" title="@{spellname}" type="text" value="" />
<input data-i18n-placeholder="spellpg" name="attr_spellpg" placeholder="spellpg" spellcheck="false" title="@{spellpg}" type="number" value="" />
</label>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<div class='sheet-NPC'>
<div class="sheet-npc-header">
<label data-i18n-title="npc_name" title="npc name">
<input data-i18n-placeholder="character_name" name="attr_character_name" placeholder="character name" spellcheck="false" title="@{character_name}" type="text" value="" />
</label>
<label data-i18n-title="ChallengeRating" title="ChallengeRating">
<span data-i18n="challenge">challenge</span>
<input data-i18n-placeholder="challenge" name="attr_behaviour" placeholder="challenge" spellcheck="false" title="@{challenge}" type="number"/>
</label>
<label data-i18n-title="CreatureSizeType" title="CreatureSizeType">
<input data-i18n-placeholder="creaturesize" name="attr_creaturesize" placeholder="creaturesize" spellcheck="false" title="@{creaturesize}" type="text" list="sizelist"/>
<input data-i18n-placeholder="creaturetype" name="attr_creaturetype" placeholder="creaturetype" spellcheck="false" title="@{creaturetype}" type="text" list="creaturetypelist"/>
</label>
<label data-i18n-title="XPReward" title="XPReward">
<input data-i18n-placeholder="xpreward" name="attr_xpreward" placeholder="xpreward" spellcheck="false" title="@{xpreward}" type="text"/>
<span data-i18n="xp">xp</span>
</label>
</div>
<div class="sheet-statsinfo">
<label data-i18n-title="stats" title="stats">
<input name="attr_statsinfo_type" type="radio" value="stats"><span data-i18n="stats"></span></input>
</label>
<label data-i18n-title="info" title="info">
<input name="attr_statsinfo_type" type="radio" value="info"><span data-i18n="info"></span></input>
</label>
</div>
<div class="sheet-npc-stats">
<label data-i18n-title="armourclass" title="armourclass">
<span data-i18n="armour_class">armour_class</span>
<input data-i18n-placeholder="armour_class" name="attr_armour_class" placeholder="armour_class" spellcheck="false" title="@{armour_class}" type="text" value="" />
</label>
<label data-i18n-title="hit_points" title="hit_points">
<span data-i18n="hit_points">hit_points</span>
<input data-i18n-placeholder="hit_points" name="attr_hit_points" placeholder="hit_points" spellcheck="false" title="@{hit_points}" type="number" value="" />
<input data-i18n-placeholder="hit_dice" name="attr_hit_dice" placeholder="hit_dice" spellcheck="false" title="@{hit_dice}" type="text" value="" />
</label>
<label data-i18n-title="speed" title="speed">
<span data-i18n="speed">speed</span>
<input data-i18n-placeholder="speed" name="attr_speed" placeholder="speed" spellcheck="false" title="@{speed}" type="text" value="" />
</label>
<div class="sheet-statblock">
<label data-i18n-title="str" title="str">
<span data-i18n="str">str</span>
</label>
<label data-i18n-title="dex" title="dex">
<span data-i18n="dex">dex</span>
</label>
<label data-i18n-title="con" title="con">
<span data-i18n="con">con</span>
</label>
<label data-i18n-title="int" title="int">
<span data-i18n="int">int</span>
</label>
<label data-i18n-title="wis" title="wis">
<span data-i18n="wis">wis</span>
</label>
<label data-i18n-title="cha" title="cha">
<span data-i18n="cha">cha</span>
</label>
<label data-i18n-title="strengthstat" title="strengthstat">
<input data-i18n-placeholder="strength" name="attr_strength" placeholder="strength" spellcheck="false" title="@{strength}" type="number" value="" />
</label>
<label data-i18n-title="strengthmod" title="strengthmod">
(<input data-i18n-placeholder="strengthmod" name="attr_strengthmod" placeholder="0" spellcheck="false" title="@{strengthmod}" type="number"/>)
</label>
<label data-i18n-title="dexteritystat" title="dexteritystat">
<input data-i18n-placeholder="dexterity" name="attr_dexterity" placeholder="dexterity" spellcheck="false" title="@{dexterity}" type="number" value="" />
</label>
<label data-i18n-title="dexteritymod" title="dexteritymod">
(<input data-i18n-placeholder="dexteritymod" name="attr_dexteritymod" placeholder="0" spellcheck="false" title="@{dexteritymod}" type="number"/>)
</label>
<label data-i18n-title="constitutionstat" title="constitutionstat">
<input data-i18n-placeholder="constitution" name="attr_constitution" placeholder="constitution" spellcheck="false" title="@{constitution}" type="number" value="" />
</label>
<label data-i18n-title="constitutionmod" title="constitutionmod">
(<input data-i18n-placeholder="constitutionmod" name="attr_constitutionmod" placeholder="0" spellcheck="false" title="@{constitutionmod}" type="number"/>)
</label>
<label data-i18n-title="intelligencestat" title="intelligencestat">
<input data-i18n-placeholder="intelligence" name="attr_intelligence" placeholder="intelligence" spellcheck="false" title="@{intelligence}" type="number" value="" />
</label>
<label data-i18n-title="intelligencemod" title="intelligencemod">
(<input data-i18n-placeholder="intelligencemod" name="attr_intelligencemod" placeholder="0" spellcheck="false" title="@{intelligencemod}" type="number"/>)
</label>
<label data-i18n-title="wisdomstat" title="wisdomstat">
<input data-i18n-placeholder="wisdom" name="attr_wisdom" placeholder="wisdom" spellcheck="false" title="@{wisdom}" type="number" value="" />
</label>
<label data-i18n-title="wisdommod" title="wisdommod">
(<input data-i18n-placeholder="wisdommod" name="attr_wisdommod" placeholder="0" spellcheck="false" title="@{wisdommod}" type="number"/>)
</label>
<label data-i18n-title="charismastat" title="charismastat">
<input data-i18n-placeholder="charisma" name="attr_charisma" placeholder="charisma" spellcheck="false" title="@{charisma}" type="number" value="" />
</label>
<label data-i18n-title="charismamod" title="charismamod">
(<input data-i18n-placeholder="charismamod" name="attr_charismamod" placeholder="0" spellcheck="false" title="@{charismamod}" type="number"/>)
</label>
</div>
<div class="sheet-profman">
<label data-i18n-title="prof" title="prof">
<span data-i18n="prof">prof</span>
<input data-i18n-placeholder="prof" name="attr_prof" placeholder="prof" spellcheck="false" title="@{prof}" type="number" value="" />
</label>
<label data-i18n-title="maneuverdc" title="maneuverdc">
<span data-i18n="maneuverdc">maneuverdc</span>
<input data-i18n-placeholder="maneuverdc" name="attr_maneuverdc" placeholder="maneuverdc" spellcheck="false" title="@{maneuverdc}" type="number" value="" />
</label>
</div>
<div class="sheet-skills">
<label data-i18n-title="skills" title="skills">
<span data-i18n="skills">skills</span>
</label>
<label data-i18n-title="skill" title="skill">
<span data-i18n="skill">skill</span>
</label>
<label data-i18n-title="skill_bonus" title="skill_bonus">
<span data-i18n="skill_bonus">skill_bonus</span>
</label>
<label data-i18n-title="expertise_dice" title="expertise_dice">
<span data-i18n="expertise_dice">expertise_dice</span>
</label>
<div class="sheet-skilllist">
<fieldset class="repeating_skills">
<label data-i18n-title="repeatingskills" title="repeatingskills">
<button data-i18n-placeholder="skillroll" type="roll" name="attr_skillroll"></button>
<input data-i18n-placeholder="skillname" name="attr_skillname" placeholder="skillname" spellcheck="false" title="@{skillname}" type="text" value="" />
<input data-i18n-placeholder="skillbonus" name="attr_skillbonus" placeholder="skillbonus" spellcheck="false" title="@{skillbonus}" type="number" />
<input data-i18n-placeholder="skillexdice" name="attr_skillexdice" placeholder="skillexdice" spellcheck="false" title="@{skillexdice}" type="text" list="dicelist" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-vulresinn">
<label data-i18n-title="damage vulnerabilities" title="damage vulnerabilities">
<span data-i18n="damage vulnerabilities">damage vulnerabilities</span>
<input data-i18n-placeholder="damage vulnerabilities" name="attr_damage vulnerabilities" placeholder="damage vulnerabilities" spellcheck="false" title="@{damage vulnerabilities}" type="text" value="" />
</label>
<label data-i18n-title="damage resistances" title="damage resistances">
<span data-i18n="damage resistances">damage resistances</span>
<input data-i18n-placeholder="damage resistances" name="attr_damage resistances" placeholder="damage resistances" spellcheck="false" title="@{damage resistances}" type="text" value="" />
</label>
<label data-i18n-title="damage immunities" title="damage immunities">
<span data-i18n="damage immunities">damage immunities</span>
<input data-i18n-placeholder="damage immunities" name="attr_damage immunities" placeholder="damage immunities" spellcheck="false" title="@{damage immunities}" type="text" value="" />
</label>
<label data-i18n-title="condition immunities" title="condition immunities">
<span data-i18n="condition immunities">condition immunities</span>
<input data-i18n-placeholder="condition immunities" name="attr_condition immunities" placeholder="condition immunities" spellcheck="false" title="@{condition immunities}" type="text" value="" />
</label>
</div>
<div class="sheet-senlang">
<label data-i18n-title="senses" title="senses">
<span data-i18n="senses">senses</span>
<input data-i18n-placeholder="senses" name="attr_senses" placeholder="senses" spellcheck="false" title="@{senses}" type="text" value="" />
</label>
<label data-i18n-title="languages" title="languages">
<span data-i18n="languages">languages</span>
<input data-i18n-placeholder="languages" name="attr_languages" placeholder="languages" spellcheck="false" title="@{languages}" type="text" value="" />
</label>
</div>
<div class="sheet-abilities_and_powers">
<label data-i18n-title="abilities_and_powers" title="abilities_and_powers">
<span data-i18n="abilities_and_powers">abilities_and_powers</span>
<textarea data-i18n-placeholder="abilities_and_powers" name="attr_abilities_and_powers" placeholder="abilities_and_powers" spellcheck="false" title="@{abilities_and_powers}" />
</label>
</div>
<div class="sheet-attacks">
<label data-i18n-title="attacks_and_spellcasting" title="attacks_and_spellcasting">
<span data-i18n="attacks_and_spellcasting">attacks_and_spellcasting</span>
</label>
<label data-i18n-title="name" title="name">
<span data-i18n="name">name</span>
</label>
<label data-i18n-title="atk_bonus" title="atk_bonus">
<span data-i18n="atk_bonus">atk_bonus</span>
</label>
<label data-i18n-title="damage" title="damage">
<span data-i18n="damage">damage</span>
</label>
<label data-i18n-title="type" title="type">
<span data-i18n="type">type</span>
</label>
<label data-i18n-title="range" title="range">
<span data-i18n="range">range</span>
</label>
<label data-i18n-title="notes" title="notes">
<span data-i18n="notes">notes</span>
</label>
<div class="sheet-attacklist">
<fieldset class="repeating_attacks">
<label data-i18n-title="repeatingattacks" title="repeatingattacks">
<button data-i18n-placeholder="attackroll" type="roll" name="attr_attackroll"></button>
<input data-i18n-placeholder="attackname" name="attr_attackname" placeholder="attackname" spellcheck="false" title="@{attackname}" type="text" value="" />
<input data-i18n-placeholder="attackbonus" name="attr_attackbonus" placeholder="attackbonus" spellcheck="false" title="@{attackbonus}" type="text" value="" />
<input data-i18n-placeholder="attackdamage" name="attr_attackdamage" placeholder="attackdamage" spellcheck="false" title="@{attackdamage}" type="text" value="" />
<input data-i18n-placeholder="attackdamagetype" name="attr_attackdamagetype" placeholder="attackdamagetype" spellcheck="false" title="@{attackdamagetype}" type="text" value="" list="damagetypelist"/>
<input data-i18n-placeholder="attackrange" name="attr_attackrange" placeholder="attackrange" spellcheck="false" title="@{attackrange}" type="text" value="" />
<input data-i18n-placeholder="attacknotes" name="attr_attacknotes" placeholder="attacknotes" spellcheck="false" title="@{attacknotes}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
<div class="sheet-bonusactions">
<label data-i18n-title="bonusactions" title="bonusactions">
<span data-i18n="bonusactions">bonusactions</span>
</label>
<label data-i18n-title="name" title="name">
<span data-i18n="name">name</span>
</label>
<label data-i18n-title="description" title="description">
<span data-i18n="description">description</span>
</label>
<div class="sheet-bonuslist">
<fieldset class="repeating_bonusactions">
<label data-i18n-title="repeatingbonusactions" title="repeatingbonusactionss">
<input data-i18n-placeholder="bonusname" name="attr_bonusname" placeholder="bonusname" spellcheck="false" title="@{bonusname}" type="text" value="" />
<input data-i18n-placeholder="bonusnotes" name="attr_bonusnotes" placeholder="bonusnotes" spellcheck="false" title="@{bonusnotes}" type="text" value="" />
</label>
</fieldset>
</div>
</div>
</div>
<div class="sheet-npc-info">
<div class="sheet-NPCNotes">
<label data-i18n-title="NPCNotes" title="NPCNotes">
<textarea data-i18n-placeholder="npcnotes" name="attr_npcnotes" placeholder="npcnotes" spellcheck="false" title="@{npcnotes}" />
</label>
</div>
<div class="sheet-NPClegend_and_lore">
<label data-i18n-title="NPClegend_and_lore" title="NPClegend_and_lore">
<span data-i18n="legend_and_lore">legend_and_lore</span>
<textarea data-i18n-placeholder="legend_and_lore" name="attr_legend_and_lore" placeholder="legend_and_lore" spellcheck="false" title="@{legend_and_lore}" />
</label>
</div>
<div class="sheet-NPCEncounters">
<label data-i18n-title="NPCEncounters" title="NPCEncounters">
<span data-i18n="encounters">encounters</span>
<textarea data-i18n-placeholder="encounters" name="attr_encounters" placeholder="encounters" spellcheck="false" title="@{encounters}" />
</label>
</div>
<div class="sheet-NPCRules">
<label data-i18n-title="NPCRules" title="NPCRules">
<span data-i18n="rules">rules</span>
<textarea data-i18n-placeholder="rules" name="attr_rules" placeholder="rules" spellcheck="false" title="@{rules}" />
</label>
</div>
<div class="sheet-NPCSigns">
<label data-i18n-title="NPCSigns" title="NPCSigns">
<span data-i18n="signs">signs</span>
<textarea data-i18n-placeholder="signs" name="attr_signs" placeholder="signs" spellcheck="false" title="@{signs}" />
</label>
</div>
<div class="sheet-NPCBehaviour">
<label data-i18n-title="NPCBehaviour" title="NPCBehaviour">
<span data-i18n="behaviour">behaviour</span>
<textarea data-i18n-placeholder="behaviour" name="attr_behaviour" placeholder="behaviour" spellcheck="false" title="@{behaviour}" />
</label>
</div>
<div class="sheet-NPCCombat">
<label data-i18n-title="NPCCombat" title="NPCCombat">
<span data-i18n="combat">combat</span>
<textarea data-i18n-placeholder="combat" name="attr_combat" placeholder="combat" spellcheck="false" title="@{combat}" />
</label>
</div>
<div class="sheet-NPCNames">
<label data-i18n-title="NPCNames" title="NPCNames">
<span data-i18n="names">names</span>
<textarea data-i18n-placeholder="names" name="attr_names" placeholder="names" spellcheck="false" title="@{names}" />
</label>
</div>
</div>
</div>
<rolltemplate class="sheet-rolltemplate-test">
<div class="sheet-template-container">
<h1>{{name}}</h1>
<div class="sheet-results">
<h4>Result = {{roll1}}</h4>
<h4>Custom Result = {{computed::roll1}}</h4>
</div>
</div>
</rolltemplate>
<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_class remove:repeating_class", function(){
TAS.repeatingSimpleSum('class','level','totallevel');
});
on("change:repeating_equipment remove:repeating_equipment", function(){
TAS.repeatingSimpleSum('equipment','equipmentwt','total_wt');
});
on("change:sheet_type", function() {
getAttrs(["sheet_type"], function(values) {
var sheet_type = values["sheet_type"]||"";
setAttrs({
"sheetTab": sheet_type,
});
});
});
on("change:pcnpc_type", function() {
getAttrs(["pcnpc_type"], function(values) {
var pcnpc_type = values["pcnpc_type"]||"";
setAttrs({
"pcnpcTab": pcnpc_type,
});
});
});
on("change:statsinfo_type", function() {
getAttrs(["statsinfo_type"], function(values) {
var statsinfo_type = values["statsinfo_type"]||"";
setAttrs({
"statsinfoTab": statsinfo_type,
});
});
});
on("change:totallevel", function () {
getAttrs(["totallevel"], function (values) {
const level = parseInt(values['totallevel'], 10)||0;
var prof = level;
switch (level) {
case 1 : prof = 2;
break;
case 2 : prof = 2;
break;
case 3 : prof = 2;
break;
case 4 : prof = 2;
break;
case 5 : prof = 3;
break;
case 6 : prof = 3;
break;
case 7 : prof = 3;
break;
case 8 : prof = 3;
break;
case 9 : prof = 4;
break;
case 10 : prof = 4;
break;
case 11 : prof = 4;
break;
case 12 : prof = 4;
break;
case 13 : prof = 5;
break;
case 14 : prof = 5;
break;
case 15 : prof = 5;
break;
case 16 : prof = 5;
break;
case 17 : prof = 6;
break;
case 18 : prof = 6;
break;
case 19 : prof = 6;
break;
case 20 : prof = 6;
break;
default: prof = 2
};
setAttrs({
proficiencybonus: prof,
});
});
});
on("change:strength change:proficiencybonus change:strengthsaveprof sheet:openeded", function () {
getAttrs(["strength","strengthsaveprof","proficiencybonus"], function (values) {
const strength = parseInt(values['strength'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["strengthsaveprof"]||0;
const modifier = Math.floor(strength/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
strengthmod: modifier,
strengthsave: savemod,
});
});
});
on("change:dexterity change:proficiencybonus change:dexteritysaveprof sheet:openeded", function () {
getAttrs(["dexterity","dexteritysaveprof","proficiencybonus"], function (values) {
const dexterity = parseInt(values['dexterity'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["dexteritysaveprof"]||0;
const modifier = Math.floor(dexterity/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
dexteritymod: modifier,
dexteritysave: savemod,
});
});
});
on("change:constitution change:proficiencybonus change:constitutionsaveprof sheet:openeded", function () {
getAttrs(["constitution","constitutionsaveprof","proficiencybonus"], function (values) {
const constitution = parseInt(values['constitution'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["constitutionsaveprof"]||0;
const modifier = Math.floor(constitution/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
constitutionmod: modifier,
constitutionsave: savemod,
});
});
});
on("change:intelligence change:proficiencybonus change:intelligencesaveprof sheet:openeded", function () {
getAttrs(["intelligence","intelligencesaveprof","proficiencybonus"], function (values) {
const intelligence = parseInt(values['intelligence'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["intelligencesaveprof"]||0;
const modifier = Math.floor(intelligence/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
intelligencemod: modifier,
intelligencesave: savemod,
});
});
});
on("change:wisdom change:proficiencybonus change:wisdomsaveprof sheet:openeded", function () {
getAttrs(["wisdom","wisdomsaveprof","proficiencybonus"], function (values) {
const wisdom = parseInt(values['wisdom'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["wisdomsaveprof"]||0;
const modifier = Math.floor(wisdom/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
wisdommod: modifier,
wisdomsave: savemod,
});
});
});
on("change:charisma change:proficiencybonus change:charismasaveprof sheet:openeded", function () {
getAttrs(["charisma","charismasaveprof","proficiencybonus"], function (values) {
const charisma = parseInt(values['charisma'], 10)||0;
const prof = parseInt(values['proficiencybonus'])||0;
var saveprof = values["charismasaveprof"]||0;
const modifier = Math.floor(charisma/2) -5;
var savemod = modifier;
if (saveprof == 1) {
savemod = savemod + prof;
};
setAttrs({
charismamod: modifier,
charismasave: savemod,
});
});
});
on("change:strengthsave sheet:opened", function() {
getAttrs(["strengthsave"], function(values) {
var statsave = parseInt(values["strengthsave"])||0;
var setsaveroll = "&{template:default} {{name=Strength Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"strengthsaveroll": setsaveroll,
});
});
});
on("change:dexteritysave sheet:opened", function() {
getAttrs(["dexteritysave"], function(values) {
var statsave = parseInt(values["dexteritysave"])||0;
var setsaveroll = "&{template:default} {{name=Dexterity Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"dexteritysaveroll": setsaveroll,
});
});
});
on("change:constitutionsave sheet:opened", function() {
getAttrs(["constitutionsave"], function(values) {
var statsave = parseInt(values["constitutionsave"])||0;
var setsaveroll = "&{template:default} {{name=Constitution Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"constitutionsaveroll": setsaveroll,
});
});
});
on("change:intelligencesave sheet:opened", function() {
getAttrs(["intelligencesave"], function(values) {
var statsave = parseInt(values["intelligencesave"])||0;
var setsaveroll = "&{template:default} {{name=Intelligence Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"intelligencesaveroll": setsaveroll,
});
});
});
on("change:wisdomsave sheet:opened", function() {
getAttrs(["wisdomsave"], function(values) {
var statsave = parseInt(values["wisdomsave"])||0;
var setsaveroll = "&{template:default} {{name=Wisdom Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"wisdomsaveroll": setsaveroll,
});
});
});
on("change:charismasave sheet:opened", function() {
getAttrs(["charismasave"], function(values) {
var statsave = parseInt(values["charismasave"])||0;
var setsaveroll = "&{template:default} {{name=Charisma Save}}{{save=[[1d20+"+statsave+"]]}}";
setAttrs({
"charismasaveroll": setsaveroll,
});
});
});
on("change:initiative sheet:opened", function() {
getAttrs(["initiative"], function(values) {
var init = parseInt(values["initiative"])||0;
var setroll = "&{template:default} {{name=Initiative}}{{initiative=[[1d20+"+init+"&{tracker}]]}}";
setAttrs({
"initiativeroll": setroll,
});
});
});
on("change:acrobatics_check change:acrobatics_specialty change:acrobatics_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["acrobatics_check","acrobatics_exdice","acrobatics_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["acrobatics_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["acrobatics_exdice"]||"";
var specialty = values["acrobatics_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Acrobatics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";;
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Acrobatics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Acrobatics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"acrobatics_roll": setroll,
});
});
});
on("change:animalhandling_check change:animalhandling_specialty change:animalhandling_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["animalhandling_check","animalhandling_exdice","animalhandling_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["animalhandling_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["animalhandling_exdice"]||"";
var specialty = values["animalhandling_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Animal Handling ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Animal Handling ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Animal Handling ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"animalhandling_roll": setroll,
});
});
});
on("change:arcana_check change:arcana_specialty change:arcana_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["arcana_check","arcana_exdice","arcana_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["arcana_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["arcana_exdice"]||"";
var specialty = values["arcana_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Arcana ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Arcana ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Arcana ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"arcana_roll": setroll,
});
});
});
on("change:athletics_check change:athletics_specialty change:athletics_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["athletics_check","athletics_exdice","athletics_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["athletics_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["athletics_exdice"]||"";
var specialty = values["athletics_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Athletics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Athletics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Athletics ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"athletics_roll": setroll,
});
});
});
on("change:culture_check change:culture_specialty change:culture_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["culture_check","culture_exdice","culture_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["culture_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["culture_exdice"]||"";
var specialty = values["culture_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Culture ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Culture ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Culture ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"culture_roll": setroll,
});
});
});
on("change:deception_check change:deception_specialty change:deception_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["deception_check","deception_exdice","deception_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["deception_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["deception_exdice"]||"";
var specialty = values["deception_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Deception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Deception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Deception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"deception_roll": setroll,
});
});
});
on("change:engineering_check change:engineering_specialty change:engineering_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["engineering_check","engineering_exdice","engineering_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["engineering_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["engineering_exdice"]||"";
var specialty = values["engineering_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Engineering ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Engineering ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Engineering ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"engineering_roll": setroll,
});
});
});
on("change:history_check change:history_specialty change:history_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["history_check","history_exdice","history_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["history_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["history_exdice"]||"";
var specialty = values["history_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=History ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=History ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=History ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"history_roll": setroll,
});
});
});
on("change:insight_check change:insight_specialty change:insight_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["insight_check","insight_exdice","insight_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["insight_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["insight_exdice"]||"";
var specialty = values["insight_specialty"]||"";
var bonus = 0;
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Insight ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Insight ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
bonus = jotbonus;
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Insight ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
bonus = profbonus;
};
setAttrs({
"insight_roll": setroll,
"passive_insight": bonus+wis+8,
});
});
});
on("change:intimidation_check change:intimidation_specialty change:intimidation_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["intimidation_check","intimidation_exdice","intimidation_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["intimidation_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["intimidation_exdice"]||"";
var specialty = values["intimidation_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Intimidation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Intimidation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Intimidation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"intimidation_roll": setroll,
});
});
});
on("change:investigation_check change:investigation_specialty change:investigation_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["investigation_check","investigation_exdice","investigation_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["investigation_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["investigation_exdice"]||"";
var specialty = values["investigation_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Investigation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Investigation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Investigation ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"investigation_roll": setroll,
});
});
});
on("change:medicine_check change:medicine_specialty change:medicine_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["medicine_check","medicine_exdice","medicine_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["medicine_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["medicine_exdice"]||"";
var specialty = values["medicine_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Medicine ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Medicine ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Medicine ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"medicine_roll": setroll,
});
});
});
on("change:nature_check change:nature_specialty change:nature_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["nature_check","nature_exdice","nature_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["nature_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["nature_exdice"]||"";
var specialty = values["nature_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Nature ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Nature ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Nature ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"nature_roll": setroll,
});
});
});
on("change:perception_check change:perception_specialty change:perception_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["perception_check","perception_exdice","perception_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["perception_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["perception_exdice"]||"";
var specialty = values["perception_specialty"]||"";
var bonus = 0;
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Perception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Perception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
bonus = jotbonus;
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Perception ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
bonus = profbonus;
};
setAttrs({
"perception_roll": setroll,
"passive_perception": bonus+wis+8,
});
});
});
on("change:performance_check change:performance_specialty change:performance_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["performance_check","performance_exdice","performance_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["performance_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["performance_exdice"]||"";
var specialty = values["performance_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Performance ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Performance ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Performance ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"performance_roll": setroll,
});
});
});
on("change:persuasion_check change:persuasion_specialty change:persuasion_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["persuasion_check","persuasion_exdice","persuasion_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["persuasion_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["persuasion_exdice"]||"";
var specialty = values["persuasion_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Persuasion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Persuasion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Persuasion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"persuasion_roll": setroll,
});
});
});
on("change:religion_check change:religion_specialty change:religion_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["religion_check","religion_exdice","religion_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["religion_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["religion_exdice"]||"";
var specialty = values["religion_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Religion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Religion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Religion ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"religion_roll": setroll,
});
});
});
on("change:sleightofhand_check change:sleightofhand_specialty change:sleightofhand_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["sleightofhand_check","sleightofhand_exdice","sleightofhand_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["sleightofhand_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["sleightofhand_exdice"]||"";
var specialty = values["sleightofhand_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Sleight of Hand ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Sleight of Hand ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Sleight of Hand ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"sleightofhand_roll": setroll,
});
});
});
on("change:stealth_check change:stealth_specialty change:stealth_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["stealth_check","stealth_exdice","stealth_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["stealth_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["stealth_exdice"]||"";
var specialty = values["stealth_specialty"]||"";
var bonus = 0;
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Stealth ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Stealth ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
bonus = jotbonus;
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Stealth ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
bonus = profbonus;
};
setAttrs({
"stealth_roll": setroll,
"passive_stealth": dex+bonus+8,
});
});
});
on("change:survival_check change:survival_specialty change:survival_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["survival_check","survival_exdice","survival_specialty","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["survival_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["survival_exdice"]||"";
var specialty = values["survival_specialty"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Survival ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Survival ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name=Survival ("+specialty+") Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"survival_roll": setroll,
});
});
});
on("change:misc1_check change:misc1 change:misc1_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["misc1_check","misc1_exdice","misc1","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["misc1_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["misc1_exdice"]||"";
var specialty = values["misc1"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"misc1_roll": setroll,
});
});
});
on("change:misc2_check change:misc2 change:misc2_exdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod change:jackofalltrades_check sheet:opened", function() {
getAttrs(["misc2_check","misc2_exdice","misc2","proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod","jackofalltrades_check"], function(values) {
var prof = values["misc2_check"]||0;
var jot = values["jackofalltrades_check"]||0;
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var exdice = values["misc2_exdice"]||"";
var specialty = values["misc2"]||"";
var jotbonus = Math.floor(profbonus/2);
var specdice = "1d4";
if (exdice == "") {
exdice = "0d6";
specdice = "1d4";
};
if (exdice == "1d4") {
specdice = "1d6";
};
if (exdice == "1d6") {
specdice = "1d8";
};
if (exdice == "1d8") {
specdice = "1d8";
};
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (jot == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+"+jotbonus+"+?{IncludeSpecialty}]]}}";
};
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+specialty+" Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"misc2_roll": setroll,
});
});
});
on("change:proficiencybonus change:strengthmod change:dexteritymod sheet:opened", function() {
getAttrs(["proficiencybonus","strengthmod","dexteritymod"], function(values) {
var str = parseInt(values["strengthmod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var stat = str;
if (str < dex) {
stat = dex;
};
setAttrs({
"maneuver_savedc": 8 + stat + profbonus,
"exertion_points": 2 * profbonus,
});
});
});
on("change:repeating_spellclass:spellclassability change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod sheet:opened", function() {
getAttrs(["proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod"],
function(values) {
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var statbonus = 0;
TAS.repeating("spellclass")
.attrs("spellclassdc","spellclassattack")
.fields("spellclassdc","spellclassattack","spellclassability")
.each(function(r){
var stat = r.spellclassability;
if (stat == "Strength") {
statbonus = str;
};
if (stat == "Dexterity") {
statbonus = dex;
};
if (stat == "Constitution") {
statbonus = con;
};
if (stat == "Intelligence") {
statbonus = intel;
};
if (stat == "Wisdom") {
statbonus = wis;
};
if (stat == "Charisma") {
statbonus = cha;
};
r.spellclassattack=statbonus+profbonus;
r.spellclassdc=statbonus+profbonus+8;
})
.execute(); //< begin executing the above operations
});
});
on("change:repeating_tools:toolname change:repeating_tools:toolprof change:repeating_tools:toolexdice change:proficiencybonus change:strengthmod change:intelligencemod change:wisdommod change:dexteritymod change:constitutionmod change:charismamod sheet:opened", function() {
getAttrs([
"repeating_tools_toolname","repeating_tools_toolprof","repeating_tools_toolexdice",
"proficiencybonus","strengthmod","intelligencemod","wisdommod","dexteritymod","constitutionmod","charismamod"
], function(values) {
var toolname = values["repeating_tools_toolname"]||"";
var prof = values["repeating_tools_toolprof"]||"";
var exdice = values["repeating_tools_exdice"]||"";
var str = parseInt(values["strengthmod"])||0;
var intel = parseInt(values["intelligencemod"])||0;
var dex = parseInt(values["dexteritymod"])||0;
var wis = parseInt(values["wisdommod"])||0;
var con = parseInt(values["constitutionmod"])||0;
var cha = parseInt(values["charismamod"])||0;
var profbonus = parseInt(values["proficiencybonus"])||0;
var setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+toolname+" Roll}}{{roll=[[1d20+?{Stat}+?{IncludeSpecialty}]]}}";
if (prof == 1) {
setroll = "&{template:default} !?{Stat|Strength, "+str+"|Dexterity, "+dex+"|Constitution, "+con+"|Intelligence, "+intel+"|Wisdom, "+wis+"|Charisma, "+cha+"} ?{IncludeSpecialty|Yes, "+specdice+"|No, "+exdice+" } {{name="+toolname+" Roll}}{{roll=[[1d20+?{Stat}+"+profbonus+"+?{IncludeSpecialty}]]}}";
};
setAttrs({
"repeating_tools_toolroll": setroll,
});
});
});
on("change:repeating_attacks:attackname change:repeating_attacks:attackbonus change:repeating_attacks:attackdamage change:repeating_attacks:attackdamagetype change:repeating_attacks:attacknotes sheet:opened", function() {
getAttrs([
"repeating_attacks_attackname","repeating_attacks_attackbonus","repeating_attacks_attackdamage","repeating_attacks_attackdamagetype","repeating_attacks_attacknotes"
], function(values) {
var attackname = values["repeating_attacks_attackname"]||"";
var bonus = values["repeating_attacks_attackbonus"]||"";
var dam = values["repeating_attacks_attackdamage"]||"";
var damtype = values["repeating_attacks_attackdamagetype"]||"";
var notes = values["repeating_attacks_attacknotes"]||"";
var setroll = "&{template:default} {{name="+attackname+" Roll}}{{roll=[[1d20+"+bonus+"]]}}{{"+damtype+" damage=[["+dam+"]]}}{{Notes="+notes+"}}";
setAttrs({
"repeating_attacks_attackroll": setroll,
});
});
});
on("change:repeating_skills:skillname change:repeating_skills:skillbonus change:repeating_skills:skillexdice sheet:opened", function() {
getAttrs([
"repeating_skills_skillname","repeating_skills_skillbonus","repeating_skills_skillexdice"
], function(values) {
var skillname = values["repeating_skills_skillname"]||"";
var bonus = values["repeating_skills_skillbonus"]||"";
var exdice = values["repeating_skills_skillexdice"]||"";
if (exdice == "") {
exdice = "0";
};
var setroll = "&{template:default} {{name="+skillname+" Roll}}{{roll=[[1d20+"+bonus+"+"+exdice+"]]}}";
setAttrs({
"repeating_skills_skillroll": setroll,
});
});
});
on('change:destiny', event => {
const destinydetails = {
"Chaos": {destiny_source: 'Chaos', destiny_inspiration: 'Ingenious Doubletalk', destiny_fulfillment: 'Agent of Chaos'},
"Coming of Age": {destiny_source: 'Finding Yourself', destiny_inspiration: 'Yes to Adventure', destiny_fulfillment: 'Ready to Learn'},
"Devotion": {destiny_source: 'Its Own Reward', destiny_inspiration: 'Selfless Aid', destiny_fulfillment: 'Miraculous Revival'},
"Dominion": {destiny_source: 'Leadership', destiny_inspiration: 'Studied Deliberation', destiny_fulfillment: 'Studied Deliberation'},
"Excellence": {destiny_source: 'Failure', destiny_inspiration: 'Practiced Edge', destiny_fulfillment: 'A Technique Perfected'},
"Knowledge": {destiny_source: 'Learning', destiny_inspiration: 'Critical Evaluation', destiny_fulfillment: 'Converging Theories'},
"Metamorphosis": {destiny_source: 'Unburdening', destiny_inspiration: 'Unearthly Diplomacy', destiny_fulfillment: 'Forever Changed'},
"Revenge": {destiny_source: 'Served Cold', destiny_inspiration: 'Cloak and Dagger', destiny_fulfillment: 'Retaliatory Reputation'},
"Underdog": {destiny_source: 'Defiance', destiny_inspiration: 'A Nose for Trouble', destiny_fulfillment: 'Expendable and Invulnerable'},
"Wealth": {destiny_source: 'Profits', destiny_inspiration: 'Everyone Has a Price', destiny_fulfillment: 'Wise Investments'},
}
getAttrs(['destiny'], values => {
let name = values.destiny;
let output = destinydetails[name] || '';
if(output) setAttrs(output);
});
});
</script>