· 6 years ago · Aug 12, 2019, 09:30 AM
1 <!-- WARHAMMER FANTASY ROLEPLAY 4th EDITION CHARACTER SHEET -->
2 <!-- Authors; Arioch1973, Alondaar, Havoc, Oxycutor, Realitor, Medieve -->
3 <!-- Version 1.7 -->
4
5<!-- Character Sheet Start -->
6
7
8 <!--- Header ---->
9 <div class="sheet-col" style="text-align:center; width:100%">
10 <img src="https://i.imgur.com/GWtPsPd.png" style="max-height: 75px;" />
11 </div>
12 <br><br>
13 <!-- for future, possible GM tabs
14 <input type='radio' name="attr_main_show" class="sheet-tab sheet-tabPC" value="1" checked/>
15<label class="sheet-tab" >PC</label>
16 <input type='radio' name="attr_main_show" class="sheet-tab sheet-tabGM" value="2" />
17<label class="sheet-tab" >GM</label>
18 <br>
19 <br>
20
21<div class="sheet-tab-content sheet-tabPC"> -->
22<div>
23 <input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabMain" value="1" checked/>
24<label class="sheet-tab" >Main</label>
25<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabSkillsTalents" value="2" />
26<label class="sheet-tab" >Skills & Talents</label>
27 <input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabGearMagic" value="3" />
28<label class="sheet-tab" >Gear & Magic</label>
29 <input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabInformation" value="4" />
30<label class="sheet-tab" >Information</label>
31<input type='radio' name="attr_npc-show" class="sheet-tab sheet-tabExperience" value="5" />
32<label class="sheet-tab" >Experience</label>
33<input type='radio' name="attr_npc-show" class="sheet-arrow sheet-tabAll" style="width:30px" value="99" /><span></span>
34
35
36<div class="sheet-tab-content sheet-tabMain">
37<div class="sheet-wrapper">
38 <div class="sheet-col" style="text-align:center; width:100%">
39 </div>
40 <table>
41 <tr>
42 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Name" >Name</label>
43 </td>
44 <td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_name" />
45 </td>
46 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Species" >Species</label>
47 </td>
48 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Species" />
49 </td>
50 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Class">Class</label>
51 </td>
52 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Class" />
53 </td>
54 </tr>
55 <tr>
56 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career">Career</label>
57 </td>
58 <td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_Career" />
59 </td>
60 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career-tier" >Career Tier</label>
61 </td>
62 <td style="text-align:center" COLSPAN=3><input type="text" name="attr_character_CareerTier" />
63 </td>
64 </tr>
65 <tr>
66 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Career-Path" >Career Path</label>
67 </td>
68 <td style="text-align:center; width:15%" COLSPAN=5><input type="text" name="attr_character_CareerPath" />
69 </td>
70 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Status" >Status</label>
71 </td>
72 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Status" />
73 </td>
74 </tr>
75 <tr>
76 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Age" >Age</label>
77 </td>
78 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Age" />
79 </td>
80 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Height" >Height</label>
81 </td>
82 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Height" />
83 </td>
84 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Hair" >Hair</label>
85 </td>
86 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Hair" />
87 </td>
88 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Eyes">Eyes</label>
89 </td>
90 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Eyes" />
91 </td>
92 </tr>
93 <tr>
94 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Nationality" >Nationality</label>
95 </td>
96 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Nationality" />
97 </td>
98 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Birthplace" >Birthplace</label>
99 </td>
100 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Birthplace" />
101 </td>
102 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Religion" >Religion</label>
103 </td>
104 <td style="text-align:center; width:15%"><input type="text" name="attr_character_Religion" />
105 </td>
106 <td style="text-align:Right; width:10%"><label style="text-align:Right" data-i18n="Star-sign" >Star Sign</label>
107 </td>
108 <td style="text-align:center; width:15%"><input type="text" name="attr_character_StarSign" />
109 </td>
110 </tr>
111 </table>
112
113<!-- Characteristics -->
114 <hr>
115
116 <div class="sheet-col sheet-tablealt" style="width:50%">
117 <div class="sheet-tablewrapper">
118 <table>
119 <tr>
120 <th COLSPAN=11><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="CHARACTERISTICS">CHARACTERISTICS</label></div>
121 </th>
122 </tr>
123
124 <tr class="sheet-bluelabel">
125 <td style="text-align:center; width:16.5%">
126 </td>
127 <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>
128 </td>
129 <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>
130 </td>
131 <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>
132 </td>
133 <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>
134 </td>
135 <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>
136 </td>
137 <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>
138 </td>
139 <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>
140 </td>
141 <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>
142 </td>
143 <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>
144 </td>
145 <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>
146 </td>
147 </tr>
148 <tr>
149
150 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Career" >Career</label>
151 </td>
152 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_WS_CareerAdvance" /><span style="text-align:center"></span>
153 </td>
154 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_BS_CareerAdvance" /><span style="text-align:center"></span>
155 </td>
156 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_S_CareerAdvance" /><span style="text-align:center"></span>
157 </td>
158 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_T_CareerAdvance" /><span style="text-align:center"></span>
159 </td>
160 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_I_CareerAdvance" /><span style="text-align:center"></span>
161 </td>
162 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Ag_CareerAdvance" /><span style="text-align:center"></span>
163 </td>
164 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Dex_CareerAdvance" /><span style="text-align:center"></span>
165 </td>
166 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Int_CareerAdvance" /><span style="text-align:center"></span>
167 </td>
168 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_WP_CareerAdvance" /><span style="text-align:center"></span>
169 </td>
170 <td style="text-align:left; width:8.3%"><input type="checkbox" value="1" name="attr_Fel_CareerAdvance" /><span style="text-align:center"></span>
171 </td>
172 </tr>
173 <tr>
174 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Initial" >Initial</label>
175 </td>
176 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WS" style="text-align:center" value="0"/>
177 </td>
178 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_BS" style="text-align:center" value="0"/>
179 </td>
180 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_S" style="text-align:center" value="0"/>
181 </td>
182 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_T" style="text-align:center" value="0"/>
183 </td>
184 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_I" style="text-align:center" value="0"/>
185 </td>
186 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Ag" style="text-align:center" value="0"/>
187 </td>
188 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Dex" style="text-align:center" value="0"/>
189 </td>
190 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Int" style="text-align:center" value="0"/>
191 </td>
192 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_WP" style="text-align:center" value="0"/>
193 </td>
194 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Initial_Fel" style="text-align:center" value="0"/>
195 </td>
196 </tr>
197 <tr>
198 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Talents" >Talents</label>
199 </td>
200 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_WS" style="text-align:center" value="0"/>
201 </td>
202 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_BS" style="text-align:center" value="0"/>
203 </td>
204 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_S" style="text-align:center" value="0"/>
205 </td>
206 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_T" style="text-align:center" value="0"/>
207 </td>
208 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_I" style="text-align:center" value="0"/>
209 </td>
210 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Ag" style="text-align:center" value="0"/>
211 </td>
212 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Dex" style="text-align:center" value="0"/>
213 </td>
214 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Int" style="text-align:center" value="0"/>
215 </td>
216 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_WP" style="text-align:center" value="0"/>
217 </td>
218 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Talent_Fel" style="text-align:center" value="0"/>
219 </td>
220 </tr>
221 <tr>
222 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Advances" >Advances</label>
223 </td>
224 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_WS" style="text-align:center" value="0"/>
225 </td>
226 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_BS" style="text-align:center" value="0"/>
227 </td>
228 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_S" style="text-align:center" value="0"/>
229 </td>
230 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_T" style="text-align:center" value="0"/>
231 </td>
232 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_I" style="text-align:center" value="0"/>
233 </td>
234 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Ag" style="text-align:center" value="0"/>
235 </td>
236 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Dex" style="text-align:center" value="0"/>
237 </td>
238 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Int" style="text-align:center" value="0"/>
239 </td>
240 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_WP" style="text-align:center" value="0"/>
241 </td>
242 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Advances_Fel" style="text-align:center" value="0"/>
243 </td>
244 </tr>
245 <tr>
246 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Modifier" >Modifier</label>
247 </td>
248 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WS" style="text-align:center" value="0"/>
249 </td>
250 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_BS" style="text-align:center" value="0"/>
251 </td>
252 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_S" style="text-align:center" value="0"/>
253 </td>
254 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_T" style="text-align:center" value="0"/>
255 </td>
256 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_I" style="text-align:center" value="0"/>
257 </td>
258 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Ag" style="text-align:center" value="0"/>
259 </td>
260 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Dex" style="text-align:center" value="0"/>
261 </td>
262 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Int" style="text-align:center" value="0"/>
263 </td>
264 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WP" style="text-align:center" value="0"/>
265 </td>
266 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_Fel" style="text-align:center" value="0"/>
267 </td>
268 </tr>
269 <tr>
270 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Current" >Current</label>
271 </td>
272 <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})"/>
273 </td>
274 <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})"/>
275 </td>
276 <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})"/>
277 </td>
278 <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})"/>
279 </td>
280 <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})"/>
281 </td>
282 <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})"/>
283 </td>
284 <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})"/>
285 </td>
286 <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})"/>
287 </td>
288 <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})"/>
289 </td>
290 <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})"/>
291 </td>
292 </tr>
293
294<!-- Characteristic Bonuses -->
295 <tr>
296 <th COLSPAN=11><label style="text-align:center" data-i18n="CHARACTERISTICS BONUSES">CHARACTERISTICS BONUSES</label>
297 </th>
298 </tr>
299 <tr>
300 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Initial" >Initial</label>
301 </td>
302 <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)"/>
303 </td>
304 <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)"/>
305 </td>
306 <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)"/>
307 </td>
308 <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)"/>
309 </td>
310 <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)"/>
311 </td>
312 <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)"/>
313 </td>
314 <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)"/>
315 </td>
316 <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)"/>
317 </td>
318 <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)"/>
319 </td>
320 <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)"/>
321 </td>
322 </tr>
323 <tr>
324 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Modifier" >Modifier</label>
325 </td>
326 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WSB" style="text-align:center" value="0"/>
327 </td>
328 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_BSB" style="text-align:center" value="0"/>
329 </td>
330 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_SB" style="text-align:center" value="0"/>
331 </td>
332 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_TB" style="text-align:center" value="0"/>
333 </td>
334 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_IB" style="text-align:center" value="0"/>
335 </td>
336 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_AgB" style="text-align:center" value="0"/>
337 </td>
338 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_DexB" style="text-align:center" value="0"/>
339 </td>
340 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_IntB" style="text-align:center" value="0"/>
341 </td>
342 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_WPB" style="text-align:center" value="0"/>
343 </td>
344 <td style="text-align:center; width:8.3%"><input type="number" name="attr_Modifier_FelB" style="text-align:center" value="0"/>
345 </td>
346 </tr>
347 <tr>
348 <td style="text-align:center; width:16.5%"><label style="text-align:center" data-i18n="Current" >Current</label>
349 </td>
350 <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})"/>
351 </td>
352 <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})"/>
353 </td>
354 <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})"/>
355 </td>
356 <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})"/>
357 </td>
358 <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})"/>
359 </td>
360 <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})"/>
361 </td>
362 <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})"/>
363 </td>
364 <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})"/>
365 </td>
366 <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})"/>
367 </td>
368 <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})"/>
369 </td>
370 </tr>
371 </table>
372 </div>
373 </div>
374
375<!-- Fate, Fortune, Resilience, Resolve, Experience -->
376 <div class="sheet-col" style="width:2%">
377 </div>
378 <div class="sheet-col" style="width:46%">
379 <div>
380 <table style="width:100%">
381 <tr>
382 <th COLSPAN=2><label style="text-align:center" data-i18n="FATE" >FATE</label>
383 </th>
384 <th >
385 </th>
386 <th COLSPAN=2><label style="text-align:center" data-i18n="RESILIENCE">RESILIENCE</label>
387 </th>
388 <th >
389 </th>
390 <th COLSPAN=2><label style="text-align:center" data-i18n="EXPERIENCE" >EXPERIENCE</label>
391 </th>
392 </tr>
393 <tr>
394 <td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Fate" >Fate</label>
395 </td>
396 <td style="text-align:center; width:14%"><input type="number" name="attr_character_Fate" style="text-align:center" value="0"/>
397 </td>
398 <td style="text-align:center; width:2%">
399 </td>
400 <td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Resilience" >Resilience</label>
401 </td>
402 <td style="text-align:center; width:14%"><input type="number" name="attr_character_Resilience" style="text-align:center" value="0"/>
403 </td>
404 <td style="text-align:center; width:2%">
405 </td>
406 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Total" >Total</label>
407 </td>
408 <td style="text-align:center; width:20%"><input type="number" name="attr_character_TotalExperience" style="text-align:center" value="0"/>
409 </td>
410 </tr>
411 <tr>
412 <td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Fortune">Fortune</label>
413 </td>
414 <td style="text-align:center; width:14%"><input type="number" name="attr_character_Fortune" style="text-align:center" value="0"/>
415 </td>
416 <td style="text-align:center; width:2%">
417 </td>
418 <td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Resolve">Resolve</label>
419 </td>
420 <td style="text-align:center; width:14%"><input type="number" name="attr_character_Resolve" style="text-align:center" value="0"/>
421 </td>
422 <td style="text-align:center; width:2%">
423 </td>
424 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Spent">Spent</label>
425 </td>
426 <td style="text-align:center; width:20%"><input type="number" name="attr_character_SpentExperience" style="text-align:center" value="0"/>
427 </td>
428 </tr>
429 <tr>
430 <td style="text-align:center; width:18%"><label style="text-align:center" data-i18n="Motivation">Motivation</label>
431 </td>
432 <td style="text-align:center; width:14%" COLSPAN=4><input type="text" name="attr_character_Motivation" style="text-align:center" value=""/>
433 </td>
434 <td style="text-align:center; width:2%">
435 </td>
436 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Left">Left</label>
437 </td>
438 <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})"/>
439 </td>
440 </tr>
441 <tr>
442 <td style="text-align:center; width:2%">
443 </td>
444 </tr>
445 </table>
446
447<!-- Ambitiions -->
448 <table style="width:100%; text-align:left">
449 <hr>
450 <tr>
451 <th COLSPAN=2><label style="text-align:center" data-i18n="AMBITIONS" >AMBITIONS</label>
452 </th>
453 </tr>
454 <tr>
455 <td style="text-align:center; width:35%"><label style="text-align:left" data-i18n="Personal-Short-Term" >Personal Short Term</label>
456 </td>
457 <td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_ShortTermAmbition" style="text-align:center" value=""/>
458 </td>
459 </tr>
460 <tr>
461 <td style="text-align:center; width:35%"><label style="text-align:left" data-i18n="Personal-Long-Term">Personal Long Term</label>
462 </td>
463 <td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_LongTermAmbition" style="text-align:center" value=""/>
464 </td>
465 </tr>
466 <tr>
467 <td style="text-align:center; width:35%"><label style="text-align:leftr" data-i18n="Party-Short-Term">Party Short Term</label>
468 </td>
469 <td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_PartyShortAmbition" style="text-align:center" value=""/>
470 </td>
471 </tr>
472 <tr>
473 <td style="text-align:center; width:30%"><label style="text-align:leftr" data-i18n="Party-Long-Term">Party Long Term</label>
474 </td>
475 <td style="text-align:center; width:65%" COLSPAN=4><input type="text" name="attr_character_PartyLongAmbition" style="text-align:center" value=""/>
476 </td>
477 </tr>
478 </table>
479 </div>
480 </div>
481
482<!-- Movement and Encumbrance -->
483<br>
484
485<div class="sheet-col sheet-table" style="width:100%">
486 <div class="sheet-col sheet-table" style="width:25%">
487
488<!-- Movement -->
489 <div>
490 <table style="width:100%">
491 <tr>
492 <th COLSPAN=10><label style="text-align:center" data-i18n="MOVEMENT">MOVEMENT</label>
493 </th>
494 </tr>
495 <tr>
496 <td style="text-align:center; width:2%">
497 </td>
498 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="MOVEMENT">Movement</label>
499 </td>
500 <td style="text-align:center; width:10%"><input type="number" name="attr_character_Movement" style="text-align:center" value="0"/>
501 </td>
502 <td style="text-align:center; width:2%">
503 </td>
504 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Walk" >Walk</label>
505 </td>
506 <td style="text-align:center; width:10%"><input type="number" name="attr_character_MovementWalk" style="text-align:center" value="0"/>
507 </td>
508 <td style="text-align:center; width:2%">
509 </td>
510 <td style="text-align:center; width:12%"><label style="text-align:center" data-i18n="Run" >Run</label>
511 </td>
512 <td style="text-align:center; width:10%"><input type="number" name="attr_character_MovementRun" style="text-align:center" value="0"/>
513 </td>
514 <td style="text-align:center; width:2%">
515 </td>
516 </tr>
517 </table><br>
518 <table style="width:100%">
519 <tr>
520 <th COLSPAN=10><label style="text-align:center" data-i18n="INITIATIVE" >INITIATIVE</label>
521 </th>
522 </tr>
523 <tr>
524 <td style="text-align:center; width:2%">
525 </td>
526 <td style="text-align:center; width:41%">
527 <select name="attr_combat_iniative_template" style="width:100%" class="sheet-input-selectbox" >
528 <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>
529 <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>
530 <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>
531 </select>
532 </td>
533 <td style="text-align:center; width:2%">
534 </td>
535 <td style="text-align:center; width:10%"><input type="number" name="attr_character_combatiniative_modifier" style="text-align:center" value="0"/>
536 </td>
537 <td style="text-align:center; width:2%">
538 </td>
539 <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>
540 </td>
541 <td style="text-align:center; width:2%">
542 </td>
543 </tr>
544 </table>
545 </div>
546 </div>
547
548 <div class="sheet-col sheet-table" style="width:12%">
549 </div>
550
551<!-- Encumbrance -->
552
553 <div class="sheet-col sheet-table" style="width:48%">
554 <div>
555 <table style="width:100%">
556 <tr>
557 <th COLSPAN=12><label style="text-align:center" data-i18n="ENCUMBERANCE" >ENCUMBRANCE</label>
558 </th>
559 </tr>
560 <tr>
561 <td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Weapons" >Weapons</label>
562 </td>
563 <td style="text-align:center; width:2%">
564 </td>
565 <td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Armour" >Armour</label>
566 </td>
567 <td style="text-align:center; width:2%">
568 </td>
569 <td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Trappings" >Trappings</label>
570 </td>
571 <td style="text-align:center; width:2%">
572 </td>
573 <td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Total" >Total</label>
574 </td>
575 <td style="text-align:center; width:2%">
576 </td>
577 <td style="text-align:center; width:9%"><label style="text-align:center" data-i18n="Mod" >Mod</label>
578 </td>
579 <td style="text-align:center; width:2%">
580 </td>
581 <td style="text-align:center; width:15%"><label style="text-align:center" data-i18n="Max-Enc" >Max Enc.</label>
582 </td>
583 </tr>
584 <tr>
585 <td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceWeapons" style="text-align:center" value="0" readonly/>
586 </td>
587 <td style="text-align:center; width:2%">
588 </td>
589 <td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceArmour" style="text-align:center" value="0" readonly/>
590 </td>
591 <td style="text-align:center; width:2%">
592 </td>
593 <td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceTrappings" style="text-align:center" value="0" readonly/>
594 </td>
595 <td style="text-align:center; width:2%">
596 </td>
597 <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 />
598 </td>
599 <td style="text-align:center; width:2%">
600 </td>
601 <td style="text-align:center; width:9%"><input type="number" name="attr_character_EncumbranceMod" style="text-align:center" value="0" />
602 </td>
603 <td style="text-align:center; width:2%">
604 </td>
605 <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>
606 </td>
607 </tr>
608 </table>
609 </div>
610 </div>
611</div>
612
613<!-- Wealth -->
614 <br><br>
615 <div class="sheet-col sheet-table" style="width:100%">
616 <div class="sheet-col" style="width:38%">
617 <table style="width:100%">
618 <tr>
619 <th COLSPAN=3><label style="text-align:center" data-i18n="WEALTH" >WEALTH</label>
620 </th>
621 </tr>
622 <tr>
623 <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">
624 </td>
625 <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">
626 </td>
627 <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">
628 </td>
629 </tr>
630 <tr>
631 <td style="text-align:center; width:33%"><input type="number" name="attr_character_Gold" style="text-align:center; font-size:0.9em;" value="0"/>
632 </td>
633 <td style="text-align:center; width:33%"><input type="number" name="attr_character_Silver" style="text-align:center; font-size:0.9em;" value="0"/>
634 </td>
635 <td style="text-align:center; width:33%"><input type="number" name="attr_character_Brass" style="text-align:center; font-size:0.9em;" value="0"/>
636 </td>
637 </tr>
638 <tr>
639 <td style="text-align:center; width:33%"><label style="text-align:center;" data-i18n="Total" >Total</label>
640 </td>
641 <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 />
642 </td>
643 <td style="text-align:left; width:33%"><label style="text-align:left; font-size:0.8em;" >d (1GC=20/-=240d)</label>
644 </td>
645 </tr>
646 </table>
647 <!--
648 <tr>
649 <th><label style="text-align:center; font-size:0.8em;">1GC = 20/- = 240d</label></th>
650 </tr>
651 -->
652 </div>
653 <div class="sheet-col " style="width:2%">
654 </div>
655
656<!-- Wounds -->
657 <div class="sheet-col" style="width:58%">
658 <table style="width:100%">
659 <tr>
660 <th COLSPAN=8><label style="text-align:center" data-i18n="WOUNDS" >WOUNDS</label>
661 </th>
662 </tr>
663 <tr>
664 <td style="text-align:center; width:10%">
665 <select name="attr_Wounds_SB_Opt" style="width:100%" class="sheet-input-selectbox">
666 <option value="@{Current_SB}*3" >SBx3</option>
667 <option value="@{Current_SB}*2" >SBx2</option>
668 <option value="@{Current_SB}" selected >SB</option>
669 <option value="0"><b>-</b></option>
670 </select>
671 </td>
672 <td style="text-align:center; width:10%">
673 <select name="attr_Wounds_TB_Opt" style="width:100%" class="sheet-input-selectbox" >
674 <option value="@{Current_TB}*3" >TBx3</option>
675 <option value="@{Current_TB}*2" selected >TBx2</option>
676 <option value="@{Current_TB}" >TB</option>
677 <option value="0"><b>-</b></option>
678 </select>
679 </td>
680 <td style="text-align:center; width:10%">
681 <select name="attr_Wounds_WPB_Opt" style="width:100%" class="sheet-input-selectbox" >
682 <option value="@{Current_WPB}*3" >WPBx3</option>
683 <option value="@{Current_WPB}*2" >WPBx2</option>
684 <option value="@{Current_WPB}" selected >WPB</option>
685 <option value="0"><b>-</b></option>
686 </select>
687 </td>
688<!-- Hardy Option -->
689 <td style="text-align:center; width:15%">
690 <select name="attr_Wounds_Hardy_Opt" style="width:100%" class="sheet-input-selectbox" >
691 <option value="0" selected data-i18n="Hardy">Hardy</option>
692 <option value="@{Current_TB}" data-i18n="Hardy-1"><b>Hardy:1</b></option>
693 <option value="@{Current_TB}*2" data-i18n="Hardy-2"><b>Hardy:2</b></option>
694 <option value="@{Current_TB}*3" data-i18n="Hardy-3"><b>Hardy:3</b></option>
695 <option value="@{Current_TB}*4" data-i18n="Hardy-4"><b>Hardy:4</b></option>
696 <option value="@{Current_TB}*5" data-i18n="Hardy-5"><b>Hardy:5</b></option>
697 <option value="@{Current_TB}*6" data-i18n="Hardy-6"><b>Hardy:6</b></option>
698 <option value="@{Current_TB}*7" data-i18n="Hardy-7"><b>Hardy:7</b></option>
699 <option value="@{Current_TB}*8" data-i18n="Hardy-8"><b>Hardy:8</b></option>
700 <option value="@{Current_TB}*9" data-i18n="Hardy-9"><b>Hardy:9</b></option>
701 <option value="@{Current_TB}*10" data-i18n="Hardy-10"><b>Hardy:10</b></option>
702 </select>
703 </td>
704
705<!-- Wound Size Option -->
706 <td style="text-align:center; width:20%">
707 <select name="attr_Wounds_Size_Opt" style="width:100%" class="sheet-input-selectbox" >
708 <option type="hidden" value="floor((1)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Tiny"><b>Tiny</b></option>
709 <option type="hidden" value="floor((@{Wounds_TB})+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Little"><b>Little</b></option>
710 <option type="hidden" value="floor(((@{Wounds_TB}+@{Wounds_WPB})*1)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Small"><b>Small</b></option>
711 <option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*1)+@{Wounds_Mod}+@{Wounds_Hardy})" selected data-i18n="Average"><b>Average</b></option>
712 <option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*2)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Large" ><b>Large</b></option>
713 <option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*4)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Enormous" ><b>Enormous</b></option>
714 <option type="hidden" value="floor(((@{Wounds_SB}+@{Wounds_TB}+@{Wounds_WPB})*8)+@{Wounds_Mod}+@{Wounds_Hardy})" data-i18n="Monstrous" ><b>Monstrous</b></option>
715 </select>
716 </td>
717 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod" >Mod</label>
718 </td>
719 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Current" >Current</label>
720 </td>
721 <td style="text-align:center; width:1%">
722 </td>
723 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Maximum" >Maximum</label>
724 </td>
725 </tr>
726 <tr>
727 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_SB" style="text-align:center" value="floor(@{Wounds_SB_Opt})" disabled />
728 </td>
729 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_TB" style="text-align:center" value="floor(@{Wounds_TB_Opt})" disabled />
730 </td>
731 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_WPB" style="text-align:center" value="floor(@{Wounds_WPB_Opt})" disabled />
732 </td>
733 <td style="text-align:center; width:15%"><input type="number" name="attr_Wounds_Hardy" style="text-align:center" value="floor(@{Wounds_Hardy_Opt})" disabled />
734 </td>
735 <td style="text-align:center; width:20%"><input type="number" name="attr_Wounds_Size" style="text-align:center" value="floor(@{Wounds_Size_Opt})" disabled />
736 </td>
737 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_Mod" style="text-align:center" value="0" />
738 </td>
739 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds" id="CurrentWounds" style="text-align:center" value="0"/>
740 </td>
741 <td style="text-align:center; width:1%">
742 </td>
743 <td style="text-align:center; width:10%"><input type="number" name="attr_Wounds_max" style="text-align:center" value="@{Wounds_hidden}" disabled />
744 </td>
745 </tr>
746 </table>
747 <input type="hidden" name="attr_Wounds_hidden" style="text-align:center" value="0" />
748 </div>
749</div>
750</div>
751</div>
752
753
754<div class="sheet-tab-content sheet-tabSkillsTalents">
755<div class="sheet-wrapper">
756
757
758<!-- Basic Skills -->
759 <br>
760 <div class="sheet-col sheet-tablealt" style="width:48%">
761 <div class="sheet-tablewrapper" style="width: 95%">
762 <table style="width:100%">
763 <tr>
764 <th COLSPAN=9><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="BASIC SKILLS" >BASIC SKILLS</label></div>
765 </th>
766 </tr>
767 <tr>
768 <td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
769 </td>
770 <td style="text-align:center; width:8%">
771 </td>
772 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
773 </td>
774 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
775 </td>
776 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
777 </td>
778 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
779 </td>
780 <td style="text-align:center; width:10%">
781 </td>
782
783 </tr>
784
785<!-- Art Skill -->
786 <tr>
787 <td style="width:42%;text-align:left"><i><span data-i18n="Art" >Art</span></i>
788 </td>
789 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ArtCareerSkill" /><span></span>
790 </td>
791 <td style="width:10%">
792 <select name="attr_Art_char" style="width:100%" class="sheet-input-selectbox" >
793 <option value="@{Current_WS}" data-i18n="WS-p" >(WS)</option>
794 <option value="@{Current_BS}" data-i18n="BS-p" >(BS)</option>
795 <option value="@{Current_S}" data-i18n="S-p" >(S)</option>
796 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
797 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
798 <option value="@{Current_Ag}" data-i18n="Ag-p" >(Ag)</option>
799 <option value="@{Current_Dex}" selected data-i18n="Dex-p">(Dex)</option>
800 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
801 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
802 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
803 </select>
804 </td>
805 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Art_adv" value="0" />
806 </td>
807 <td style="width:10%">
808 <input type="number" style="text-align:center;" name="attr_Art_mod" value="0" />
809 </td>
810 <td style="width:10%">
811 <input class="cursorbutton" type="number" name="attr_Art" style="text-align:center;" value="floor(@{Art_char}+@{Art_adv}+@{Art_mod})" disabled="true"/>
812 </td>
813 <td style="width:10%">
814 <button type="roll" style="width:90%" name="roll_Art" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Art}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Art} ]]}}">
815 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
816 </button>
817 </td>
818 </tr>
819
820 <tr>
821 <td style="width:42%;text-align:left"><span data-i18n="Athletics">Athletics</span>
822 </td>
823 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_AthleticsCareerSkill" /><span></span>
824 </td>
825 <td style="width:10%">
826 <select name="attr_Athletics_char" style="width:100%" class="sheet-input-selectbox" >
827 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
828 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
829 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
830 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
831 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
832 <option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
833 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
834 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
835 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
836 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
837 </select>
838 </td>
839 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Athletics_adv" value="0" />
840 </td>
841 <td style="width:10%">
842 <input type="number" style="text-align:center;" name="attr_Athletics_mod" value="0" />
843 </td>
844 <td style="width:10%">
845 <input type="number" name="attr_Athletics" style="text-align:center;" value="floor(@{Athletics_char}+@{Athletics_adv}+@{Athletics_mod})" disabled="true"/>
846 </td>
847 <td style="width:10%">
848 <button type="roll" style="width:90%" name="roll_Athletics" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Athletics}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Athletics} ]]}}">
849 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
850 </button>
851 </td>
852 </tr>
853
854 <tr>
855 <td style="width:42%;text-align:left" data-i18n="Bribery">Bribery</td>
856 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_BriberyCareerSkill" /><span></span>
857 </td>
858 <td style="width:10%">
859 <select name="attr_Bribery_char" style="width:100%" class="sheet-input-selectbox" >
860 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
861 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
862 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
863 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
864 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
865 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
866 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
867 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
868 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
869 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
870 </select>
871 </td>
872 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Bribery_adv" value="0" />
873 </td>
874 <td style="width:10%">
875 <input type="number" style="text-align:center;" name="attr_Bribery_mod" value="0" />
876 </td>
877 <td style="width:10%">
878 <input type="number" name="attr_Bribery" style="text-align:center;" value="floor(@{Bribery_char}+@{Bribery_adv}+@{Bribery_mod})" disabled="true"/>
879 </td>
880 <td style="width:10%">
881 <button type="roll" style="width:90%" name="roll_Bribery" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Bribery}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Bribery} ]]}}">
882 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
883 </button>
884 </td>
885 </tr>
886
887 <tr>
888 <td style="width:42%;text-align:left" data-i18n="Charm" >Charm</td>
889 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CharmCareerSkill" /><span></span>
890 </td>
891 <td style="width:10%">
892 <select name="attr_Charm_char" style="width:100%" class="sheet-input-selectbox" >
893 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
894 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
895 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
896 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
897 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
898 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
899 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
900 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
901 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
902 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
903 </select>
904 </td>
905 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Charm_adv" value="0" />
906 </td>
907 <td style="width:10%">
908 <input type="number" style="text-align:center;" name="attr_Charm_mod" value="0" />
909 </td>
910 <td style="width:10%">
911 <input type="number" name="attr_Charm" style="text-align:center;" value="floor(@{Charm_char}+@{Charm_adv}+@{Charm_mod})" disabled="true"/>
912 </td>
913 <td style="width:10%">
914 <button type="roll" style="width:90%" name="roll_Charm" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Charm}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Charm} ]]}}">
915 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
916 </button>
917 </td>
918 </tr>
919
920 <tr>
921 <td style="width:42%;text-align:left" data-i18n="Charm-Animal">Charm Animal</td>
922 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CharmAnimalCareerSkill" /><span></span>
923 </td>
924 <td style="width:10%">
925 <select name="attr_CharmAnimal_char" style="width:100%" class="sheet-input-selectbox" >
926 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
927 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
928 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
929 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
930 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
931 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
932 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
933 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
934 <option value="@{Current_WP}" selected data-i18n="WP-p">(WP)</option>
935 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
936 </select>
937 </td>
938 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_CharmAnimal_adv" value="0" />
939 </td>
940 <td style="width:10%">
941 <input type="number" style="text-align:center;" name="attr_CharmAnimal_mod" value="0" />
942 </td>
943 <td style="width:10%">
944 <input type="number" name="attr_CharmAnimal" style="text-align:center;" value="floor(@{CharmAnimal_char}+@{CharmAnimal_adv}+@{CharmAnimal_mod})" disabled="true"/>
945 </td>
946 <td style="width:10%">
947 <button type="roll" style="width:90%" name="roll_CharmAnimal" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Charm Animal}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{CharmAnimal} ]]}}">
948 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
949 </button>
950 </td>
951 </tr>
952
953 <tr>
954 <td style="width:42%;text-align:left" data-i18n="Climb" >Climb</td>
955 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ClimbCareerSkill" /><span></span>
956 </td>
957 <td style="width:10%">
958 <select name="attr_Climb_char" style="width:100%" class="sheet-input-selectbox" >
959 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
960 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
961 <option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
962 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
963 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
964 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
965 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
966 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
967 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
968 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
969 </select>
970 </td>
971 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Climb_adv" value="0" />
972 </td>
973 <td style="width:10%">
974 <input type="number" style="text-align:center;" name="attr_Climb_mod" value="0" />
975 </td>
976 <td style="width:10%">
977 <input type="number" name="attr_Climb" style="text-align:center;" value="floor(@{Climb_char}+@{Climb_adv}+@{Climb_mod})" disabled="true"/>
978 </td>
979 <td style="width:10%">
980 <button type="roll" style="width:90%" name="roll_Climb" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Climb}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Climb} ]]}}">
981 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
982 </button>
983 </td>
984 </tr>
985
986 <tr>
987 <td style="width:42%;text-align:left" data-i18n="Cool">Cool</td>
988 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_CoolCareerSkill" /><span></span>
989 </td>
990 <td style="width:10%">
991 <select name="attr_Cool_char" style="width:100%" class="sheet-input-selectbox" >
992 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
993 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
994 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
995 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
996 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
997 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
998 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
999 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1000 <option value="@{Current_WP}" selected data-i18n="WP-p">(WP)</option>
1001 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1002 </select>
1003 </td>
1004 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Cool_adv" value="0" />
1005 </td>
1006 <td style="width:10%">
1007 <input type="number" style="text-align:center;" name="attr_Cool_mod" value="0" />
1008 </td>
1009 <td style="width:10%">
1010 <input type="number" name="attr_Cool" style="text-align:center;" value="floor(@{Cool_char}+@{Cool_adv}+@{Cool_mod})" disabled="true"/>
1011 </td>
1012 <td style="width:10%">
1013 <button type="roll" style="width:90%" name="roll_Cool" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Cool}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Cool} ]]}}">
1014 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1015 </button>
1016 </td>
1017 </tr>
1018
1019 <tr>
1020 <td style="width:42%;text-align:left" data-i18n="Consume Alcohol" >Consume Alcohol</td>
1021 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_ConsumeAlcoholCareerSkill" /><span></span>
1022 </td>
1023 <td style="width:10%">
1024 <select name="attr_ConsumeAlcohol_char" style="width:100%" class="sheet-input-selectbox" >
1025 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1026 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1027 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1028 <option value="@{Current_T}" selected data-i18n="T-p">(T)</option>
1029 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1030 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1031 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1032 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1033 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1034 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1035 </select>
1036 </td>
1037 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_ConsumeAlcohol_adv" value="0" />
1038 </td>
1039 <td style="width:10%">
1040 <input type="number" style="text-align:center;" name="attr_ConsumeAlcohol_mod" value="0" />
1041 </td>
1042 <td style="width:10%">
1043 <input type="number" name="attr_ConsumeAlcohol" style="text-align:center;" value="floor(@{ConsumeAlcohol_char}+@{ConsumeAlcohol_adv}+@{ConsumeAlcohol_mod})" disabled="true"/>
1044 </td>
1045 <td style="width:10%">
1046 <button type="roll" style="width:90%" name="roll_ConsumeAlcohol" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Consume Alcohol}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{ConsumeAlcohol} ]]}}">
1047 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1048 </button>
1049 </td>
1050 </tr>
1051 <tr>
1052 <td style="width:42%;text-align:left" data-i18n="Dodge" >Dodge
1053 </td>
1054 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_DodgeCareerSkill" /><span></span>
1055 </td>
1056 <td style="width:10%">
1057 <select name="attr_Dodge_char" style="width:100%" class="sheet-input-selectbox" >
1058 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1059 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1060 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1061 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1062 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1063 <option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
1064 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1065 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1066 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1067 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1068 </select>
1069 </td>
1070 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Dodge_adv" value="0" />
1071 </td>
1072 <td style="width:10%">
1073 <input type="number" style="text-align:center;" name="attr_Dodge_mod" value="0" />
1074 </td>
1075 <td style="width:10%">
1076 <input type="number" name="attr_Dodge" style="text-align:center;" value="floor(@{Dodge_char}+@{Dodge_adv}+@{Dodge_mod})" disabled="true"/>
1077 </td>
1078 <td style="width:10%">
1079 <button type="roll" style="width:90%" name="roll_Dodge" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Dodge}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Dodge} ]]}}">
1080 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1081 </button>
1082 </td>
1083 </tr>
1084
1085 <tr>
1086 <td style="width:42%;text-align:left" data-i18n="Drive" >Drive</td>
1087 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_DriveCareerSkill" /><span></span>
1088 </td>
1089 <td style="width:10%">
1090 <select name="attr_Drive_char" style="width:100%" class="sheet-input-selectbox" >
1091 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1092 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1093 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1094 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1095 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1096 <option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
1097 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1098 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1099 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1100 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1101 </select>
1102 </td>
1103 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Drive_adv" value="0" />
1104 </td>
1105 <td style="width:10%">
1106 <input type="number" style="text-align:center;" name="attr_Drive_mod" value="0" />
1107 </td>
1108 <td style="width:10%">
1109 <input type="number" name="attr_Drive" style="text-align:center;" value="floor(@{Drive_char}+@{Drive_adv}+@{Drive_mod})" disabled="true"/>
1110 </td>
1111 <td style="width:10%">
1112 <button type="roll" style="width:90%" name="roll_Drive" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Drive}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Drive} ]]}}">
1113 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1114 </button>
1115 </td>
1116 </tr>
1117
1118 <tr>
1119 <td style="width:42%;text-align:left" data-i18n="Endurance" >Endurance</td>
1120 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_EnduranceCareerSkill" /><span></span>
1121 </td>
1122 <td style="width:10%">
1123 <select name="attr_Endurance_char" style="width:100%" class="sheet-input-selectbox" >
1124 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1125 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1126 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1127 <option value="@{Current_T}" selected data-i18n="T-p">(T)</option>
1128 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1129 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1130 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1131 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1132 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1133 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1134 </select>
1135 </td>
1136 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Endurance_adv" value="0" />
1137 </td>
1138 <td style="width:10%">
1139 <input type="number" style="text-align:center;" name="attr_Endurance_mod" value="0" />
1140 </td>
1141 <td style="width:10%">
1142 <input type="number" name="attr_Endurance" style="text-align:center;" value="floor(@{Endurance_char}+@{Endurance_adv}+@{Endurance_mod})" disabled="true"/>
1143 </td>
1144 <td style="width:10%">
1145 <button type="roll" style="width:90%" name="roll_Endurance" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Endurance}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Endurance} ]]}}">
1146 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1147 </button>
1148 </td>
1149 </tr>
1150
1151 <tr>
1152 <td style="width:42%;text-align:left"><i><span data-i18n="Entertain" >Entertain</span></i></td>
1153 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_EntertainCareerSkill" /><span></span>
1154 </td>
1155 <td style="width:10%">
1156 <select name="attr_Entertain_char" style="width:100%" class="sheet-input-selectbox" >
1157 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1158 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1159 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1160 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1161 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1162 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1163 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1164 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1165 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1166 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
1167 </select>
1168 </td>
1169 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Entertain_adv" value="0" />
1170 </td>
1171 <td style="width:10%">
1172 <input type="number" style="text-align:center;" name="attr_Entertain_mod" value="0" />
1173 </td>
1174 <td style="width:10%">
1175 <input type="number" name="attr_Entertain" style="text-align:center;" value="floor(@{Entertain_char}+@{Entertain_adv}+@{Entertain_mod})" disabled="true"/>
1176 </td>
1177 <td style="width:10%">
1178 <button type="roll" style="width:90%" name="roll_Entertain" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Entertain}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Entertain} ]]}}">
1179 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1180 </button>
1181 </td>
1182 </tr>
1183
1184 <tr>
1185 <td style="width:42%;text-align:left" data-i18n="Gamble">Gamble</td>
1186 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_GambleCareerSkill" /><span></span>
1187 </td>
1188 <td style="width:10%">
1189 <select name="attr_Gamble_char" style="width:100%" class="sheet-input-selectbox" >
1190 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1191 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1192 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1193 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1194 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1195 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1196 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1197 <option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
1198 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1199 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1200 </select>
1201 </td>
1202 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Gamble_adv" value="0" />
1203 </td>
1204 <td style="width:10%">
1205 <input type="number" style="text-align:center;" name="attr_Gamble_mod" value="0" />
1206 </td>
1207 <td style="width:10%">
1208 <input type="number" name="attr_Gamble" style="text-align:center;" value="floor(@{Gamble_char}+@{Gamble_adv}+@{Gamble_mod})" disabled="true"/>
1209 </td>
1210 <td style="width:10%">
1211 <button type="roll" style="width:90%" name="roll_Gamble" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Gamble}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Gamble} ]]}}">
1212 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1213 </button>
1214 </td>
1215 </tr>
1216
1217 <tr>
1218 <td style="width:42%;text-align:left" data-i18n="Gossip" >Gossip</td>
1219 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_GossipCareerSkill" /><span></span>
1220 </td>
1221 <td style="width:10%">
1222 <select name="attr_Gossip_char" style="width:100%" class="sheet-input-selectbox" >
1223 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1224 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1225 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1226 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1227 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1228 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1229 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1230 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1231 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1232 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
1233 </select>
1234 </td>
1235 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Gossip_adv" value="0" />
1236 </td>
1237 <td style="width:10%">
1238 <input type="number" style="text-align:center;" name="attr_Gossip_mod" value="0" />
1239 </td>
1240 <td style="width:10%">
1241 <input type="number" name="attr_Gossip" style="text-align:center;" value="floor(@{Gossip_char}+@{Gossip_adv}+@{Gossip_mod})" disabled="true"/>
1242 </td>
1243 <td style="width:10%">
1244 <button type="roll" style="width:90%" name="roll_Gossip" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Gossip}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Gossip} ]]}}">
1245 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1246 </button>
1247 </td>
1248 </tr>
1249
1250 <tr>
1251 <td style="width:42%;text-align:left" data-i18n="Haggle" >Haggle</td>
1252 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_HaggleCareerSkill" /><span></span>
1253 </td>
1254 <td style="width:10%">
1255 <select name="attr_Haggle_char" style="width:100%" class="sheet-input-selectbox" >
1256 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1257 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1258 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1259 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1260 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1261 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1262 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1263 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1264 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1265 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
1266 </select>
1267 </td>
1268 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Haggle_adv" value="0" />
1269 </td>
1270 <td style="width:10%">
1271 <input type="number" style="text-align:center;" name="attr_Haggle_mod" value="0" />
1272 </td>
1273 <td style="width:10%">
1274 <input type="number" name="attr_Haggle" style="text-align:center;" value="floor(@{Haggle_char}+@{Haggle_adv}+@{Haggle_mod})" disabled="true"/>
1275 </td>
1276 <td style="width:10%">
1277 <button type="roll" style="width:90%" name="roll_Haggle" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Haggle}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Haggle} ]]}}">
1278 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1279 </button>
1280 </td>
1281 </tr>
1282
1283 <tr>
1284 <td style="width:42%;text-align:left" data-i18n="Intimidate" >Intimidate</td>
1285 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_IntimidateCareerSkill" /><span></span>
1286 </td>
1287 <td style="width:10%">
1288 <select name="attr_Intimidate_char" style="width:100%" class="sheet-input-selectbox" >
1289 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1290 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1291 <option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
1292 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1293 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1294 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1295 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1296 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1297 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1298 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1299 </select>
1300 </td>
1301 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Intimidate_adv" value="0" />
1302 </td>
1303 <td style="width:10%">
1304 <input type="number" style="text-align:center;" name="attr_Intimidate_mod" value="0" />
1305 </td>
1306 <td style="width:10%">
1307 <input type="number" name="attr_Intimidate" style="text-align:center;" value="floor(@{Intimidate_char}+@{Intimidate_adv}+@{Intimidate_mod})" disabled="true"/>
1308 </td>
1309 <td style="width:10%">
1310 <button type="roll" style="width:90%" name="roll_Intimidate" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Intimidate}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Intimidate} ]]}}">
1311 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1312 </button>
1313 </td>
1314 </tr>
1315
1316 <tr>
1317 <td style="width:42%;text-align:left" data-i18n="Intuition">Intuition</td>
1318 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_IntutitionCareerSkill" /><span></span>
1319 </td>
1320 <td style="width:10%">
1321 <select name="attr_Intuition_char" style="width:100%" class="sheet-input-selectbox" >
1322 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1323 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1324 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1325 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1326 <option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
1327 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1328 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1329 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1330 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1331 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1332 </select>
1333 </td>
1334 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Intuition_adv" value="0" />
1335 </td>
1336 <td style="width:10%">
1337 <input type="number" style="text-align:center;" name="attr_Intuition_mod" value="0" />
1338 </td>
1339 <td style="width:10%">
1340 <input type="number" name="attr_Intuition" style="text-align:center;" value="floor(@{Intuition_char}+@{Intuition_adv}+@{Intuition_mod})" disabled="true"/>
1341 </td>
1342 <td style="width:10%">
1343 <button type="roll" style="width:90%" name="roll_Intuition" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Intuition}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Intuition} ]]}}">
1344 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1345 </button>
1346 </td>
1347 </tr>
1348
1349 <tr>
1350 <td style="width:42%;text-align:left" data-i18n="Leadership">Leadership</td>
1351 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_LeadershipCareerSkill" /><span></span>
1352 </td>
1353 <td style="width:10%">
1354 <select name="attr_Leadership_char" style="width:100%" class="sheet-input-selectbox" >
1355 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1356 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1357 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1358 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1359 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1360 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1361 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1362 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1363 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1364 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
1365 </select>
1366 </td>
1367 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Leadership_adv" value="0" />
1368 </td>
1369 <td style="width:10%">
1370 <input type="number" style="text-align:center;" name="attr_Leadership_mod" value="0" />
1371 </td>
1372 <td style="width:10%">
1373 <input type="number" name="attr_Leadership" style="text-align:center;" value="floor(@{Leadership_char}+@{Leadership_adv}+@{Leadership_mod})" disabled="true"/>
1374 </td>
1375 <td style="width:10%">
1376 <button type="roll" style="width:90%" name="roll_Leadership" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Leadership}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Leadership} ]]}}">
1377 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1378 </button>
1379 </td>
1380 </tr>
1381
1382 <tr>
1383 <td style="width:42%;text-align:left" data-i18n="Navigation" >Navigation</td>
1384 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_NavigationCareerSkill" /><span></span>
1385 </td>
1386 <td style="width:10%">
1387 <select name="attr_Navigation_char" style="width:100%" class="sheet-input-selectbox" >
1388 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1389 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1390 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1391 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1392 <option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
1393 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1394 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1395 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1396 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1397 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1398 </select>
1399 </td>
1400 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Navigation_adv" value="0" />
1401 </td>
1402 <td style="width:10%">
1403 <input type="number" style="text-align:center;" name="attr_Navigation_mod" value="0" />
1404 </td>
1405 <td style="width:10%">
1406 <input type="number" name="attr_Navigation" style="text-align:center;" value="floor(@{Navigation_char}+@{Navigation_adv}+@{Navigation_mod})" disabled="true"/>
1407 </td>
1408 <td style="width:10%">
1409 <button type="roll" style="width:90%" name="roll_Navigation" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Navigation}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Navigation} ]]}}">
1410 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1411 </button>
1412 </td>
1413 </tr>
1414
1415 <tr>
1416 <td style="width:42%;text-align:left" data-i18n="Outdoor-Survival" >Outdoor Survival</td>
1417 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_OutdoorSurvivalCareerSkill" /><span></span>
1418 </td>
1419 <td style="width:10%">
1420 <select name="attr_OutdoorSurvival_char" style="width:100%" class="sheet-input-selectbox" >
1421 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1422 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1423 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1424 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1425 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1426 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1427 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1428 <option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
1429 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1430 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1431 </select>
1432 </td>
1433 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_OutdoorSurvival_adv" value="0" />
1434 </td>
1435 <td style="width:10%">
1436 <input type="number" style="text-align:center;" name="attr_OutdoorSurvival_mod" value="0" />
1437 </td>
1438 <td style="width:10%">
1439 <input type="number" name="attr_OutdoorSurvival" style="text-align:center;" value="floor(@{OutdoorSurvival_char}+@{OutdoorSurvival_adv}+@{OutdoorSurvival_mod})" disabled="true"/>
1440 </td>
1441 <td style="width:10%">
1442 <button type="roll" style="width:90%" name="roll_OutdoorSurvival" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Outdoor Survival}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{OutdoorSurvival} ]]}}">
1443 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1444 </button>
1445 </td>
1446 </tr>
1447
1448 <tr>
1449 <td style="width:42%;text-align:left" data-i18n="Perception" >Perception</td>
1450 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_PerceptionCareerSkill" /><span></span>
1451 </td>
1452 <td style="width:10%">
1453 <select name="attr_Perception_char" style="width:100%" class="sheet-input-selectbox" >
1454 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1455 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1456 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1457 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1458 <option value="@{Current_I}" selected data-i18n="I-p">(I)</option>
1459 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1460 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1461 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1462 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1463 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1464 </select>
1465 </td>
1466 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Perception_adv" value="0" />
1467 </td>
1468 <td style="width:10%">
1469 <input type="number" style="text-align:center;" name="attr_Perception_mod" value="0" />
1470 </td>
1471 <td style="width:10%">
1472 <input type="number" name="attr_Perception" style="text-align:center;" value="floor(@{Perception_char}+@{Perception_adv}+@{Perception_mod})" disabled="true"/>
1473 </td>
1474 <td style="width:10%">
1475 <button type="roll" style="width:90%" name="roll_Perception" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Perception}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Perception} ]]}}">
1476 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1477 </button>
1478 </td>
1479 </tr>
1480
1481 <tr>
1482 <td style="width:42%;text-align:left"><i><span data-i18n="Ride" >Ride</span></i></td>
1483 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RideCareerSkill" /><span></span>
1484 </td>
1485 <td style="width:10%">
1486 <select name="attr_Ride_char" style="width:100%" class="sheet-input-selectbox" >
1487 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1488 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1489 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1490 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1491 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1492 <option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
1493 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1494 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1495 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1496 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1497 </select>
1498 </td>
1499 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Ride_adv" value="0" />
1500 </td>
1501 <td style="width:10%">
1502 <input type="number" style="text-align:center;" name="attr_Ride_mod" value="0" />
1503 </td>
1504 <td style="width:10%">
1505 <input type="number" name="attr_Row" style="text-align:center;" value="floor(@{Row_char}+@{Row_adv}+@{Row_mod})" disabled="true"/>
1506 </td>
1507 <td style="width:10%">
1508 <button type="roll" style="width:90%" name="roll_Ride" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ride}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Ride} ]]}}">
1509 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1510 </button>
1511 </td>
1512 </tr>
1513
1514 <tr>
1515 <td style="width:42%;text-align:left" data-i18n="Row" >Row</td>
1516 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RowCareerSkill" /><span></span>
1517 </td>
1518 <td style="width:10%">
1519 <select name="attr_Row_char" style="width:100%" class="sheet-input-selectbox" >
1520 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1521 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1522 <option value="@{Current_S}" selected data-i18n="S-p">(S)</option>
1523 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1524 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1525 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1526 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1527 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1528 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1529 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1530 </select>
1531 </td>
1532 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Row_adv" value="0" />
1533 </td>
1534 <td style="width:10%">
1535 <input type="number" style="text-align:center;" name="attr_Row_mod" value="0" />
1536 </td>
1537 <td style="width:10%">
1538 <input type="number" name="attr_Row" style="text-align:center;" value="floor(@{Row_char}+@{Row_adv}+@{Row_mod})" disabled="true"/>
1539 </td>
1540 <td style="width:10%">
1541 <button type="roll" style="width:90%" name="roll_Row" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Row}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Row} ]]}}">
1542 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1543 </button>
1544 </td>
1545 </tr>
1546
1547 <tr>
1548 <td style="width:42%;text-align:left"><i><span data-i18n="Stealth">Stealth</span></i></td>
1549 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_StealthCareerSkill" /><span></span>
1550 </td>
1551 <td style="width:10%">
1552 <select name="attr_Stealth_char" style="width:100%" class="sheet-input-selectbox" >
1553 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1554 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1555 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1556 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1557 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1558 <option value="@{Current_Ag}" selected data-i18n="Ag-p">(Ag)</option>
1559 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1560 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1561 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1562 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1563 </select>
1564 </td>
1565 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Stealth_adv" value="0" />
1566 </td>
1567 <td style="width:10%">
1568 <input type="number" style="text-align:center;" name="attr_Stealth_mod" value="0" />
1569 </td>
1570 <td style="width:10%">
1571 <input type="number" name="attr_Stealth" style="text-align:center;" value="floor(@{Stealth_char}+@{Stealth_adv}+@{Stealth_mod})" disabled="true"/>
1572 </td>
1573 <td style="width:10%">
1574 <button type="roll" name="roll_Stealth" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Stealth}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Stealth} ]]}}">
1575 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1576 </button>
1577 </td>
1578 </tr>
1579 </table>
1580
1581 </div> <!--- Hackery --->
1582
1583 </div>
1584
1585<!-- Middle Separation -->
1586
1587<!-- Melee Specialisations -->
1588<div class="sheet-col sheet-table" style="width:48%">
1589 <div class="sheet-tablewrapper" style="width: 95%">
1590 <div class="sheet-col sheet-tablealt">
1591 <table style="width:100%">
1592 <tr>
1593 <th COLSPAN=9><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="MELEE-SPECIALISATIONS-(BASIC)" >MELEE SPECIALISATIONS (BASIC)</label></div>
1594 </th>
1595 </tr>
1596 <tr>
1597 <td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
1598 </td>
1599 <td style="text-align:center; width:8%">
1600 </td>
1601 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
1602 </td>
1603 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
1604 </td>
1605 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
1606 </td>
1607 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
1608 </td>
1609 <td style="text-align:center; width:10%">
1610 </td>
1611 </tr>
1612 <tr>
1613 <td style="width:42%;text-align:left" data-i18n="Melee-i-Basic"><i>Melee</i> (Basic)
1614 </td>
1615 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeBasicCareerSkill" /><span></span>
1616 </td>
1617 <td style="width:10%">
1618 <select name="attr_MeleeBasic_char" style="width:100%" class="sheet-input-selectbox" >
1619 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1620 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1621 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1622 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1623 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1624 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1625 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1626 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1627 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1628 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1629 </select>
1630 </td>
1631 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeBasic_adv" value="0" />
1632 </td>
1633 <td style="width:10%">
1634 <input type="number" style="text-align:center;" name="attr_MeleeBasic_mod" value="0" />
1635 </td>
1636 <td style="width:10%">
1637 <input type="number" name="attr_MeleeBasic" style="text-align:center;" value="floor(@{MeleeBasic_char}+@{MeleeBasic_adv}+@{MeleeBasic_mod})" disabled="true"/>
1638 </td>
1639 <td style="width:10%">
1640 <button type="roll" name="roll_MeleeBasic" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Basic)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeBasic} ]]}}">
1641 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1642 </button>
1643 </td>
1644 </tr>
1645 <tr>
1646 <td style="width:42%;text-align:left" data-i18n="Melee-i-Brawling" ><i>Melee</i> (Brawling)</td>
1647 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeBrawlingCareerSkill" /><span></span>
1648 </td>
1649 <td style="width:10%">
1650 <select name="attr_MeleeBrawling_char" style="width:100%" class="sheet-input-selectbox" >
1651 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1652 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1653 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1654 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1655 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1656 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1657 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1658 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1659 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1660 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1661 </select>
1662 </td>
1663 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeBrawling_adv" value="0" />
1664 </td>
1665 <td style="width:10%">
1666 <input type="number" style="text-align:center;" name="attr_MeleeBrawling_mod" value="0" />
1667 </td>
1668 <td style="width:10%">
1669 <input type="number" name="attr_MeleeBrawling" style="text-align:center;" value="floor(@{MeleeBrawling_char}+@{MeleeBrawling_adv}+@{MeleeBrawling_mod})" disabled="true"/>
1670 </td>
1671 <td style="width:10%">
1672 <button type="roll" style="width:90%" name="roll_MeleeBrawling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Brawling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeBrawling} ]]}}">
1673 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1674 </button>
1675 </td>
1676 </tr>
1677 <tr>
1678 <td style="width:42%;text-align:left" data-i18n="Melee-i-Cavalry" ><i>Melee</i> (Cavalry)</td>
1679 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeCavalryCareerSkill" /><span></span>
1680 </td>
1681 <td style="width:10%">
1682 <select name="attr_MeleeCavalry_char" style="width:100%" class="sheet-input-selectbox" >
1683 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1684 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1685 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1686 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1687 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1688 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1689 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1690 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1691 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1692 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1693 </select>
1694 </td>
1695 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeCavalry_adv" value="0" />
1696 </td>
1697 <td style="width:10%">
1698 <input type="number" style="text-align:center;" name="attr_MeleeCavalry_mod" value="0" />
1699 </td>
1700 <td style="width:10%">
1701 <input type="number" name="attr_MeleeCavalry" style="text-align:center;" value="floor(@{MeleeCavalry_char}+@{MeleeCavalry_adv}+@{MeleeCavalry_mod})" disabled="true"/>
1702 </td>
1703 <td style="width:10%">
1704 <button type="roll" style="width:90%" name="roll_MeleeCavalry" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Cavalry)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeCavalry} ]]}}">
1705 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1706 </button>
1707 </td>
1708 </tr>
1709 <tr>
1710 <td style="width:42%;text-align:left" data-i18n="Melee-i-Fencing" ><i>Melee</i> (Fencing)</td>
1711 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeFencingCareerSkill" /><span></span>
1712 </td>
1713 <td style="width:10%">
1714 <select name="attr_MeleeFencing_char" style="width:100%" class="sheet-input-selectbox" >
1715 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1716 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1717 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1718 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1719 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1720 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1721 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1722 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1723 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1724 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1725 </select>
1726 </td>
1727 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeFencing_adv" value="0" />
1728 </td>
1729 <td style="width:10%">
1730 <input type="number" style="text-align:center;" name="attr_MeleeFencing_mod" value="0" />
1731 </td>
1732 <td style="width:10%">
1733 <input type="number" name="attr_MeleeFencing" style="text-align:center;" value="floor(@{MeleeFencing_char}+@{MeleeFencing_adv}+@{MeleeFencing_mod})" disabled="true"/>
1734 </td>
1735 <td style="width:10%">
1736 <button type="roll" style="width:90%" name="roll_MeleeFencing" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Fencing)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeFencing} ]]}}">
1737 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1738 </button>
1739 </td>
1740 </tr>
1741 <tr>
1742 <td style="width:42%;text-align:left" data-i18n="Melee-i-Flail" ><i>Melee</i> (Flail)</td>
1743 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeFlailCareerSkill" /><span></span>
1744 </td>
1745 <td style="width:10%">
1746 <select name="attr_MeleeFlail_char" style="width:100%" class="sheet-input-selectbox" >
1747 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1748 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1749 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1750 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1751 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1752 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1753 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1754 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1755 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1756 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1757 </select>
1758 </td>
1759 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeFlail_adv" value="0" />
1760 </td>
1761 <td style="width:10%">
1762 <input type="number" style="text-align:center;" name="attr_MeleeFlail_mod" value="0" />
1763 </td>
1764 <td style="width:10%">
1765 <input type="number" name="attr_MeleeFlail" style="text-align:center;" value="floor(@{MeleeFlail_char}+@{MeleeFlail_adv}+@{MeleeFlail_mod})" disabled="true"/>
1766 </td>
1767 <td style="width:10%">
1768 <button type="roll" style="width:90%" name="roll_MeleeFlail" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Flail)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeFlail} ]]}}">
1769 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1770 </button>
1771 </td>
1772 </tr>
1773 <tr>
1774 <td style="width:42%;text-align:left" data-i18n="Melee-i-Parry" ><i>Melee</i> (Parry)</td>
1775 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeParryCareerSkill" /><span></span>
1776 </td>
1777 <td style="width:10%">
1778 <select name="attr_MeleeParry_char" style="width:100%" class="sheet-input-selectbox" >
1779 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1780 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1781 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1782 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1783 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1784 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1785 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1786 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1787 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1788 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1789 </select>
1790 </td>
1791 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeParry_adv" value="0" />
1792 </td>
1793 <td style="width:10%">
1794 <input type="number" style="text-align:center;" name="attr_MeleeParry_mod" value="0" />
1795 </td>
1796 <td style="width:10%">
1797 <input type="number" name="attr_MeleeParry" style="text-align:center;" value="floor(@{MeleeParry_char}+@{MeleeParry_adv}+@{MeleeParry_mod})" disabled="true"/>
1798 </td>
1799 <td style="width:10%">
1800 <button type="roll" style="width:90%" name="roll_MeleeParry" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Melee (Parry)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{MeleeParry} ]]}}">
1801 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1802 </button>
1803 </td>
1804 </tr>
1805 <tr>
1806 <td style="width:42%;text-align:left" data-i18n="Melee-i-Pole-Arm" ><i>Melee</i> (Pole-Arm)</td>
1807 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleePolearmCareerSkill" /><span></span>
1808 </td>
1809 <td style="width:10%">
1810 <select name="attr_MeleePoleArm_char" style="width:100%" class="sheet-input-selectbox" >
1811 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1812 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1813 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1814 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1815 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1816 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1817 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1818 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1819 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1820 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1821 </select>
1822 </td>
1823 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleePoleArm_adv" value="0" />
1824 </td>
1825 <td style="width:10%">
1826 <input type="number" style="text-align:center;" name="attr_MeleePoleArm_mod" value="0" />
1827 </td>
1828 <td style="width:10%">
1829 <input type="number" name="attr_MeleePoleArm" style="text-align:center;" value="floor(@{MeleePoleArm_char}+@{MeleePoleArm_adv}+@{MeleePoleArm_mod})" disabled="true"/>
1830 </td>
1831 <td style="width:10%">
1832 <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} ]]}}">
1833 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1834 </button>
1835 </td>
1836 </tr>
1837 <tr>
1838 <td style="width:42%;text-align:left" data-i18n="Melee-i-2H" ><i>Melee</i> (Two-Handed)</td>
1839 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_MeleeTwohandedCareerSkill" /><span></span>
1840 </td>
1841 <td style="width:10%">
1842 <select name="attr_MeleeTwoHanded_char" style="width:100%" class="sheet-input-selectbox" >
1843 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
1844 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
1845 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1846 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1847 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1848 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1849 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1850 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1851 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1852 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1853 </select>
1854 </td>
1855 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_MeleeTwoHanded_adv" value="0" />
1856 </td>
1857 <td style="width:10%">
1858 <input type="number" style="text-align:center;" name="attr_MeleeTwoHanded_mod" value="0" />
1859 </td>
1860 <td style="width:10%">
1861 <input type="number" name="attr_MeleeTwoHanded" style="text-align:center;" value="floor(@{MeleeTwoHanded_char}+@{MeleeTwoHanded_adv}+@{MeleeTwoHanded_mod})" disabled="true"/>
1862 </td>
1863 <td style="width:10%">
1864 <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} ]]}}">
1865 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1866 </button>
1867 </td>
1868 </tr>
1869
1870<!-- Ranged Specialisations -->
1871 <tr><th COLSPAN=9><label style="text-align:center"> </label></th></tr>
1872 <tr>
1873 <th COLSPAN=8><div class="sheet-bluelabel"><label style="text-align:center" data-i18n="RANGED-SPECIAlZATION-ADVANCED" >RANGED SPECIALISATIONS (ADVANCED)</label></div>
1874 </th>
1875 </tr>
1876 <tr>
1877 <td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
1878 </td>
1879 <td style="text-align:center; width:8%">
1880 </td>
1881 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
1882 </td>
1883 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
1884 </td>
1885 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
1886 </td>
1887 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
1888 </td>
1889 <td style="text-align:center; width:10%">
1890 </td>
1891 </tr>
1892 <tr>
1893 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Blackpowder"><i>Ranged</i> (Blackpowder)</td>
1894 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedBlackpowderCareerSkill" /><span></span>
1895 </td>
1896 <td style="width:10%">
1897 <select name="attr_RangedBlackpowder_char" style="width:100%" class="sheet-input-selectbox" >
1898 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1899 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
1900 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1901 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1902 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1903 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1904 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1905 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1906 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1907 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1908 </select>
1909 </td>
1910 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedBlackpowder_adv" value="0" />
1911 </td>
1912 <td style="width:10%">
1913 <input type="number" style="text-align:center;" name="attr_RangedBlackpowder_mod" value="0" />
1914 </td>
1915 <td style="width:10%">
1916 <input type="number" name="attr_RangedBlackpowder" style="text-align:center;" value="floor(@{RangedBlackpowder_char}+@{RangedBlackpowder_adv}+@{RangedBlackpowder_mod})" disabled="true"/>
1917 </td>
1918 <td style="width:10%">
1919 <button type="roll" style="width:90%" name="roll_RangedBlackpowder" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Blackpowder)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedBlackpowder} ]]}}">
1920 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1921 </button>
1922 </td>
1923 </tr>
1924
1925 <tr>
1926 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Bow" ><i>Ranged</i> (Bow)</td>
1927 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedBowCareerSkill" /><span></span>
1928 </td>
1929 <td style="width:10%">
1930 <select name="attr_RangedBow_char" style="width:100%" class="sheet-input-selectbox" >
1931 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1932 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
1933 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1934 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1935 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1936 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1937 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1938 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1939 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1940 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1941 </select>
1942 </td>
1943 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedBow_adv" value="0" />
1944 </td>
1945 <td style="width:10%">
1946 <input type="number" style="text-align:center;" name="attr_RangedBow_mod" value="0" />
1947 </td>
1948 <td style="width:10%">
1949 <input type="number" name="attr_RangedBow" style="text-align:center;" value="floor(@{RangedBow_char}+@{RangedBow_adv}+@{RangedBow_mod})" disabled="true"/>
1950 </td>
1951 <td style="width:10%">
1952 <button type="roll" style="width:90%" name="roll_RangedBow" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Bow)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedBow} ]]}}">
1953 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1954 </button>
1955 </td>
1956 </tr>
1957
1958 <tr>
1959 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Crossbow" ><i>Ranged</i> (Crossbow) †</td>
1960 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedCrossbowCareerSkill" /><span></span>
1961 </td>
1962 <td style="width:10%">
1963 <select name="attr_RangedCrossBow_char" style="width:100%" class="sheet-input-selectbox" >
1964 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1965 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
1966 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
1967 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
1968 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
1969 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
1970 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
1971 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
1972 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
1973 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
1974 </select>
1975 </td>
1976 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedCrossBow_adv" value="0" />
1977 </td>
1978 <td style="width:10%">
1979 <input type="number" style="text-align:center;" name="attr_RangedCrossBow_mod" value="0" />
1980 </td>
1981 <td style="width:10%">
1982 <input type="number" name="attr_RangedCrossBow" style="text-align:center;" value="floor(@{RangedCrossBow_char}+@{RangedCrossBow_adv}+@{RangedCrossBow_mod})" disabled="true"/>
1983 </td>
1984 <td style="width:10%">
1985 <button type="roll" style="width:90%" name="roll_RangedCrossBow" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Crossbow)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedCrossBow} ]]}}">
1986 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
1987 </button>
1988 </td>
1989 </tr>
1990
1991 <tr>
1992 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Engineering" ><i>Ranged</i> (Engineering)</td>
1993 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedEngineeringCareerSkill" /><span></span>
1994 </td>
1995 <td style="width:10%">
1996 <select name="attr_RangedEngineering_char" style="width:100%" class="sheet-input-selectbox" >
1997 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
1998 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
1999 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2000 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2001 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2002 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2003 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2004 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2005 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2006 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2007 </select>
2008 </td>
2009 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedEngineering_adv" value="0" />
2010 </td>
2011 <td style="width:10%">
2012 <input type="number" style="text-align:center;" name="attr_RangedEngineering_mod" value="0" />
2013 </td>
2014 <td style="width:10%">
2015 <input type="number" name="attr_RangedEngineering" style="text-align:center;" value="floor(@{RangedEngineering_char}+@{RangedEngineering_adv}+@{RangedEngineering_mod})" disabled="true"/>
2016 </td>
2017 <td style="width:10%">
2018 <button type="roll" style="width:90%" name="roll_RangedEngineering" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Engineering)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedEngineering} ]]}}">
2019 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2020 </button>
2021 </td>
2022 </tr>
2023
2024 <tr>
2025 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Entangling" ><i>Ranged</i> (Entangling)</td>
2026 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedEntanglingCareerSkill" /><span></span>
2027 </td>
2028 <td style="width:10%">
2029 <select name="attr_RangedEntangling_char" style="width:100%" class="sheet-input-selectbox" >
2030 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2031 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
2032 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2033 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2034 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2035 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2036 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2037 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2038 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2039 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2040 </select>
2041 </td>
2042 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedEntangling_adv" value="0" />
2043 </td>
2044 <td style="width:10%">
2045 <input type="number" style="text-align:center;" name="attr_RangedEntangling_mod" value="0" />
2046 </td>
2047 <td style="width:10%">
2048 <input type="number" name="attr_RangedEntangling" style="text-align:center;" value="floor(@{RangedEntangling_char}+@{RangedEntangling_adv}+@{RangedEntangling_mod})" disabled="true"/>
2049 </td>
2050 <td style="width:10%">
2051 <button type="roll" style="width:90%" name="roll_RangedEntangling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Engtangling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedEngtangling} ]]}}">
2052 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2053 </button>
2054 </td>
2055 </tr>
2056
2057 <tr>
2058 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Explosives"><i>Ranged</i> (Explosives)</td>
2059 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedExplosivesCareerSkill" /><span></span>
2060 </td>
2061 <td style="width:10%">
2062 <select name="attr_RangedExplosives_char" style="width:100%" class="sheet-input-selectbox" >
2063 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2064 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
2065 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2066 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2067 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2068 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2069 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2070 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2071 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2072 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2073 </select>
2074 </td>
2075 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedExplosives_adv" value="0" />
2076 </td>
2077 <td style="width:10%">
2078 <input type="number" style="text-align:center;" name="attr_RangedExplosives_mod" value="0" />
2079 </td>
2080 <td style="width:10%">
2081 <input type="number" name="attr_RangedExplosives" style="text-align:center;" value="floor(@{RangedExplosives_char}+@{RangedExplosives_adv}+@{RangedExplosives_mod})" disabled="true"/>
2082 </td>
2083 <td style="width:10%">
2084 <button type="roll" style="width:90%" name="roll_RangedExplosives" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Explosives)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedExplosives} ]]}}">
2085 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2086 </button>
2087 </td>
2088 </tr>
2089
2090 <tr>
2091 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Sling" ><i>Ranged</i> (Sling)</td>
2092 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedSlingCareerSkill" /><span></span>
2093 </td>
2094 <td style="width:10%">
2095 <select name="attr_RangedSling_char" style="width:100%" class="sheet-input-selectbox" >
2096 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2097 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
2098 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2099 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2100 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2101 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2102 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2103 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2104 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2105 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2106 </select>
2107 </td>
2108 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedSling_adv" value="0" />
2109 </td>
2110 <td style="width:10%">
2111 <input type="number" style="text-align:center;" name="attr_RangedSling_mod" value="0" />
2112 </td>
2113 <td style="width:10%">
2114 <input type="number" name="attr_RangedSling" style="text-align:center;" value="floor(@{RangedSling_char}+@{RangedSling_adv}+@{RangedSling_mod})" disabled="true"/>
2115 </td>
2116 <td style="width:10%">
2117 <button type="roll" style="width:90%" name="roll_RangedSling" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Sling)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedSling} ]]}}">
2118 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2119 </button>
2120 </td>
2121 </tr>
2122
2123 <tr>
2124 <td style="width:42%;text-align:left" data-i18n="Ranged-i-Throwing" ><i>Ranged</i> (Throwing) †</td>
2125 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_RangedThrowingCareerSkill" /><span></span>
2126 </td>
2127 <td style="width:10%">
2128 <select name="attr_RangedThrowing_char" style="width:100%" class="sheet-input-selectbox" >
2129 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2130 <option value="@{Current_BS}" selected data-i18n="BS-p">(BS)</option>
2131 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2132 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2133 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2134 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2135 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2136 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2137 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2138 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2139 </select>
2140 </td>
2141 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_RangedThrowing_adv" value="0" />
2142 </td>
2143 <td style="width:10%">
2144 <input type="number" style="text-align:center;" name="attr_RangedThrowing_mod" value="0" />
2145 </td>
2146 <td style="width:10%">
2147 <input type="number" name="attr_RangedThrowing" style="text-align:center;" value="floor(@{RangedThrowing_char}+@{RangedThrowing_adv}+@{RangedThrowing_mod})" disabled="true"/>
2148 </td>
2149 <td style="width:10%">
2150 <button type="roll" style="width:90%" name="roll_RangedThrowing" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Ranged (Throwing)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{RangedThrowing} ]]}}">
2151 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2152 </button>
2153 </td>
2154 </tr>
2155 </table>
2156 </div> <!-- table wrapper --->
2157
2158<!-- Magic, Blessing ans Miracles -->
2159 <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>
2160 <table class="tablealt" style="width:100%">
2161 <tr>
2162 <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>
2163 </th>
2164 </tr>
2165 <tr>
2166 <td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
2167 </td>
2168 <td style="text-align:center; width:8%">
2169 </td>
2170 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
2171 </td>
2172 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
2173 </td>
2174 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
2175 </td>
2176 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
2177 </td>
2178 <td style="text-align:center; width:10%">
2179 </td>
2180 </tr>
2181
2182<!-- Language Magick -->
2183 <tr>
2184 <td style="width:42%;text-align:left" data-i18n="Language-i-Magick-p" ><i>Language</i> (Magick)</td>
2185 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_LanguageMagickCareerSkill" /><span></span>
2186 </td>
2187 <td style="width:10%">
2188 <select name="attr_LanguageMagick_char" style="width:100%" class="sheet-input-selectbox" >
2189 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2190 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
2191 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2192 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2193 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2194 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2195 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2196 <option value="@{Current_Int}" selected data-i18n="Int-p">(Int)</option>
2197 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2198 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2199 </select>
2200 </td>
2201 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_LanguageMagick_adv" value="0" />
2202 </td>
2203 <td style="width:10%">
2204 <input type="number" style="text-align:center;" name="attr_LanguageMagick_mod" value="0" />
2205 </td>
2206 <td style="width:10%">
2207 <input type="number" name="attr_LanguageMagick" style="text-align:center;" value="floor(@{LanguageMagick_char}+@{LanguageMagick_adv}+@{LanguageMagick_mod})" disabled="true"/>
2208 </td>
2209 <td style="width:10%">
2210 <button type="roll" style="width:90%" name="roll_LanguageMagick" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Language (Magick)}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{LanguageMagick} ]]}}">
2211 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2212 </button>
2213 </td>
2214 </tr>
2215<!-- Pray Skill -->
2216 <tr>
2217 <td style="width:42%;text-align:left" data-i18n="Pray" >Pray</td>
2218 <td style="width:8%;text-align:left"><input type="checkbox" value="1" name="attr_PrayCareerSkill" /><span></span>
2219 </td>
2220 <td style="width:10%">
2221 <select name="attr_Pray_char" style="width:100%" class="sheet-input-selectbox" >
2222 <option value="@{Current_WS}" data-i18n="WS-p">(WS)</option>
2223 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
2224 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2225 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2226 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2227 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2228 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2229 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2230 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2231 <option value="@{Current_Fel}" selected data-i18n="Fel-p">(Fel)</option>
2232 </select>
2233 </td>
2234 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_Pray_adv" value="0" />
2235 </td>
2236 <td style="width:10%">
2237 <input type="number" style="text-align:center;" name="attr_Pray_mod" value="0" />
2238 </td>
2239 <td style="width:10%">
2240 <input type="number" name="attr_Pray" style="text-align:center;" value="floor(@{Pray_char}+@{Pray_adv}+@{Pray_mod})" disabled="true"/>
2241 </td>
2242 <td style="width:10%">
2243 <button type="roll" style="width:90%" name="roll_Pray" value="&{template:wfrp4} {{name=@{character_name}}} {{title=Pray}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{Pray} ]]}}">
2244 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2245 </button>
2246 </td>
2247 </tr>
2248 </table>
2249
2250 </div>
2251</div>
2252
2253<!-- Grouped and Advanced Skills -->
2254<hr>
2255<div class="sheet-col sheet-table" style="width:48%">
2256 <table style="text-align:center; width:100%">
2257 <tr>
2258 <th COLSPAN=10><label style="text-align:center" data-i18n="GROUPED-&-ADVANCED-SKILLS" >GROUPED & ADVANCED SKILLS</label>
2259 </th>
2260 </tr>
2261 <tr>
2262 <td style="text-align:center; width:42%"><label style="text-align:left" data-i18n="Name" >Name</label>
2263 </td>
2264 <td style="text-align:center; width:8%">
2265 </td>
2266 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Char." >Char.</label>
2267 </td>
2268 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Adv." >Adv.</label>
2269 </td>
2270 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Mod." >Mod.</label>
2271 </td>
2272 <td style="text-align:center; width:10%"><label style="text-align:center" data-i18n="Total" >Total</label>
2273 </td>
2274 <td style="text-align:center; width:10%">
2275 </td>
2276 </tr>
2277 </table>
2278 <fieldset class="repeating_advancedskills" name="attr_repeating_advancedskills">
2279 <table style="width:100%">
2280 <tr>
2281 <td style="width:42%;text-align:left"><input class="sheet-baseinfo" type="text" name="attr_CustomSkillName" />
2282 </td>
2283 <td style="width:8%"><input type="checkbox" value="1" name="attr_CustomCareerSkill" /><span></span>
2284 </td>
2285 <td style="width:10%">
2286 <select name="attr_CustomSkill_char" style="width:100%" class="sheet-input-selectbox" >
2287 <option value="@{Current_WS}" selected data-i18n="WS-p">(WS)</option>
2288 <option value="@{Current_BS}" data-i18n="BS-p">(BS)</option>
2289 <option value="@{Current_S}" data-i18n="S-p">(S)</option>
2290 <option value="@{Current_T}" data-i18n="T-p">(T)</option>
2291 <option value="@{Current_I}" data-i18n="I-p">(I)</option>
2292 <option value="@{Current_Ag}" data-i18n="Ag-p">(Ag)</option>
2293 <option value="@{Current_Dex}" data-i18n="Dex-p">(Dex)</option>
2294 <option value="@{Current_Int}" data-i18n="Int-p">(Int)</option>
2295 <option value="@{Current_WP}" data-i18n="WP-p">(WP)</option>
2296 <option value="@{Current_Fel}" data-i18n="Fel-p">(Fel)</option>
2297 </select>
2298 </td>
2299 <td style="width:10%"><input type="number" style="text-align:center;" name="attr_CustomSkill_adv" value="1" />
2300 </td>
2301 <td style="width:10%">
2302 <input type="number" style="text-align:center;" name="attr_CustomSkill_mod" value="0" />
2303 </td>
2304 <td style="width:10%">
2305 <input type="number" name="attr_CustomSkill" style="text-align:center;" value="floor(@{CustomSkill_char}+@{CustomSkill_adv}+@{CustomSkill_mod})" disabled="true"/>
2306 </td>
2307 <td style="width:10%">
2308 <button type="roll" name="roll_CustomSkill" value="&{template:wfrp4} {{name=@{character_name}}} {{title=@{CustomSkillName}}} {{dice=[[ 1d100cs01cs02cs03cs04cs05cs11cs22cs33cs44cs55cs66cs77cs88cf96cf97cf98cf99cf100 ]]}} {{against=[[ ?{Modifier?|0}+@{CustomSkill} ]]}}">
2309 <label class="labelbutton" style="text-align:center" data-i18n="Roll">Roll</label>
2310 </button>
2311 </td>
2312 </tr>
2313 </table>
2314 </fieldset>
2315 <br>
2316</div>
2317
2318<!-- Talents -->
2319 <div class="sheet-col sheet-table" style="width:48%">
2320 <h4 data-i18n="Talents" >Talents</h4>
2321 <table style="width:100%">
2322 <fieldset class="repeating_talents" name="repeating_talents">
2323 <div style="width:100%">
2324 <div class="sheet-item" style="width:72%"><input type="text" placeholder="Name" name="attr_TalentName" />
2325 </div>
2326 <div class="sheet-item" style="width:8%"><input type="number" style="text-align:center" value="1" name="attr_TalentNumber" />
2327 </div>
2328 <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>
2329 </div>
2330 <input type="checkbox" class="sheet-arrow" name="attr_TalentDescHide"/><span></span>
2331 <div class="sheet-body">
2332 <textarea name="attr_Talentdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2333 </div>
2334 </div>
2335 </fieldset>
2336 </table>
2337 </div>
2338
2339</div>
2340</div>
2341
2342
2343
2344<div class="sheet-tab-content sheet-tabGearMagic">
2345<div class="sheet-wrapper">
2346 <br>
2347
2348<!-- Middle Section; Armour and Armour Points-->
2349<table>
2350
2351
2352<!-- Armour -->
2353 <td class="sheet-col" style="width:60%">
2354 <div class="sheet-col" style="width:100%">
2355 <h4 data-i18n="Armour" >ARMOUR</h4>
2356 <div class="sheet-col" style="width:100%; text-align:left">
2357 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Head" >Head</label>
2358 </div>
2359 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="R.Arm" >R.Arm</label>
2360 </div>
2361 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="L.Arm" >L.Arm</label>
2362 </div>
2363 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Body" >Body</label>
2364 </div>
2365 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="R.Leg" >R.Leg</label>
2366 </div>
2367 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="L.Leg">L.Leg</label>
2368 </div>
2369 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Shield">Shield</label>
2370 </div>
2371 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="AP" >AP</label>
2372 </div>
2373 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Enc." >Enc.</label>
2374 </div>
2375 <div class="sheet-col" style="width:10%; ">
2376 </div>
2377 </div>
2378 <fieldset class="repeating_armor" name="attr_repeating_armor">
2379 <div style="width:100%; text-align:left">
2380 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourHead" /><span></span>
2381 </div>
2382 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourRArm" /><span></span>
2383 </div>
2384 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourLArm" /><span></span>
2385 </div>
2386 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourBody" /><span></span>
2387 </div>
2388 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourRLeg" /><span></span>
2389 </div>
2390 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourLLeg" /><span></span>
2391 </div>
2392 <div class="sheet-col" style="width:9%;"><input type="checkbox" value="1" name="attr_ArmourShield" /><span></span>
2393 </div>
2394 <div class="sheet-col" style="width:10%;"><input type="number" value="0" style="text-align:center" name="attr_ArmourPoints" />
2395 </div>
2396 <div class="sheet-col" style="width:10%;"><input type="number" value="0" style="text-align:center"name="attr_ArmourEnc" />
2397 </div>
2398 <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>
2399 </div>
2400 </div>
2401 <div style="width:100%; text-align:left">
2402 <div class="sheet-col" style="width:40%;">
2403 <input type="text" placeholder="Name" name="attr_ArmourName" />
2404 </div>
2405 <div class="sheet-col" style="width:47.5%;">
2406 <input type="text" placeholder="Qualities/Flaws" name="attr_ArmourQualities" />
2407 </div>
2408 <input type="checkbox" class="sheet-arrow" style="" name="attr_ArmourDescHide"/>
2409
2410 <span></span>
2411 <div class="sheet-body">
2412 <textarea name="attr_Armourdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2413 </div>
2414 </div>
2415 </fieldset>
2416 </div>
2417 </td>
2418
2419<!-- Armour Points -->
2420 <td class="sheet-col" style="width:40%">
2421 <div class="sheet-col" style="width:100%">
2422 <table class="sheet-armortable" style="width:100%;margin-left:10px; background-size:176px 314px;">
2423 <tr>
2424 <th COLSPAN=10><label style="text-align:center" data-i18n="ARMOUR-POINTS" >ARMOUR POINTS</label>
2425 </th>
2426 </tr>
2427 <tr>
2428 <td style="width:10%">
2429 </td>
2430 <td style="width:10%">
2431 </td>
2432 <td style="width:10%">
2433 </td>
2434 <td style="width:10%">
2435 </td>
2436 <td style="width:10%">
2437 </td>
2438 <td style="width:10%">
2439 </td>
2440 <td style="width:10%">
2441 </td>
2442 <td style="width:10%">
2443 </td>
2444 <td style="width:10%">
2445 </td>
2446 <td style="width:10%">
2447 </td>
2448 </tr>
2449 <tr>
2450 <td COLSPAN=4>
2451 </td>
2452 <td COLSPAN=2><br>01-09<br>
2453 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPHead" readonly/><br>
2454 <label style="text-align:center" data-i18n="Head" >Head</label>
2455 </td>
2456 <td COLSPAN=4>
2457 </td>
2458 </tr>
2459 <tr>
2460 <td COLSPAN=1>
2461 </td>
2462 <td COLSPAN=3>25-44<br>
2463 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPRightArm" readonly/><br>
2464 <label style="text-align:center" data-i18n="Right Arm" >Right Arm</label><br>
2465 (or primary arm)
2466 </td>
2467 <td COLSPAN=2><br>45-79<br>
2468 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPBody" readonly/><br>
2469 <label style="text-align:center" data-i18n="Body" >Body</label>
2470 </td>
2471 <td COLSPAN=3>10-24<br>
2472 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPLeftArm" readonly/><br>
2473 <label style="text-align:center" data-i18n="Left Arm" >Left Arm</label><br>
2474 (or secondary arm)
2475 </td>
2476 <td COLSPAN=1>
2477 </td>
2478 </tr>
2479 <tr>
2480 <td class="sheet-armorshield" COLSPAN=2><br><br>
2481 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPShield" readonly/><br>
2482 <label style="text-align:center" data-i18n="Shield" >Shield</label>
2483 </td>
2484 <td COLSPAN=1>
2485 </td>
2486 <td COLSPAN=2><br>90-00<br>
2487 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPRightLeg" readonly/><br>
2488 <label style="text-align:center" data-i18n="Right Leg" >Right Leg</label>
2489 </td>
2490 <td COLSPAN=1>
2491 </td>
2492 <td COLSPAN=2><br>80-89<br>
2493 <input type="number" value="0" style="text-align:center;height:50px;width:50px;font-size:24px" name="attr_ArmourAPLeftLeg" readonly/><br>
2494 <label style="text-align:center" data-i18n="Leg Left" >Left Leg</label>
2495 </td>
2496 <td COLSPAN=3>
2497 </td>
2498 </tr>
2499 </table>
2500 </div>
2501 </td>
2502</table>
2503
2504<!-- Weapons -->
2505 <hr>
2506 <div style="width:100%">
2507 <h4 data-i18n="WEAPONS" >WEAPONS</h4>
2508 <div class="sheet-col" style="width:100%; text-align:left">
2509 <div class="sheet-col" style="width:25%;"><label style="text-align:left" data-i18n="Name">Name</label>
2510 </div>
2511 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Group" >Group</label>
2512 </div>
2513 <div class="sheet-col" style="width:5%; margin:-2px; "><label style="text-align:center" data-i18n="Enc." >Enc.</label>
2514 </div>
2515 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Range/Reach" >Range/Reach</label>
2516 </div>
2517 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Damage" >Damage</label>
2518 </div>
2519 <div class="sheet-col" style="width:25%; margin:-2px; "><label style="text-align:left" data-i18n="Qualities" >Qualities</label>
2520 </div>
2521 </div>
2522 <fieldset class="repeating_weapons" name="attr_repeating_weapons">
2523 <div style="width:100%; text-align:left">
2524 <div class="sheet-col" style="width:25%;"><input type="text" name="attr_WeaponName" />
2525 </div>
2526 <div class="sheet-col" style="width:10%; margin:-2px; ">
2527 <select name="attr_WeaponGroup" style="width:100%" class="sheet-input-selectbox" >
2528 <option value="@{MeleeBasic}" selected data-i18n="Melee-Basic">Melee (Basic)</option>
2529 <option value="@{MeleeBrawling}" data-i18n="Melee-Brawling">Melee (Brawling)</option>
2530 <option value="@{MeleeCavalry}" data-i18n="Melee-Cavalry">Melee (Cavalry)</option>
2531 <option value="@{MeleeFencing}" data-i18n="Melee-Fencing">Melee (Fencing)</option>
2532 <option value="@{MeleeFlail}" data-i18n="Melee-Flail">Melee (Flail)</option>
2533 <option value="@{MeleeParry}" data-i18n="Melee-Parry">Melee (Parry)</option>
2534 <option value="@{MeleePoleArm}" data-i18n="Melee-Pole-Arm">Melee (Pole-Arm)</option>
2535 <option value="@{MeleeTwoHanded}" data-i18n="Melee-2H">Melee (Two-Handed)</option>
2536 <option value="@{RangedBlackpowder}" data-i18n="Ranged-Blackpowder">Ranged (Blackpowder)</option>
2537 <option value="@{RangedBow}" data-i18n="Ranged-Bow">Ranged (Bow)</option>
2538 <option value="@{RangedCrossbow}" data-i18n="Ranged-Crossbow">Ranged (Crossbow)</option>
2539 <option value="@{RangedEngineering}" data-i18n="Ranged-Engineering">Ranged (Engineering)</option>
2540 <option value="@{RangedEntangling}" data-i18n="Ranged-Entangling">Ranged (Entangling)</option>
2541 <option value="@{RangedExplosives}" data-i18n="Ranged-Explosives">Ranged (Explosives)</option>
2542 <option value="@{RangedSling}" data-i18n="Ranged-Sling">Ranged (Sling)</option>
2543 <option value="@{RangedThrowing}" data-i18n="Ranged-Throwing">Ranged (Throwing)</option>
2544 <option value="@{Current_WS}" data-i18n="Weapon-Skill">Weapon Skill</option>
2545 <option value="@{Current_BS}" data-i18n="Ballistic-Skill">Ballistic Skill</option>
2546 </select>
2547 </div>
2548 <div class="sheet-col" style="width:5%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponEnc" />
2549 </div>
2550 <div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponRange" />
2551 </div>
2552 <div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_WeaponDamage" />
2553 </div>
2554 <div class="sheet-col" style="width:25%; margin:-2px; "><input type="text" name="attr_WeaponQualities" />
2555 </div>
2556 <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>
2557 </div>
2558 <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>
2559 </div>
2560 <div class="sheet-body">
2561 <textarea name="attr_Trappingdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2562 </div>
2563 <input type="checkbox" class="sheet-arrow" name="attr_WeaponDescHide"/><span></span>
2564 <div class="sheet-body">
2565 <textarea name="attr_Weapondesc" style="width:90%; height:50px"></textarea>
2566 </div>
2567 </div>
2568 </fieldset>
2569 </div>
2570
2571<!-- Spells and Prayers -->
2572 <hr>
2573 <div style="width:100%">
2574 <h4 data-i18n="SPELLS-AND-PRAYERS" >SPELLS AND PRAYERS</h4>
2575 <div class="sheet-wrapper" style="width:100%; text-align:center">
2576 <table>
2577 <tr>
2578 <td class="sheet-col" style="width:14%">
2579 </td>
2580 <td class="sheet-col" style="width:27%"><label data-i18n="Extended-Channeling-SL" >Extended Channelling SL</label>
2581 </td>
2582 <td class="sheet-col" style="width:5%;"><input type="number" style="text-align:center;" name="attr_ExtendedChannellingSl" value="0">
2583 </td>
2584
2585 <td class="sheet-col" style="width:19%">
2586 </td>
2587
2588 <td class="sheet-col" style="width:14%"><label data-i18n="Sin-Points" >Sin Points</label>
2589 </td>
2590 <td class="sheet-col" style="width:5%"><input type="number" style="text-align:center;" name="attr_SinPoints" value="0" />
2591 </td>
2592 <td class="sheet-col" style="width:14%">
2593 </td>
2594 </tr>
2595 </table>
2596 </div>
2597 <div class="sheet-col" style="width:100%; text-align:left">
2598 <div class="sheet-col" style="width:20%;"><label style="text-align:left" data-i18n="Name" >Name</label>
2599 </div>
2600 <div class="sheet-col" style="width:10%;"><label style="text-align:center" data-i18n="Type" >Type</label>
2601 </div>
2602 <div class="sheet-col" style="width:5%; margin:-2px; "><label style="text-align:center" data-i18n="CN" >CN</label>
2603 </div>
2604 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Range" >Range</label>
2605 </div>
2606 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Target" >Target</label>
2607 </div>
2608 <div class="sheet-col" style="width:10%; margin:-2px; "><label style="text-align:center" data-i18n="Duration" >Duration</label>
2609 </div>
2610 <div class="sheet-col" style="width:25%; margin:-2px; "><label style="text-align:left" data-i18n="Effect" >Effect</label>
2611 </div>
2612 </div>
2613 <fieldset class="repeating_spells" name="attr_repeating_spells">
2614 <div style="width:100%; text-align:left">
2615 <div class="sheet-col" style="width:20%;"><input type="text" name="attr_Spell" />
2616 </div>
2617 <div class="sheet-col" style="width:10%; margin:-2px; ">
2618 <select name="attr_SpellType" style="width:100%" class="sheet-input-selectbox" >
2619 <option value="@{LanguageMagick}" selected><label data-i18n="Arcane" >Arcane</label></option>
2620 <option value="@{Pray}"><label data-i18n="Divine" >Divine</label></option>
2621 </select>
2622 </div>
2623 <div class="sheet-col" style="width:5%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellCN" />
2624 </div>
2625 <div class="sheet-col" style="width:10%; margin:-2px; ">
2626 <!-- Spell Range -->
2627 <select name="attr_SpellRange" type="number" style="width:100%" class="sheet-input-selectbox" >
2628 <option value="[[@{Current_WP}]] Yards" selected><label data-i18n="Willpower-Yards">Willpower Yards</label></option>
2629 <option value="[[@{Current_WPB}]] Yards"><label data-i18n="Willpower-Bonus-Yards">Willpower Bonus Yards</label></option>
2630 <option value="[[@{Current_WPB}]] Miles"><label data-i18n="Willpower-Bonus-Miles">Willpower Bonus Miles</label></option>
2631 <option value="1 Yard"><label data-i18n="1-Yard">1 Yard</label></option>
2632 <option value="You"><label data-i18n="You">You</label></option>
2633 <option value="Touch"><label data-i18n="Touch">Touch</label></option>
2634 <option value="Special"><label data-i18n="Special">Special</label></option>
2635 <option value="[[@{Current_I}]] Yards" selected><label data-i18n="Initiative-Yards">Initiative Yards</label></option>
2636 <option value="[[@{Current_IB}]] Miles" selected><label data-i18n="Initiative-Bonus-Miles">Initiative Bonus Miles</label></option>
2637 <option value="[[@{Current_IntB}]] Yards" selected><label data-i18n="Intelligence-Bonus-Yards">Intelligence Bonus Yards</label></option>
2638 <option value="[[@{Current_Fel}]] Yards" selected><label data-i18n="Fellowship-Yards">Fellowship Yards</label></option>
2639 <option value="[[@{Current_FelB}]] Yards" selected><label data-i18n="Fellowship-Bonus-Yards">Fellowship Bonus Yards</label></option>
2640 <option value="6 Yards" selected><label data-i18n="6-Yards">6 Yards</label></option>
2641 </select>
2642 </div>
2643 <div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellTarget" />
2644 </div>
2645 <div class="sheet-col" style="width:10%; margin:-2px; "><input type="text" style="text-align:center" name="attr_SpellDuration" />
2646 </div>
2647 <div class="sheet-col" style="width:25%; margin:-2px; "><input type="text" name="attr_SpellEffect" />
2648 </div>
2649 <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>
2650 </div>
2651 <input type="checkbox" class="sheet-arrow" style="" name="attr_SpellDescHide"/><span></span>
2652 <div class="sheet-body">
2653 <textarea name="attr_Spelldesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2654 </div>
2655 </div>
2656 </fieldset>
2657 </div>
2658
2659<!-- INJURIES, AFFLICTIONS, PSYCHOLOGY AND MUTATIONS -->
2660 <hr>
2661 <h4 data-i18n="INJURIES-AFFLICTIONS-PYSCHOLOGY-&-MUTATIONS" >INJURIES, AFFLICTIONS, PSYCHOLOGY AND MUTATIONS</h4>
2662 <!-- Corruption -->
2663 <div class="sheet-wrapper" style="width:100%; text-align:center;">
2664 <table>
2665 <tr>
2666 <td style="width:10%">
2667 </td>
2668
2669 <td style="text-align:left; width:20%"><label style="text-align:left" data-i18n="Current-Corruption" >Current Corruption</label>
2670 </td>
2671 <td style="text-align:left; width:5%"><input type="number" name="attr_corruption" style="text-align:center" value="0" />
2672 </td>
2673
2674 <td style="width:5%">
2675 </td>
2676
2677 <td style="text-align:left; width:15%"><label style="text-align:left" data-i18n="Max-Corruption" >Max Corruption</label>
2678 </td>
2679 <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/>
2680 </td>
2681
2682 <td style="width:10%">
2683 </td>
2684
2685 <td style="text-align:left; width:10"><label style="text-align:left" data-i18n="Modifier" >Modifier</label>
2686 </td>
2687 <td style="text-align:left; width:5%"><input type="number" name="attr_corruptionmod" style="text-align:center" value="0" />
2688 </td>
2689
2690 <td style="width:15%">
2691 </td>
2692 </tr>
2693 </table>
2694 </div>
2695 <div class="sheet-wrapper" style="width:100%">
2696 <div style="width:100%; text-align:left;">
2697 <div class="sheet-col" style="width:32%"><label style="text-align:left" data-i18n="Name" >Name</label>
2698 </div>
2699 <div class="sheet-col" style="width:38%"><label style="text-align:left" data-i18n="Effect" >Effect</label>
2700 </div>
2701 <div class="sheet-col" style="width:20%"><label style="text-align:center" data-i18n="Time" >Time</label>
2702 </div>
2703 </div>
2704 <fieldset class="repeating_afflictions" name="repeating_afflicitons">
2705 <div style="width 100%; text-align:left;">
2706 <div class="sheet-col" style="width:32%"><input type="text" placeholder="Affliction Name" name="attr_afflictionname" />
2707 </div>
2708 <div class="sheet-col" style="width:38%"><input type="text" placeholder="Affliction Effect" style="text-align:left" name="attr_afflictioneffect" />
2709 </div>
2710 <div class="sheet-col" style="width:20%"><input type="text" placeholder="Affliction Heal Time" style="text-align:center" name="attr_afflictionhealtime">
2711 </div>
2712
2713 <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>
2714 <input type="checkbox" class="sheet-arrow" style="" name="attr_AfflicitonDescHide"/><span></span>
2715 <div class="sheet-body">
2716 <textarea name="attr_Afflicitondesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2717 </div>
2718 </div>
2719 </fieldset>
2720 </div>
2721
2722<!-- Trappings -->
2723 <hr>
2724 <div style="width:100%">
2725 <div class="sheet-wrapper" style="width:100%; text-align:left;">
2726 <h4 data-i18n="TRAPPINGS">TRAPPINGS</h4>
2727 <div style="width:100%">
2728 <div class="sheet-col" style="width:82%"><label style="text-align:left" data-i18n="Name" >Name</label>
2729 </div>
2730 <div class="sheet-col" style="width:5%"><label style="text-align:left" data-i18n="Enc" >Enc</label>
2731 </div>
2732 <div class="sheet-col" style="width:8%"><label style="text-align:center"></label>
2733 </div>
2734 </div>
2735 <fieldset class="repeating_trappings" name="repeating_trappings">
2736 <div style="width:100%">
2737 <div class="sheet-item" style="width:77%"><input type="text" placeholder="" name="attr_TrappingName" /></div>
2738 <div class="sheet-item" style="width:5%"><input type="number" style="text-align:center" value="0" name="attr_TrappingWeight" /></div>
2739 <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>
2740 <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>
2741 <input type="checkbox" class="sheet-arrow" name="attr_TrappingDescHide"/><span></span>
2742 <div class="sheet-body">
2743 <textarea name="attr_Trappingdesc" placeholder="Description" style="width:90%; height:50px"></textarea>
2744 </div>
2745 </div>
2746 </fieldset>
2747
2748 </div>
2749 <div class="sheet-col" style="width:2%">
2750 </div>
2751 </div>
2752
2753</div>
2754</div>
2755
2756
2757<div class="sheet-tab-content sheet-tabInformation">
2758<div class="sheet-wrapper">
2759<!-- Notes -->
2760 <br>
2761 <div>
2762 <div class="sheet-col" style="width:48%; " >
2763 <h4 data-i18n="PERSONALITY" >PERSONALITY</h4>
2764 <textarea name="attr_Personality" style="width:90%; height:100px" ></textarea>
2765 </div>
2766 <div class="sheet-col" style="width:2%; ">
2767 </div>
2768 <div class="sheet-col" style="width:48%; " >
2769 <h4 data-i18n="APPEARANCE" >APPEARANCE</h4>
2770 <textarea name="attr_Appearance" style="width:90%; height:100px" ></textarea>
2771 </div>
2772 </div>
2773<!-- Personality -->
2774 <hr>
2775 <div>
2776 <div class="sheet-col" style="width:48%; ">
2777 <h4 data-i18n="CONTACTS/FRIENDS">CONTACTS/FRIENDS</h4>
2778 <textarea name="attr_Contacts" style="width:90%; height:100px" ></textarea>
2779 </div>
2780 <div class="sheet-col" style="width:2%; ">
2781 </div>
2782 <div class="sheet-col" style="width:48%; " >
2783 <h4 data-i18n="ENEMIES">ENEMIES</h4>
2784 <textarea name="attr_Enemies" style="width:90%; height:100px" ></textarea>
2785 </div>
2786 </div>
2787 <hr>
2788 <div>
2789 <div class="sheet-col" style="width:99%; " >
2790 <h4 data-i18n="HISTORY" >HISTORY</h4>
2791 <textarea name="attr_History" style="width:90%; height:150px" ></textarea>
2792 </div>
2793 </div>
2794 <hr>
2795 <div>
2796 <div class="sheet-col" style="width:99%; ">
2797 <h4 data-i18n="NOTES" >NOTES</h4>
2798 <textarea name="attr_Notes" style="width:90%; height:150px" ></textarea>
2799 </div>
2800 </div>
2801 <hr>
2802 <div class="sheet-col" style="text-align:center; width:100%; font-size:12px;">
2803 </div>
2804 <hr>
2805
2806</div>
2807</div>
2808
2809<div class="sheet-tab-content sheet-tabExperience">
2810<div class="sheet-wrapper">
2811 <br>
2812 <h4 data-i18n="Experience-Points">Experience Points</h4>
2813 <table style="margin-left:auto;margin-right:auto; text-align:center">
2814 <tr>
2815 <td><label style="text-align:center; height:auto;" data-i18n="Total-XP">Total XP</label>
2816 </td>
2817 <td><label style="text-align:center; height:auto;" data-i18n="Spent-XP">Spent XP</label>
2818 </td>
2819 <td><label style="text-align:center; height:auto" data-i18n="Left-XP">Left XP</label>
2820 </td>
2821 </tr>
2822 <tr>
2823 <td style="width:120px;"><input style="width:100px; text-align:center" type="number" name="attr_character_TotalExperience" value="0" />
2824 </td>
2825 <td style="width:120px;"><input style="width:100px; text-align:center" type="number" name="attr_character_SpentExperience" value="0" />
2826 </td>
2827 <td style="width:120px;"><input style="width:100px; text-align:center"type="number" name="attr_character_LeftExperience" disabled value="floor(@{character_TotalExperience}-@{character_SpentExperience})" />
2828 </td>
2829 </tr>
2830 </table>
2831 <br>
2832 <label data-i18n="Advancements-Taken-Calculated-p">Advancements Taken (Calculated):</label>
2833 <fieldset class="repeating_advancements">
2834 <table style="width:100%">
2835 <tr>
2836 <td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement1" /></td>
2837 <td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement1xp" /></td>
2838 <td style="width:5%"></td>
2839 <td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement2" /></td>
2840 <td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement2xp" /></td>
2841 <td style="width:5%"></td>
2842 <td style="width:25%"><input type="text" placeholder="Advancement Name" name="attr_advancement3" /></td>
2843 <td style="width:5%"><input type="number" placeholder="Cost" value="0" name="attr_advancement3xp" /></td>
2844 </tr>
2845 </table>
2846 </fieldset>
2847 </div>
2848
2849</div>
2850</div>
2851
2852<!-- possible NPC Sheet
2853<div class="sheet-tab-content sheet-tabGM">
2854 <input type='radio' name="attr_gm_show" class="sheet-tab sheet-tabNPC" value="1" checked />
2855<label class="sheet-tab" >NPC</label>
2856
2857</div> -->
2858
2859<br><br>
2860<!-- Rolltemplate wfrp4 -->
2861 <rolltemplate class="sheet-rolltemplate-wfrp4">
2862 <table>
2863 <th style="text-align:center; width:10%"><div class="sheet-rollcharacter">{{name}}</div>
2864 <div class="sheet-rolltitle">{{title}}</div>
2865 </th>
2866 <tr>
2867 <td style="text-align:left; width:10%">
2868 {{#dice}}
2869 <b>Rolled: </b> {{dice}} <b>vs</b> {{against}}
2870
2871 <!-- Success Result -->
2872 <br>**Result:**
2873 {{#rollWasCrit() dice}}
2874 {{#rollLess() dice against}}
2875 <b><i style="color:#3FB315;">Critical</i></b>
2876 {{/rollLess() dice against}}
2877 {{#rollGreater() dice against}}
2878 <b><i style="color:#cc6633;">Fumbling</i></b>
2879 {{/rollGreater() dice against}}
2880 {{/rollWasCrit() dice}}
2881 {{#rollWasFumble() dice}}
2882 <b><i style="color:#cc6633;">Fumbling</i></b>
2883 {{/rollWasFumble() dice}}
2884 {{#rollLess() dice against}}
2885 <b><i style="color:#3FB315;">Success</i></b><br>
2886 {{/rollLess() dice against}}
2887 {{#rollTotal() dice against}}
2888 <b><i style="color:#3FB315;">Success</i></b><br>
2889 {{/rollTotal() dice against}}
2890 {{#rollGreater() dice against}}
2891 <b><i style="color:#cc6633;">Failure</i></b><br>
2892 {{/rollGreater() dice against}}
2893 {{/dice}}
2894<!-- Spell Description -->
2895 {{#description}}
2896 <br><b>Description: </b> <i>{{description}}</i><br>
2897 {{/description}}
2898<!-- Weapon Stats -->
2899 {{#weapon}}
2900 <br><b>Weapon:</b> {{weapon}}<br>
2901 <b>Range/Reach:</b> {{range}}<br>
2902 <b>Dmg:</b> {{damage}}
2903 {{/weapon}}
2904<!-- Spell Stats 1st Part -->
2905 {{#spell}}
2906 <br><b>Spell:</b> {{spell}}<br>
2907 <b>CN:</b> {{cn}}
2908 {{/spell}}
2909<!-- Success Level -->
2910{{#rollBetween() against 90 99}}
2911 {{#rollTotal() dice 100}}–1{{/rollTotal() dice 100}}
2912 {{#rollBetween() dice against 99}}
2913 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2914 {{/rollBetween() dice against 99}}
2915 {{#rollBetween() dice 90 against}}<b>SL: </b>+0{{/rollBetween() dice 90 against}}
2916 {{#rollBetween() dice 80 89}}<b>SL: </b>+1{{/rollBetween() dice 80 89}}
2917 {{#rollBetween() dice 70 79}}<b>SL: </b>+2{{/rollBetween() dice 70 79}}
2918 {{#rollBetween() dice 60 69}}<b>SL: </b>+3{{/rollBetween() dice 60 69}}
2919 {{#rollBetween() dice 50 59}}<b>SL: </b>+4{{/rollBetween() dice 50 59}}
2920 {{#rollBetween() dice 40 49}}<b>SL: </b>+5{{/rollBetween() dice 40 49}}
2921 {{#rollBetween() dice 30 39}}<b>SL: </b>+6{{/rollBetween() dice 30 39}}
2922 {{#rollBetween() dice 20 29}}<b>SL: </b>+7{{/rollBetween() dice 20 29}}
2923 {{#rollBetween() dice 10 19}}<b>SL: </b>+8{{/rollBetween() dice 10 19}}
2924 {{#rollBetween() dice 1 9}}<b>SL: </b>+9{{/rollBetween() dice 1 9}}
2925{{/rollBetween() against 90 99}}
2926{{#rollBetween() against 80 89}}
2927 {{#rollTotal() dice 100}}<b>SL: </b>–2{{/rollTotal() dice 100}}
2928 {{#rollBetween() dice 90 99}}<b>SL: </b>–1{{/rollBetween() dice 90 99}}
2929 {{#rollBetween() dice against 89}}
2930 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2931 {{/rollBetween() dice against 89}}
2932 {{#rollBetween() dice 80 against}}<b>SL: </b>+0{{/rollBetween() dice 80 against}}
2933 {{#rollBetween() dice 70 79}}<b>SL: </b>+1{{/rollBetween() dice 70 79}}
2934 {{#rollBetween() dice 60 69}}<b>SL: </b>+2{{/rollBetween() dice 60 69}}
2935 {{#rollBetween() dice 50 59}}<b>SL: </b>+3{{/rollBetween() dice 50 59}}
2936 {{#rollBetween() dice 40 49}}<b>SL: </b>+4{{/rollBetween() dice 40 49}}
2937 {{#rollBetween() dice 30 39}}<b>SL: </b>+5{{/rollBetween() dice 30 39}}
2938 {{#rollBetween() dice 20 29}}<b>SL: </b>+6{{/rollBetween() dice 20 29}}
2939 {{#rollBetween() dice 10 19}}<b>SL: </b>+7{{/rollBetween() dice 10 19}}
2940 {{#rollBetween() dice 1 9}}<b>SL: </b>+8{{/rollBetween() dice 1 9}}
2941{{/rollBetween() against 80 89}}
2942{{#rollBetween() against 70 79}}
2943 {{#rollTotal() dice 100}}<b>SL: </b>–3{{/rollTotal() dice 100}}
2944 {{#rollBetween() dice 90 99}}<b>SL: </b>–2{{/rollBetween() dice 90 99}}
2945 {{#rollBetween() dice 80 89}}<b>SL: </b>–1{{/rollBetween() dice 80 89}}
2946 {{#rollBetween() dice against 79}}
2947 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2948 {{/rollBetween() dice against 79}}
2949 {{#rollBetween() dice 70 against}}<b>SL: </b>+0{{/rollBetween() dice 70 against}}
2950 {{#rollBetween() dice 60 69}}<b>SL: </b>+1{{/rollBetween() dice 60 69}}
2951 {{#rollBetween() dice 50 59}}<b>SL: </b>+2{{/rollBetween() dice 50 59}}
2952 {{#rollBetween() dice 40 49}}<b>SL: </b>+3{{/rollBetween() dice 40 49}}
2953 {{#rollBetween() dice 30 39}}<b>SL: </b>+4{{/rollBetween() dice 30 39}}
2954 {{#rollBetween() dice 20 29}}<b>SL: </b>+5{{/rollBetween() dice 20 29}}
2955 {{#rollBetween() dice 10 19}}<b>SL: </b>+6{{/rollBetween() dice 10 19}}
2956 {{#rollBetween() dice 1 9}}+7{{/rollBetween() dice 1 9}}
2957{{/rollBetween() against 70 79}}
2958{{#rollBetween() against 60 69}}
2959 {{#rollTotal() dice 100}}–4{{/rollTotal() dice 100}}
2960 {{#rollBetween() dice 90 99}}<b>SL: </b>–3{{/rollBetween() dice 90 99}}
2961 {{#rollBetween() dice 80 89}}<b>SL: </b>–2{{/rollBetween() dice 80 89}}
2962 {{#rollBetween() dice 70 79}}<b>SL: </b>–1{{/rollBetween() dice 70 79}}
2963 {{#rollBetween() dice against 69}}
2964 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2965 {{/rollBetween() dice against 69}}
2966 {{#rollBetween() dice 60 against}}<b>SL: </b>+0{{/rollBetween() dice 60 against}}
2967 {{#rollBetween() dice 50 59}}<b>SL: </b>+1{{/rollBetween() dice 50 59}}
2968 {{#rollBetween() dice 40 49}}<b>SL: </b>+2{{/rollBetween() dice 40 49}}
2969 {{#rollBetween() dice 30 39}}<b>SL: </b>+3{{/rollBetween() dice 30 39}}
2970 {{#rollBetween() dice 20 29}}<b>SL: </b>+4{{/rollBetween() dice 20 29}}
2971 {{#rollBetween() dice 10 19}}<b>SL: </b>+5{{/rollBetween() dice 10 19}}
2972 {{#rollBetween() dice 1 9}}<b>SL: </b>+6{{/rollBetween() dice 1 9}}
2973{{/rollBetween() against 60 69}}
2974{{#rollBetween() against 50 59}}
2975 {{#rollTotal() dice 100}}<b>SL: </b>–5{{/rollTotal() dice 100}}
2976 {{#rollBetween() dice 90 99}}<b>SL: </b>–4{{/rollBetween() dice 90 99}}
2977 {{#rollBetween() dice 80 89}}<b>SL: </b>–3{{/rollBetween() dice 80 89}}
2978 {{#rollBetween() dice 70 79}}<b>SL: </b>–2{{/rollBetween() dice 70 79}}
2979 {{#rollBetween() dice 60 69}}<b>SL: </b>–1{{/rollBetween() dice 60 69}}
2980 {{#rollBetween() dice against 59}}
2981 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2982 {{/rollBetween() dice against 59}}
2983 {{#rollBetween() dice 50 against}}<b>SL: </b>+0{{/rollBetween() dice 50 against}}
2984 {{#rollBetween() dice 40 49}}<b>SL: </b>+1{{/rollBetween() dice 40 49}}
2985 {{#rollBetween() dice 30 39}}<b>SL: </b>+2{{/rollBetween() dice 30 39}}
2986 {{#rollBetween() dice 20 29}}<b>SL: </b>+3{{/rollBetween() dice 20 29}}
2987 {{#rollBetween() dice 10 19}}<b>SL: </b>+4{{/rollBetween() dice 10 19}}
2988 {{#rollBetween() dice 1 9}}<b>SL: </b>+5{{/rollBetween() dice 1 9}}
2989{{/rollBetween() against 50 59}}
2990{{#rollBetween() against 40 49}}
2991 {{#rollTotal() dice 100}}–6{{/rollTotal() dice 100}}
2992 {{#rollBetween() dice 90 99}}<b>SL: </b>–5{{/rollBetween() dice 90 99}}
2993 {{#rollBetween() dice 80 89}}<b>SL: </b>–4{{/rollBetween() dice 80 89}}
2994 {{#rollBetween() dice 70 79}}<b>SL: </b>–3{{/rollBetween() dice 70 79}}
2995 {{#rollBetween() dice 60 69}}<b>SL: </b>–2{{/rollBetween() dice 60 69}}
2996 {{#rollBetween() dice 50 59}}<b>SL: </b>–1{{/rollBetween() dice 50 59}}
2997 {{#rollBetween() dice against 49}}
2998 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
2999 {{/rollBetween() dice against 49}}
3000 {{#rollBetween() dice 40 against}}<b>SL: </b>+0{{/rollBetween() dice 40 against}}
3001 {{#rollBetween() dice 30 39}}<b>SL: </b>+1{{/rollBetween() dice 30 39}}
3002 {{#rollBetween() dice 20 29}}<b>SL: </b>+2{{/rollBetween() dice 20 29}}
3003 {{#rollBetween() dice 10 19}}<b>SL: </b>+3{{/rollBetween() dice 10 19}}
3004 {{#rollBetween() dice 1 9}}<b>SL: </b>+4{{/rollBetween() dice 1 9}}
3005{{/rollBetween() against 40 49}}
3006{{#rollBetween() against 30 39}}
3007 {{#rollTotal() dice 100}}-7{{/rollTotal() dice 100}}
3008 {{#rollBetween() dice 90 99}}<b>SL: </b>–6{{/rollBetween() dice 90 99}}
3009 {{#rollBetween() dice 80 89}}<b>SL: </b>–5{{/rollBetween() dice 80 89}}
3010 {{#rollBetween() dice 70 79}}<b>SL: </b>–4{{/rollBetween() dice 70 79}}
3011 {{#rollBetween() dice 60 69}}<b>SL: </b>–3{{/rollBetween() dice 60 69}}
3012 {{#rollBetween() dice 50 59}}<b>SL: </b>–2{{/rollBetween() dice 50 59}}
3013 {{#rollBetween() dice 40 49}}<b>SL: </b>–1{{/rollBetween() dice 40 49}}
3014 {{#rollBetween() dice against 39}}
3015 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
3016 {{/rollBetween() dice against 39}}
3017 {{#rollBetween() dice 30 against}}<b>SL: </b>+0{{/rollBetween() dice 30 against}}
3018 {{#rollBetween() dice 20 29}}<b>SL: </b>+1{{/rollBetween() dice 20 29}}
3019 {{#rollBetween() dice 10 19}}<b>SL: </b>+2{{/rollBetween() dice 10 19}}
3020 {{#rollBetween() dice 1 9}}<b>SL: </b>+3{{/rollBetween() dice 1 9}}
3021{{/rollBetween() against 30 39}}
3022{{#rollBetween() against 20 29}}
3023 {{#rollTotal() dice 100}}–8{{/rollTotal() dice 100}}
3024 {{#rollBetween() dice 90 99}}<b>SL: </b>–7{{/rollBetween() dice 90 99}}
3025 {{#rollBetween() dice 80 89}}<b>SL: </b>–6{{/rollBetween() dice 80 89}}
3026 {{#rollBetween() dice 70 79}}<b>SL: </b>–5{{/rollBetween() dice 70 79}}
3027 {{#rollBetween() dice 60 69}}<b>SL: </b>–4{{/rollBetween() dice 60 69}}
3028 {{#rollBetween() dice 50 59}}<b>SL: </b>–3{{/rollBetween() dice 50 59}}
3029 {{#rollBetween() dice 40 49}}<b>SL: </b>–2{{/rollBetween() dice 40 49}}
3030 {{#rollBetween() dice 30 39}}<b>SL: </b>–1{{/rollBetween() dice 30 39}}
3031 {{#rollBetween() dice against 29}}
3032 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
3033 {{/rollBetween() dice against 29}}
3034 {{#rollBetween() dice 20 against}}<b>SL: </b>+0{{/rollBetween() dice 20 against}}
3035 {{#rollBetween() dice 10 19}}<b>SL: </b>+1{{/rollBetween() dice 10 19}}
3036 {{#rollBetween() dice 1 9}}<b>SL: </b>+2{{/rollBetween() dice 1 9}}
3037{{/rollBetween() against 20 29}}
3038{{#rollBetween() against 10 19}}
3039 {{#rollTotal() dice 100}}<b>SL: </b>–9{{/rollTotal() dice 100}}
3040 {{#rollBetween() dice 90 99}}<b>SL: </b>–8{{/rollBetween() dice 90 99}}
3041 {{#rollBetween() dice 80 89}}<b>SL: </b>–7{{/rollBetween() dice 80 89}}
3042 {{#rollBetween() dice 70 79}}<b>SL: </b>–6{{/rollBetween() dice 70 79}}
3043 {{#rollBetween() dice 60 69}}<b>SL: </b>–5{{/rollBetween() dice 60 69}}
3044 {{#rollBetween() dice 50 59}}<b>SL: </b>–4{{/rollBetween() dice 50 59}}
3045 {{#rollBetween() dice 40 49}}<b>SL: </b>–3{{/rollBetween() dice 40 49}}
3046 {{#rollBetween() dice 30 39}}<b>SL: </b>–2{{/rollBetween() dice 30 39}}
3047 {{#rollBetween() dice 20 29}}<b>SL: </b>–1{{/rollBetween() dice 20 29}}
3048 {{#rollBetween() dice against 19}}
3049 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
3050 {{/rollBetween() dice against 19}}
3051 {{#rollBetween() dice 10 against}}<b>SL: </b>+0{{/rollBetween() dice 10 against}}
3052 {{#rollBetween() dice 1 9}}<b>SL: </b>+1{{/rollBetween() dice 1 9}}
3053{{/rollBetween() against 10 19}}
3054{{#rollBetween() against 1 9}}
3055 {{#rollTotal() dice 100}}<b>SL: </b>–10{{/rollTotal() dice 100}}
3056 {{#rollBetween() dice 90 99}}<b>SL: </b>–9{{/rollBetween() dice 90 99}}
3057 {{#rollBetween() dice 80 89}}<b>SL: </b>–8{{/rollBetween() dice 80 89}}
3058 {{#rollBetween() dice 70 79}}<b>SL: </b>–7{{/rollBetween() dice 70 79}}
3059 {{#rollBetween() dice 60 69}}<b>SL: </b>–6{{/rollBetween() dice 60 69}}
3060 {{#rollBetween() dice 50 59}}<b>SL: </b>–5{{/rollBetween() dice 50 59}}
3061 {{#rollBetween() dice 40 49}}<b>SL: </b>–4{{/rollBetween() dice 40 49}}
3062 {{#rollBetween() dice 30 39}}<b>SL: </b>–3{{/rollBetween() dice 30 39}}
3063 {{#rollBetween() dice 20 29}}<b>SL: </b>–2{{/rollBetween() dice 20 29}}
3064 {{#rollBetween() dice 10 19}}<b>SL: </b>–1{{/rollBetween() dice 10 19}}
3065 {{#rollBetween() dice against 9}}
3066 {{#^rollTotal() dice against}}<b>SL: </b>–0{{/^rollTotal() dice against}}
3067 {{/rollBetween() dice against 9}}
3068 {{#rollBetween() dice 1 against}}<b>SL: </b>+0{{/rollBetween() dice 1 against}}
3069{{/rollBetween() against 1 9}}
3070
3071{{#rollBetween() against 100 109}}
3072 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3073 {{#rollBetween() dice 90 95}}<b>SL: </b>+1{{/rollBetween() dice 90 95}}
3074 {{#rollBetween() dice 80 89}}<b>SL: </b>+2{{/rollBetween() dice 80 89}}
3075 {{#rollBetween() dice 70 79}}<b>SL: </b>+3{{/rollBetween() dice 70 79}}
3076 {{#rollBetween() dice 60 69}}<b>SL: </b>+4{{/rollBetween() dice 60 69}}
3077 {{#rollBetween() dice 50 59}}<b>SL: </b>+5{{/rollBetween() dice 50 59}}
3078 {{#rollBetween() dice 40 49}}<b>SL: </b>+6{{/rollBetween() dice 40 49}}
3079 {{#rollBetween() dice 30 39}}<b>SL: </b>+7{{/rollBetween() dice 30 39}}
3080 {{#rollBetween() dice 20 29}}<b>SL: </b>+8{{/rollBetween() dice 20 29}}
3081 {{#rollBetween() dice 10 19}}<b>SL: </b>+9{{/rollBetween() dice 10 19}}
3082 {{#rollBetween() dice 1 9}}<b>SL: </b>+10{{/rollBetween() dice 1 9}}
3083{{/rollBetween() against 100 109}}
3084
3085{{#rollBetween() against 110 119}}
3086 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3087 {{#rollBetween() dice 90 95}}<b>SL: </b>+2{{/rollBetween() dice 90 95}}
3088 {{#rollBetween() dice 80 89}}<b>SL: </b>+3{{/rollBetween() dice 80 89}}
3089 {{#rollBetween() dice 70 79}}<b>SL: </b>+4{{/rollBetween() dice 70 79}}
3090 {{#rollBetween() dice 60 69}}<b>SL: </b>+5{{/rollBetween() dice 60 69}}
3091 {{#rollBetween() dice 50 59}}<b>SL: </b>+6{{/rollBetween() dice 50 59}}
3092 {{#rollBetween() dice 40 49}}<b>SL: </b>+7{{/rollBetween() dice 40 49}}
3093 {{#rollBetween() dice 30 39}}<b>SL: </b>+8{{/rollBetween() dice 30 39}}
3094 {{#rollBetween() dice 20 29}}<b>SL: </b>+9{{/rollBetween() dice 20 29}}
3095 {{#rollBetween() dice 10 19}}<b>SL: </b>+10{{/rollBetween() dice 10 19}}
3096 {{#rollBetween() dice 1 9}}<b>SL: </b>+10{{/rollBetween() dice 1 9}}
3097{{/rollBetween() against 110 119}}
3098
3099{{#rollBetween() against 120 129}}
3100 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3101 {{#rollBetween() dice 90 95}}<b>SL: </b>+3{{/rollBetween() dice 90 95}}
3102 {{#rollBetween() dice 80 89}}<b>SL: </b>+4{{/rollBetween() dice 80 89}}
3103 {{#rollBetween() dice 70 79}}<b>SL: </b>+5{{/rollBetween() dice 70 79}}
3104 {{#rollBetween() dice 60 69}}<b>SL: </b>+6{{/rollBetween() dice 60 69}}
3105 {{#rollBetween() dice 50 59}}<b>SL: </b>+7{{/rollBetween() dice 50 59}}
3106 {{#rollBetween() dice 40 49}}<b>SL: </b>+8{{/rollBetween() dice 40 49}}
3107 {{#rollBetween() dice 30 39}}<b>SL: </b>+9{{/rollBetween() dice 30 39}}
3108 {{#rollBetween() dice 20 29}}<b>SL: </b>+10{{/rollBetween() dice 20 29}}
3109 {{#rollBetween() dice 10 19}}<b>SL: </b>+11{{/rollBetween() dice 10 19}}
3110 {{#rollBetween() dice 03 09}}<b>SL: </b>+11{{/rollBetween() dice 03 09}}
3111 {{#rollBetween() dice 01 02}}<b>SL: </b>+12{{/rollBetween() dice 01 02}}
3112{{/rollBetween() against 120 129}}
3113
3114{{#rollBetween() against 130 139}}
3115 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3116 {{#rollBetween() dice 90 95}}<b>SL: </b>+4{{/rollBetween() dice 90 95}}
3117 {{#rollBetween() dice 80 89}}<b>SL: </b>+5{{/rollBetween() dice 80 89}}
3118 {{#rollBetween() dice 70 79}}<b>SL: </b>+6{{/rollBetween() dice 70 79}}
3119 {{#rollBetween() dice 60 69}}<b>SL: </b>+7{{/rollBetween() dice 60 69}}
3120 {{#rollBetween() dice 50 59}}<b>SL: </b>+8{{/rollBetween() dice 50 59}}
3121 {{#rollBetween() dice 40 49}}<b>SL: </b>+9{{/rollBetween() dice 40 49}}
3122 {{#rollBetween() dice 30 39}}<b>SL: </b>+10{{/rollBetween() dice 30 39}}
3123 {{#rollBetween() dice 20 29}}<b>SL: </b>+11{{/rollBetween() dice 20 29}}
3124 {{#rollBetween() dice 10 19}}<b>SL: </b>+12{{/rollBetween() dice 10 19}}
3125 {{#rollBetween() dice 04 09}}<b>SL: </b>+12{{/rollBetween() dice 04 09}}
3126 {{#rollBetween() dice 01 03}}<b>SL: </b>+13{{/rollBetween() dice 01 03}}
3127{{/rollBetween() against 130 139}}
3128
3129{{#rollBetween() against 140 149}}
3130 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3131 {{#rollBetween() dice 90 95}}<b>SL: </b>+5{{/rollBetween() dice 90 95}}
3132 {{#rollBetween() dice 80 89}}<b>SL: </b>+6{{/rollBetween() dice 80 89}}
3133 {{#rollBetween() dice 70 79}}<b>SL: </b>+7{{/rollBetween() dice 70 79}}
3134 {{#rollBetween() dice 60 69}}<b>SL: </b>+8{{/rollBetween() dice 60 69}}
3135 {{#rollBetween() dice 50 59}}<b>SL: </b>+9{{/rollBetween() dice 50 59}}
3136 {{#rollBetween() dice 40 49}}<b>SL: </b>+10{{/rollBetween() dice 40 49}}
3137 {{#rollBetween() dice 30 39}}<b>SL: </b>+11{{/rollBetween() dice 30 39}}
3138 {{#rollBetween() dice 20 29}}<b>SL: </b>+12{{/rollBetween() dice 20 29}}
3139 {{#rollBetween() dice 10 19}}<b>SL: </b>+13{{/rollBetween() dice 10 19}}
3140 {{#rollBetween() dice 05 09}}<b>SL: </b>+13{{/rollBetween() dice 05 09}}
3141 {{#rollBetween() dice 01 04}}<b>SL: </b>+14{{/rollBetween() dice 01 04}}
3142{{/rollBetween() against 140 149}}
3143
3144{{#rollBetween() against 150 159}}
3145 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3146 {{#rollBetween() dice 90 95}}<b>SL: </b>+6{{/rollBetween() dice 90 95}}
3147 {{#rollBetween() dice 80 89}}<b>SL: </b>+7{{/rollBetween() dice 80 89}}
3148 {{#rollBetween() dice 70 79}}<b>SL: </b>+8{{/rollBetween() dice 70 79}}
3149 {{#rollBetween() dice 60 69}}<b>SL: </b>+9{{/rollBetween() dice 60 69}}
3150 {{#rollBetween() dice 50 59}}<b>SL: </b>+10{{/rollBetween() dice 50 59}}
3151 {{#rollBetween() dice 40 49}}<b>SL: </b>+11{{/rollBetween() dice 40 49}}
3152 {{#rollBetween() dice 30 39}}<b>SL: </b>+12{{/rollBetween() dice 30 39}}
3153 {{#rollBetween() dice 20 29}}<b>SL: </b>+13{{/rollBetween() dice 20 29}}
3154 {{#rollBetween() dice 10 19}}<b>SL: </b>+14{{/rollBetween() dice 10 19}}
3155 {{#rollBetween() dice 06 09}}<b>SL: </b>+14{{/rollBetween() dice 06 09}}
3156 {{#rollBetween() dice 01 05}}<b>SL: </b>+15{{/rollBetween() dice 01 05}}
3157{{/rollBetween() against 150 159}}
3158
3159{{#rollBetween() against 160 169}}
3160 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3161 {{#rollBetween() dice 90 95}}<b>SL: </b>+7{{/rollBetween() dice 90 95}}
3162 {{#rollBetween() dice 80 89}}<b>SL: </b>+8{{/rollBetween() dice 80 89}}
3163 {{#rollBetween() dice 70 79}}<b>SL: </b>+9{{/rollBetween() dice 70 79}}
3164 {{#rollBetween() dice 60 69}}<b>SL: </b>+10{{/rollBetween() dice 60 69}}
3165 {{#rollBetween() dice 50 59}}<b>SL: </b>+11{{/rollBetween() dice 50 59}}
3166 {{#rollBetween() dice 40 49}}<b>SL: </b>+12{{/rollBetween() dice 40 49}}
3167 {{#rollBetween() dice 30 39}}<b>SL: </b>+13{{/rollBetween() dice 30 39}}
3168 {{#rollBetween() dice 20 29}}<b>SL: </b>+14{{/rollBetween() dice 20 29}}
3169 {{#rollBetween() dice 10 19}}<b>SL: </b>+15{{/rollBetween() dice 10 19}}
3170 {{#rollBetween() dice 07 09}}<b>SL: </b>+15{{/rollBetween() dice 07 09}}
3171 {{#rollBetween() dice 01 06}}<b>SL: </b>+16{{/rollBetween() dice 01 06}}
3172{{/rollBetween() against 160 169}}
3173
3174{{#rollBetween() against 170 179}}
3175 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3176 {{#rollBetween() dice 90 95}}<b>SL: </b>+8{{/rollBetween() dice 90 95}}
3177 {{#rollBetween() dice 80 89}}<b>SL: </b>+9{{/rollBetween() dice 80 89}}
3178 {{#rollBetween() dice 70 79}}<b>SL: </b>+10{{/rollBetween() dice 70 79}}
3179 {{#rollBetween() dice 60 69}}<b>SL: </b>+11{{/rollBetween() dice 60 69}}
3180 {{#rollBetween() dice 50 59}}<b>SL: </b>+12{{/rollBetween() dice 50 59}}
3181 {{#rollBetween() dice 40 49}}<b>SL: </b>+13{{/rollBetween() dice 40 49}}
3182 {{#rollBetween() dice 30 39}}<b>SL: </b>+14{{/rollBetween() dice 30 39}}
3183 {{#rollBetween() dice 20 29}}<b>SL: </b>+15{{/rollBetween() dice 20 29}}
3184 {{#rollBetween() dice 10 19}}<b>SL: </b>+16{{/rollBetween() dice 10 19}}
3185 {{#rollBetween() dice 08 09}}<b>SL: </b>+16{{/rollBetween() dice 08 09}}
3186 {{#rollBetween() dice 01 07}}<b>SL: </b>+17{{/rollBetween() dice 01 07}}
3187{{/rollBetween() against 170 179}}
3188
3189{{#rollBetween() against 180 189}}
3190 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3191 {{#rollBetween() dice 90 95}}<b>SL: </b>+9{{/rollBetween() dice 90 95}}
3192 {{#rollBetween() dice 80 89}}<b>SL: </b>+10{{/rollBetween() dice 80 89}}
3193 {{#rollBetween() dice 70 79}}<b>SL: </b>+11{{/rollBetween() dice 70 79}}
3194 {{#rollBetween() dice 60 69}}<b>SL: </b>+12{{/rollBetween() dice 60 69}}
3195 {{#rollBetween() dice 50 59}}<b>SL: </b>+13{{/rollBetween() dice 50 59}}
3196 {{#rollBetween() dice 40 49}}<b>SL: </b>+14{{/rollBetween() dice 40 49}}
3197 {{#rollBetween() dice 30 39}}<b>SL: </b>+15{{/rollBetween() dice 30 39}}
3198 {{#rollBetween() dice 20 29}}<b>SL: </b>+16{{/rollBetween() dice 20 29}}
3199 {{#rollBetween() dice 10 19}}<b>SL: </b>+17{{/rollBetween() dice 10 19}}
3200 {{#rollTotal() dice 09}}<b>SL: </b>+17{{/rollTotal() dice 09}}
3201 {{#rollBetween() dice 01 08}}<b>SL: </b>+18{{/rollBetween() dice 01 08}}
3202{{/rollBetween() against 180 189}}
3203
3204{{#rollBetween() against 190 199}}
3205 {{#rollBetween() dice 96 99}}<b>SL: </b>-1{{/rollBetween() dice 96 99}}
3206 {{#rollBetween() dice 90 95}}<b>SL: </b>+10{{/rollBetween() dice 90 95}}
3207 {{#rollBetween() dice 80 89}}<b>SL: </b>+11{{/rollBetween() dice 80 89}}
3208 {{#rollBetween() dice 70 79}}<b>SL: </b>+12{{/rollBetween() dice 70 79}}
3209 {{#rollBetween() dice 60 69}}<b>SL: </b>+13{{/rollBetween() dice 60 69}}
3210 {{#rollBetween() dice 50 59}}<b>SL: </b>+14{{/rollBetween() dice 50 59}}
3211 {{#rollBetween() dice 40 49}}<b>SL: </b>+15{{/rollBetween() dice 40 49}}
3212 {{#rollBetween() dice 30 39}}<b>SL: </b>+16{{/rollBetween() dice 30 39}}
3213 {{#rollBetween() dice 20 29}}<b>SL: </b>+17{{/rollBetween() dice 20 29}}
3214 {{#rollBetween() dice 10 19}}<b>SL: </b>+18{{/rollBetween() dice 10 19}}
3215 {{#rollLess() against 198}}
3216 {{#rollTotal() dice 09}}<b>SL: </b>+18{{/rollTotal() dice 09}}
3217 {{#rollBetween() dice 01 08}}<b>SL: </b>+19{{/rollBetween() dice 01 08}}
3218 {{/rollLess() against 198}}
3219 {{#rollTotal() against 199}} <b>SL: </b>+19 {{/rollTotal() against 199}}
3220{{/rollBetween() against 190 199}}
3221
3222{{#rollGreater() against 200}}
3223 <b>SL: </b>+20 <i style="font-size:0.8em;">max calculated value</i>
3224{{/rollGreater() against 200}}
3225
3226<!-- Extended Channelling SL -->
3227{{#channelling}}
3228 <b>Channelling SL:</b> {{channelling}}
3229{{/channelling}}
3230
3231<!-- Hit Location -->
3232 {{#hitlocation}}
3233 <br>
3234 <!-- Head -->
3235 {{#rollTotal() dice 10}}
3236 <b>Hit Location:</b> <i>Head</i>
3237 {{/rollTotal() dice 10}}
3238 {{#rollTotal() dice 20}}
3239 <b>Hit Location:</b> <i>Head</i>
3240 {{/rollTotal() dice 20}}
3241 {{#rollTotal() dice 30}}
3242 <b>Hit Location:</b> <i>Head</i>
3243 {{/rollTotal() dice 30}}
3244 {{#rollTotal() dice 40}}
3245 <b>Hit Location:</b> <i>Head</i>
3246 {{/rollTotal() dice 40}}
3247 {{#rollTotal() dice 50}}
3248 <b>Hit Location:</b> <i>Head</i>
3249 {{/rollTotal() dice 50}}
3250 {{#rollTotal() dice 60}}
3251 <b>Hit Location:</b> <i>Head</i>
3252 {{/rollTotal() dice 60}}
3253 {{#rollTotal() dice 70}}
3254 <b>Hit Location:</b> <i>Head</i>
3255 {{/rollTotal() dice 70}}
3256 {{#rollTotal() dice 80}}
3257 <b>Hit Location:</b> <i>Head</i>
3258 {{/rollTotal() dice 80}}
3259 {{#rollTotal() dice 90}}
3260 <b>Hit Location:</b> <i>Head</i>
3261 {{/rollTotal() dice 90}}
3262
3263 <!-- Left Arm -->
3264 {{#rollTotal() dice 01}}
3265 <b>Hit Location:</b> <i>Left Arm</i>
3266 {{/rollTotal() dice 01}}
3267 {{#rollTotal() dice 11}}
3268 <b>Hit Location:</b> <i>Left Arm</i>
3269 {{/rollTotal() dice 11}}
3270 {{#rollTotal() dice 21}}
3271 <b>Hit Location:</b> <i>Left Arm</i>
3272 {{/rollTotal() dice 21}}
3273 {{#rollTotal() dice 31}}
3274 <b>Hit Location:</b> <i>Left Arm</i>
3275 {{/rollTotal() dice 31}}
3276 {{#rollTotal() dice 41}}
3277 <b>Hit Location:</b> <i>Left Arm</i>
3278 {{/rollTotal() dice 41}}
3279 {{#rollTotal() dice 51}}
3280 <b>Hit Location:</b> <i>Left Arm</i>
3281 {{/rollTotal() dice 51}}
3282 {{#rollTotal() dice 61}}
3283 <b>Hit Location:</b> <i>Left Arm</i>
3284 {{/rollTotal() dice 61}}
3285 {{#rollTotal() dice 71}}
3286 <b>Hit Location:</b> <i>Left Arm</i>
3287 {{/rollTotal() dice 71}}
3288 {{#rollTotal() dice 81}}
3289 <b>Hit Location:</b> <i>Left Arm</i>
3290 {{/rollTotal() dice 81}}
3291 {{#rollTotal() dice 91}}
3292 <b>Hit Location:</b> <i>Left Arm</i>
3293 {{/rollTotal() dice 91}}
3294 {{#rollTotal() dice 02}}
3295 <b>Hit Location:</b> <i>Left Arm</i>
3296 {{/rollTotal() dice 02}}
3297 {{#rollTotal() dice 12}}
3298 <b>Hit Location:</b> <i>Left Arm</i>
3299 {{/rollTotal() dice 12}}
3300 {{#rollTotal() dice 22}}
3301 <b>Hit Location:</b> <i>Left Arm</i>
3302 {{/rollTotal() dice 22}}
3303 {{#rollTotal() dice 32}}
3304 <b>Hit Location:</b> <i>Left Arm</i>
3305 {{/rollTotal() dice 32}}
3306 {{#rollTotal() dice 42}}
3307 <b>Hit Location:</b> <i>Left Arm</i>
3308 {{/rollTotal() dice 42}}
3309
3310 <!-- Right Arm -->
3311 {{#rollTotal() dice 52}}
3312 <b>Hit Location:</b> <i>Right Arm</i>
3313 {{/rollTotal() dice 52}}
3314 {{#rollTotal() dice 62}}
3315 <b>Hit Location:</b> <i>Right Arm</i>
3316 {{/rollTotal() dice 62}}
3317 {{#rollTotal() dice 72}}
3318 <b>Hit Location:</b> <i>Right Arm</i>
3319 {{/rollTotal() dice 72}}
3320 {{#rollTotal() dice 82}}
3321 <b>Hit Location:</b> <i>Right Arm</i>
3322 {{/rollTotal() dice 82}}
3323 {{#rollTotal() dice 92}}
3324 <b>Hit Location:</b> <i>Right Arm</i>
3325 {{/rollTotal() dice 92}}
3326 {{#rollTotal() dice 03}}
3327 <b>Hit Location:</b> <i>Right Arm</i>
3328 {{/rollTotal() dice 03}}
3329 {{#rollTotal() dice 13}}
3330 <b>Hit Location:</b> <i>Right Arm</i>
3331 {{/rollTotal() dice 13}}
3332 {{#rollTotal() dice 23}}
3333 <b>Hit Location:</b> <i>Right Arm</i>
3334 {{/rollTotal() dice 23}}
3335 {{#rollTotal() dice 33}}
3336 <b>Hit Location:</b> <i>Right Arm</i>
3337 {{/rollTotal() dice 33}}
3338 {{#rollTotal() dice 43}}
3339 <b>Hit Location:</b> <i>Right Arm</i>
3340 {{/rollTotal() dice 43}}
3341 {{#rollTotal() dice 53}}
3342 <b>Hit Location:</b> <i>Right Arm</i>
3343 {{/rollTotal() dice 53}}
3344 {{#rollTotal() dice 63}}
3345 <b>Hit Location:</b> <i>Right Arm</i>
3346 {{/rollTotal() dice 63}}
3347 {{#rollTotal() dice 73}}
3348 <b>Hit Location:</b> <i>Right Arm</i>
3349 {{/rollTotal() dice 73}}
3350 {{#rollTotal() dice 83}}
3351 <b>Hit Location:</b> <i>Right Arm</i>
3352 {{/rollTotal() dice 83}}
3353 {{#rollTotal() dice 93}}
3354 <b>Hit Location:</b> <i>Right Arm</i>
3355 {{/rollTotal() dice 93}}
3356 {{#rollTotal() dice 04}}
3357 <b>Hit Location:</b> <i>Right Arm</i>
3358 {{/rollTotal() dice 04}}
3359 {{#rollTotal() dice 14}}
3360 <b>Hit Location:</b> <i>Right Arm</i>
3361 {{/rollTotal() dice 14}}
3362 {{#rollTotal() dice 24}}
3363 <b>Hit Location:</b> <i>Right Arm</i>
3364 {{/rollTotal() dice 24}}
3365 {{#rollTotal() dice 34}}
3366 <b>Hit Location:</b> <i>Right Arm</i>
3367 {{/rollTotal() dice 34}}
3368 {{#rollTotal() dice 44}}
3369 <b>Hit Location:</b> <i>Right Arm</i>
3370 {{/rollTotal() dice 44}}
3371
3372 <!-- Body -->
3373 {{#rollTotal() dice 54}}
3374 <b>Hit Location:</b> <i>Body</i>
3375 {{/rollTotal() dice 54}}
3376 {{#rollTotal() dice 64}}
3377 <b>Hit Location:</b> <i>Body</i>
3378 {{/rollTotal() dice 64}}
3379 {{#rollTotal() dice 74}}
3380 <b>Hit Location:</b> <i>Body</i>
3381 {{/rollTotal() dice 74}}
3382 {{#rollTotal() dice 84}}
3383 <b>Hit Location:</b> <i>Body</i>
3384 {{/rollTotal() dice 84}}
3385 {{#rollTotal() dice 94}}
3386 <b>Hit Location:</b> <i>Body</i>
3387 {{/rollTotal() dice 94}}
3388 {{#rollTotal() dice 05}}
3389 <b>Hit Location:</b> <i>Body</i>
3390 {{/rollTotal() dice 05}}
3391 {{#rollTotal() dice 15}}
3392 <b>Hit Location:</b> <i>Body</i>
3393 {{/rollTotal() dice 15}}
3394 {{#rollTotal() dice 25}}
3395 <b>Hit Location:</b> <i>Body</i>
3396 {{/rollTotal() dice 25}}
3397 {{#rollTotal() dice 35}}
3398 <b>Hit Location:</b> <i>Body</i>
3399 {{/rollTotal() dice 35}}
3400 {{#rollTotal() dice 45}}
3401 <b>Hit Location:</b> <i>Body</i>
3402 {{/rollTotal() dice 45}}
3403 {{#rollTotal() dice 55}}
3404 <b>Hit Location:</b> <i>Body</i>
3405 {{/rollTotal() dice 55}}
3406 {{#rollTotal() dice 65}}
3407 <b>Hit Location:</b> <i>Body</i>
3408 {{/rollTotal() dice 65}}
3409 {{#rollTotal() dice 75}}
3410 <b>Hit Location:</b> <i>Body</i>
3411 {{/rollTotal() dice 75}}
3412 {{#rollTotal() dice 85}}
3413 <b>Hit Location:</b> <i>Body</i>
3414 {{/rollTotal() dice 85}}
3415 {{#rollTotal() dice 95}}
3416 <b>Hit Location:</b> <i>Body</i>
3417 {{/rollTotal() dice 95}}
3418 {{#rollTotal() dice 06}}
3419 <b>Hit Location:</b> <i>Body</i>
3420 {{/rollTotal() dice 06}}
3421 {{#rollTotal() dice 16}}
3422 <b>Hit Location:</b> <i>Body</i>
3423 {{/rollTotal() dice 16}}
3424 {{#rollTotal() dice 26}}
3425 <b>Hit Location:</b> <i>Body</i>
3426 {{/rollTotal() dice 26}}
3427 {{#rollTotal() dice 36}}
3428 <b>Hit Location:</b> <i>Body</i>
3429 {{/rollTotal() dice 36}}
3430 {{#rollTotal() dice 46}}
3431 <b>Hit Location:</b> <i>Body</i>
3432 {{/rollTotal() dice 46}}
3433 {{#rollTotal() dice 56}}
3434 <b>Hit Location:</b> <i>Body</i>
3435 {{/rollTotal() dice 56}}
3436 {{#rollTotal() dice 66}}
3437 <b>Hit Location:</b> <i>Body</i>
3438 {{/rollTotal() dice 66}}
3439 {{#rollTotal() dice 76}}
3440 <b>Hit Location:</b> <i>Body</i>
3441 {{/rollTotal() dice 76}}
3442 {{#rollTotal() dice 86}}
3443 <b>Hit Location:</b> <i>Body</i>
3444 {{/rollTotal() dice 86}}
3445 {{#rollTotal() dice 96}}
3446 <b>Hit Location:</b> <i>Body</i>
3447 {{/rollTotal() dice 96}}
3448 {{#rollTotal() dice 07}}
3449 <b>Hit Location:</b> <i>Body</i>
3450 {{/rollTotal() dice 07}}
3451 {{#rollTotal() dice 17}}
3452 <b>Hit Location:</b> <i>Body</i>
3453 {{/rollTotal() dice 17}}
3454 {{#rollTotal() dice 27}}
3455 <b>Hit Location:</b> <i>Body</i>
3456 {{/rollTotal() dice 27}}
3457 {{#rollTotal() dice 37}}
3458 <b>Hit Location:</b> <i>Body</i>
3459 {{/rollTotal() dice 37}}
3460 {{#rollTotal() dice 47}}
3461 <b>Hit Location:</b> <i>Body</i>
3462 {{/rollTotal() dice 47}}
3463 {{#rollTotal() dice 57}}
3464 <b>Hit Location:</b> <i>Body</i>
3465 {{/rollTotal() dice 57}}
3466 {{#rollTotal() dice 67}}
3467 <b>Hit Location:</b> <i>Body</i>
3468 {{/rollTotal() dice 67}}
3469 {{#rollTotal() dice 77}}
3470 <b>Hit Location:</b> <i>Body</i>
3471 {{/rollTotal() dice 77}}
3472 {{#rollTotal() dice 87}}
3473 <b>Hit Location:</b> <i>Body</i>
3474 {{/rollTotal() dice 87}}
3475 {{#rollTotal() dice 97}}
3476 <b>Hit Location:</b> <i>Body</i>
3477 {{/rollTotal() dice 97}}
3478
3479 <!-- Left Leg -->
3480 {{#rollTotal() dice 08}}
3481 <b>Hit Location:</b> <i>Left Leg</i>
3482 {{/rollTotal() dice 08}}
3483 {{#rollTotal() dice 18}}
3484 <b>Hit Location:</b> <i>Left Leg</i>
3485 {{/rollTotal() dice 18}}
3486 {{#rollTotal() dice 28}}
3487 <b>Hit Location:</b> <i>Left Leg</i>
3488 {{/rollTotal() dice 28}}
3489 {{#rollTotal() dice 38}}
3490 <b>Hit Location:</b> <i>Left Leg</i>
3491 {{/rollTotal() dice 38}}
3492 {{#rollTotal() dice 48}}
3493 <b>Hit Location:</b> <i>Left Leg</i>
3494 {{/rollTotal() dice 48}}
3495 {{#rollTotal() dice 58}}
3496 <b>Hit Location:</b> <i>Left Leg</i>
3497 {{/rollTotal() dice 58}}
3498 {{#rollTotal() dice 68}}
3499 <b>Hit Location:</b> <i>Left Leg</i>
3500 {{/rollTotal() dice 68}}
3501 {{#rollTotal() dice 78}}
3502 <b>Hit Location:</b> <i>Left Leg</i>
3503 {{/rollTotal() dice 78}}
3504 {{#rollTotal() dice 88}}
3505 <b>Hit Location:</b> <i>Left Leg</i>
3506 {{/rollTotal() dice 88}}
3507 {{#rollTotal() dice 98}}
3508 <b>Hit Location:</b> <i>Left Leg</i>
3509 {{/rollTotal() dice 98}}
3510
3511 <!-- Right Leg -->
3512 {{#rollTotal() dice 09}}
3513 <b>Hit Location:</b> <i>Right Leg</i>
3514 {{/rollTotal() dice 09}}
3515 {{#rollTotal() dice 19}}
3516 <b>Hit Location:</b> <i>Right Leg</i>
3517 {{/rollTotal() dice 19}}
3518 {{#rollTotal() dice 29}}
3519 <b>Hit Location:</b> <i>Right Leg</i>
3520 {{/rollTotal() dice 29}}
3521 {{#rollTotal() dice 39}}
3522 <b>Hit Location:</b> <i>Right Leg</i>
3523 {{/rollTotal() dice 39}}
3524 {{#rollTotal() dice 49}}
3525 <b>Hit Location:</b> <i>Right Leg</i>
3526 {{/rollTotal() dice 49}}
3527 {{#rollTotal() dice 59}}
3528 <b>Hit Location:</b> <i>Right Leg</i>
3529 {{/rollTotal() dice 59}}
3530 {{#rollTotal() dice 69}}
3531 <b>Hit Location:</b> <i>Right Leg</i>
3532 {{/rollTotal() dice 69}}
3533 {{#rollTotal() dice 79}}
3534 <b>Hit Location:</b> <i>Right Leg</i>
3535 {{/rollTotal() dice 79}}
3536 {{#rollTotal() dice 89}}
3537 <b>Hit Location:</b> <i>Right Leg</i>
3538 {{/rollTotal() dice 89}}
3539 {{#rollTotal() dice 99}}
3540 <b>Hit Location:</b> <i>Right Leg</i>
3541 {{/rollTotal() dice 99}}
3542 {{#rollTotal() dice 100}}
3543 <b>Hit Location:</b> <i>Right Leg</i>
3544 {{/rollTotal() dice 100}}
3545 {{/hitlocation}}
3546
3547<!-- Weapon Stats -->
3548 {{#weapon}}
3549 <br>
3550 <!-- Weapon Qualities/Flaws -->
3551 <b>Qualities/Flaws:</b> {{qualities}}
3552 {{/weapon}}
3553<!-- Spell Stats 2nd part -->
3554 {{#spell}}
3555 <br><b>Range:</b> {{range}}<br>
3556 <b>Target:</b> {{target}}<br>
3557 <b>Duration:</b> {{duration}}<br>
3558 <b>Effect:</b> {{effect}}
3559 {{/spell}}
3560<!-- Talent Description -->
3561 {{#talentdescription}}
3562 <b>Description: </b><i>{{talentdescription}}</i>
3563 {{/talentdescription}}
3564<!-- Affliction Description -->
3565 {{#afflictionEffect}}
3566 <b>Effect: </b><i>{{afflictionEffect}}</i><br>
3567 <b>Time: </b><i>{{afflictionTime}}</i><br>
3568 <b>Description: </b><i>{{afflictiondescription}}</i>
3569 {{/afflictionEffect}}
3570<!-- Affliction Description -->
3571 {{#initiativeTest}}
3572 <b>Initiative Bonus: </b><i>{{initiativeTestInitiativeBonus}}</i><br>
3573 {{#initiativeTestAgilityBonus}}
3574 <b>Agility Bonus: </b><i>{{initiativeTestAgilityBonus}}</i><br>
3575 {{/initiativeTestAgilityBonus}}
3576 <b>Talents: </b><i>{{initiativeTestTalents}}</i><br>
3577 <b>Test: </b>{{initiativeTest}}
3578 {{/initiativeTest}}
3579 </td>
3580 </tr>
3581 </table>
3582 </rolltemplate>
3583
3584<!-- Script Worker - Alondaar -->
3585<script type="text/worker">
3586/* ---- BEGIN: TheAaronSheet.js ---- */
3587// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js
3588// By: The Aaron, Arcane Scriptomancer
3589// Contact: https://app.roll20.net/users/104025/the-aaron
3590
3591var TAS = TAS || (function(){
3592 'use strict';
3593
3594 var version = '0.2.5',
3595 lastUpdate = 1504710542,
3596
3597 loggingSettings = {
3598 debug: {
3599 key: 'debug',
3600 title: 'DEBUG',
3601 color: {
3602 bgLabel: '#7732A2',
3603 label: '#F2EF40',
3604 bgText: '#FFFEB7',
3605 text: '#7732A2'
3606 }
3607 },
3608 error: {
3609 key: 'error',
3610 title: 'Error',
3611 color: {
3612 bgLabel: '#C11713',
3613 label: 'white',
3614 bgText: '#C11713',
3615 text: 'white'
3616 }
3617 },
3618 warn: {
3619 key: 'warn',
3620 title: 'Warning',
3621 color: {
3622 bgLabel: '#F29140',
3623 label: 'white',
3624 bgText: '#FFD8B7',
3625 text: 'black'
3626 }
3627 },
3628 info: {
3629 key: 'info',
3630 title: 'Info',
3631 color: {
3632 bgLabel: '#413FA9',
3633 label: 'white',
3634 bgText: '#B3B2EB',
3635 text: 'black'
3636 }
3637 },
3638 notice: {
3639 key: 'notice',
3640 title: 'Notice',
3641 color: {
3642 bgLabel: '#33C133',
3643 label: 'white',
3644 bgText: '#ADF1AD',
3645 text: 'black'
3646 }
3647 },
3648 log: {
3649 key: 'log',
3650 title: 'Log',
3651 color: {
3652 bgLabel: '#f2f240',
3653 label: 'black',
3654 bgText: '#ffff90',
3655 text: 'black'
3656 }
3657 },
3658 callstack: {
3659 key: 'TAS',
3660 title: 'function',
3661 color: {
3662 bgLabel: '#413FA9',
3663 label: 'white',
3664 bgText: '#B3B2EB',
3665 text: 'black'
3666 }
3667 },
3668 callstack_async: {
3669 key: 'TAS',
3670 title: 'ASYNC CALL',
3671 color: {
3672 bgLabel: '#413FA9',
3673 label: 'white',
3674 bgText: '#413FA9',
3675 text: 'white'
3676 }
3677 },
3678 TAS: {
3679 key: 'TAS',
3680 title: 'TAS',
3681 color: {
3682 bgLabel: 'grey',
3683 label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)',
3684 bgText: 'grey',
3685 text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)'
3686 }
3687 }
3688 },
3689
3690
3691 config = {
3692 debugMode: false,
3693 logging: {
3694 log: true,
3695 notice: true,
3696 info: true,
3697 warn: true,
3698 error: true,
3699 debug: false
3700 }
3701 },
3702
3703 callstackRegistry = [],
3704 queuedUpdates = {}, //< Used for delaying saves till the last moment.
3705
3706 complexType = function(o){
3707 switch(typeof o){
3708 case 'string':
3709 return 'string';
3710 case 'boolean':
3711 return 'boolean';
3712 case 'number':
3713 return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer'));
3714 case 'function':
3715 return 'function: '+(o.name ? o.name+'()' : '(anonymous)');
3716 case 'object':
3717 return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object')));
3718 default:
3719 return typeof o;
3720 }
3721 },
3722
3723 dataLogger = function(primaryLogger,secondaryLogger,data){
3724 _.each(data,function(m){
3725 var type = complexType(m);
3726 switch(type){
3727 case 'string':
3728 primaryLogger(m);
3729 break;
3730 case 'undefined':
3731 case 'null':
3732 case 'NaN':
3733 primaryLogger('['+type+']');
3734 break;
3735 case 'number':
3736 case 'not a number':
3737 case 'integer':
3738 case 'decimal':
3739 case 'boolean':
3740 primaryLogger('['+type+']: '+m);
3741 break;
3742 default:
3743 primaryLogger('['+type+']:=========================================');
3744 secondaryLogger(m);
3745 primaryLogger('=========================================================');
3746 break;
3747 }
3748 });
3749 },
3750
3751
3752 colorLog = function(options){
3753 var coloredLoggerFunction,
3754 key = options.key,
3755 label = options.title || 'TAS',
3756 lBGColor = (options.color && options.color.bgLabel) || 'blue',
3757 lTxtColor = (options.color && options.color.label) || 'white',
3758 mBGColor = (options.color && options.color.bgText) || 'blue',
3759 mTxtColor = (options.color && options.color.text) || 'white';
3760
3761 coloredLoggerFunction = function(message){
3762 /* eslint-disable no-console */
3763 console.log(
3764 '%c '+label+': %c '+message + ' ',
3765 'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
3766 'background-color: '+mBGColor+';color: '+mTxtColor+';'
3767 );
3768 /* eslint-enable no-console */
3769 };
3770 return function(){
3771 if('TAS'===key || config.logging[key]){
3772 /* eslint-disable no-console */
3773 dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
3774 /* eslint-enable no-console */
3775 }
3776 };
3777 },
3778
3779 logDebug = colorLog(loggingSettings.debug),
3780 logError = colorLog(loggingSettings.error),
3781 logWarn = colorLog(loggingSettings.warn),
3782 logInfo = colorLog(loggingSettings.info),
3783 logNotice = colorLog(loggingSettings.notice),
3784 logLog = colorLog(loggingSettings.log),
3785 log = colorLog(loggingSettings.TAS),
3786 logCS = colorLog(loggingSettings.callstack),
3787 logCSA = colorLog(loggingSettings.callstack_async),
3788
3789 registerCallstack = function(callstack,label){
3790 var idx=_.findIndex(callstackRegistry,function(o){
3791 return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) &&
3792 _.difference(o.stack,callstack).length === 0 &&
3793 o.label === label;
3794 });
3795 if(-1 === idx){
3796 idx=callstackRegistry.length;
3797 callstackRegistry.push({
3798 stack: callstack,
3799 label: label
3800 });
3801 }
3802 return idx;
3803 },
3804
3805 setConfigOption = function(options){
3806 var newconf =_.defaults(options,config);
3807 newconf.logging=_.defaults(
3808 (options && options.logging)||{},
3809 config.logging
3810 );
3811 config=newconf;
3812 },
3813
3814 isDebugMode = function(){
3815 return config.debugMode;
3816 },
3817
3818 debugMode = function(){
3819 config.logging.debug=true;
3820 config.debugMode = true;
3821 },
3822
3823 getCallstack = function(){
3824 var e = new Error('dummy'),
3825 stack = _.map(_.rest(e.stack.replace(/^[^(]+?[\n$]/gm, '')
3826 .replace(/^\s+at\s+/gm, '')
3827 .replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@')
3828 .split('\n')),function(l){
3829 return l.replace(/\s+.*$/,'');
3830 });
3831 return stack;
3832 },
3833 logCallstackSub = function(cs){
3834 var matches, csa;
3835 _.find(cs,function(line){
3836 matches = line.match(/TAS_CALLSTACK_(\d+)/);
3837 if(matches){
3838 csa=callstackRegistry[matches[1]];
3839 logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'====================');
3840 logCallstackSub(csa.stack);
3841 return true;
3842 }
3843 logCS(line);
3844 return false;
3845 });
3846 },
3847 logCallstack = function(){
3848 var cs;
3849 if(config.debugMode){
3850 cs = getCallstack();
3851 cs.shift();
3852 log('==============================> CALLSTACK <==============================');
3853 logCallstackSub(cs);
3854 log('=========================================================================');
3855 }
3856 },
3857
3858
3859 wrapCallback = function (label, callback, context){
3860 var callstack;
3861 if('function' === typeof label){
3862 context=callback;
3863 callback=label;
3864 label=undefined;
3865 }
3866 if(!config.debugMode){
3867 return (function(cb,ctx){
3868 return function(){
3869 cb.apply(ctx||{},arguments);
3870 };
3871 }(callback,context));
3872 }
3873
3874 callstack = getCallstack();
3875 callstack.shift();
3876
3877 return (function(cb,ctx,cs,lbl){
3878 var ctxref=registerCallstack(cs,lbl);
3879
3880 /*jshint -W054 */
3881 return new Function('cb','ctx','TASlog',
3882 "return function TAS_CALLSTACK_"+ctxref+"(){"+
3883 "var start,end;"+
3884 "TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
3885 "start=_.now();"+
3886 "cb.apply(ctx||{},arguments);"+
3887 "end=_.now();"+
3888 "TASlog('Exiting: '+(cb.name||'(anonymous function)')+' :: '+(end-start)+'ms elapsed');"+
3889 "};")(cb,ctx,log);
3890 /*jshint +W054 */
3891 }(callback,context,callstack,label));
3892 },
3893
3894
3895 prepareUpdate = function( attribute, value ){
3896 queuedUpdates[attribute]=value;
3897 },
3898
3899 applyQueuedUpdates = function() {
3900 setAttrs(queuedUpdates);
3901 queuedUpdates = {};
3902 },
3903
3904 namesFromArgs = function(args,base){
3905 return _.chain(args)
3906 .reduce(function(memo,attr){
3907 if('string' === typeof attr) {
3908 memo.push(attr);
3909 } else if(_.isArray(args) || _.isArguments(args)){
3910 memo = namesFromArgs(attr,memo);
3911 }
3912 return memo;
3913 },(_.isArray(base) && base) || [])
3914 .uniq()
3915 .value();
3916 },
3917
3918 addId = function(obj,value){
3919 Object.defineProperty(obj,'id',{
3920 value: value,
3921 writable: false,
3922 enumerable: false
3923 });
3924 },
3925
3926 addProp = function(obj,prop,value,fullname){
3927 (function(){
3928 var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop),
3929 full_pname = fullname || prop,
3930 pvalue=value;
3931
3932 _.each(['S','I','F'],function(p){
3933 if( !_.has(obj,p)){
3934 Object.defineProperty(obj, p, {
3935 value: {},
3936 enumerable: false,
3937 readonly: true
3938 });
3939 }
3940 });
3941 if( !_.has(obj,'D')){
3942 Object.defineProperty(obj, 'D', {
3943 value: _.reduce(_.range(10),function(m,d){
3944 Object.defineProperty(m, d, {
3945 value: {},
3946 enumerable: true,
3947 readonly: true
3948 });
3949 return m;
3950 },{}),
3951 enumerable: false,
3952 readonly: true
3953 });
3954 }
3955
3956
3957 // Raw value
3958 Object.defineProperty(obj, pname, {
3959 enumerable: true,
3960 set: function(v){
3961 if(v!==pvalue) {
3962 pvalue=v;
3963 prepareUpdate(full_pname,v);
3964 }
3965 },
3966 get: function(){
3967 return pvalue;
3968 }
3969 });
3970
3971 // string value
3972 Object.defineProperty(obj.S, pname, {
3973 enumerable: true,
3974 set: function(v){
3975 var val=v.toString();
3976 if(val !== pvalue) {
3977 pvalue=val;
3978 prepareUpdate(full_pname,val);
3979 }
3980 },
3981 get: function(){
3982 return pvalue.toString();
3983 }
3984 });
3985
3986 // int value
3987 Object.defineProperty(obj.I, pname, {
3988 enumerable: true,
3989 set: function(v){
3990 var val=parseInt(v,10) || 0;
3991 if(val !== pvalue){
3992 pvalue=val;
3993 prepareUpdate(full_pname,val);
3994 }
3995 },
3996 get: function(){
3997 return parseInt(pvalue,10) || 0;
3998 }
3999 });
4000
4001 // float value
4002 Object.defineProperty(obj.F, pname, {
4003 enumerable: true,
4004 set: function(v){
4005 var val=parseFloat(v) || 0;
4006 if(val !== pvalue) {
4007 pvalue=val;
4008 prepareUpdate(full_pname,val);
4009 }
4010 },
4011 get: function(){
4012 return parseFloat(pvalue) || 0;
4013 }
4014 });
4015 _.each(_.range(10),function(d){
4016 Object.defineProperty(obj.D[d], pname, {
4017 enumerable: true,
4018 set: function(v){
4019 var val=(parseFloat(v) || 0).toFixed(d);
4020 if(val !== pvalue){
4021 pvalue=val;
4022 prepareUpdate(full_pname,val);
4023 }
4024 },
4025 get: function(){
4026 return (parseFloat(pvalue) || 0).toFixed(d);
4027 }
4028 });
4029 });
4030
4031 }());
4032 },
4033
4034 repeating = function( section ) {
4035 return (function(s){
4036 var sectionName = s,
4037 attrNames = [],
4038 fieldNames = [],
4039 operations = [],
4040 after = [],
4041
4042 repAttrs = function TAS_Repeating_Attrs(){
4043 attrNames = namesFromArgs(arguments,attrNames);
4044 return this;
4045 },
4046 repFields = function TAS_Repeating_Fields(){
4047 fieldNames = namesFromArgs(arguments,fieldNames);
4048 return this;
4049 },
4050 repReduce = function TAS_Repeating_Reduce(func, initial, final, context) {
4051 operations.push({
4052 type: 'reduce',
4053 func: (func && _.isFunction(func) && func) || _.noop,
4054 memo: (_.isUndefined(initial) && 0) || initial,
4055 final: (final && _.isFunction(final) && final) || _.noop,
4056 context: context || {}
4057 });
4058 return this;
4059 },
4060 repMap = function TAS_Repeating_Map(func, final, context) {
4061 operations.push({
4062 type: 'map',
4063 func: (func && _.isFunction(func) && func) || _.noop,
4064 final: (final && _.isFunction(final) && final) || _.noop,
4065 context: context || {}
4066 });
4067 return this;
4068 },
4069 repEach = function TAS_Repeating_Each(func, final, context) {
4070 operations.push({
4071 type: 'each',
4072 func: (func && _.isFunction(func) && func) || _.noop,
4073 final: (final && _.isFunction(final) && final) || _.noop,
4074 context: context || {}
4075 });
4076 return this;
4077 },
4078 repTap = function TAS_Repeating_Tap(final, context) {
4079 operations.push({
4080 type: 'tap',
4081 final: (final && _.isFunction(final) && final) || _.noop,
4082 context: context || {}
4083 });
4084 return this;
4085 },
4086 repAfter = function TAS_Repeating_After(callback,context) {
4087 after.push({
4088 callback: (callback && _.isFunction(callback) && callback) || _.noop,
4089 context: context || {}
4090 });
4091 return this;
4092 },
4093 repExecute = function TAS_Repeating_Execute(callback,context){
4094 var rowSet = {},
4095 attrSet = {},
4096 fieldIds = [],
4097 fullFieldNames = [];
4098
4099 repAfter(callback,context);
4100
4101 // call each operation per row.
4102 // call each operation's final
4103 getSectionIDs("repeating_"+sectionName,function(ids){
4104 fieldIds = ids;
4105 fullFieldNames = _.reduce(fieldIds,function(memo,id){
4106 return memo.concat(_.map(fieldNames,function(name){
4107 return 'repeating_'+sectionName+'_'+id+'_'+name;
4108 }));
4109 },[]);
4110 getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){
4111 _.each(attrNames,function(aname){
4112 if(values.hasOwnProperty(aname)){
4113 addProp(attrSet,aname,values[aname]);
4114 }
4115 });
4116
4117 rowSet = _.reduce(fieldIds,function(memo,id){
4118 var r={};
4119 addId(r,id);
4120 _.each(fieldNames,function(name){
4121 var fn = 'repeating_'+sectionName+'_'+id+'_'+name;
4122 addProp(r,name,values[fn],fn);
4123 });
4124
4125 memo[id]=r;
4126
4127 return memo;
4128 },{});
4129
4130 _.each(operations,function(op){
4131 var res;
4132 switch(op.type){
4133 case 'tap':
4134 _.bind(op.final,op.context,rowSet,attrSet)();
4135 break;
4136
4137 case 'each':
4138 _.each(rowSet,function(r){
4139 _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
4140 });
4141 _.bind(op.final,op.context,rowSet,attrSet)();
4142 break;
4143
4144 case 'map':
4145 res = _.map(rowSet,function(r){
4146 return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
4147 });
4148 _.bind(op.final,op.context,res,rowSet,attrSet)();
4149 break;
4150
4151 case 'reduce':
4152 res = op.memo;
4153 _.each(rowSet,function(r){
4154 res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)();
4155 });
4156 _.bind(op.final,op.context,res,rowSet,attrSet)();
4157 break;
4158 }
4159 });
4160
4161 // finalize attrs
4162 applyQueuedUpdates();
4163 _.each(after,function(op){
4164 _.bind(op.callback,op.context)();
4165 });
4166 });
4167 });
4168 };
4169
4170 return {
4171 attrs: repAttrs,
4172 attr: repAttrs,
4173
4174 column: repFields,
4175 columns: repFields,
4176 field: repFields,
4177 fields: repFields,
4178
4179 reduce: repReduce,
4180 inject: repReduce,
4181 foldl: repReduce,
4182
4183 map: repMap,
4184 collect: repMap,
4185
4186 each: repEach,
4187 forEach: repEach,
4188
4189 tap: repTap,
4190 'do': repTap,
4191
4192 after: repAfter,
4193 last: repAfter,
4194 done: repAfter,
4195
4196 execute: repExecute,
4197 go: repExecute,
4198 run: repExecute
4199 };
4200 }(section));
4201 },
4202
4203
4204 repeatingSimpleSum = function(section, field, destination){
4205 repeating(section)
4206 .attr(destination)
4207 .field(field)
4208 .reduce(function(m,r){
4209 return m + (r.F[field]);
4210 },0,function(t,r,a){
4211 a.S[destination]=t;
4212 })
4213 .execute();
4214 };
4215
4216 /* eslint-disable no-console */
4217 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;');
4218 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;');
4219 /* eslint-enable no-console */
4220
4221
4222 return {
4223 /* Repeating Sections */
4224 repeatingSimpleSum: repeatingSimpleSum,
4225 repeating: repeating,
4226
4227 /* Configuration */
4228 config: setConfigOption,
4229
4230 /* Debugging */
4231 callback: wrapCallback,
4232 callstack: logCallstack,
4233 debugMode: debugMode,
4234 isDebugMode: isDebugMode,
4235 _fn: wrapCallback,
4236
4237 /* Logging */
4238 debug: logDebug,
4239 error: logError,
4240 warn: logWarn,
4241 info: logInfo,
4242 notice: logNotice,
4243 log: logLog
4244 };
4245}());
4246
4247/* ---- END: TheAaronSheet.js ---- */
4248
4249
4250var SWUtils = SWUtils || (function () {
4251 'use strict';
4252 /* for interaction with ExExp, and some basic utils that have nothing to do with Pathfinder rules. */
4253 /** Determines if string can be evaluated to a number
4254 * ensures: no macro calls, dropdowns, or keep highest/lowest more than 1
4255 * allows: floor, abs, kh1, kl1, ceil, round, max, min
4256 *@param {string} preeval string to examine
4257 *@returns {bool} true if string will evaluate to a number.
4258 */
4259 var validNumericStr = function (preeval) {
4260 var anyIllegal = preeval.match(/\||\?|&|\{|\}|k[h,l][^1]/);
4261 if (anyIllegal) {
4262 return false;
4263 }
4264 anyIllegal = preeval.replace(/floor|ceil|round|abs|max|min|kh1|kl1/g, '');
4265 anyIllegal = anyIllegal.match(/[a-zA-Z]/);
4266 if (anyIllegal) {
4267 return false;
4268 }
4269 return true;
4270 },
4271 /** searches a string for @{attribute} and replaces those with their values, passes result to the callback
4272 * if error then passes null
4273 * @param {string} stringToSearch = string containing one or more @{fieldname}
4274 * @param {function(string)} callback when done passes resultant string to callback
4275 */
4276 findAndReplaceFields = function (stringToSearch, callback) {
4277 var fieldnames ;
4278 if (typeof callback !== "function") {
4279 return;
4280 }
4281 if (!stringToSearch) {
4282 callback(null);
4283 return;
4284 }
4285 try {
4286 stringToSearch = stringToSearch.split("selected|").join("");
4287 stringToSearch = stringToSearch.split("target|").join("");
4288 fieldnames = stringToSearch.match(/\@\{[^}]+\}/g);
4289 if (!fieldnames) {
4290 callback(stringToSearch);
4291 return;
4292 }
4293 fieldnames=fieldnames.sort();
4294 fieldnames = _.uniq(fieldnames,true);
4295 fieldnames = _.map(fieldnames,function(field){
4296 return field.slice(2,-1);
4297 });
4298 getAttrs(fieldnames, function (values) {
4299 var evalstr = stringToSearch, innermatches=null,initialsplit;
4300 try {
4301 _.each(fieldnames,function(field){
4302 //evalstr = evalstr.replace( new RegExp(escapeForRegExp('@{'+field+'}'),'g'), values[field]);
4303 initialsplit = evalstr.split('@{'+field+'}');
4304 evalstr = initialsplit.join(values[field]);
4305 });
4306 innermatches=evalstr.match(/\@\{[^}]+\}/g);
4307 } catch (err2) {
4308 TAS.error("findAndReplaceFields", err2);
4309 evalstr = null;
4310 } finally {
4311 if (innermatches) {
4312 findAndReplaceFields(evalstr,callback);
4313 } else {
4314 callback(evalstr);
4315 }
4316 }
4317 });
4318 } catch (err) {
4319 TAS.error("findAndReplaceFields", err);
4320 callback(null);
4321 }
4322 },
4323 /** Replaces kl1 and kh1 with min and max
4324 * example: replaces {x,y}kh1 with min(x,y)
4325 * @param {string} str the string to search
4326 * @returns {string} the resultant string after performing the replace
4327 */
4328 convertKL1KH1toMinMax = function (str) {
4329 var matches;
4330 //TAS.debug("at convertKL1KH1toMinMax for "+str) ;
4331 if (str) {
4332 matches = str.match(/(\{[^}]+\})(kh1|kl1)(?!.*\1)/g);
4333 //TAS.debug("matches are:",matches);
4334 if (matches && matches.length > 0) {
4335 str = _.reduce(matches, function (memo, match) {
4336 var isMin = /kl1$/.test(match),
4337 isMax = /kh1$/.test(match),
4338 newFunc = isMin ? "min" : (isMax ? "max" : ""),
4339 newMatch = match.slice(1, match.length - 4),
4340 replaceStr = newFunc + "(" + newMatch + ")";
4341 return memo.replace(match, replaceStr);
4342 }, str);
4343 }
4344 }
4345 return str;
4346 },
4347 /** Reads in the string, evaluates it to a single number, passes that number to a callback
4348 * calls callback with: the number, 0 (if exprStr empty), or null if an error is encountered
4349 *@param {string} exprStr A string containing a mathematical expression, possibly containing references to fields such as @{myfield}
4350 *@param {function(Number)} callback a function taking one parameter - could be int or float
4351 */
4352 evaluateExpression = function (exprStr, callback) {
4353 var bmatches1 = 0, bmatches2 = 0, pmatches1 = 0, pmatches2 = 0, smatches1 = 0, smatches2 = 0;
4354 if (typeof callback !== "function") {
4355 return;
4356 }
4357 if (exprStr === "" || exprStr === null || exprStr === undefined) {
4358 callback(0);
4359 return;
4360 }
4361 //verify that same number of parenthesis exists
4362 bmatches1 = (exprStr.match(/\(/g) || []).length;
4363 bmatches2 = (exprStr.match(/\)/g) || []).length;
4364 pmatches1 = (exprStr.match(/\{/g) || []).length;
4365 pmatches2 = (exprStr.match(/\}/g) || []).length;
4366 smatches1 = (exprStr.match(/\[/g) || []).length;
4367 smatches2 = (exprStr.match(/\]/g) || []).length;
4368 if (bmatches1 !== bmatches2 || pmatches1 !== pmatches2 || smatches1 !== smatches2) {
4369 TAS.warn("evaluateExpression: Mismatched brackets, cannot evaluate:" + exprStr);
4370 callback(null);
4371 return;
4372 }
4373
4374 findAndReplaceFields(exprStr, function (replacedStr) {
4375 var evaluated,
4376 newexprStr;
4377 //TAS.debug("search and replace of " + exprStr + " resulted in " + replacedStr);
4378 if (replacedStr === null || replacedStr === undefined) {
4379 callback(null);
4380 return;
4381 }
4382 try {
4383 replacedStr = replacedStr.replace(/\s+/g, '').replace(/\[\[/g, "(").replace(/\]\]/g, ")").replace(/\[/g, "(").replace(/\]/g, ")");
4384 newexprStr = convertKL1KH1toMinMax(replacedStr);
4385 //TAS.debug("replacedStr is now "+newexprStr);
4386 if (newexprStr !== replacedStr) {
4387 replacedStr = newexprStr;
4388 }
4389 if (!isNaN(Number(replacedStr)) && isFinite(replacedStr)) {
4390 evaluated = parseFloat(replacedStr);
4391 if (!isNaN(evaluated)) {
4392 callback(evaluated);
4393 return;
4394 }
4395 }
4396 if (typeof replacedStr !== "undefined" && replacedStr !== null && validNumericStr(replacedStr)) {
4397 evaluated = ExExp.handleExpression(replacedStr);
4398 if (!isNaN(evaluated)) {
4399 callback(evaluated);
4400 } else {
4401 TAS.warn("cannot evaluate this to number: " + exprStr +" came back with " + replacedStr);
4402 callback(null);
4403 }
4404 } else {
4405 TAS.warn("cannot evaluate this to number: " + exprStr+" came back with " + replacedStr);
4406 callback(null);
4407 }
4408 } catch (err3) {
4409 TAS.error("error trying to convert to number:" + err3);
4410 callback(null);
4411 }
4412 });
4413 },
4414 /** evaluateAndSetNumber
4415 * Examines the string in readField, and tests to see if it is a number
4416 * if it's a number immediately write it to writeField.
4417 * if not, then replace any @{field} references with numbers, and then evaluate it
4418 * as a mathematical expression till we find a number.
4419 *
4420 * note this is NOT recursive, you can't point one field of
4421 *
4422 * @param {string} readField= field to read containing string to parse
4423 * @param {string} writeField= field to write to
4424 * @param {number} defaultVal= optional, default to set if we cannot evaluate the field. If not supplied assume 0
4425 * @param {function} callback - function(newval, oldval, ischanged)
4426 * @param {bool} silently if true set new val with {silent:true}
4427 * @param {bool} dontSetErrorFlag if true and we could not evaluate, then set attribute named writeField+"_error" to 1
4428 * @param {function} errcallback call if there was an error parsing string function(newval, oldval, ischanged)
4429 */
4430 evaluateAndSetNumber = function (readField, writeField, defaultVal, callback, silently, errcallback) {
4431 var
4432 done = function (a, b, c,currError) {
4433 var donesetter={};
4434 if (currError){
4435 donesetter[writeField+'_error']=0;
4436 setAttrs(donesetter,{silent:true});
4437 }
4438 if (typeof callback === "function") {
4439 callback(a, b, c);
4440 }
4441 },
4442 errordone = function(a,b,c,currError){
4443 var donesetter={};
4444 //TAS.debug("leaving set of "+ writeField+" with old:"+b+", new:"+c+" is changed:"+ c+" and curreerror:"+currError);
4445 if (!currError){
4446 donesetter[writeField+'_error']=1;
4447 setAttrs(donesetter,{silent:true});
4448 }
4449 if (typeof errcallback === "function") {
4450 errcallback(a, b, c);
4451 } else if (typeof callback === "function") {
4452 callback(a, b, c);
4453 }
4454 };
4455 getAttrs([readField, writeField, writeField+"_error"], function (values) {
4456 var setter = {},
4457 params = {},
4458 trueDefault=0,
4459 currVal=0,
4460 isError=0,
4461 currError=0,
4462 isChanged=false,
4463 value=0;
4464 try {
4465 if (silently){params.silent=true;}
4466 currError= parseInt(values[writeField+"_error"],10)||0;
4467 trueDefault = defaultVal || 0;
4468 currVal = parseInt(values[writeField], 10);
4469 value = Number(values[readField]);
4470 //check for blank
4471 if (typeof values[readField] === "undefined" || !values[readField] || values[readField]===null || values[readField]==="" ) {
4472 //if value of readField is blank then set to defaultval.
4473 value = trueDefault;
4474 if (currVal !== value || isNaN(currVal)) {
4475 setter[writeField] = value;
4476 setAttrs(setter, params, function () {
4477 done(value, currVal, true,currError);
4478 });
4479 } else {
4480 done(value, currVal, false,currError);
4481 }
4482 } else if (!isNaN(value)) {
4483 //check for number
4484 if (currVal !== value) {
4485 setter[writeField] = value;
4486 setAttrs(setter, params, function () {
4487 done(value, currVal, true);
4488 });
4489 } else {
4490 done(value, currVal, false,currError);
4491 }
4492 } else {
4493 //pass to evaluateExpression
4494 evaluateExpression(values[readField], function (value2) {
4495 try {
4496 if (value2 === null || value2===undefined || isNaN(value2)) {
4497 isError=1;
4498 value2=trueDefault;
4499 //TAS.debug("setting "+ writeField+" to " +value2);
4500 }
4501 if (isNaN(currVal) || currVal !== value2) {
4502 setter[writeField] = value2;
4503 }
4504 if (_.size(setter)>0){
4505 isChanged=true;
4506 }
4507 } catch (err2) {
4508 TAS.error("SWUtils.evaluateAndSetNumber error after call to evaluateExpression ", err2);
4509 isError=1;
4510 } finally {
4511 setAttrs(setter, params, function () {
4512 if (!isError){
4513 done(value2, currVal, isChanged,currError);
4514 } else {
4515 errordone(value2,currVal,isChanged,currError);
4516 }
4517 });
4518
4519 }
4520 });
4521 }
4522 } catch (err) {
4523 TAS.error("SWUtils.evaluateAndSetNumber", err);
4524 setter[writeField+'_error']=1;
4525 setAttrs(setter,{silent:true},function(){errordone(value, currVal, false,currError);});
4526 }
4527 });
4528 },
4529 /** Reads dropdown value, determines attribute referenced, gets that attribute value, passes it to callback.
4530 * similar to evaluateAndSetNumber but uses a synchronus function to perform search and replace, and assumes the string is only one value not an expression.
4531 * necessary because some dropdowns have other text in the dropdowns, so we can't use the dropdown value exactly as is.
4532 * called by setDropdownValue
4533 * @param {string} readField the attribute name of dropdown we are looking at
4534 * @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)
4535 * @param {function(int)} callback pass the value the dropdown selection represents
4536 * exceptions: if readField is not found pass in "", if readField is 0 or starts with 0 pass in 0.
4537 */
4538 getDropdownValue = function (readField, synchrousFindAttributeFunc, callback) {
4539 if (!readField || (callback && typeof callback !== "function") || typeof synchrousFindAttributeFunc !== "function") {
4540 return;
4541 }
4542 getAttrs([readField], function (values) {
4543 var fieldToFind = values[readField],
4544 foundField = "";
4545 if (typeof fieldToFind === "undefined" || fieldToFind === null) {
4546 callback("");
4547 } else if (fieldToFind === "0" || fieldToFind === 0 || fieldToFind.indexOf("0") === 0) {
4548 //select = none
4549 callback(0);
4550 } else {
4551 foundField = synchrousFindAttributeFunc(fieldToFind);
4552 getAttrs([foundField], function (v) {
4553 var valueOf = parseInt(v[foundField], 10) || 0;
4554 callback(valueOf, foundField);
4555 });
4556 }
4557 });
4558 },
4559 /** Looks at a dropdown value, and sets writeField(s) with the number to which selected option refers.
4560 * calls getDropdownValue
4561 * @param {string} readField the dropdown field
4562 * @param {string_or_Array} writeFields Field(s) to write the value to
4563 * @param {function} synchrousFindAttributeFunc takes value of @readField and says what the lookup field is.
4564 * @param {function(int)} callback (optional) if we need to update the field, call this function
4565 * with the value we set as the only parameter.
4566 * @param {bool} silently if true call setAttrs with {silent:true}
4567 */
4568 setDropdownValue = function (readField, writeFields, synchrousFindAttributeFunc, callback, silently) {
4569 var done = function (newval, currval, changed) {
4570 if (typeof callback === "function") {
4571 callback(newval, currval, changed);
4572 }
4573 };
4574 SWUtils.getDropdownValue(readField, synchrousFindAttributeFunc, function (valueOf) {
4575 var params = {};
4576 if (silently) {params.silent=true;}
4577 if (Array.isArray(writeFields) && writeFields.length === 1) {
4578 writeFields = writeFields[0];
4579 }
4580 if (typeof writeFields === "string") {
4581 getAttrs([writeFields], function (v) {
4582 var currValue = parseInt(v[writeFields], 10),
4583 setter = {};
4584 //TAS.debug("setDropdownValue, readField:" + readField + ", currValue:" + currValue + ", newValue:" + valueOf);
4585 if (currValue !== valueOf || isNaN(currValue)) {
4586 setter[writeFields] = valueOf;
4587 setAttrs(setter, params, function () {
4588 done(valueOf, currValue, true);
4589 });
4590 } else {
4591 done(valueOf, currValue, false);
4592 }
4593 });
4594 } else if (Array.isArray(writeFields)) {
4595 getAttrs(writeFields, function (v) {
4596 var i = 0,
4597 setter = {};
4598 for (i = 0; i < writeFields.length; i++) {
4599 if (parseInt(v[writeFields[i]], 10) !== valueOf) {
4600 setter[writeFields[i]] = valueOf;
4601 }
4602 }
4603 if (_.size(setter) > 0) {
4604 setAttrs(setter, params, function () {
4605 done(valueOf, 0, true);
4606 });
4607 } else {
4608 done(valueOf, 0, false);
4609 }
4610 });
4611 }
4612 });
4613 },
4614 /** getRowTotal return newvalue, currentvalue, allvalues in callback. Summed up floats and round total to int.
4615 * THIS IS PROBABLY SLOWER THAN DOING IT YOURSELF, just wrote to make things simpler.
4616 * @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
4617 * @param {number} bonus a number that is added to the other fields.
4618 * @param {Array} penalties array of fieldnames whose values are to be subtracted from the total
4619 * @param {boolean} totalIsFloat true if we should not round the total to int.
4620 * @param {function(number,number)} callback call this with: new total, current total
4621 * @param {function} errorCallback call if error attempting to add.
4622 */
4623 getRowTotal = function (fields, bonus, penalties, totalIsFloat, callback, errorCallback) {
4624 var readFields;
4625 if (typeof callback !== "function" || typeof errorCallback !== "function") {
4626 return;
4627 }
4628 try {
4629 if (!fields || (!Array.isArray(fields)) || fields.length === 0) {
4630 return;
4631 }
4632 if (penalties && Array.isArray(penalties) && penalties.length > 0) {
4633 readFields = fields.concat(penalties);
4634 } else {
4635 readFields = fields;
4636 }
4637 } catch (err2) {
4638 TAS.error("SWUtils.getRowTotal catastrophic error: ", err2);
4639 errorCallback();
4640 return;
4641 }
4642 getAttrs(readFields, function (v) {
4643 var currValue = totalIsFloat ? parseFloat(v[fields[0]]) : parseInt(v[fields[0]], 10),
4644 newValue = 0,
4645 penalty = 0,
4646 i; //, setter = {}
4647 try {
4648 //remember start at 1
4649 for (i = 1; i < fields.length; i++) {
4650 newValue += parseFloat(v[fields[i]]) || 0;
4651 }
4652 if (bonus && !isNaN(parseInt(bonus, 10))) {
4653 newValue += parseFloat(bonus);
4654 }
4655 if (penalties) {
4656 for (i = 0; i < penalties.length; i++) {
4657 penalty += parseFloat(v[penalties[i]]) || 0;
4658 }
4659 newValue -= penalty;
4660 }
4661 if (!totalIsFloat) {
4662 newValue = Math.floor(newValue);
4663 }
4664 callback(newValue, currValue);
4665 } catch (err) {
4666 TAS.error("SWUtils.getRowTotal", err);
4667 errorCallback();
4668 }
4669 });
4670 },
4671 /** Adds up numbers and puts it in the first field of the fields array.
4672 * All numbers are added up as FLOATS, and then FLOOR is used to round the sum down
4673 * @param {Array} fields array of field names to be added up, EXCEPT the first field. fields[0] MUST be the total field
4674 * @param {number} bonus a number that is added to the other fields.
4675 * @param {Array} penalties array of fieldnames whose values are to be subtracted from the total
4676 * @param {boolean} totalIsFloat true if we should not round the total to int.
4677 * @param {function(number,number)} callback optional call this with two values: the new total, old total
4678 * @param {bool} silently if true call setAttrs with {silent:true}
4679 */
4680 updateRowTotal = function (fields, bonus, penalties, totalIsFloat, callback, silently) {
4681 var done = function () {
4682 if (typeof callback === "function") {
4683 callback();
4684 }
4685 };
4686 getRowTotal(fields, bonus, penalties, totalIsFloat, function (newValue, currValue) {
4687 var setter = {},
4688 params = {};
4689 try {
4690 if (newValue !== currValue) {
4691 setter[fields[0]] = newValue;
4692 }
4693 } catch (err) {
4694 TAS.error("PFUtilsAsync.updateRowTotal", err);
4695 } finally {
4696 if (_.size(setter) > 0) {
4697 if (silently) {
4698 params.silent=true;
4699 }
4700 setAttrs(setter, params, done);
4701 } else {
4702 done();
4703 }
4704 }
4705 }, done);
4706 },
4707 /** Escapes special chars for regex
4708 *@param {string} str the string to examine
4709 *@param {boolean} escapeSpaces if we should replace any space with \s* (caller can use it for matching purposes)
4710 *@returns {string} resultant string after search and replace
4711 */
4712 escapeForRegExp = function (str, escapeSpaces) {
4713 var regexEscapes = /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|\~\!\@\#]/g,
4714 tempstr ='';
4715 if (str) {
4716 tempstr = str.replace(regexEscapes, "\\$&");
4717 if (escapeSpaces){
4718 //replace space plus multiple spaces with non escaped 0 or * space.
4719 tempstr = tempstr.replace(/\t+|\s+/g,'\\s*');
4720 }
4721 }
4722 return tempstr;
4723 },
4724 /** Escapes special chars for macros - to create sub queries - this is not used currently
4725 *@param {string} str the string to examine
4726 *@returns {string} resultant string after search and replace
4727 */
4728 escapeForMacroCall = function (str) {
4729 var macroCallEscapes = [ [/\{\{/g, '{{'],
4730 [/\}\}/g, '}}'],
4731 [/\(/g, '('],
4732 [/\)/g, ')'],
4733 [/\,/g, ','],
4734 [/\?/g, '?'],
4735 [/'/g, '''],
4736 [/"/g, '"'],
4737 [/\=/g, '='] ];
4738 if (str) {
4739 return _.reduce(macroCallEscapes, function (currStr, pair) {
4740 return currStr.replace(pair[0], pair[1]);
4741 }, str);
4742 }
4743 return "";
4744 },
4745 /** Escapes '{{' for passing to a rolltemplate
4746 *@param {string} str the string to examine
4747 *@returns {string} resultant string after search and replace
4748 */
4749 escapeForRollTemplate = function (str) {
4750 if (!str){return str;}
4751 return str.replace(/\{\{/g, '{{');
4752 },
4753 /** escapes string so it can be used in the name section of another link button
4754 *if it finds [name](link) in a string it will remove the [ and ] and the (link)
4755 * replaces [ and ] with escaped versions everywhere else.
4756 *@param {string] str the string we want to use inside a link button
4757 *@returns {string} safe to use new name for button
4758 */
4759 escapeForChatLinkButton = function(str){
4760 var markdownLinkreg=/^([^\[]*?)\[([^\]]*?)\]\(([^\)]*?)\)(.*)$/,
4761 retstr="", matches;
4762 if (!str){return str;}
4763 matches = markdownLinkreg.exec(str);
4764 if(matches){
4765 if (matches[1]){
4766 retstr+=matches[1];
4767 }
4768 if(matches[2]){
4769 retstr += matches[2];
4770 }
4771 if (matches[4]){
4772 retstr += matches[4];
4773 }
4774 } else {
4775 retstr = str;
4776 }
4777 retstr = retstr.replace(/\[/g,'[').replace(/\]/g,']');
4778 return retstr;
4779 },
4780 /** returns id portion of a source Attribute or repeating row attribute name
4781 * @param {string} sourceAttribute from eventInfo object
4782 * @returns {string} the id portion of string, or blank.
4783 */
4784 getRowId = function (sourceAttribute) {
4785 if (!sourceAttribute) { return ""; }
4786 var strs = sourceAttribute.split('_');
4787 if (strs && _.size(strs) >= 4) {
4788 return strs[2];
4789 }
4790 return "";
4791 },
4792 getAttributeName = function (source) {
4793 if (!source) { return ""; }
4794 var itemId = getRowId(source), attrib = "";
4795 if (itemId) {
4796 attrib = source.substring(source.indexOf(itemId) + itemId.length + 1, source.length);
4797 }
4798 return attrib;
4799 },
4800 /** getRepeatingIDStr - if id is not empty, then returns the ID with an underscore on the right. else returns empty string
4801 * this is used so the same function can be written for loops from getIDs or direct from the event with no ID
4802 *@param {string} id the id of the row or blank
4803 *@returns {string} id_ or blank
4804 */
4805 getRepeatingIDStr = function (id) {
4806 var idStr = "";
4807 if (!(id === null || id === undefined)) {
4808 idStr = id + "_";
4809 }
4810 return idStr;
4811 },
4812 /** Append values of multiple arrays of strings together to return one NEW array of strings that is the cartesian product.
4813 * @example cartesianAppend(["a","b"],["c","d"], ["e","f"]);
4814 * // returns ["ace","acf","ade","adf","bce","bcf","bde","bdf"]
4815 * @example cartesianAppend(["pre_"] , ["a","b","c"], ["_post"] );
4816 * //returns ["pre_a_post","pre_b_post","pre_c_post"]
4817 * @param {Array} [...] Arrays of strings
4818 * @returns {Array} of all values in other arrays
4819 */
4820 cartesianAppend = function () {
4821 return _.reduce(arguments, function (a, b) {
4822 return _.flatten(_.map(a, function (x) {
4823 return _.map(b, function (y) {
4824 return String(x) + String(y);
4825 });
4826 }), true);
4827 }, [[]]);
4828 },
4829 /** Concatenates cartesian product of all arrays together returns one flattened NEW array.
4830 * @param {Array} [...] Arrays
4831 * @returns {Array} cartesian product of all arrays (concatenated nothing else)
4832 */
4833 cartesianProduct = function () {
4834 return _.reduce(arguments, function (a, b) {
4835 return _.flatten(_.map(a, function (x) {
4836 return _.map(b, function (y) {
4837 return x.concat([y]);
4838 });
4839 }), true);
4840 }, [[]]);
4841 },
4842 /** trimBoth removes spaces at beginning and end of string, or of each string in an array.
4843 * performs a deep match, so if array is of arrays, will call trim on every string.
4844 * if object is not an array or string, just return object.
4845 * therefore, non immutable objects are not cloned and array will contain links to them.
4846 *@param {Array or string} val string or array of strings
4847 *@returns {Array or string} same object type as passed in
4848 */
4849 trimBoth = function(val){
4850 if (Array.isArray(val)){
4851 return _.map(val,trimBoth);
4852 }
4853 if (typeof val === 'string') {
4854 return val.replace(/^\s*|\s*$/g,'');
4855 }
4856 return val;
4857 }
4858 ;
4859 return {
4860 cartesianAppend: cartesianAppend,
4861 cartesianProduct: cartesianProduct,
4862 convertKL1KH1toMinMax: convertKL1KH1toMinMax,
4863 escapeForRegExp: escapeForRegExp,
4864 escapeForRollTemplate: escapeForRollTemplate,
4865 searchAndReplaceFields: findAndReplaceFields,
4866 findAndReplaceFields: findAndReplaceFields,
4867 evaluateExpression: evaluateExpression,
4868 getRowId: getRowId,
4869 getAttributeName: getAttributeName,
4870 evaluateAndSetNumber: evaluateAndSetNumber,
4871 escapeForChatLinkButton: escapeForChatLinkButton,
4872 getDropdownValue: getDropdownValue,
4873 setDropdownValue: setDropdownValue,
4874 getRowTotal: getRowTotal,
4875 updateRowTotal: updateRowTotal,
4876 getRepeatingIDStr: getRepeatingIDStr,
4877 validNumericStr: validNumericStr,
4878 trimBoth: trimBoth
4879 };
4880}());
4881
4882//calculate current wounds//
4883
4884
4885//calculate armor points //
4886on('change:repeating_armor', function(){
4887 TAS.repeating('armor')
4888 .attrs('ArmourAPHead','ArmourAPRightArm','ArmourAPLeftArm','ArmourAPBody','ArmourAPRightLeg','ArmourAPLeftLeg','ArmourAPShield','Current_TB')
4889 .fields('ArmourHead','ArmourRArm','ArmourLArm','ArmourBody','ArmourRLeg','ArmourLLeg','ArmourShield','ArmourPoints')
4890 .reduce(function(m,r){
4891 m.totalheadAP += (r.I.ArmourHead*r.I.ArmourPoints);
4892 m.totalRArmAP += (r.I.ArmourRArm*r.I.ArmourPoints);
4893 m.totalLArmAP += (r.I.ArmourLArm*r.I.ArmourPoints);
4894 m.totalBodyAP += (r.I.ArmourBody*r.I.ArmourPoints);
4895 m.totalRLegAP += (r.I.ArmourRLeg*r.I.ArmourPoints);
4896 m.totalLLegAP += (r.I.ArmourLLeg*r.I.ArmourPoints);
4897 m.totalShieldAP += (r.I.ArmourShield*r.I.ArmourPoints);
4898 return m;
4899 },{totalheadAP:0,totalRArmAP:0,totalLArmAP:0,totalBodyAP:0,totalRLegAP:0,totalLLegAP:0,totalShieldAP:0},function(m,r,a){
4900 a.I.ArmourAPHead = m.totalheadAP;
4901 a.I.ArmourAPRightArm = m.totalRArmAP;
4902 a.I.ArmourAPLeftArm = m.totalLArmAP;
4903 a.I.ArmourAPBody = m.totalBodyAP;
4904 a.I.ArmourAPRightLeg = m.totalRLegAP;
4905 a.I.ArmourAPLeftLeg = m.totalLLegAP;
4906 a.I.ArmourAPShield = m.totalShieldAP;
4907 })
4908 .execute();
4909
4910 TAS.repeatingSimpleSum('armor','ArmourEnc','character_EncumbranceArmour');
4911});
4912
4913 //Update Trappings Enc
4914on('change:repeating_trappings', function(){
4915 TAS.repeating('trappings')
4916 .attrs('character_EncumbranceTrappings')
4917 .fields('TrappingHeld','TrappingWeight')
4918 .reduce(function(m,r){
4919 m.totalheld += (r.I.TrappingHeld*r.I.TrappingWeight);
4920 return m;
4921 },{totalheld:0},function(m,r,a){
4922 a.I.character_EncumbranceTrappings = m.totalheld;
4923 })
4924 .execute();
4925});
4926
4927//Update Weapon Enc
4928on('change:repeating_weapons', function(){
4929 TAS.repeating('weapons')
4930 .attrs('character_EncumbranceWeapons')
4931 .fields('WeaponHeld','WeaponEnc')
4932 .reduce(function(m,r){
4933 m.totalheld += (r.I.WeaponHeld*r.I.WeaponEnc);
4934 return m;
4935 },{totalheld:0},function(m,r,a){
4936 a.I.character_EncumbranceWeapons = m.totalheld;
4937 })
4938 .execute();
4939});
4940
4941 on('change:repeating_advancements', function(){
4942 TAS.repeating('advancements') //< set the repeating group we are using
4943 .attrs('character_SpentExperience') //< specify we want access to the total_weight attribute
4944 .fields('advancement1xp', 'advancement2xp', 'advancement3xp') //< specify we want the item and weight repeating fields
4945 .reduce(function(memo,row,attrSet,id,rowSet)
4946 {
4947 memo.total += row.I.advancement1xp;
4948 memo.total += row.I.advancement2xp;
4949 memo.total += row.I.advancement3xp;
4950 return memo;
4951 },{total: 0},function(memo,rowSet,attrSet)
4952 {
4953 attrSet.I.character_SpentExperience = memo.total;
4954 })
4955 .execute();
4956});
4957
4958
4959
4960 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(){
4961 getAttrs(["Wounds_Size", "Wounds_hidden"], function(value)
4962 {
4963 setAttrs({Wounds_hidden: 0});
4964 setAttrs({Wounds_hidden: value.Wounds_Size});
4965 });
4966});
4967
4968</script>