mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
4965 lines
274 KiB
HTML
4965 lines
274 KiB
HTML
<!-- 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) †</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) †</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" >†= 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, '{{'],
|
||
[/\}\}/g, '}}'],
|
||
[/\(/g, '('],
|
||
[/\)/g, ')'],
|
||
[/\,/g, ','],
|
||
[/\?/g, '?'],
|
||
[/'/g, '''],
|
||
[/"/g, '"'],
|
||
[/\=/g, '='] ];
|
||
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, '{{');
|
||
},
|
||
/** 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,'[').replace(/\]/g,']');
|
||
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>
|