Files
roll20-character-sheets/WFRP4CharSheet/WFRP4Charsheet.html
T

4965 lines
274 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.
<!-- WARHAMMER FANTASY ROLEPLAY 4th EDITION CHARACTER SHEET -->
<!-- Authors; Arioch1973, Alondaar, Havoc, Oxycutor, Realitor, Medieve -->
<!-- Version 1.7 -->
<!-- Character Sheet Start -->
<!--- Header ---->
<div class="sheet-col" style="text-align:center; width:100%">
<img src="https://i.imgur.com/GWtPsPd.png" style="max-height: 75px;" />
</div>
<br><br>
<!-- for future, possible GM tabs
<input type='radio' name="attr_main_show" class="sheet-tab sheet-tabPC" value="1" checked/>
<label class="sheet-tab" >PC</label>
<input type='radio' name="attr_main_show" class="sheet-tab sheet-tabGM" value="2" />
<label class="sheet-tab" >GM</label>
<br>
<br>
<div class="sheet-tab-content sheet-tabPC"> -->
<div>
<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabMain" value="1" checked/>
<label data-i18n="main" class="sheet-tab" >Main</label>
<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabSkillsTalents" value="2" />
<label data-i18n="skills-talent" class="sheet-tab" >Skills & Talents</label>
<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabGearMagic" value="3" />
<label data-i18n="gear-magic" class="sheet-tab" >Gear & Magic</label>
<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabInformation" value="4" />
<label data-i18n="information" class="sheet-tab" >Information</label>
<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabExperience" value="5" />
<label data-i18n="experience" class="sheet-tab" >Experience</label>
<div class="sheet-tab-content sheet-tabMain">
<div class="sheet-wrapper">
<div class="sheet-col" style="text-align:center; width:100%">
</div>
<table>
<tr>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_name" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Species" >Species</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Species" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Class">Class</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Class" />
</td>
</tr>
<tr>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career">Career</label>
</td>
<td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_Career" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career-tier" >Career Tier</label>
</td>
<td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_CareerTier" />
</td>
</tr>
<tr>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career-Path" >Career Path</label>
</td>
<td style="text-align:center; width:15%" COLSPAN=5><input type="text" name="attr_character_CareerPath" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Status" >Status</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Status" />
</td>
</tr>
<tr>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Age" >Age</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Age" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Height" >Height</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Height" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Hair" >Hair</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Hair" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Eyes">Eyes</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Eyes" />
</td>
</tr>
<tr>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Nationality" >Nationality</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Nationality" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Birthplace" >Birthplace</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Birthplace" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Religion" >Religion</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_Religion" />
</td>
<td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Star-sign" >Star Sign</label>
</td>
<td style="text-align:center; width:15%"><input type="text" name="attr_character_StarSign" />
</td>
</tr>
</table>
<!-- Characteristics -->
<hr>
<div class="sheet-col sheet-tablealt" style="width:50%">
<div class="sheet-tablewrapper">
<table>
<tr>
<th COLSPAN=11><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="CHARACTERISTICS">CHARACTERISTICS</label></div>
</th>
</tr>
<tr class="sheet-bluelabel">
<td style="text-align:center; width:16.5%">
</td>
<td style="text-align:left; width:8.3%"><button type="roll" name="roll_WS" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Weapon Skill}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_WS} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="WS">WS</label></button>
</td>
<td style="text-align:left; width:8.3%"><button type="roll" name="roll_BS" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ballistic Skill}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_BS} ]]}}"> <label class="labelbutton" style="text-align:center" data-i18n="BS">BS</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_S" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Strength}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_S} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="S" >S</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_T" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Toughness}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_T} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="T" >T</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_I" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Initiative}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_I} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="I" >I</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_Ag" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Agility}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_Ag} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="Ag" >Ag</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_Dex" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Dexterity}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_Dex} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="Dex" >Dex</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_Int" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Intelligence}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_Int} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="Int" >Int</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_WP" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Willpower}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_WP} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="WP">WP</label></button>
</td>
<td style="text-align:center; width:8.3%"><button type="roll" name="roll_Fel" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Fellowship}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_FEL} ]]}}"><label class="labelbutton" style="text-align:center" data-i18n="Fel">Fel</label></button>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Career" >Career</label>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_WS_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_BS_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_S_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_T_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_I_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Ag_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Dex_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Int_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_WP_CareerAdvance" /><span style="text-align:center"></span>
</td>
<td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Fel_CareerAdvance" /><span style="text-align:center"></span>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Initial" >Initial</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_BS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_S" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_T" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_I" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Ag" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Dex" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Int" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WP" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Fel" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Talents" >Talents</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_WS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_BS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_S" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_T" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_I" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Ag" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Dex" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Int" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_WP" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Fel" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Advances" >Advances</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_WS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_BS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_S" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_T" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_I" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Ag" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Dex" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Int" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_WP" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Fel" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Modifier" >Modifier</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_BS" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_S" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_T" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_I" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Ag" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Dex" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Int" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WP" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Fel" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Current" >Current</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_WS" style="text-align:center" disabled value="floor(@{Initial_WS} + @{Talent_WS} + @{Advances_WS} + @{Modifier_WS})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_BS" style="text-align:center" disabled value="floor(@{Initial_BS} + @{Talent_BS} + @{Advances_BS} + @{Modifier_BS})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_S" style="text-align:center" disabled value="floor(@{Initial_S} + @{Talent_S} + @{Advances_S} + @{Modifier_S})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_T" style="text-align:center" disabled value="floor(@{Initial_T} + @{Talent_T} + @{Advances_T} + @{Modifier_T})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_I" style="text-align:center" disabled value="floor(@{Initial_I} + @{Talent_I} + @{Advances_I} + @{Modifier_I})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_Ag" style="text-align:center" disabled value="floor(@{Initial_Ag} + @{Talent_Ag} + @{Advances_Ag} + @{Modifier_Ag})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_Dex" style="text-align:center" disabled value="floor(@{Initial_Dex} + @{Talent_Dex} + @{Advances_Dex} + @{Modifier_Dex})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_Int" style="text-align:center" disabled value="floor(@{Initial_Int} + @{Talent_Int} + @{Advances_Int} + @{Modifier_Int})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_WP" style="text-align:center" disabled value="floor(@{Initial_WP} + @{Talent_WP} + @{Advances_WP} + @{Modifier_WP})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_Fel" style="text-align:center" disabled value="floor(@{Initial_Fel} + @{Talent_Fel} + @{Advances_Fel} + @{Modifier_Fel})"/>
</td>
</tr>
<!-- Characteristic Bonuses -->
<tr>
<th COLSPAN=11><label style="text-align:center" data-i18n="CHARACTERISTICS BONUSES">CHARACTERISTICS BONUSES</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Initial" >Initial</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WSB" style="text-align:center" disabled value="floor((@{Initial_WS} + @{Talent_WS} + @{Advances_WS} + @{Modifier_WS})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_BSB" style="text-align:center" disabled value="floor((@{Initial_BS} + @{Talent_BS} + @{Advances_BS} + @{Modifier_BS})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_SB" style="text-align:center" disabled value="floor((@{Initial_S} + @{Talent_S} + @{Advances_S} + @{Modifier_S})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_TB" style="text-align:center" disabled value="floor((@{Initial_T} + @{Talent_T} + @{Advances_T} + @{Modifier_T})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_IB" style="text-align:center" disabled value="floor((@{Initial_I} + @{Talent_I} + @{Advances_I} + @{Modifier_I})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_AgB" style="text-align:center" disabled value="floor((@{Initial_Ag} + @{Talent_Ag} + @{Advances_Ag} + @{Modifier_Ag})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_DexB" style="text-align:center" disabled value="floor((@{Initial_Dex} + @{Talent_Dex} + @{Advances_Dex} + @{Modifier_Dex})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_IntB" style="text-align:center" disabled value="floor((@{Initial_Int} + @{Talent_Int} + @{Advances_Int} + @{Modifier_Int})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WPB" style="text-align:center" disabled value="floor((@{Initial_WP} + @{Talent_WP} + @{Advances_WP} + @{Modifier_WP})/10)"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_FelB" style="text-align:center" disabled value="floor((@{Initial_Fel} + @{Talent_Fel} + @{Advances_Fel} + @{Modifier_Fel})/10)"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Modifier" >Modifier</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WSB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_BSB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_SB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_TB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_IB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_AgB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_DexB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_IntB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WPB" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_FelB" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Current" >Current</label>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_WSB" style="text-align:center" disabled value="floor(@{Initial_WSB} + @{Modifier_WSB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_BSB" style="text-align:center" disabled value="floor(@{Initial_BSB} + @{Modifier_BSB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_SB" style="text-align:center" disabled value="floor(@{Initial_SB} + @{Modifier_SB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_TB" style="text-align:center" disabled value="floor(@{Initial_TB} + @{Modifier_TB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_IB" style="text-align:center" disabled value="floor(@{Initial_IB} + @{Modifier_IB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_AgB" style="text-align:center" disabled value="floor(@{Initial_AgB} + @{Modifier_AgB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_DexB" style="text-align:center" disabled value="floor(@{Initial_DexB} + @{Modifier_DexB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_IntB" style="text-align:center" disabled value="floor(@{Initial_IntB} + @{Modifier_IntB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_WPB" style="text-align:center" disabled value="floor(@{Initial_WPB} + @{Modifier_WPB})"/>
</td>
<td style="text-align:center; width:8.3%"><input type="number" name="attr_Current_FelB" style="text-align:center" disabled value="floor(@{Initial_FelB} + @{Modifier_FelB})"/>
</td>
</tr>
</table>
</div>
</div>
<!-- Fate, Fortune, Resilience, Resolve, Experience -->
<div class="sheet-col" style="width:2%">
</div>
<div class="sheet-col" style="width:46%">
<div>
<table style="width:100%">
<tr>
<th COLSPAN=2><label style="text-align:center" data-i18n="FATE" >FATE</label>
</th>
<th >
</th>
<th COLSPAN=2><label style="text-align:center" data-i18n="RESILIENCE">RESILIENCE</label>
</th>
<th >
</th>
<th COLSPAN=2><label style="text-align:center" data-i18n="EXPERIENCE" >EXPERIENCE</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Fate" >Fate</label>
</td>
<td style="text-align:center; width:14%"><input type="number" name="attr_character_Fate" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Resilience" >Resilience</label>
</td>
<td style="text-align:center; width:14%"><input type="number" name="attr_character_Resilience" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:20%"><input type="number" name="attr_character_TotalExperience" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Fortune">Fortune</label>
</td>
<td style="text-align:center; width:14%"><input type="number" name="attr_character_Fortune" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Resolve">Resolve</label>
</td>
<td style="text-align:center; width:14%"><input type="number" name="attr_character_Resolve" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Spent">Spent</label>
</td>
<td style="text-align:center; width:20%"><input type="number" name="attr_character_SpentExperience" style="text-align:center" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Motivation">Motivation</label>
</td>
<td style="text-align:center; width:14%" COLSPAN=4><input type="text" name="attr_character_Motivation" style="text-align:center" value=""/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Left">Left</label>
</td>
<td style="text-align:center; width:20%"><input type="number" name="attr_character_LeftExperience" style="text-align:center" disabled value="floor(@{character_TotalExperience}-@{character_SpentExperience})"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:2%">
</td>
</tr>
</table>
<!-- Ambitiions -->
<table style="width:100%; text-align:left">
<hr>
<tr>
<th COLSPAN=2><label style="text-align:center" data-i18n="AMBITIONS" >AMBITIONS</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:35%"><label style="text-align:left" data-i18n="Personal-Short-Term" >Personal Short Term</label>
</td>
<td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_ShortTermAmbition" style="text-align:center" value=""/>
</td>
</tr>
<tr>
<td style="text-align:center; width:35%"><label style="text-align:left" data-i18n="Personal-Long-Term">Personal Long Term</label>
</td>
<td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_LongTermAmbition" style="text-align:center" value=""/>
</td>
</tr>
<tr>
<td style="text-align:center; width:35%"><label style="text-align:leftr" data-i18n="Party-Short-Term">Party Short Term</label>
</td>
<td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_PartyShortAmbition" style="text-align:center" value=""/>
</td>
</tr>
<tr>
<td style="text-align:center; width:30%"><label style="text-align:leftr" data-i18n="Party-Long-Term">Party Long Term</label>
</td>
<td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_PartyLongAmbition" style="text-align:center" value=""/>
</td>
</tr>
</table>
</div>
</div>
<!-- Movement and Encumbrance -->
<br>
<div class="sheet-col sheet-table" style="width:100%">
<div class="sheet-col sheet-table" style="width:25%">
<!-- Movement -->
<div>
<table style="width:100%">
<tr>
<th COLSPAN=10><label style="text-align:center" data-i18n="MOVEMENT">MOVEMENT</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="MOVEMENT">Movement</label>
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_character_Movement" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Walk" >Walk</label>
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_character_MovementWalk" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Run" >Run</label>
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_character_MovementRun" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
</tr>
</table><br>
<table style="width:100%">
<tr>
<th COLSPAN=10><label style="text-align:center" data-i18n="INITIATIVE" >INITIATIVE</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:41%">
<select name="attr_combat_iniative_template" style="width:100%" class="sheet-input-selectbox" >
<option value="&{template:wfrp4} {{name=@{character_name}}} {{title=Initiative}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Current_I} ]]}}" data-i18n="I Test /No Tracker/">I Test (No Tracker)</option>
<option value="&{template:wfrp4} {{name=@{character_name}}} Initiative} {{initiativeTest=[[ ?{Modifier?|0} + 1d10 + @{character_combatiniative_modifier} + @{Current_IB} &{tracker} ]]}} {{initiativeTestInitiativeBonus=[[ @{Current_IB} ]]}} {{initiativeTestTalents=[[ @{character_combatiniative_modifier} ]]}}" data-i18n="I Bonus">I Bonus</option>
<option value="&{template:wfrp4} {{name=@{character_name}}} Initiative} {{initiativeTest=[[ ?{Modifier?|0} + 1d10 + @{character_combatiniative_modifier} + @{Current_IB} + @{Current_AgB} &{tracker} ]]}} {{initiativeTestInitiativeBonus=[[ @{Current_IB} ]]}} {{initiativeTestAgilityBonus=[[ @{Current_AgB} ]]}} {{initiativeTestTalents=[[ @{character_combatiniative_modifier} ]]}}" selected data-i18n="I+Ag Bonus">I+Ag Bonus</option>
</select>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_character_combatiniative_modifier" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:15%"><button type="roll" style="width:90%" name="roll_combatiniativetemplate" value="@{combat_iniative_template}"><label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label></button>
</td>
<td style="text-align:center; width:2%">
</td>
</tr>
</table>
</div>
</div>
<div class="sheet-col sheet-table" style="width:12%">
</div>
<!-- Encumbrance -->
<div class="sheet-col sheet-table" style="width:48%">
<div>
<table style="width:100%">
<tr>
<th COLSPAN=12><label style="text-align:center" data-i18n="ENCUMBERANCE" >ENCUMBRANCE</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Weapons" >Weapons</label>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Armour" >Armour</label>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Trappings" >Trappings</label>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Mod" >Mod</label>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:15%"><label style="text-align:center" data-i18n="Max-Enc" >Max Enc.</label>
</td>
</tr>
<tr>
<td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceWeapons" style="text-align:center" value="0" readonly/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceArmour" style="text-align:center" value="0" readonly/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceTrappings" style="text-align:center" value="0" readonly/>
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceTotal" style="text-align:center" value="floor(@{character_EncumbranceWeapons}+@{character_EncumbranceArmour}+@{character_EncumbranceTrappings})" disabled />
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceMod" style="text-align:center" value="0" />
</td>
<td style="text-align:center; width:2%">
</td>
<td style="text-align:center; width:15%"><input type="number" name="attr_character_EncumbranceMax" style="text-align:center" value="floor(@{Current_SB}+@{Current_TB}+@{character_EncumbranceMod})"/ disabled>
</td>
</tr>
</table>
</div>
</div>
</div>
<!-- Wealth -->
<br><br>
<div class="sheet-col sheet-table" style="width:100%">
<div class="sheet-col" style="width:38%">
<table style="width:100%">
<tr>
<th COLSPAN=3><label style="text-align:center" data-i18n="WEALTH" >WEALTH</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:33%"><label style="text-align:center" data-i18n="Gold Crowns" >Gold Crowns</label><img src="https://i.imgur.com/Iaa05PB.png" style="width:25px; height:25px">
</td>
<td style="text-align:center; width:33%"><label style="text-align:center" data-i18n="Silver Shillings" >Silver Shillings</label><img src="https://i.imgur.com/YGifBnd.png" style="width:22px; height:22px">
</td>
<td style="text-align:center; width:33%"><label style="text-align:center" data-i18n="Brass Pennies" >Brass Pennies</label><img src="https://i.imgur.com/3VrFgnG.png" style="width:19px; height:19px">
</td>
</tr>
<tr>
<td style="text-align:center; width:33%"><input type="number" name="attr_character_Gold" style="text-align:center; font-size:0.9em;" value="0"/>
</td>
<td style="text-align:center; width:33%"><input type="number" name="attr_character_Silver" style="text-align:center; font-size:0.9em;" value="0"/>
</td>
<td style="text-align:center; width:33%"><input type="number" name="attr_character_Brass" style="text-align:center; font-size:0.9em;" value="0"/>
</td>
</tr>
<tr>
<td style="text-align:center; width:33%"><label style="text-align:center;" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:33%"><input type="number" name="attr_character_TotalWealth" style="text-align:Right" value="floor(@{character_Brass} + floor(12*@{character_Silver}) + floor(240*@{character_Gold}))" disabled />
</td>
<td style="text-align:left; width:33%"><label style="text-align:left; font-size:0.8em;" >d (1GC=20/-=240d)</label>
</td>
</tr>
</table>
<!--
<tr>
<th><label style="text-align:center; font-size:0.8em;">1GC = 20/- = 240d</label></th>
</tr>
-->
</div>
<div class="sheet-col " style="width:2%">
</div>
<!-- Wounds -->
<div class="sheet-col" style="width:58%">
<table style="width:100%">
<tr>
<th COLSPAN=8><label style="text-align:center" data-i18n="WOUNDS" >WOUNDS</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:10%">
<select name="attr_Wounds_SB_Opt" style="width:100%" class="sheet-input-selectbox">
<option data-i18n="SBx3" value="@{Current_SB}*3" >SBx3</option>
<option data-i18n="SBx2" value="@{Current_SB}*2" >SBx2</option>
<option data-i18n="SB" value="@{Current_SB}" selected >SB</option>
<option value="0"><b>-</b></option>
</select>
</td>
<td style="text-align:center; width:10%">
<select name="attr_Wounds_TB_Opt" style="width:100%" class="sheet-input-selectbox" >
<option data-i18n="TBx3" value="@{Current_TB}*3" >TBx3</option>
<option data-i18n="TBx2" value="@{Current_TB}*2" selected >TBx2</option>
<option data-i18n="TB" value="@{Current_TB}" >TB</option>
<option value="0"><b>-</b></option>
</select>
</td>
<td style="text-align:center; width:10%">
<select name="attr_Wounds_WPB_Opt" style="width:100%" class="sheet-input-selectbox" >
<option data-i18n="WPBx3" value="@{Current_WPB}*3" >WPBx3</option>
<option data-i18n="WPBx2" value="@{Current_WPB}*2" >WPBx2</option>
<option data-i18n="WPB" value="@{Current_WPB}" selected >WPB</option>
<option value="0"><b>-</b></option>
</select>
</td>
<!-- Hardy Option -->
<td style="text-align:center; width:15%">
<select name="attr_Wounds_Hardy_Opt" style="width:100%" class="sheet-input-selectbox" >
<option value="0" selected data-i18n="Hardy">Hardy</option>
<option value="@{Current_TB}" data-i18n="Hardy-1"><b>Hardy:1</b></option>
<option value="@{Current_TB}*2" data-i18n="Hardy-2"><b>Hardy:2</b></option>
<option value="@{Current_TB}*3" data-i18n="Hardy-3"><b>Hardy:3</b></option>
<option value="@{Current_TB}*4" data-i18n="Hardy-4"><b>Hardy:4</b></option>
<option value="@{Current_TB}*5" data-i18n="Hardy-5"><b>Hardy:5</b></option>
<option value="@{Current_TB}*6" data-i18n="Hardy-6"><b>Hardy:6</b></option>
<option value="@{Current_TB}*7" data-i18n="Hardy-7"><b>Hardy:7</b></option>
<option value="@{Current_TB}*8" data-i18n="Hardy-8"><b>Hardy:8</b></option>
<option value="@{Current_TB}*9" data-i18n="Hardy-9"><b>Hardy:9</b></option>
<option value="@{Current_TB}*10" data-i18n="Hardy-10"><b>Hardy:10</b></option>
</select>
</td>
<!-- Wound Size Option -->
<td style="text-align:center; width:20%">
<select name="attr_Wounds_Size_Opt" style="width:100%" class="sheet-input-selectbox" >
<option type="hidden" value="floor((1)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Tiny"><b>Tiny</b></option>
<option type="hidden" value="floor((@{Wounds_TB})+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Little"><b>Little</b></option>
<option type="hidden" value="floor(((@{Wounds_TB}+@{Wounds_WPB})*1)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Small"><b>Small</b></option>
<option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*1)+@{Wounds_Mod}+@{Wounds_Hardy})" selected data-i18n="Average"><b>Average</b></option>
<option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*2)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Large" ><b>Large</b></option>
<option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*4)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Enormous" ><b>Enormous</b></option>
<option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*8)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Monstrous" ><b>Monstrous</b></option>
</select>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod" >Mod</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Current" >Current</label>
</td>
<td style="text-align:center; width:1%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Maximum" >Maximum</label>
</td>
</tr>
<tr>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_SB" style="text-align:center" value="floor(@{Wounds_SB_Opt})" disabled />
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_TB" style="text-align:center" value="floor(@{Wounds_TB_Opt})" disabled />
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_WPB" style="text-align:center" value="floor(@{Wounds_WPB_Opt})" disabled />
</td>
<td style="text-align:center; width:15%"><input type="number" name="attr_Wounds_Hardy" style="text-align:center" value="floor(@{Wounds_Hardy_Opt})" disabled />
</td>
<td style="text-align:center; width:20%"><input type="number" name="attr_Wounds_Size" style="text-align:center" value="floor(@{Wounds_Size_Opt})" disabled />
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_Mod" style="text-align:center" value="0" />
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds" id="CurrentWounds" style="text-align:center" value="0"/>
</td>
<td style="text-align:center; width:1%">
</td>
<td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_max" style="text-align:center" value="@{Wounds_hidden}" disabled />
</td>
</tr>
</table>
<input type="hidden" name="attr_Wounds_hidden" style="text-align:center" value="0" />
</div>
</div>
</div>
</div>
<div class="sheet-tab-content sheet-tabSkillsTalents">
<div class="sheet-wrapper">
<!-- Basic Skills -->
<br>
<div class="sheet-col sheet-tablealt" style="width:48%">
<div class="sheet-tablewrapper" style="width: 95%">
<table style="width:100%">
<tr>
<th COLSPAN=9><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="BASIC SKILLS" >BASIC SKILLS</label></div>
</th>
</tr>
<tr>
<td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center; width:8%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:10%">
</td>
</tr>
<!-- Art Skill -->
<tr>
<td style="width:42%;text-align:left"><i><span data-i18n="Art" >Art</span></i>
</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ArtCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Art_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p" >(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p" >(BS)</option>
<option value="@{Current_S}" data-i18n="S-p" >(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p" >(Ag)</option>
<option value="@{Current_Dex}" selected data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Art_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Art_mod" value="0" />
</td>
<td style="width:10%">
<input class="cursorbutton" type="number" name="attr_Art" style="text-align:center;" value="floor(@{Art_char}+@{Art_adv}+@{Art_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Art" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Art}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Art} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left"><span data-i18n="Athletics">Athletics</span>
</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_AthleticsCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Athletics_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Athletics_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Athletics_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Athletics" style="text-align:center;" value="floor(@{Athletics_char}+@{Athletics_adv}+@{Athletics_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Athletics" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Athletics}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Athletics} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Bribery">Bribery</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_BriberyCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Bribery_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Bribery_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Bribery_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Bribery" style="text-align:center;" value="floor(@{Bribery_char}+@{Bribery_adv}+@{Bribery_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Bribery" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Bribery}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Bribery} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Charm" >Charm</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CharmCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Charm_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Charm_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Charm_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Charm" style="text-align:center;" value="floor(@{Charm_char}+@{Charm_adv}+@{Charm_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Charm" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Charm}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Charm} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Charm-Animal">Charm Animal</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CharmAnimalCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_CharmAnimal_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" selected data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_CharmAnimal_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_CharmAnimal_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_CharmAnimal" style="text-align:center;" value="floor(@{CharmAnimal_char}+@{CharmAnimal_adv}+@{CharmAnimal_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_CharmAnimal" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Charm Animal}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{CharmAnimal} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Climb" >Climb</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ClimbCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Climb_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Climb_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Climb_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Climb" style="text-align:center;" value="floor(@{Climb_char}+@{Climb_adv}+@{Climb_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Climb" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Climb}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Climb} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Cool">Cool</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CoolCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Cool_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" selected data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Cool_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Cool_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Cool" style="text-align:center;" value="floor(@{Cool_char}+@{Cool_adv}+@{Cool_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Cool" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Cool}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Cool} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Consume Alcohol" >Consume Alcohol</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ConsumeAlcoholCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_ConsumeAlcohol_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" selected data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_ConsumeAlcohol_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_ConsumeAlcohol_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_ConsumeAlcohol" style="text-align:center;" value="floor(@{ConsumeAlcohol_char}+@{ConsumeAlcohol_adv}+@{ConsumeAlcohol_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_ConsumeAlcohol" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Consume Alcohol}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{ConsumeAlcohol} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Dodge" >Dodge</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_DodgeCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Dodge_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Dodge_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Dodge_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Dodge" style="text-align:center;" value="floor(@{Dodge_char}+@{Dodge_adv}+@{Dodge_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Dodge" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Dodge}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Dodge} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Drive" >Drive</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_DriveCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Drive_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Drive_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Drive_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Drive" style="text-align:center;" value="floor(@{Drive_char}+@{Drive_adv}+@{Drive_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Drive" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Drive}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Drive} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Endurance" >Endurance</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_EnduranceCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Endurance_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" selected data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Endurance_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Endurance_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Endurance" style="text-align:center;" value="floor(@{Endurance_char}+@{Endurance_adv}+@{Endurance_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Endurance" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Endurance}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Endurance} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left"><i><span data-i18n="Entertain" >Entertain</span></i></td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_EntertainCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Entertain_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Entertain_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Entertain_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Entertain" style="text-align:center;" value="floor(@{Entertain_char}+@{Entertain_adv}+@{Entertain_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Entertain" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Entertain}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Entertain} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Gamble">Gamble</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_GambleCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Gamble_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Gamble_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Gamble_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Gamble" style="text-align:center;" value="floor(@{Gamble_char}+@{Gamble_adv}+@{Gamble_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Gamble" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Gamble}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Gamble} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Gossip" >Gossip</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_GossipCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Gossip_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Gossip_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Gossip_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Gossip" style="text-align:center;" value="floor(@{Gossip_char}+@{Gossip_adv}+@{Gossip_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Gossip" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Gossip}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Gossip} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Haggle" >Haggle</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_HaggleCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Haggle_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Haggle_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Haggle_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Haggle" style="text-align:center;" value="floor(@{Haggle_char}+@{Haggle_adv}+@{Haggle_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Haggle" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Haggle}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Haggle} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Intimidate" >Intimidate</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_IntimidateCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Intimidate_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Intimidate_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Intimidate_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Intimidate" style="text-align:center;" value="floor(@{Intimidate_char}+@{Intimidate_adv}+@{Intimidate_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Intimidate" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Intimidate}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Intimidate} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Intuition">Intuition</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_IntutitionCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Intuition_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Intuition_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Intuition_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Intuition" style="text-align:center;" value="floor(@{Intuition_char}+@{Intuition_adv}+@{Intuition_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Intuition" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Intuition}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Intuition} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Leadership">Leadership</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_LeadershipCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Leadership_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Leadership_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Leadership_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Leadership" style="text-align:center;" value="floor(@{Leadership_char}+@{Leadership_adv}+@{Leadership_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Leadership" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Leadership}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Leadership} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Navigation" >Navigation</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_NavigationCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Navigation_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Navigation_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Navigation_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Navigation" style="text-align:center;" value="floor(@{Navigation_char}+@{Navigation_adv}+@{Navigation_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Navigation" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Navigation}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Navigation} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Outdoor-Survival" >Outdoor Survival</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_OutdoorSurvivalCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_OutdoorSurvival_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_OutdoorSurvival_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_OutdoorSurvival_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_OutdoorSurvival" style="text-align:center;" value="floor(@{OutdoorSurvival_char}+@{OutdoorSurvival_adv}+@{OutdoorSurvival_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_OutdoorSurvival" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Outdoor Survival}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{OutdoorSurvival} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Perception" >Perception</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_PerceptionCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Perception_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Perception_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Perception_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Perception" style="text-align:center;" value="floor(@{Perception_char}+@{Perception_adv}+@{Perception_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Perception" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Perception}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Perception} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left"><i><span data-i18n="Ride" >Ride</span></i></td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RideCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Ride_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Ride_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Ride_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Ride" style="text-align:center;" value="floor(@{Ride_char}+@{Ride_adv}+@{Ride_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Ride" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ride}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Ride} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Row" >Row</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RowCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Row_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Row_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Row_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Row" style="text-align:center;" value="floor(@{Row_char}+@{Row_adv}+@{Row_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Row" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Row}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Row} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left"><i><span data-i18n="Stealth">Stealth</span></i></td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_StealthCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Stealth_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Stealth_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Stealth_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Stealth" style="text-align:center;" value="floor(@{Stealth_char}+@{Stealth_adv}+@{Stealth_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" name="roll_Stealth" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Stealth}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Stealth} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
</table>
</div> <!--- Hackery --->
</div>
<!-- Middle Separation -->
<!-- Melee Specialisations -->
<div class="sheet-col sheet-table" style="width:48%">
<div class="sheet-tablewrapper" style="width: 95%">
<div class="sheet-col sheet-tablealt">
<table style="width:100%">
<tr>
<th COLSPAN=9><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="MELEE-SPECIALISATIONS-(BASIC)" >MELEE SPECIALISATIONS (BASIC)</label></div>
</th>
</tr>
<tr>
<td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center; width:8%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:10%">
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" ><span data-i18n="Melee-i-Basic"><i>Melee</i> (Basic)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeBasicCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeBasic_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeBasic_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeBasic_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeBasic" style="text-align:center;" value="floor(@{MeleeBasic_char}+@{MeleeBasic_adv}+@{MeleeBasic_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" name="roll_MeleeBasic" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Basic)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeBasic} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Brawling" ><i>Melee</i> (Brawling)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeBrawlingCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeBrawling_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeBrawling_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeBrawling_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeBrawling" style="text-align:center;" value="floor(@{MeleeBrawling_char}+@{MeleeBrawling_adv}+@{MeleeBrawling_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeBrawling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Brawling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeBrawling} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Cavalry" ><i>Melee</i> (Cavalry)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeCavalryCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeCavalry_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeCavalry_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeCavalry_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeCavalry" style="text-align:center;" value="floor(@{MeleeCavalry_char}+@{MeleeCavalry_adv}+@{MeleeCavalry_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeCavalry" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Cavalry)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeCavalry} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Fencing" ><i>Melee</i> (Fencing)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeFencingCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeFencing_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeFencing_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeFencing_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeFencing" style="text-align:center;" value="floor(@{MeleeFencing_char}+@{MeleeFencing_adv}+@{MeleeFencing_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeFencing" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Fencing)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeFencing} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Flail" ><i>Melee</i> (Flail)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeFlailCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeFlail_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeFlail_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeFlail_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeFlail" style="text-align:center;" value="floor(@{MeleeFlail_char}+@{MeleeFlail_adv}+@{MeleeFlail_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeFlail" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Flail)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeFlail} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Parry" ><i>Melee</i> (Parry)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeParryCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeParry_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeParry_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeParry_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeParry" style="text-align:center;" value="floor(@{MeleeParry_char}+@{MeleeParry_adv}+@{MeleeParry_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeParry" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Parry)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeParry} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-Pole-Arm" ><i>Melee</i> (Pole-Arm)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleePolearmCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleePoleArm_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleePoleArm_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleePoleArm_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleePoleArm" style="text-align:center;" value="floor(@{MeleePoleArm_char}+@{MeleePoleArm_adv}+@{MeleePoleArm_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleePoleArm" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Pole-Arm)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleePoleArm} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Melee-i-2H" ><i>Melee</i> (Two-Handed)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeTwohandedCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_MeleeTwoHanded_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeTwoHanded_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_MeleeTwoHanded_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_MeleeTwoHanded" style="text-align:center;" value="floor(@{MeleeTwoHanded_char}+@{MeleeTwoHanded_adv}+@{MeleeTwoHanded_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_MeleeTwoHanded" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Two-Handed)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeTwoHanded} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<!-- Ranged Specialisations -->
<tr><th COLSPAN=9><label style="text-align:center"> </label></th></tr>
<tr>
<th COLSPAN=8><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="RANGED-SPECIAlZATION-ADVANCED" >RANGED SPECIALISATIONS (ADVANCED)</label></div>
</th>
</tr>
<tr>
<td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center; width:8%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:10%">
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Blackpowder"><i>Ranged</i> (Blackpowder)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedBlackpowderCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedBlackpowder_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedBlackpowder_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedBlackpowder_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedBlackpowder" style="text-align:center;" value="floor(@{RangedBlackpowder_char}+@{RangedBlackpowder_adv}+@{RangedBlackpowder_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedBlackpowder" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Blackpowder)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedBlackpowder} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Bow" ><i>Ranged</i> (Bow)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedBowCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedBow_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedBow_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedBow_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedBow" style="text-align:center;" value="floor(@{RangedBow_char}+@{RangedBow_adv}+@{RangedBow_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedBow" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Bow)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedBow} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Crossbow" ><i>Ranged</i> (Crossbow) &#8224;</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedCrossbowCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedCrossBow_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedCrossBow_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedCrossBow_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedCrossBow" style="text-align:center;" value="floor(@{RangedCrossBow_char}+@{RangedCrossBow_adv}+@{RangedCrossBow_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedCrossBow" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Crossbow)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedCrossBow} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Engineering" ><i>Ranged</i> (Engineering)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedEngineeringCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedEngineering_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedEngineering_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedEngineering_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedEngineering" style="text-align:center;" value="floor(@{RangedEngineering_char}+@{RangedEngineering_adv}+@{RangedEngineering_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedEngineering" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Engineering)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedEngineering} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Entangling" ><i>Ranged</i> (Entangling)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedEntanglingCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedEntangling_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedEntangling_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedEntangling_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedEntangling" style="text-align:center;" value="floor(@{RangedEntangling_char}+@{RangedEntangling_adv}+@{RangedEntangling_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedEntangling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Entangling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedEntangling} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Explosives"><i>Ranged</i> (Explosives)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedExplosivesCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedExplosives_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedExplosives_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedExplosives_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedExplosives" style="text-align:center;" value="floor(@{RangedExplosives_char}+@{RangedExplosives_adv}+@{RangedExplosives_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedExplosives" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Explosives)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedExplosives} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Sling" ><i>Ranged</i> (Sling)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedSlingCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedSling_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedSling_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedSling_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedSling" style="text-align:center;" value="floor(@{RangedSling_char}+@{RangedSling_adv}+@{RangedSling_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedSling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Sling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedSling} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<tr>
<td style="width:42%;text-align:left" data-i18n="Ranged-i-Throwing" ><i>Ranged</i> (Throwing) &#8224;</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedThrowingCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_RangedThrowing_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedThrowing_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_RangedThrowing_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_RangedThrowing" style="text-align:center;" value="floor(@{RangedThrowing_char}+@{RangedThrowing_adv}+@{RangedThrowing_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_RangedThrowing" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Throwing)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedThrowing} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
</table>
</div> <!-- table wrapper --->
<!-- Magic, Blessing ans Miracles -->
<label style="text-align:center; font-size:0.8em;" data-i18n="Magic-Notice" >&#8224;= Can be used untrained but loses all Qualities and keeps the Flaws</label>
<table class="tablealt" style="width:100%">
<tr>
<th COLSPAN=8><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="MAGIC-BLESSINGS-AND-MIRACLES-ADVANCED" >MAGIC, BLESSINGS AND MIRACLES (ADVANCED)</label></div>
</th>
</tr>
<tr>
<td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center; width:8%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:10%">
</td>
</tr>
<!-- Language Magick -->
<tr>
<td style="width:42%;text-align:left" data-i18n="Language-i-Magick-p" ><i>Language</i> (Magick)</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_LanguageMagickCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_LanguageMagick_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_LanguageMagick_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_LanguageMagick_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_LanguageMagick" style="text-align:center;" value="floor(@{LanguageMagick_char}+@{LanguageMagick_adv}+@{LanguageMagick_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_LanguageMagick" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Language (Magick)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{LanguageMagick} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
<!-- Pray Skill -->
<tr>
<td style="width:42%;text-align:left" data-i18n="Pray" >Pray</td>
<td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_PrayCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_Pray_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_Pray_adv" value="0" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_Pray_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_Pray" style="text-align:center;" value="floor(@{Pray_char}+@{Pray_adv}+@{Pray_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" style="width:90%" name="roll_Pray" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Pray}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Pray} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
</table>
</div>
</div>
<!-- Grouped and Advanced Skills -->
<hr>
<div class="sheet-col sheet-table" style="width:48%">
<table style="text-align:center; width:100%">
<tr>
<th COLSPAN=10><label style="text-align:center" data-i18n="GROUPED-&-ADVANCED-SKILLS" >GROUPED & ADVANCED SKILLS</label>
</th>
</tr>
<tr>
<td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
</td>
<td style="text-align:center; width:8%">
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
</td>
<td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
</td>
<td style="text-align:center; width:10%">
</td>
</tr>
</table>
<fieldset class="repeating_advancedskills" name="attr_repeating_advancedskills">
<table style="width:100%">
<tr>
<td style="width:42%;text-align:left"><input class="sheet-baseinfo" type="text" name="attr_CustomSkillName" />
</td>
<td style="width:8%"><input type="checkbox" value="1" name="attr_CustomCareerSkill" /><span></span>
</td>
<td style="width:10%">
<select name="attr_CustomSkill_char" style="width:100%" class="sheet-input-selectbox" >
<option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
<option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
<option value="@{Current_S}" data-i18n="S-p">(S)</option>
<option value="@{Current_T}" data-i18n="T-p">(T)</option>
<option value="@{Current_I}" data-i18n="I-p">(I)</option>
<option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
<option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
<option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
<option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
<option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
</select>
</td>
<td style="width:10%"><input type="number" style="text-align:center;" name="attr_CustomSkill_adv" value="1" />
</td>
<td style="width:10%">
<input type="number" style="text-align:center;" name="attr_CustomSkill_mod" value="0" />
</td>
<td style="width:10%">
<input type="number" name="attr_CustomSkill" style="text-align:center;" value="floor(@{CustomSkill_char}+@{CustomSkill_adv}+@{CustomSkill_mod})" disabled="true"/>
</td>
<td style="width:10%">
<button type="roll" name="roll_CustomSkill" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{CustomSkillName}}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{CustomSkill} ]]}}">
<label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
</button>
</td>
</tr>
</table>
</fieldset>
<br>
</div>
<!-- Talents -->
<div class="sheet-col sheet-table" style="width:48%">
<h4 data-i18n="Talents" >Talents</h4>
<table style="width:100%">
<fieldset class="repeating_talents" name="repeating_talents">
<div style="width:100%">
<div class="sheet-item" style="width:72%"><input type="text" placeholder="Name" name="attr_TalentName" />
</div>
<div class="sheet-item" style="width:8%"><input type="number" style="text-align:center" value="1" name="attr_TalentNumber" />
</div>
<div class="sheet-item" style="width:8%"><button type="roll" style="width:90%" name="roll_TalentDisplay" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{TalentName}}} {{talent=@{TalentName}}} {{talentdescription=@{TalentDesc}}}">I</button>
</div>
<input type="checkbox" class="sheet-arrow" name="attr_TalentDescHide"/><span></span>
<div class="sheet-body">
<textarea name="attr_Talentdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</table>
</div>
</div>
</div>
<div class="sheet-tab-content sheet-tabGearMagic">
<div class="sheet-wrapper">
<br>
<!-- Middle Section; Armour and Armour Points-->
<table>
<!-- Armour -->
<td class="sheet-col" style="width:60%">
<div class="sheet-col" style="width:100%">
<h4 data-i18n="Armour" >ARMOUR</h4>
<div class="sheet-col" style="width:100%; text-align:left">
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Head" >Head</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="R.Arm" >R.Arm</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="L.Arm" >L.Arm</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Body" >Body</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="R.Leg" >R.Leg</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="L.Leg">L.Leg</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Shield">Shield</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="AP" >AP</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Enc." >Enc.</label>
</div>
<div class="sheet-col" style="width:10%; ">
</div>
</div>
<fieldset class="repeating_armor" name="attr_repeating_armor">
<div style="width:100%; text-align:left">
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourHead" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourRArm" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourLArm" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourBody" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourRLeg" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourLLeg" /><span></span>
</div>
<div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourShield" /><span></span>
</div>
<div class="sheet-col" style="width:10%;"><input type="number" value="0" style="text-align:center" name="attr_ArmourPoints" />
</div>
<div class="sheet-col" style="width:10%;"><input type="number" value="0" style="text-align:center"name="attr_ArmourEnc" />
</div>
<div class="sheet-item" style="width:8%"><button type="roll" style="width:90%" name="roll_ArmorDisplay" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{ArmourName}}} {{talentdescription=@{ArmourDesc}}}">I</button>
</div>
</div>
<div style="width:100%; text-align:left">
<div class="sheet-col" style="width:40%;">
<input type="text" placeholder="Name" name="attr_ArmourName" />
</div>
<div class="sheet-col" style="width:47.5%;">
<input type="text" placeholder="Qualities/Flaws" name="attr_ArmourQualities" />
</div>
<input type="checkbox" class="sheet-arrow" style="" name="attr_ArmourDescHide"/>
<span></span>
<div class="sheet-body">
<textarea name="attr_Armourdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</div>
</td>
<!-- Armour Points -->
<td class="sheet-col" style="width:40%">
<div class="sheet-col" style="width:100%">
<table class="sheet-armortable" style="width:100%;margin-left:10px; background-size:176px 314px;">
<tr>
<th COLSPAN=10><label style="text-align:center" data-i18n="ARMOUR-POINTS" >ARMOUR POINTS</label>
</th>
</tr>
<tr>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
<td style="width:10%">
</td>
</tr>
<tr>
<td COLSPAN=4>
</td>
<td COLSPAN=2><br>01-09<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPHead" readonly/><br>
<label style="text-align:center" data-i18n="Head" >Head</label>
</td>
<td COLSPAN=4>
</td>
</tr>
<tr>
<td COLSPAN=1>
</td>
<td COLSPAN=3>25-44<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPRightArm" readonly/><br>
<label style="text-align:center" data-i18n="Right Arm" >Right Arm</label><br>
(or primary arm)
</td>
<td COLSPAN=2><br>45-79<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPBody" readonly/><br>
<label style="text-align:center" data-i18n="Body" >Body</label>
</td>
<td COLSPAN=3>10-24<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPLeftArm" readonly/><br>
<label style="text-align:center" data-i18n="Left Arm" >Left Arm</label><br>
(or secondary arm)
</td>
<td COLSPAN=1>
</td>
</tr>
<tr>
<td class="sheet-armorshield" COLSPAN=2><br><br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPShield" readonly/><br>
<label style="text-align:center" data-i18n="Shield" >Shield</label>
</td>
<td COLSPAN=1>
</td>
<td COLSPAN=2><br>90-00<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPRightLeg" readonly/><br>
<label style="text-align:center" data-i18n="Right Leg" >Right Leg</label>
</td>
<td COLSPAN=1>
</td>
<td COLSPAN=2><br>80-89<br>
<input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPLeftLeg" readonly/><br>
<label style="text-align:center" data-i18n="Leg Left" >Left Leg</label>
</td>
<td COLSPAN=3>
</td>
</tr>
</table>
</div>
</td>
</table>
<!-- Weapons -->
<hr>
<div style="width:100%">
<h4 data-i18n="WEAPONS" >WEAPONS</h4>
<div class="sheet-col" style="width:100%; text-align:left">
<div class="sheet-col" style="width:25%;"><label style="text-align:left" data-i18n="Name">Name</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Group" >Group</label>
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><label style="text-align:center" data-i18n="Enc." >Enc.</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Range/Reach" >Range/Reach</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Damage" >Damage</label>
</div>
<div class="sheet-col" style="width:25%; margin:-2px; "><label style="text-align:left" data-i18n="Qualities" >Qualities</label>
</div>
</div>
<fieldset class="repeating_weapons" name="attr_repeating_weapons">
<div style="width:100%; text-align:left">
<div class="sheet-col" style="width:25%;"><input type="text" name="attr_WeaponName" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; ">
<select name="attr_WeaponGroup" style="width:100%" class="sheet-input-selectbox" >
<option value="@{MeleeBasic}" selected data-i18n="Melee-Basic">Melee (Basic)</option>
<option value="@{MeleeBrawling}" data-i18n="Melee-Brawling">Melee (Brawling)</option>
<option value="@{MeleeCavalry}" data-i18n="Melee-Cavalry">Melee (Cavalry)</option>
<option value="@{MeleeFencing}" data-i18n="Melee-Fencing">Melee (Fencing)</option>
<option value="@{MeleeFlail}" data-i18n="Melee-Flail">Melee (Flail)</option>
<option value="@{MeleeParry}" data-i18n="Melee-Parry">Melee (Parry)</option>
<option value="@{MeleePoleArm}" data-i18n="Melee-Pole-Arm">Melee (Pole-Arm)</option>
<option value="@{MeleeTwoHanded}" data-i18n="Melee-2H">Melee (Two-Handed)</option>
<option value="@{RangedBlackpowder}" data-i18n="Ranged-Blackpowder">Ranged (Blackpowder)</option>
<option value="@{RangedBow}" data-i18n="Ranged-Bow">Ranged (Bow)</option>
<option value="@{RangedCrossbow}" data-i18n="Ranged-Crossbow">Ranged (Crossbow)</option>
<option value="@{RangedEngineering}" data-i18n="Ranged-Engineering">Ranged (Engineering)</option>
<option value="@{RangedEntangling}" data-i18n="Ranged-Entangling">Ranged (Entangling)</option>
<option value="@{RangedExplosives}" data-i18n="Ranged-Explosives">Ranged (Explosives)</option>
<option value="@{RangedSling}" data-i18n="Ranged-Sling">Ranged (Sling)</option>
<option value="@{RangedThrowing}" data-i18n="Ranged-Throwing">Ranged (Throwing)</option>
<option value="@{Current_WS}" data-i18n="Weapon-Skill">Weapon Skill</option>
<option value="@{Current_BS}" data-i18n="Ballistic-Skill">Ballistic Skill</option>
</select>
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponEnc" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponRange" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponDamage" />
</div>
<div class="sheet-col" style="width:25%; margin:-2px; "><input type="text" name="attr_WeaponQualities" />
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><button type="roll" name="roll_WeaponDamage" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{WeaponName}}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{WeaponGroup} ]]}} {{weapon=@{WeaponName}}} {{range=@{WeaponRange}}} {{damage=@{WeaponDamage}}} {{qualities=@{WeaponQualities}}} {{description=@{Weapondesc}}} {{hitlocation=1}} ]]"><label class="labelbutton" style="text-align:center">Roll</label></button>
</div>
<div class="sheet-item" style="width:5%;text-align:center"><input type="checkbox" name="attr_WeaponHeld" value="1" checked style="text-align:center" /><span></span>
</div>
<div class="sheet-body">
<textarea name="attr_Trappingdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
<input type="checkbox" class="sheet-arrow" name="attr_WeaponDescHide"/><span></span>
<div class="sheet-body">
<textarea name="attr_Weapondesc" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</div>
<!-- Spells and Prayers -->
<hr>
<div style="width:100%">
<h4 data-i18n="SPELLS-AND-PRAYERS" >SPELLS AND PRAYERS</h4>
<div class="sheet-wrapper" style="width:100%; text-align:center">
<table>
<tr>
<td class="sheet-col" style="width:14%">
</td>
<td class="sheet-col" style="width:27%"><label data-i18n="Extended-Channeling-SL" >Extended Channelling SL</label>
</td>
<td class="sheet-col" style="width:5%;"><input type="number" style="text-align:center;" name="attr_ExtendedChannellingSl" value="0">
</td>
<td class="sheet-col" style="width:19%">
</td>
<td class="sheet-col" style="width:14%"><label data-i18n="Sin-Points" >Sin Points</label>
</td>
<td class="sheet-col" style="width:5%"><input type="number" style="text-align:center;" name="attr_SinPoints" value="0" />
</td>
<td class="sheet-col" style="width:14%">
</td>
</tr>
</table>
</div>
<div class="sheet-col" style="width:100%; text-align:left">
<div class="sheet-col" style="width:20%;"><label style="text-align:left" data-i18n="Name" >Name</label>
</div>
<div class="sheet-col" style="width:10%;"><label style="text-align:center" data-i18n="Type" >Type</label>
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><label style="text-align:center" data-i18n="CN" >CN</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Range" >Range</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Target" >Target</label>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Duration" >Duration</label>
</div>
<div class="sheet-col" style="width:25%; margin:-2px; "><label style="text-align:left" data-i18n="Effect" >Effect</label>
</div>
</div>
<fieldset class="repeating_spells" name="attr_repeating_spells">
<div style="width:100%; text-align:left">
<div class="sheet-col" style="width:20%;"><input type="text" name="attr_Spell" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; ">
<select name="attr_SpellType" style="width:100%" class="sheet-input-selectbox" >
<option value="@{LanguageMagick}" selected><label data-i18n="Arcane" >Arcane</label></option>
<option value="@{Pray}"><label data-i18n="Divine" >Divine</label></option>
</select>
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellCN" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; ">
<!-- Spell Range -->
<select name="attr_SpellRange" type="number" style="width:100%" class="sheet-input-selectbox" >
<option value="[[@{Current_WP}]] Yards" selected><label data-i18n="Willpower-Yards">Willpower Yards</label></option>
<option value="[[@{Current_WPB}]] Yards"><label data-i18n="Willpower-Bonus-Yards">Willpower Bonus Yards</label></option>
<option value="[[@{Current_WPB}]] Miles"><label data-i18n="Willpower-Bonus-Miles">Willpower Bonus Miles</label></option>
<option value="1 Yard"><label data-i18n="1-Yard">1 Yard</label></option>
<option value="You"><label data-i18n="You">You</label></option>
<option value="Touch"><label data-i18n="Touch">Touch</label></option>
<option value="Special"><label data-i18n="Special">Special</label></option>
<option value="[[@{Current_I}]] Yards" selected><label data-i18n="Initiative-Yards">Initiative Yards</label></option>
<option value="[[@{Current_IB}]] Miles" selected><label data-i18n="Initiative-Bonus-Miles">Initiative Bonus Miles</label></option>
<option value="[[@{Current_IntB}]] Yards" selected><label data-i18n="Intelligence-Bonus-Yards">Intelligence Bonus Yards</label></option>
<option value="[[@{Current_Fel}]] Yards" selected><label data-i18n="Fellowship-Yards">Fellowship Yards</label></option>
<option value="[[@{Current_FelB}]] Yards" selected><label data-i18n="Fellowship-Bonus-Yards">Fellowship Bonus Yards</label></option>
<option value="6 Yards" selected><label data-i18n="6-Yards">6 Yards</label></option>
</select>
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellTarget" />
</div>
<div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellDuration" />
</div>
<div class="sheet-col" style="width:25%; margin:-2px; "><input type="text" name="attr_SpellEffect" />
</div>
<div class="sheet-col" style="width:5%; margin:-2px; "><button type="roll" name="cast_spell_info" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{Spell}}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{SpellType} ]]}} {{spell=@{Spell}}} {{cn=@{SpellCN}}} {{range=@{SpellRange}}} {{target=@{SpellTarget}}} {{duration=@{SpellDuration}}} {{effect=@{SpellEffect}}} {{description=@{Spelldesc}}} {{hitlocation=1}} {{description=@{Spelldesc}}} {{channelling=@{ExtendedChannellingSl}}}"><label class="labelbutton" style="text-align:center">Roll</label></button>
</div>
<input type="checkbox" class="sheet-arrow" style="" name="attr_SpellDescHide"/><span></span>
<div class="sheet-body">
<textarea name="attr_Spelldesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</div>
<!-- INJURIES, AFFLICTIONS, PSYCHOLOGY AND MUTATIONS -->
<hr>
<h4 data-i18n="INJURIES-AFFLICTIONS-PYSCHOLOGY-&-MUTATIONS" >INJURIES, AFFLICTIONS, PSYCHOLOGY AND MUTATIONS</h4>
<!-- Corruption -->
<div class="sheet-wrapper" style="width:100%; text-align:center;">
<table>
<tr>
<td style="width:10%">
</td>
<td style="text-align:left; width:20%"><label style="text-align:left" data-i18n="Current-Corruption" >Current Corruption</label>
</td>
<td style="text-align:left; width:5%"><input type="number" name="attr_corruption" style="text-align:center" value="0" />
</td>
<td style="width:5%">
</td>
<td style="text-align:left; width:15%"><label style="text-align:left" data-i18n="Max-Corruption" >Max Corruption</label>
</td>
<td style="text-align:left; width:5%"><input type="number" name="attr_maxcorruption" style="text-align:center" value="floor(@{Current_TB}+@{Current_WPB}+@{corruptionmod})" disabled/>
</td>
<td style="width:10%">
</td>
<td style="text-align:left; width:10"><label style="text-align:left" data-i18n="Modifier" >Modifier</label>
</td>
<td style="text-align:left; width:5%"><input type="number" name="attr_corruptionmod" style="text-align:center" value="0" />
</td>
<td style="width:15%">
</td>
</tr>
</table>
</div>
<div class="sheet-wrapper" style="width:100%">
<div style="width:100%; text-align:left;">
<div class="sheet-col" style="width:32%"><label style="text-align:left" data-i18n="Name" >Name</label>
</div>
<div class="sheet-col" style="width:38%"><label style="text-align:left" data-i18n="Effect" >Effect</label>
</div>
<div class="sheet-col" style="width:20%"><label style="text-align:center" data-i18n="Time" >Time</label>
</div>
</div>
<fieldset class="repeating_afflictions" name="repeating_afflicitons">
<div style="width 100%; text-align:left;">
<div class="sheet-col" style="width:32%"><input type="text" placeholder="Affliction Name" name="attr_afflictionname" />
</div>
<div class="sheet-col" style="width:38%"><input type="text" placeholder="Affliction Effect" style="text-align:left" name="attr_afflictioneffect" />
</div>
<div class="sheet-col" style="width:20%"><input type="text" placeholder="Affliction Heal Time" style="text-align:center" name="attr_afflictionhealtime">
</div>
<div class="sheet-item" style="width:5%"><button type="roll" style="width:90%" name="roll_AfflicitonDisplay" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{afflictionname}}} {{afflictiondescription=@{Afflicitondesc}}} {{afflictionEffect=@{afflictioneffect}}} {{afflictionTime=@{afflictionhealtime}}}">I</button></div>
<input type="checkbox" class="sheet-arrow" style="" name="attr_AfflicitonDescHide"/><span></span>
<div class="sheet-body">
<textarea name="attr_Afflicitondesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</div>
<!-- Trappings -->
<hr>
<div style="width:100%">
<div class="sheet-wrapper" style="width:100%; text-align:left;">
<h4 data-i18n="TRAPPINGS" >TRAPPINGS</h4>
<div style="width:100%">
<div class="sheet-col" style="width:82%"><label style="text-align:left" data-i18n="Name" >Name</label>
</div>
<div class="sheet-col" style="width:5%"><label style="text-align:left" data-i18n="Enc" >Enc</label>
</div>
<div class="sheet-col" style="width:8%"><label style="text-align:center"></label>
</div>
</div>
<fieldset class="repeating_trappings" name="repeating_trappings">
<div style="width:100%">
<div class="sheet-item" style="width:77%"><input type="text" placeholder="" name="attr_TrappingName" /></div>
<div class="sheet-item" style="width:5%"><input type="number" style="text-align:center" value="0" name="attr_TrappingWeight" /></div>
<div class="sheet-item" style="width:8%;text-align:center"><input type="checkbox" name="attr_TrappingHeld" value="1" checked style="text-align:center" /><span></span></div>
<div class="sheet-item" style="width:5%"><button type="roll" style="width:90%" name="roll_TrappingDisplay" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{TrappingName}}} {{talentdescription=@{TrappingDesc}}}">I</button></div>
<input type="checkbox" class="sheet-arrow" name="attr_TrappingDescHide"/><span></span>
<div class="sheet-body">
<textarea name="attr_Trappingdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
</div>
</div>
</fieldset>
</div>
<div class="sheet-col" style="width:2%">
</div>
</div>
</div>
</div>
<div class="sheet-tab-content sheet-tabInformation">
<div class="sheet-wrapper">
<!-- Notes -->
<br>
<div>
<div class="sheet-col" style="width:48%; " >
<h4 data-i18n="PERSONALITY" >PERSONALITY</h4>
<textarea name="attr_Personality" style="width:90%; height:100px" ></textarea>
</div>
<div class="sheet-col" style="width:2%; ">
</div>
<div class="sheet-col" style="width:48%; " >
<h4 data-i18n="APPEARANCE" >APPEARANCE</h4>
<textarea name="attr_Appearance" style="width:90%; height:100px" ></textarea>
</div>
</div>
<!-- Personality -->
<hr>
<div>
<div class="sheet-col" style="width:48%; ">
<h4 data-i18n="CONTACTS/FRIENDS">CONTACTS/FRIENDS</h4>
<textarea name="attr_Contacts" style="width:90%; height:100px" ></textarea>
</div>
<div class="sheet-col" style="width:2%; ">
</div>
<div class="sheet-col" style="width:48%; " >
<h4 data-i18n="ENEMIES">ENEMIES</h4>
<textarea name="attr_Enemies" style="width:90%; height:100px" ></textarea>
</div>
</div>
<hr>
<div>
<div class="sheet-col" style="width:99%; " >
<h4 data-i18n="HISTORY" >HISTORY</h4>
<textarea name="attr_History" style="width:90%; height:150px" ></textarea>
</div>
</div>
<hr>
<div>
<div class="sheet-col" style="width:99%; ">
<h4 data-i18n="NOTES" >NOTES</h4>
<textarea name="attr_Notes" style="width:90%; height:150px" ></textarea>
</div>
</div>
<hr>
<div class="sheet-col" style="text-align:center; width:100%; font-size:12px;">
</div>
<hr>
</div>
</div>
<div class="sheet-tab-content sheet-tabExperience">
<div class="sheet-wrapper">
<br>
<h4 data-i18n="Experience-Points">Experience Points</h4>
<table style="margin-left:auto;margin-right:auto; text-align:center">
<tr>
<td><label style="text-align:center; height:auto;" data-i18n="Total-XP">Total XP</label>
</td>
<td><label style="text-align:center; height:auto;" data-i18n="Spent-XP">Spent XP</label>
</td>
<td><label style="text-align:center; height:auto" data-i18n="Left-XP">Left XP</label>
</td>
</tr>
<tr>
<td style="width:120px;"><input style="width:100px; text-align:center" type="number" name="attr_character_TotalExperience" value="0" />
</td>
<td style="width:120px;"><input style="width:100px; text-align:center" type="number" name="attr_character_SpentExperience" value="0" />
</td>
<td style="width:120px;"><input style="width:100px; text-align:center"type="number" name="attr_character_LeftExperience" disabled value="floor(@{character_TotalExperience}-@{character_SpentExperience})" />
</td>
</tr>
</table>
<br>
<label data-i18n="Advancements-Taken-Calculated-p">Advancements Taken (Calculated):</label>
<fieldset class="repeating_advancements">
<table style="width:100%">
<tr>
<td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement1" /></td>
<td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement1xp" /></td>
<td style="width:5%"></td>
<td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement2" /></td>
<td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement2xp" /></td>
<td style="width:5%"></td>
<td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement3" /></td>
<td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement3xp" /></td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
<!-- possible NPC Sheet
<div class="sheet-tab-content sheet-tabGM">
<input type='radio' name="attr_gm_show" class="sheet-tab sheet-tabNPC" value="1" checked />
<label class="sheet-tab" >NPC</label>
</div> -->
<br><br>
<!-- Rolltemplate wfrp4 -->
<rolltemplate class="sheet-rolltemplate-wfrp4">
<table>
<th style="text-align:center; width:10%"><div class="sheet-rollcharacter">{{name}}</div>
<div class="sheet-rolltitle">{{title}}</div>
</th>
<tr>
<td style="text-align:left; width:10%">
{{#dice}}
<b>Rolled: </b> {{dice}} <b>vs</b> {{against}}
<!-- Success Result -->
<br>**Result:**
{{#rollWasCrit() dice}}
{{#rollLess() dice against}}
<b><i style="color:#3FB315;">Critical</i></b>
{{/rollLess() dice against}}
{{#rollGreater() dice against}}
<b><i style="color:#cc6633;">Fumbling</i></b>
{{/rollGreater() dice against}}
{{/rollWasCrit() dice}}
{{#rollWasFumble() dice}}
<b><i style="color:#cc6633;">Fumbling</i></b>
{{/rollWasFumble() dice}}
{{#rollLess() dice against}}
<b><i style="color:#3FB315;">Success</i></b><br>
{{/rollLess() dice against}}
{{#rollTotal() dice against}}
<b><i style="color:#3FB315;">Success</i></b><br>
{{/rollTotal() dice against}}
{{#rollGreater() dice against}}
<b><i style="color:#cc6633;">Failure</i></b><br>
{{/rollGreater() dice against}}
{{/dice}}
<!-- Spell Description -->
{{#description}}
<br><b>Description: </b> <i>{{description}}</i><br>
{{/description}}
<!-- Weapon Stats -->
{{#weapon}}
<br><b>Weapon:</b> {{weapon}}<br>
<b>Range/Reach:</b> {{range}}<br>
<b>Dmg:</b> {{damage}}
{{/weapon}}
<!-- Spell Stats 1st Part -->
{{#spell}}
<br><b>Spell:</b> {{spell}}<br>
<b>CN:</b> {{cn}}
{{/spell}}
<!-- Success Level -->
{{#rollBetween() against 90 99}}
{{#rollTotal() dice 100}}1{{/rollTotal() dice 100}}
{{#rollBetween() dice against 99}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 99}}
{{#rollBetween() dice 90 against}}<b>SL: </b>+0{{/rollBetween() dice 90 against}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+1{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+2{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+3{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+4{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+5{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+6{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+7{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+8{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+9{{/rollBetween() dice 1 9}}
{{/rollBetween() against 90 99}}
{{#rollBetween() against 80 89}}
{{#rollTotal() dice 100}}<b>SL: </b>2{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>1{{/rollBetween() dice 90 99}}
{{#rollBetween() dice against 89}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 89}}
{{#rollBetween() dice 80 against}}<b>SL: </b>+0{{/rollBetween() dice 80 against}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+1{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+2{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+3{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+4{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+5{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+6{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+7{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+8{{/rollBetween() dice 1 9}}
{{/rollBetween() against 80 89}}
{{#rollBetween() against 70 79}}
{{#rollTotal() dice 100}}<b>SL: </b>3{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>2{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>1{{/rollBetween() dice 80 89}}
{{#rollBetween() dice against 79}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 79}}
{{#rollBetween() dice 70 against}}<b>SL: </b>+0{{/rollBetween() dice 70 against}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+1{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+2{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+3{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+4{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+5{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+6{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}+7{{/rollBetween() dice 1 9}}
{{/rollBetween() against 70 79}}
{{#rollBetween() against 60 69}}
{{#rollTotal() dice 100}}4{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>3{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>2{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>1{{/rollBetween() dice 70 79}}
{{#rollBetween() dice against 69}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 69}}
{{#rollBetween() dice 60 against}}<b>SL: </b>+0{{/rollBetween() dice 60 against}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+1{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+2{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+3{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+4{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+5{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+6{{/rollBetween() dice 1 9}}
{{/rollBetween() against 60 69}}
{{#rollBetween() against 50 59}}
{{#rollTotal() dice 100}}<b>SL: </b>5{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>4{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>3{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>2{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>1{{/rollBetween() dice 60 69}}
{{#rollBetween() dice against 59}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 59}}
{{#rollBetween() dice 50 against}}<b>SL: </b>+0{{/rollBetween() dice 50 against}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+1{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+2{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+3{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+4{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+5{{/rollBetween() dice 1 9}}
{{/rollBetween() against 50 59}}
{{#rollBetween() against 40 49}}
{{#rollTotal() dice 100}}6{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>5{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>4{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>3{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>2{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>1{{/rollBetween() dice 50 59}}
{{#rollBetween() dice against 49}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 49}}
{{#rollBetween() dice 40 against}}<b>SL: </b>+0{{/rollBetween() dice 40 against}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+1{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+2{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+3{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+4{{/rollBetween() dice 1 9}}
{{/rollBetween() against 40 49}}
{{#rollBetween() against 30 39}}
{{#rollTotal() dice 100}}-7{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>6{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>5{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>4{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>3{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>2{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>1{{/rollBetween() dice 40 49}}
{{#rollBetween() dice against 39}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 39}}
{{#rollBetween() dice 30 against}}<b>SL: </b>+0{{/rollBetween() dice 30 against}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+1{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+2{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+3{{/rollBetween() dice 1 9}}
{{/rollBetween() against 30 39}}
{{#rollBetween() against 20 29}}
{{#rollTotal() dice 100}}8{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>7{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>6{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>5{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>4{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>3{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>2{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>1{{/rollBetween() dice 30 39}}
{{#rollBetween() dice against 29}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 29}}
{{#rollBetween() dice 20 against}}<b>SL: </b>+0{{/rollBetween() dice 20 against}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+1{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+2{{/rollBetween() dice 1 9}}
{{/rollBetween() against 20 29}}
{{#rollBetween() against 10 19}}
{{#rollTotal() dice 100}}<b>SL: </b>9{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>8{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>7{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>6{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>5{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>4{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>3{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>2{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>1{{/rollBetween() dice 20 29}}
{{#rollBetween() dice against 19}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 19}}
{{#rollBetween() dice 10 against}}<b>SL: </b>+0{{/rollBetween() dice 10 against}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+1{{/rollBetween() dice 1 9}}
{{/rollBetween() against 10 19}}
{{#rollBetween() against 1 9}}
{{#rollTotal() dice 100}}<b>SL: </b>10{{/rollTotal() dice 100}}
{{#rollBetween() dice 90 99}}<b>SL: </b>9{{/rollBetween() dice 90 99}}
{{#rollBetween() dice 80 89}}<b>SL: </b>8{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>7{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>6{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>5{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>4{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>3{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>2{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>1{{/rollBetween() dice 10 19}}
{{#rollBetween() dice against 9}}
{{#^rollTotal() dice against}}<b>SL: </b>0{{/^rollTotal() dice against}}
{{/rollBetween() dice against 9}}
{{#rollBetween() dice 1 against}}<b>SL: </b>+0{{/rollBetween() dice 1 against}}
{{/rollBetween() against 1 9}}
{{#rollBetween() against 100 109}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+1{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+2{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+3{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+4{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+5{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+6{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+7{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+8{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+9{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+10{{/rollBetween() dice 1 9}}
{{/rollBetween() against 100 109}}
{{#rollBetween() against 110 119}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+2{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+3{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+4{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+5{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+6{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+7{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+8{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+9{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+10{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 1 9}}<b>SL: </b>+10{{/rollBetween() dice 1 9}}
{{/rollBetween() against 110 119}}
{{#rollBetween() against 120 129}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+3{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+4{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+5{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+6{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+7{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+8{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+9{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+10{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+11{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 03 09}}<b>SL: </b>+11{{/rollBetween() dice 03 09}}
{{#rollBetween() dice 01 02}}<b>SL: </b>+12{{/rollBetween() dice 01 02}}
{{/rollBetween() against 120 129}}
{{#rollBetween() against 130 139}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+4{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+5{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+6{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+7{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+8{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+9{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+10{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+11{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+12{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 04 09}}<b>SL: </b>+12{{/rollBetween() dice 04 09}}
{{#rollBetween() dice 01 03}}<b>SL: </b>+13{{/rollBetween() dice 01 03}}
{{/rollBetween() against 130 139}}
{{#rollBetween() against 140 149}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+5{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+6{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+7{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+8{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+9{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+10{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+11{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+12{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+13{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 05 09}}<b>SL: </b>+13{{/rollBetween() dice 05 09}}
{{#rollBetween() dice 01 04}}<b>SL: </b>+14{{/rollBetween() dice 01 04}}
{{/rollBetween() against 140 149}}
{{#rollBetween() against 150 159}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+6{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+7{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+8{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+9{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+10{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+11{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+12{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+13{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+14{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 06 09}}<b>SL: </b>+14{{/rollBetween() dice 06 09}}
{{#rollBetween() dice 01 05}}<b>SL: </b>+15{{/rollBetween() dice 01 05}}
{{/rollBetween() against 150 159}}
{{#rollBetween() against 160 169}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+7{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+8{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+9{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+10{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+11{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+12{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+13{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+14{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+15{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 07 09}}<b>SL: </b>+15{{/rollBetween() dice 07 09}}
{{#rollBetween() dice 01 06}}<b>SL: </b>+16{{/rollBetween() dice 01 06}}
{{/rollBetween() against 160 169}}
{{#rollBetween() against 170 179}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+8{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+9{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+10{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+11{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+12{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+13{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+14{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+15{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+16{{/rollBetween() dice 10 19}}
{{#rollBetween() dice 08 09}}<b>SL: </b>+16{{/rollBetween() dice 08 09}}
{{#rollBetween() dice 01 07}}<b>SL: </b>+17{{/rollBetween() dice 01 07}}
{{/rollBetween() against 170 179}}
{{#rollBetween() against 180 189}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+9{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+10{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+11{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+12{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+13{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+14{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+15{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+16{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+17{{/rollBetween() dice 10 19}}
{{#rollTotal() dice 09}}<b>SL: </b>+17{{/rollTotal() dice 09}}
{{#rollBetween() dice 01 08}}<b>SL: </b>+18{{/rollBetween() dice 01 08}}
{{/rollBetween() against 180 189}}
{{#rollBetween() against 190 199}}
{{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
{{#rollBetween() dice 90 95}}<b>SL: </b>+10{{/rollBetween() dice 90 95}}
{{#rollBetween() dice 80 89}}<b>SL: </b>+11{{/rollBetween() dice 80 89}}
{{#rollBetween() dice 70 79}}<b>SL: </b>+12{{/rollBetween() dice 70 79}}
{{#rollBetween() dice 60 69}}<b>SL: </b>+13{{/rollBetween() dice 60 69}}
{{#rollBetween() dice 50 59}}<b>SL: </b>+14{{/rollBetween() dice 50 59}}
{{#rollBetween() dice 40 49}}<b>SL: </b>+15{{/rollBetween() dice 40 49}}
{{#rollBetween() dice 30 39}}<b>SL: </b>+16{{/rollBetween() dice 30 39}}
{{#rollBetween() dice 20 29}}<b>SL: </b>+17{{/rollBetween() dice 20 29}}
{{#rollBetween() dice 10 19}}<b>SL: </b>+18{{/rollBetween() dice 10 19}}
{{#rollLess() against 198}}
{{#rollTotal() dice 09}}<b>SL: </b>+18{{/rollTotal() dice 09}}
{{#rollBetween() dice 01 08}}<b>SL: </b>+19{{/rollBetween() dice 01 08}}
{{/rollLess() against 198}}
{{#rollTotal() against 199}} <b>SL: </b>+19 {{/rollTotal() against 199}}
{{/rollBetween() against 190 199}}
{{#rollGreater() against 200}}
<b>SL: </b>+20 <i style="font-size:0.8em;">max calculated value</i>
{{/rollGreater() against 200}}
<!-- Extended Channelling SL -->
{{#channelling}}
<b>Channelling SL:</b> {{channelling}}
{{/channelling}}
<!-- Hit Location -->
{{#hitlocation}}
<br>
<!-- Head -->
{{#rollTotal() dice 10}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 10}}
{{#rollTotal() dice 20}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 20}}
{{#rollTotal() dice 30}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 30}}
{{#rollTotal() dice 40}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 40}}
{{#rollTotal() dice 50}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 50}}
{{#rollTotal() dice 60}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 60}}
{{#rollTotal() dice 70}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 70}}
{{#rollTotal() dice 80}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 80}}
{{#rollTotal() dice 90}}
<b>Hit Location:</b> <i>Head</i>
{{/rollTotal() dice 90}}
<!-- Left Arm -->
{{#rollTotal() dice 01}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 01}}
{{#rollTotal() dice 11}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 11}}
{{#rollTotal() dice 21}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 21}}
{{#rollTotal() dice 31}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 31}}
{{#rollTotal() dice 41}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 41}}
{{#rollTotal() dice 51}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 51}}
{{#rollTotal() dice 61}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 61}}
{{#rollTotal() dice 71}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 71}}
{{#rollTotal() dice 81}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 81}}
{{#rollTotal() dice 91}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 91}}
{{#rollTotal() dice 02}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 02}}
{{#rollTotal() dice 12}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 12}}
{{#rollTotal() dice 22}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 22}}
{{#rollTotal() dice 32}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 32}}
{{#rollTotal() dice 42}}
<b>Hit Location:</b> <i>Left Arm</i>
{{/rollTotal() dice 42}}
<!-- Right Arm -->
{{#rollTotal() dice 52}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 52}}
{{#rollTotal() dice 62}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 62}}
{{#rollTotal() dice 72}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 72}}
{{#rollTotal() dice 82}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 82}}
{{#rollTotal() dice 92}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 92}}
{{#rollTotal() dice 03}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 03}}
{{#rollTotal() dice 13}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 13}}
{{#rollTotal() dice 23}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 23}}
{{#rollTotal() dice 33}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 33}}
{{#rollTotal() dice 43}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 43}}
{{#rollTotal() dice 53}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 53}}
{{#rollTotal() dice 63}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 63}}
{{#rollTotal() dice 73}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 73}}
{{#rollTotal() dice 83}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 83}}
{{#rollTotal() dice 93}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 93}}
{{#rollTotal() dice 04}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 04}}
{{#rollTotal() dice 14}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 14}}
{{#rollTotal() dice 24}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 24}}
{{#rollTotal() dice 34}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 34}}
{{#rollTotal() dice 44}}
<b>Hit Location:</b> <i>Right Arm</i>
{{/rollTotal() dice 44}}
<!-- Body -->
{{#rollTotal() dice 54}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 54}}
{{#rollTotal() dice 64}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 64}}
{{#rollTotal() dice 74}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 74}}
{{#rollTotal() dice 84}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 84}}
{{#rollTotal() dice 94}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 94}}
{{#rollTotal() dice 05}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 05}}
{{#rollTotal() dice 15}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 15}}
{{#rollTotal() dice 25}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 25}}
{{#rollTotal() dice 35}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 35}}
{{#rollTotal() dice 45}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 45}}
{{#rollTotal() dice 55}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 55}}
{{#rollTotal() dice 65}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 65}}
{{#rollTotal() dice 75}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 75}}
{{#rollTotal() dice 85}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 85}}
{{#rollTotal() dice 95}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 95}}
{{#rollTotal() dice 06}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 06}}
{{#rollTotal() dice 16}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 16}}
{{#rollTotal() dice 26}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 26}}
{{#rollTotal() dice 36}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 36}}
{{#rollTotal() dice 46}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 46}}
{{#rollTotal() dice 56}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 56}}
{{#rollTotal() dice 66}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 66}}
{{#rollTotal() dice 76}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 76}}
{{#rollTotal() dice 86}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 86}}
{{#rollTotal() dice 96}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 96}}
{{#rollTotal() dice 07}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 07}}
{{#rollTotal() dice 17}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 17}}
{{#rollTotal() dice 27}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 27}}
{{#rollTotal() dice 37}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 37}}
{{#rollTotal() dice 47}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 47}}
{{#rollTotal() dice 57}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 57}}
{{#rollTotal() dice 67}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 67}}
{{#rollTotal() dice 77}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 77}}
{{#rollTotal() dice 87}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 87}}
{{#rollTotal() dice 97}}
<b>Hit Location:</b> <i>Body</i>
{{/rollTotal() dice 97}}
<!-- Left Leg -->
{{#rollTotal() dice 08}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 08}}
{{#rollTotal() dice 18}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 18}}
{{#rollTotal() dice 28}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 28}}
{{#rollTotal() dice 38}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 38}}
{{#rollTotal() dice 48}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 48}}
{{#rollTotal() dice 58}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 58}}
{{#rollTotal() dice 68}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 68}}
{{#rollTotal() dice 78}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 78}}
{{#rollTotal() dice 88}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 88}}
{{#rollTotal() dice 98}}
<b>Hit Location:</b> <i>Left Leg</i>
{{/rollTotal() dice 98}}
<!-- Right Leg -->
{{#rollTotal() dice 09}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 09}}
{{#rollTotal() dice 19}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 19}}
{{#rollTotal() dice 29}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 29}}
{{#rollTotal() dice 39}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 39}}
{{#rollTotal() dice 49}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 49}}
{{#rollTotal() dice 59}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 59}}
{{#rollTotal() dice 69}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 69}}
{{#rollTotal() dice 79}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 79}}
{{#rollTotal() dice 89}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 89}}
{{#rollTotal() dice 99}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 99}}
{{#rollTotal() dice 100}}
<b>Hit Location:</b> <i>Right Leg</i>
{{/rollTotal() dice 100}}
{{/hitlocation}}
<!-- Weapon Stats -->
{{#weapon}}
<br>
<!-- Weapon Qualities/Flaws -->
<b>Qualities/Flaws:</b> {{qualities}}
{{/weapon}}
<!-- Spell Stats 2nd part -->
{{#spell}}
<br><b>Range:</b> {{range}}<br>
<b>Target:</b> {{target}}<br>
<b>Duration:</b> {{duration}}<br>
<b>Effect:</b> {{effect}}
{{/spell}}
<!-- Talent Description -->
{{#talentdescription}}
<b>Description: </b><i>{{talentdescription}}</i>
{{/talentdescription}}
<!-- Affliction Description -->
{{#afflictionEffect}}
<b>Effect: </b><i>{{afflictionEffect}}</i><br>
<b>Time: </b><i>{{afflictionTime}}</i><br>
<b>Description: </b><i>{{afflictiondescription}}</i>
{{/afflictionEffect}}
<!-- Affliction Description -->
{{#initiativeTest}}
<b>Initiative Bonus: </b><i>{{initiativeTestInitiativeBonus}}</i><br>
{{#initiativeTestAgilityBonus}}
<b>Agility Bonus: </b><i>{{initiativeTestAgilityBonus}}</i><br>
{{/initiativeTestAgilityBonus}}
<b>Talents: </b><i>{{initiativeTestTalents}}</i><br>
<b>Test: </b>{{initiativeTest}}
{{/initiativeTest}}
</td>
</tr>
</table>
</rolltemplate>
<!-- Script Worker - Alondaar -->
<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 ---- */
var SWUtils = SWUtils || (function () {
'use strict';
/* for interaction with ExExp, and some basic utils that have nothing to do with Pathfinder rules. */
/** Determines if string can be evaluated to a number
* ensures: no macro calls, dropdowns, or keep highest/lowest more than 1
* allows: floor, abs, kh1, kl1, ceil, round, max, min
*@param {string} preeval string to examine
*@returns {bool} true if string will evaluate to a number.
*/
var validNumericStr = function (preeval) {
var anyIllegal = preeval.match(/\||\?|&|\{|\}|k[h,l][^1]/);
if (anyIllegal) {
return false;
}
anyIllegal = preeval.replace(/floor|ceil|round|abs|max|min|kh1|kl1/g, '');
anyIllegal = anyIllegal.match(/[a-zA-Z]/);
if (anyIllegal) {
return false;
}
return true;
},
/** searches a string for @{attribute} and replaces those with their values, passes result to the callback
* if error then passes null
* @param {string} stringToSearch = string containing one or more @{fieldname}
* @param {function(string)} callback when done passes resultant string to callback
*/
findAndReplaceFields = function (stringToSearch, callback) {
var fieldnames ;
if (typeof callback !== "function") {
return;
}
if (!stringToSearch) {
callback(null);
return;
}
try {
stringToSearch = stringToSearch.split("selected|").join("");
stringToSearch = stringToSearch.split("target|").join("");
fieldnames = stringToSearch.match(/\@\{[^}]+\}/g);
if (!fieldnames) {
callback(stringToSearch);
return;
}
fieldnames=fieldnames.sort();
fieldnames = _.uniq(fieldnames,true);
fieldnames = _.map(fieldnames,function(field){
return field.slice(2,-1);
});
getAttrs(fieldnames, function (values) {
var evalstr = stringToSearch, innermatches=null,initialsplit;
try {
_.each(fieldnames,function(field){
//evalstr = evalstr.replace( new RegExp(escapeForRegExp('@{'+field+'}'),'g'), values[field]);
initialsplit = evalstr.split('@{'+field+'}');
evalstr = initialsplit.join(values[field]);
});
innermatches=evalstr.match(/\@\{[^}]+\}/g);
} catch (err2) {
TAS.error("findAndReplaceFields", err2);
evalstr = null;
} finally {
if (innermatches) {
findAndReplaceFields(evalstr,callback);
} else {
callback(evalstr);
}
}
});
} catch (err) {
TAS.error("findAndReplaceFields", err);
callback(null);
}
},
/** Replaces kl1 and kh1 with min and max
* example: replaces {x,y}kh1 with min(x,y)
* @param {string} str the string to search
* @returns {string} the resultant string after performing the replace
*/
convertKL1KH1toMinMax = function (str) {
var matches;
//TAS.debug("at convertKL1KH1toMinMax for "+str) ;
if (str) {
matches = str.match(/(\{[^}]+\})(kh1|kl1)(?!.*\1)/g);
//TAS.debug("matches are:",matches);
if (matches && matches.length > 0) {
str = _.reduce(matches, function (memo, match) {
var isMin = /kl1$/.test(match),
isMax = /kh1$/.test(match),
newFunc = isMin ? "min" : (isMax ? "max" : ""),
newMatch = match.slice(1, match.length - 4),
replaceStr = newFunc + "(" + newMatch + ")";
return memo.replace(match, replaceStr);
}, str);
}
}
return str;
},
/** Reads in the string, evaluates it to a single number, passes that number to a callback
* calls callback with: the number, 0 (if exprStr empty), or null if an error is encountered
*@param {string} exprStr A string containing a mathematical expression, possibly containing references to fields such as @{myfield}
*@param {function(Number)} callback a function taking one parameter - could be int or float
*/
evaluateExpression = function (exprStr, callback) {
var bmatches1 = 0, bmatches2 = 0, pmatches1 = 0, pmatches2 = 0, smatches1 = 0, smatches2 = 0;
if (typeof callback !== "function") {
return;
}
if (exprStr === "" || exprStr === null || exprStr === undefined) {
callback(0);
return;
}
//verify that same number of parenthesis exists
bmatches1 = (exprStr.match(/\(/g) || []).length;
bmatches2 = (exprStr.match(/\)/g) || []).length;
pmatches1 = (exprStr.match(/\{/g) || []).length;
pmatches2 = (exprStr.match(/\}/g) || []).length;
smatches1 = (exprStr.match(/\[/g) || []).length;
smatches2 = (exprStr.match(/\]/g) || []).length;
if (bmatches1 !== bmatches2 || pmatches1 !== pmatches2 || smatches1 !== smatches2) {
TAS.warn("evaluateExpression: Mismatched brackets, cannot evaluate:" + exprStr);
callback(null);
return;
}
findAndReplaceFields(exprStr, function (replacedStr) {
var evaluated,
newexprStr;
//TAS.debug("search and replace of " + exprStr + " resulted in " + replacedStr);
if (replacedStr === null || replacedStr === undefined) {
callback(null);
return;
}
try {
replacedStr = replacedStr.replace(/\s+/g, '').replace(/\[\[/g, "(").replace(/\]\]/g, ")").replace(/\[/g, "(").replace(/\]/g, ")");
newexprStr = convertKL1KH1toMinMax(replacedStr);
//TAS.debug("replacedStr is now "+newexprStr);
if (newexprStr !== replacedStr) {
replacedStr = newexprStr;
}
if (!isNaN(Number(replacedStr)) && isFinite(replacedStr)) {
evaluated = parseFloat(replacedStr);
if (!isNaN(evaluated)) {
callback(evaluated);
return;
}
}
if (typeof replacedStr !== "undefined" && replacedStr !== null && validNumericStr(replacedStr)) {
evaluated = ExExp.handleExpression(replacedStr);
if (!isNaN(evaluated)) {
callback(evaluated);
} else {
TAS.warn("cannot evaluate this to number: " + exprStr +" came back with " + replacedStr);
callback(null);
}
} else {
TAS.warn("cannot evaluate this to number: " + exprStr+" came back with " + replacedStr);
callback(null);
}
} catch (err3) {
TAS.error("error trying to convert to number:" + err3);
callback(null);
}
});
},
/** evaluateAndSetNumber
* Examines the string in readField, and tests to see if it is a number
* if it's a number immediately write it to writeField.
* if not, then replace any @{field} references with numbers, and then evaluate it
* as a mathematical expression till we find a number.
*
* note this is NOT recursive, you can't point one field of
*
* @param {string} readField= field to read containing string to parse
* @param {string} writeField= field to write to
* @param {number} defaultVal= optional, default to set if we cannot evaluate the field. If not supplied assume 0
* @param {function} callback - function(newval, oldval, ischanged)
* @param {bool} silently if true set new val with {silent:true}
* @param {bool} dontSetErrorFlag if true and we could not evaluate, then set attribute named writeField+"_error" to 1
* @param {function} errcallback call if there was an error parsing string function(newval, oldval, ischanged)
*/
evaluateAndSetNumber = function (readField, writeField, defaultVal, callback, silently, errcallback) {
var
done = function (a, b, c,currError) {
var donesetter={};
if (currError){
donesetter[writeField+'_error']=0;
setAttrs(donesetter,{silent:true});
}
if (typeof callback === "function") {
callback(a, b, c);
}
},
errordone = function(a,b,c,currError){
var donesetter={};
//TAS.debug("leaving set of "+ writeField+" with old:"+b+", new:"+c+" is changed:"+ c+" and curreerror:"+currError);
if (!currError){
donesetter[writeField+'_error']=1;
setAttrs(donesetter,{silent:true});
}
if (typeof errcallback === "function") {
errcallback(a, b, c);
} else if (typeof callback === "function") {
callback(a, b, c);
}
};
getAttrs([readField, writeField, writeField+"_error"], function (values) {
var setter = {},
params = {},
trueDefault=0,
currVal=0,
isError=0,
currError=0,
isChanged=false,
value=0;
try {
if (silently){params.silent=true;}
currError= parseInt(values[writeField+"_error"],10)||0;
trueDefault = defaultVal || 0;
currVal = parseInt(values[writeField], 10);
value = Number(values[readField]);
//check for blank
if (typeof values[readField] === "undefined" || !values[readField] || values[readField]===null || values[readField]==="" ) {
//if value of readField is blank then set to defaultval.
value = trueDefault;
if (currVal !== value || isNaN(currVal)) {
setter[writeField] = value;
setAttrs(setter, params, function () {
done(value, currVal, true,currError);
});
} else {
done(value, currVal, false,currError);
}
} else if (!isNaN(value)) {
//check for number
if (currVal !== value) {
setter[writeField] = value;
setAttrs(setter, params, function () {
done(value, currVal, true);
});
} else {
done(value, currVal, false,currError);
}
} else {
//pass to evaluateExpression
evaluateExpression(values[readField], function (value2) {
try {
if (value2 === null || value2===undefined || isNaN(value2)) {
isError=1;
value2=trueDefault;
//TAS.debug("setting "+ writeField+" to " +value2);
}
if (isNaN(currVal) || currVal !== value2) {
setter[writeField] = value2;
}
if (_.size(setter)>0){
isChanged=true;
}
} catch (err2) {
TAS.error("SWUtils.evaluateAndSetNumber error after call to evaluateExpression ", err2);
isError=1;
} finally {
setAttrs(setter, params, function () {
if (!isError){
done(value2, currVal, isChanged,currError);
} else {
errordone(value2,currVal,isChanged,currError);
}
});
}
});
}
} catch (err) {
TAS.error("SWUtils.evaluateAndSetNumber", err);
setter[writeField+'_error']=1;
setAttrs(setter,{silent:true},function(){errordone(value, currVal, false,currError);});
}
});
},
/** Reads dropdown value, determines attribute referenced, gets that attribute value, passes it to callback.
* similar to evaluateAndSetNumber but uses a synchronus function to perform search and replace, and assumes the string is only one value not an expression.
* necessary because some dropdowns have other text in the dropdowns, so we can't use the dropdown value exactly as is.
* called by setDropdownValue
* @param {string} readField the attribute name of dropdown we are looking at
* @param {function} synchrousFindAttributeFunc reads in the value of the dropdown field, and returns the exact name of the attribute to look up (since some dropdowns have other text in value)
* @param {function(int)} callback pass the value the dropdown selection represents
* exceptions: if readField is not found pass in "", if readField is 0 or starts with 0 pass in 0.
*/
getDropdownValue = function (readField, synchrousFindAttributeFunc, callback) {
if (!readField || (callback && typeof callback !== "function") || typeof synchrousFindAttributeFunc !== "function") {
return;
}
getAttrs([readField], function (values) {
var fieldToFind = values[readField],
foundField = "";
if (typeof fieldToFind === "undefined" || fieldToFind === null) {
callback("");
} else if (fieldToFind === "0" || fieldToFind === 0 || fieldToFind.indexOf("0") === 0) {
//select = none
callback(0);
} else {
foundField = synchrousFindAttributeFunc(fieldToFind);
getAttrs([foundField], function (v) {
var valueOf = parseInt(v[foundField], 10) || 0;
callback(valueOf, foundField);
});
}
});
},
/** Looks at a dropdown value, and sets writeField(s) with the number to which selected option refers.
* calls getDropdownValue
* @param {string} readField the dropdown field
* @param {string_or_Array} writeFields Field(s) to write the value to
* @param {function} synchrousFindAttributeFunc takes value of @readField and says what the lookup field is.
* @param {function(int)} callback (optional) if we need to update the field, call this function
* with the value we set as the only parameter.
* @param {bool} silently if true call setAttrs with {silent:true}
*/
setDropdownValue = function (readField, writeFields, synchrousFindAttributeFunc, callback, silently) {
var done = function (newval, currval, changed) {
if (typeof callback === "function") {
callback(newval, currval, changed);
}
};
SWUtils.getDropdownValue(readField, synchrousFindAttributeFunc, function (valueOf) {
var params = {};
if (silently) {params.silent=true;}
if (Array.isArray(writeFields) && writeFields.length === 1) {
writeFields = writeFields[0];
}
if (typeof writeFields === "string") {
getAttrs([writeFields], function (v) {
var currValue = parseInt(v[writeFields], 10),
setter = {};
//TAS.debug("setDropdownValue, readField:" + readField + ", currValue:" + currValue + ", newValue:" + valueOf);
if (currValue !== valueOf || isNaN(currValue)) {
setter[writeFields] = valueOf;
setAttrs(setter, params, function () {
done(valueOf, currValue, true);
});
} else {
done(valueOf, currValue, false);
}
});
} else if (Array.isArray(writeFields)) {
getAttrs(writeFields, function (v) {
var i = 0,
setter = {};
for (i = 0; i < writeFields.length; i++) {
if (parseInt(v[writeFields[i]], 10) !== valueOf) {
setter[writeFields[i]] = valueOf;
}
}
if (_.size(setter) > 0) {
setAttrs(setter, params, function () {
done(valueOf, 0, true);
});
} else {
done(valueOf, 0, false);
}
});
}
});
},
/** getRowTotal return newvalue, currentvalue, allvalues in callback. Summed up floats and round total to int.
* THIS IS PROBABLY SLOWER THAN DOING IT YOURSELF, just wrote to make things simpler.
* @param {Array} fields array of field names to be added up, EXCEPT the first field which is ignored (at index 0) which is the total current value
* @param {number} bonus a number that is added to the other fields.
* @param {Array} penalties array of fieldnames whose values are to be subtracted from the total
* @param {boolean} totalIsFloat true if we should not round the total to int.
* @param {function(number,number)} callback call this with: new total, current total
* @param {function} errorCallback call if error attempting to add.
*/
getRowTotal = function (fields, bonus, penalties, totalIsFloat, callback, errorCallback) {
var readFields;
if (typeof callback !== "function" || typeof errorCallback !== "function") {
return;
}
try {
if (!fields || (!Array.isArray(fields)) || fields.length === 0) {
return;
}
if (penalties && Array.isArray(penalties) && penalties.length > 0) {
readFields = fields.concat(penalties);
} else {
readFields = fields;
}
} catch (err2) {
TAS.error("SWUtils.getRowTotal catastrophic error: ", err2);
errorCallback();
return;
}
getAttrs(readFields, function (v) {
var currValue = totalIsFloat ? parseFloat(v[fields[0]]) : parseInt(v[fields[0]], 10),
newValue = 0,
penalty = 0,
i; //, setter = {}
try {
//remember start at 1
for (i = 1; i < fields.length; i++) {
newValue += parseFloat(v[fields[i]]) || 0;
}
if (bonus && !isNaN(parseInt(bonus, 10))) {
newValue += parseFloat(bonus);
}
if (penalties) {
for (i = 0; i < penalties.length; i++) {
penalty += parseFloat(v[penalties[i]]) || 0;
}
newValue -= penalty;
}
if (!totalIsFloat) {
newValue = Math.floor(newValue);
}
callback(newValue, currValue);
} catch (err) {
TAS.error("SWUtils.getRowTotal", err);
errorCallback();
}
});
},
/** Adds up numbers and puts it in the first field of the fields array.
* All numbers are added up as FLOATS, and then FLOOR is used to round the sum down
* @param {Array} fields array of field names to be added up, EXCEPT the first field. fields[0] MUST be the total field
* @param {number} bonus a number that is added to the other fields.
* @param {Array} penalties array of fieldnames whose values are to be subtracted from the total
* @param {boolean} totalIsFloat true if we should not round the total to int.
* @param {function(number,number)} callback optional call this with two values: the new total, old total
* @param {bool} silently if true call setAttrs with {silent:true}
*/
updateRowTotal = function (fields, bonus, penalties, totalIsFloat, callback, silently) {
var done = function () {
if (typeof callback === "function") {
callback();
}
};
getRowTotal(fields, bonus, penalties, totalIsFloat, function (newValue, currValue) {
var setter = {},
params = {};
try {
if (newValue !== currValue) {
setter[fields[0]] = newValue;
}
} catch (err) {
TAS.error("PFUtilsAsync.updateRowTotal", err);
} finally {
if (_.size(setter) > 0) {
if (silently) {
params.silent=true;
}
setAttrs(setter, params, done);
} else {
done();
}
}
}, done);
},
/** Escapes special chars for regex
*@param {string} str the string to examine
*@param {boolean} escapeSpaces if we should replace any space with \s* (caller can use it for matching purposes)
*@returns {string} resultant string after search and replace
*/
escapeForRegExp = function (str, escapeSpaces) {
var regexEscapes = /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|\~\!\@\#]/g,
tempstr ='';
if (str) {
tempstr = str.replace(regexEscapes, "\\$&");
if (escapeSpaces){
//replace space plus multiple spaces with non escaped 0 or * space.
tempstr = tempstr.replace(/\t+|\s+/g,'\\s*');
}
}
return tempstr;
},
/** Escapes special chars for macros - to create sub queries - this is not used currently
*@param {string} str the string to examine
*@returns {string} resultant string after search and replace
*/
escapeForMacroCall = function (str) {
var macroCallEscapes = [ [/\{\{/g, '&#123;&#123;'],
[/\}\}/g, '&#125;&#125;'],
[/\(/g, '&#40;'],
[/\)/g, '&#41;'],
[/\,/g, '&#44;'],
[/\?/g, '&#63;'],
[/'/g, '&#39;'],
[/"/g, '&#34;'],
[/\=/g, '&#61;'] ];
if (str) {
return _.reduce(macroCallEscapes, function (currStr, pair) {
return currStr.replace(pair[0], pair[1]);
}, str);
}
return "";
},
/** Escapes '{{' for passing to a rolltemplate
*@param {string} str the string to examine
*@returns {string} resultant string after search and replace
*/
escapeForRollTemplate = function (str) {
if (!str){return str;}
return str.replace(/\{\{/g, '&#123;&#123;');
},
/** escapes string so it can be used in the name section of another link button
*if it finds [name](link) in a string it will remove the [ and ] and the (link)
* replaces [ and ] with escaped versions everywhere else.
*@param {string] str the string we want to use inside a link button
*@returns {string} safe to use new name for button
*/
escapeForChatLinkButton = function(str){
var markdownLinkreg=/^([^\[]*?)\[([^\]]*?)\]\(([^\)]*?)\)(.*)$/,
retstr="", matches;
if (!str){return str;}
matches = markdownLinkreg.exec(str);
if(matches){
if (matches[1]){
retstr+=matches[1];
}
if(matches[2]){
retstr += matches[2];
}
if (matches[4]){
retstr += matches[4];
}
} else {
retstr = str;
}
retstr = retstr.replace(/\[/g,'&#91;').replace(/\]/g,'&#93;');
return retstr;
},
/** returns id portion of a source Attribute or repeating row attribute name
* @param {string} sourceAttribute from eventInfo object
* @returns {string} the id portion of string, or blank.
*/
getRowId = function (sourceAttribute) {
if (!sourceAttribute) { return ""; }
var strs = sourceAttribute.split('_');
if (strs && _.size(strs) >= 4) {
return strs[2];
}
return "";
},
getAttributeName = function (source) {
if (!source) { return ""; }
var itemId = getRowId(source), attrib = "";
if (itemId) {
attrib = source.substring(source.indexOf(itemId) + itemId.length + 1, source.length);
}
return attrib;
},
/** getRepeatingIDStr - if id is not empty, then returns the ID with an underscore on the right. else returns empty string
* this is used so the same function can be written for loops from getIDs or direct from the event with no ID
*@param {string} id the id of the row or blank
*@returns {string} id_ or blank
*/
getRepeatingIDStr = function (id) {
var idStr = "";
if (!(id === null || id === undefined)) {
idStr = id + "_";
}
return idStr;
},
/** Append values of multiple arrays of strings together to return one NEW array of strings that is the cartesian product.
* @example cartesianAppend(["a","b"],["c","d"], ["e","f"]);
* // returns ["ace","acf","ade","adf","bce","bcf","bde","bdf"]
* @example cartesianAppend(["pre_"] , ["a","b","c"], ["_post"] );
* //returns ["pre_a_post","pre_b_post","pre_c_post"]
* @param {Array} [...] Arrays of strings
* @returns {Array} of all values in other arrays
*/
cartesianAppend = function () {
return _.reduce(arguments, function (a, b) {
return _.flatten(_.map(a, function (x) {
return _.map(b, function (y) {
return String(x) + String(y);
});
}), true);
}, [[]]);
},
/** Concatenates cartesian product of all arrays together returns one flattened NEW array.
* @param {Array} [...] Arrays
* @returns {Array} cartesian product of all arrays (concatenated nothing else)
*/
cartesianProduct = function () {
return _.reduce(arguments, function (a, b) {
return _.flatten(_.map(a, function (x) {
return _.map(b, function (y) {
return x.concat([y]);
});
}), true);
}, [[]]);
},
/** trimBoth removes spaces at beginning and end of string, or of each string in an array.
* performs a deep match, so if array is of arrays, will call trim on every string.
* if object is not an array or string, just return object.
* therefore, non immutable objects are not cloned and array will contain links to them.
*@param {Array or string} val string or array of strings
*@returns {Array or string} same object type as passed in
*/
trimBoth = function(val){
if (Array.isArray(val)){
return _.map(val,trimBoth);
}
if (typeof val === 'string') {
return val.replace(/^\s*|\s*$/g,'');
}
return val;
}
;
return {
cartesianAppend: cartesianAppend,
cartesianProduct: cartesianProduct,
convertKL1KH1toMinMax: convertKL1KH1toMinMax,
escapeForRegExp: escapeForRegExp,
escapeForRollTemplate: escapeForRollTemplate,
searchAndReplaceFields: findAndReplaceFields,
findAndReplaceFields: findAndReplaceFields,
evaluateExpression: evaluateExpression,
getRowId: getRowId,
getAttributeName: getAttributeName,
evaluateAndSetNumber: evaluateAndSetNumber,
escapeForChatLinkButton: escapeForChatLinkButton,
getDropdownValue: getDropdownValue,
setDropdownValue: setDropdownValue,
getRowTotal: getRowTotal,
updateRowTotal: updateRowTotal,
getRepeatingIDStr: getRepeatingIDStr,
validNumericStr: validNumericStr,
trimBoth: trimBoth
};
}());
//calculate current wounds//
//calculate armor points //
on('change:repeating_armor', function(){
TAS.repeating('armor')
.attrs('ArmourAPHead','ArmourAPRightArm','ArmourAPLeftArm','ArmourAPBody','ArmourAPRightLeg','ArmourAPLeftLeg','ArmourAPShield','Current_TB')
.fields('ArmourHead','ArmourRArm','ArmourLArm','ArmourBody','ArmourRLeg','ArmourLLeg','ArmourShield','ArmourPoints')
.reduce(function(m,r){
m.totalheadAP += (r.I.ArmourHead*r.I.ArmourPoints);
m.totalRArmAP += (r.I.ArmourRArm*r.I.ArmourPoints);
m.totalLArmAP += (r.I.ArmourLArm*r.I.ArmourPoints);
m.totalBodyAP += (r.I.ArmourBody*r.I.ArmourPoints);
m.totalRLegAP += (r.I.ArmourRLeg*r.I.ArmourPoints);
m.totalLLegAP += (r.I.ArmourLLeg*r.I.ArmourPoints);
m.totalShieldAP += (r.I.ArmourShield*r.I.ArmourPoints);
return m;
},{totalheadAP:0,totalRArmAP:0,totalLArmAP:0,totalBodyAP:0,totalRLegAP:0,totalLLegAP:0,totalShieldAP:0},function(m,r,a){
a.I.ArmourAPHead = m.totalheadAP;
a.I.ArmourAPRightArm = m.totalRArmAP;
a.I.ArmourAPLeftArm = m.totalLArmAP;
a.I.ArmourAPBody = m.totalBodyAP;
a.I.ArmourAPRightLeg = m.totalRLegAP;
a.I.ArmourAPLeftLeg = m.totalLLegAP;
a.I.ArmourAPShield = m.totalShieldAP;
})
.execute();
TAS.repeatingSimpleSum('armor','ArmourEnc','character_EncumbranceArmour');
});
//Update Trappings Enc
on('change:repeating_trappings', function(){
TAS.repeating('trappings')
.attrs('character_EncumbranceTrappings')
.fields('TrappingHeld','TrappingWeight')
.reduce(function(m,r){
m.totalheld += (r.I.TrappingHeld*r.I.TrappingWeight);
return m;
},{totalheld:0},function(m,r,a){
a.I.character_EncumbranceTrappings = m.totalheld;
})
.execute();
});
//Update Weapon Enc
on('change:repeating_weapons', function(){
TAS.repeating('weapons')
.attrs('character_EncumbranceWeapons')
.fields('WeaponHeld','WeaponEnc')
.reduce(function(m,r){
m.totalheld += (r.I.WeaponHeld*r.I.WeaponEnc);
return m;
},{totalheld:0},function(m,r,a){
a.I.character_EncumbranceWeapons = m.totalheld;
})
.execute();
});
on('change:repeating_advancements', function(){
TAS.repeating('advancements') //< set the repeating group we are using
.attrs('character_SpentExperience') //< specify we want access to the total_weight attribute
.fields('advancement1xp', 'advancement2xp', 'advancement3xp') //< specify we want the item and weight repeating fields
.reduce(function(memo,row,attrSet,id,rowSet)
{
memo.total += row.I.advancement1xp;
memo.total += row.I.advancement2xp;
memo.total += row.I.advancement3xp;
return memo;
},{total: 0},function(memo,rowSet,attrSet)
{
attrSet.I.character_SpentExperience = memo.total;
})
.execute();
});
on('change:Wounds_SB_Opt change:Wounds_TB_Opt change:Wounds_WPB_Opt change:Current_SB change:Current_TB change:Current_WPB change:Wounds_Size_Opt change:Wounds_Hardy_Opt change:Wounds_Mod', function(){
getAttrs(["Wounds_Size", "Wounds_hidden"], function(value)
{
setAttrs({Wounds_hidden: 0});
setAttrs({Wounds_hidden: value.Wounds_Size});
});
});
</script>