mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
1969 lines
102 KiB
HTML
1969 lines
102 KiB
HTML
<!-- Logo Header -->
|
||
<div class="sheet-1colrow sheet-col" style="margin-bottom:-30px; padding-right:5%; width:60%;">
|
||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dark_Heresy/img/logo.png"
|
||
style="max-height: 100px; margin-left:21%;">
|
||
</div>
|
||
|
||
<!-- This is the main tab set up -->
|
||
<input type="radio" class="sheet-tab sheet-tab1" name="attr_core-tab" value="1" title="Player Sheet"
|
||
checked="checked" />
|
||
<span data-i18n="player-sheet-u" class="sheet-tab sheet-tab1" style='line-height: 40px;'>Main sheet</span>
|
||
|
||
<input type="radio" class="sheet-tab sheet-tab7" name="attr_core-tab" value="2" title="Psykana" />
|
||
<span data-i18n="psykana-u" class="sheet-tab sheet-tab7" style='line-height: 40px;'>Psychic Powers</span>
|
||
|
||
<input type="checkbox" class="sheet-tab sheet-gmroll" name="attr_gmroll" value="1" title="GM Roll" />
|
||
<span data-i18n="gm" class="sheet-tab sheet-gmroll" style='line-height: 40px;'>GM roll</span>
|
||
<input type="hidden" name="attr_abilityroll" />
|
||
<br><br>
|
||
<!-- End Main Tab setup -->
|
||
|
||
<!-- Core Tab -->
|
||
<div class="sheet-section-core">
|
||
<div class="sheet-wrapper">
|
||
|
||
<!-- Base Character Information -->
|
||
<div class="sheet-1colrow sheet-col">
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:14%"><label data-i18n="charactername">Character Name</label></div>
|
||
<div class="sheet-item" style="width:35%"><input name="attr_character_name" type="text"></div>
|
||
<div class="sheet-item" style="width:14%"><label data-i18n="playername">Player Name</label></div>
|
||
<div class="sheet-item" style="width:37%"><input name="attr_Player" type="text"></div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:12%"><label data-i18n="homeworld">Home World</label></div>
|
||
<div class="sheet-item" style="width:20%"><input name="attr_Homeworld" type="text"></div>
|
||
<div class="sheet-item" style="width:12%"><label data-i18n="careerpath">Career Path</label></div>
|
||
<div class="sheet-item" style="width:20%"><input name="attr_Career" type="text"></div>
|
||
<div class="sheet-item" style="width:7%"><label data-i18n="rank">Rank</label></div>
|
||
<div class="sheet-item" style="width:29%"><input name="attr_Rank" type="text"></div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:12%"><label data-i18n="divination">Divination</label></div>
|
||
<div class="sheet-item" style="width:45%"><input name="attr_Divination" type="text"></div>
|
||
<div class="sheet-item" style="width:10%"><label data-i18n="quirck">Quirk</label></div>
|
||
<div class="sheet-item" style="width:17%"><input name="attr_Quirk" type="text"></div>
|
||
<div class="sheet-item" style="width:7%"><label data-i18n="gender">Gender</label></div>
|
||
<div class="sheet-item" style="width:9%"><input name="attr_Gender" type="text"></div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:7%"><label data-i18n="build">Build</label></div>
|
||
<div class="sheet-item" style="width:14%"><input name="attr_Build" type="text"></div>
|
||
<div class="sheet-item" style="width:7%"><label data-i18n="dh-height">Height</label></div>
|
||
<div class="sheet-item" style="width:7%"><input name="attr_Height" type="text"></div>
|
||
<div class="sheet-item" style="width:7%"><label data-i18n="weight">Weight</label></div>
|
||
<div class="sheet-item" style="width:7%"><input name="attr_Weight" type="text"></div>
|
||
<div class="sheet-item" style="width:5%"><label data-i18n="age">Age</label></div>
|
||
<div class="sheet-item" style="width:7%"><input name="attr_Age" type="text"></div>
|
||
<div class="sheet-item" style="width:6%"><label data-i18n="past">Past</label></div>
|
||
<div class="sheet-item" style="width:33%"><input name="attr_Past" type="text"></div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:11%"><label data-i18n="skincolor">Skin Colour</label></div>
|
||
<div class="sheet-item" style="width:12%"><input name="attr_Skin" type="text"></div>
|
||
<div class="sheet-item" style="width:11%"><label data-i18n="haircolor">Hair Colour</label></div>
|
||
<div class="sheet-item" style="width:12%"><input name="attr_Hair" type="text"></div>
|
||
<div class="sheet-item" style="width:11%"><label data-i18n="eyecolor">Eye Colour</label></div>
|
||
<div class="sheet-item" style="width:12%"><input name="attr_Eyes" type="text"></div>
|
||
<div class="sheet-item" style="width:12%"><label data-i18n="handedness">Handedness</label></div>
|
||
<div class="sheet-item" style="width:19%"><input name="attr_Handedness" type="text"></div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Main Sheet First Tier -->
|
||
|
||
<div class="sheet-3colrow">
|
||
|
||
<!-- Left Column -->
|
||
|
||
<div class="sheet-col sheet-skills">
|
||
<hr>
|
||
<h3 data-i18n="basicskills">Basic Skills</h3>
|
||
<table data-i18n-list="skills-list">
|
||
<tr>
|
||
<th data-i18n="skillname">Skill Name</th>
|
||
<th></th>
|
||
<th>10</th>
|
||
<th>20</th>
|
||
<th style="width:60px">B</th>
|
||
<th data-i18n="roll">Roll</th>
|
||
</tr>
|
||
<tr data-i18n-list-item="awareness">
|
||
<td data-i18n="awarenessper">Awareness (Per)</td>
|
||
<td><input name="attr_Awareness1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Awareness2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Awareness3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Awareness4" type="number" value="0"></td>
|
||
<td><button name="roll_Awareness" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollawareness}}} [[(@{Awareness}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Awareness}]]}} {{target=[[@{Awareness} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Awareness" type="number"
|
||
value="floor((@{Awareness1}+0.5)*@{Per}+@{Awareness2}+@{Awareness3}+@{Awareness4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="barter">
|
||
<td data-i18n="barterfel">Barter (Fel)</td>
|
||
<td><input name="attr_Barter1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Barter2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Barter3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Barter4" type="number" value="0"></td>
|
||
<td><button name="roll_Barter" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollbarter}}} [[(@{Barter}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Barter}]]}} {{target=[[@{Barter} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Barter" type="number"
|
||
value="floor((@{Barter1}+0.5)*@{Fel}+@{Barter2}+@{Barter3}+@{Barter4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="carouse">
|
||
<td data-i18n="carouset">Carouse (T)</td>
|
||
<td><input name="attr_Carouse1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Carouse2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Carouse3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Carouse4" type="number" value="0"></td>
|
||
<td><button name="roll_Carouse" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollcarouse}}} [[(@{Carouse}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Carouse}]]}} {{target=[[@{Carouse} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Carouse" type="number"
|
||
value="floor((@{Carouse1}+0.5)*@{T}+@{Carouse2}+@{Carouse3}+@{Carouse4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="charm">
|
||
<td data-i18n="charmfel">Charm (Fel)</td>
|
||
<td><input name="attr_Charm1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Charm2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Charm3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Charm4" type="number" value="0"></td>
|
||
<td><button name="roll_Charm" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollcharism}}} [[(@{Charm}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Charm}]]}} {{target=[[@{Charm} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Charm" type="number"
|
||
value="floor((@{Charm1}+0.5)*@{Fel}+@{Charm2}+@{Charm3}+@{Charm4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="climb">
|
||
<td data-i18n="climbs">Climb (S)</td>
|
||
<td><input name="attr_Climb1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Climb2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Climb3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Climb4" type="number" value="0"></td>
|
||
<td><button name="roll_Climb" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollclimb}}} [[(@{Climb}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Climb}]]}} {{target=[[@{Climb} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Climb" type="number"
|
||
value="floor((@{Climb1}+0.5)*@{S}+@{Climb2}+@{Climb3}+@{Climb4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="command">
|
||
<td data-i18n="command">Command (Fel)</td>
|
||
<td><input name="attr_Command1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Command2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Command3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Command4" type="number" value="0"></td>
|
||
<td><button name="roll_Command" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollcommand}}} [[(@{Command}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Command}]]}} {{target=[[@{Command} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Command" type="number"
|
||
value="floor((@{Command1}+0.5)*@{Fel}+@{Command2}+@{Command3}+@{Command4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="concealment">
|
||
<td data-i18n="concealmentag">Concealment (Ag)</td>
|
||
<td><input name="attr_Concealment1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Concealment2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Concealment3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Concealment4" type="number" value="0"></td>
|
||
<td><button name="roll_Concealment" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollconcealment}}} [[(@{Concealment}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Concealment}]]}} {{target=[[@{Concealment} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Concealment" type="number"
|
||
value="floor((@{Concealment1}+0.5)*@{Ag}+@{Concealment2}+@{Concealment3}+@{Concealment4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="contortionist">
|
||
<td data-i18n="contortionistag">Contortionist (Ag)</td>
|
||
<td><input name="attr_Contortionist1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Contortionist2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Contortionist3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Contortionist4" type="number" value="0"></td>
|
||
<td><button name="roll_Contortionist" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollcontortionist}}} [[(@{Contortionist}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Contortionist}]]}} {{target=[[@{Contortionist} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Contortionist" type="number"
|
||
value="floor((@{Contortionist1}+0.5)*@{Ag}+@{Contortionist2}+@{Contortionist3}+@{Contortionist4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="deceive">
|
||
<td data-i18n="deceivefel">Deceive (Fel)</td>
|
||
<td><input name="attr_Deceive1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Deceive2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Deceive3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Deceive4" type="number" value="0"></td>
|
||
<td><button name="roll_Deceive" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rolldeceive}}} [[(@{Deceive}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Deceive}]]}} {{target=[[@{Deceive} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Deceive" type="number"
|
||
value="floor((@{Deceive1}+0.5)*@{Fel}+@{Deceive2}+@{Deceive3}+@{Deceive4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="disguise">
|
||
<td data-i18n="disguisefel">Disguise (Fel)</td>
|
||
<td><input name="attr_Disguise1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Disguise2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Disguise3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Disguise4" type="number" value="0"></td>
|
||
<td><button name="roll_Disguise" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rolldisguise}}} [[(@{Disguise}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Disguise}]]}} {{target=[[@{Disguise} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Disguise" type="number"
|
||
value="floor((@{Disguise1}+0.5)*@{Fel}+@{Disguise2}+@{Disguise3}+@{Disguise4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="dodge">
|
||
<td data-i18n="dodgeag">Dodge (Ag)</td>
|
||
<td><input name="attr_Dodge1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Dodge2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Dodge3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Dodge4" type="number" value="0"></td>
|
||
<td><button name="roll_Dodge" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rolldodge}}} [[(@{Dodge}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Dodge}]]}} {{target=[[@{Dodge} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Dodge" type="number"
|
||
value="floor((@{Dodge1}+0.5)*@{Ag}+@{Dodge2}+@{Dodge3}+@{Dodge4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="evaluate">
|
||
<td data-i18n="evaluateint">Evaluate (Int)</td>
|
||
<td><input name="attr_Evaluate1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Evaluate2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Evaluate3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Evaluate4" type="number" value="0"></td>
|
||
<td><button name="roll_Evaluate" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollevaluate}}} [[(@{Evaluate}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Evaluate}]]}} {{target=[[@{Evaluate} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Evaluate" type="number"
|
||
value="floor((@{Evaluate1}+0.5)*@{Int}+@{Evaluate2}+@{Evaluate3}+@{Evaluate4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="gamble">
|
||
<td data-i18n="gambleint">Gamble (Int)</td>
|
||
<td><input name="attr_Gamble1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Gamble2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Gamble3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Gamble4" type="number" value="0"></td>
|
||
<td><button name="roll_Gamble" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollgamble}}} [[(@{Gamble}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Gamble}]]}} {{target=[[@{Gamble} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Gamble" type="number"
|
||
value="floor((@{Gamble1}+0.5)*@{Int}+@{Gamble2}+@{Gamble3}+@{Gamble4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="inquiry">
|
||
<td data-i18n="inquiryfel">Inquiry (Fel)</td>
|
||
<td><input name="attr_Inquiry1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Inquiry2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Inquiry3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Inquiry4" type="number" value="0"></td>
|
||
<td><button name="roll_Inquiry" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollinquiry}}} [[(@{Inquiry}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Inquiry}]]}} {{target=[[@{Inquiry} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Inquiry" type="number"
|
||
value="floor((@{Inquiry1}+0.5)*@{Fel}+@{Inquiry2}+@{Inquiry3}+@{Inquiry4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="intimidate">
|
||
<td data-i18n="intimidates">Intimidate (S)</td>
|
||
<td><input name="attr_Intimidate1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Intimidate2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Intimidate3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Intimidate4" type="number" value="0"></td>
|
||
<td><button name="roll_Intimidate" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollintimidate}}} [[(@{Intimidate}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Intimidate}]]}} {{target=[[@{Intimidate} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Intimidate" type="number"
|
||
value="floor((@{Intimidate1}+0.5)*@{S}+@{Intimidate2}+@{Intimidate3}+@{Intimidate4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="logic">
|
||
<td data-i18n="logicint">Logic (Int)</td>
|
||
<td><input name="attr_Logic1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Logic2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Logic3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Logic4" type="number" value="0"></td>
|
||
<td><button name="roll_Logic" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} [[(@{Logic}+?{Modifier|0}-[[1d100]])/10]] {{rollname=^{rolllogic}}} {{roll=$[[1]]}} {{skill=[[@{Logic}]]}} {{target=[[@{Logic} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Logic" type="number"
|
||
value="floor((@{Logic1}+0.5)*@{Int}+@{Logic2}+@{Logic3}+@{Logic4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="scrutiny">
|
||
<td data-i18n="scrutinyper">Scrutiny (Per)</td>
|
||
<td><input name="attr_Scrutiny1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Scrutiny2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Scrutiny3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Scrutiny4" type="number" value="0"></td>
|
||
<td><button name="roll_Scrutiny" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollscrutiny}}} [[(@{Scrutiny}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Scrutiny}]]}} {{target=[[@{Scrutiny} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Scrutiny" type="number"
|
||
value="floor((@{Scrutiny1}+0.5)*@{Per}+@{Scrutiny2}+@{Scrutiny3}+@{Scrutiny4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="search">
|
||
<td data-i18n="searchper">Search (Per)</td>
|
||
<td><input name="attr_Search1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Search2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Search3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Search4" type="number" value="0"></td>
|
||
<td><button name="roll_Search" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollsearch}}} [[(@{Search}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Search}]]}} {{target=[[@{Search} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Search" type="number"
|
||
value="floor((@{Search1}+0.5)*@{Per}+@{Search2}+@{Search3}+@{Search4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="silentmove">
|
||
<td data-i18n="silentmoveag">Silent Move (Ag)</td>
|
||
<td><input name="attr_SilentMove1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_SilentMove2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_SilentMove3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_SilentMove4" type="number" value="0"></td>
|
||
<td><button name="roll_SilentMove" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollsilentmove}}} [[(@{SilentMove}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{SilentMove}]]}} {{target=[[@{SilentMove} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_SilentMove" type="number"
|
||
value="floor((@{SilentMove1}+0.5)*@{Ag}+@{SilentMove2}+@{SilentMove3}+@{SilentMove4})">
|
||
</button></td>
|
||
</tr>
|
||
<tr data-i18n-list-item="swim">
|
||
<td data-i18n="swims">Swim (S)</td>
|
||
<td><input name="attr_Swim1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_Swim2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_Swim3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_Swim4" type="number" value="0"></td>
|
||
<td><button name="roll_Swim" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollswim}}} [[(@{Swim}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{Swim}]]}} {{target=[[@{Swim} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_Swim" type="number"
|
||
value="floor((@{Swim1}+0.5)*@{S}+@{Swim2}+@{Swim3}+@{Swim4})">
|
||
</button></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h3 data-i18n="weapontrainings">Weapon Trainings</h3>
|
||
<fieldset class="repeating_weapontalents">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-tiny" style="width:25%;">
|
||
<input name="attr_weapontrainingclass" type="text" style="text-align: right;">
|
||
</div>
|
||
<div class="sheet-item sheet-large">
|
||
<label data-i18n="weapontraining">Weapon Training</label>
|
||
</div>
|
||
<div class="sheet-item sheet-big sheet-brackets">
|
||
<input name="attr_weapontraining" type="text" style="text-align: center;">
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<h3 data-i18n="talentsandntraits">Talents & Traits</h3>
|
||
<fieldset class="repeating_talents">
|
||
<input name="attr_reptalent" type="text">
|
||
</fieldset>
|
||
|
||
</div>
|
||
|
||
<!-- Mid Column / Characteristics -->
|
||
|
||
<div class="sheet-col sheet-characteristics">
|
||
|
||
<h3 data-i18n="characteristics">Characteristics</h3>
|
||
|
||
<button name="roll_WS" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollws}}} [[(@{WS}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{WS}}} {{target=[[@{WS} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="weaponskillws">Weapon Skill (WS)</label></button>
|
||
<input name="attr_WS" type="text" value="0">
|
||
|
||
<button name="roll_BS" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollbs}}} [[(@{BS}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{BS}}} {{target=[[@{BS} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="ballisticskillbs">Ballistic Skill (BS)</label></button>
|
||
<input name="attr_BS" type="text" value="0">
|
||
|
||
<button name="roll_S" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rolls}}} [[(@{S}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{S}}} {{target=[[@{S} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="strengths">Strength (S)</label></button>
|
||
<input name="attr_S" type="text" value="0">
|
||
|
||
<button name="roll_T" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollt}}} [[(@{T}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{T}}} {{target=[[@{T} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="toughnesst">Toughness (T)</label></button>
|
||
<input name="attr_T" type="text" value="0">
|
||
|
||
<button name="roll_Ag" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollag}}} [[(@{Ag}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{Ag}}} {{target=[[@{Ag} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="agilityag">Agility (Ag)</label></button>
|
||
<input name="attr_Ag" type="text" value="0">
|
||
|
||
<button name="roll_Int" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollint}}} [[(@{Int}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{Int}}} {{target=[[@{Int} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="intelligenceint">Intelligence (Int)</label></button>
|
||
<input name="attr_Int" type="text" value="0">
|
||
|
||
<button name="roll_Per" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollper}}} [[(@{Per}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{Per}}} {{target=[[@{Per} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="perceptionper">Perception (Per)</label></button>
|
||
<input name="attr_Per" type="text" value="0">
|
||
|
||
<button name="roll_Wp" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollwp}}} [[(@{Wp}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{Wp}}} {{target=[[@{Wp} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="willpowerwp">Willpower (Wp)</label></button>
|
||
<input name="attr_Wp" type="text" value="0">
|
||
|
||
<button name="roll_Fel" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollfel}}} [[(@{Fel}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=@{Fel}}} {{target=[[@{Fel} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<label data-i18n="fellowshi`fel">Fellowship (Fel)</label></button>
|
||
<input name="attr_Fel" type="text" value="0">
|
||
|
||
</div>
|
||
|
||
<!-- Right Column -->
|
||
|
||
<div class="sheet-col sheet-skills">
|
||
<hr>
|
||
<h3 data-i18n="advancedskills">Advanced Skills</h3>
|
||
<table>
|
||
<tr>
|
||
<th data-i18n="skillname">Skill Name</th>
|
||
<th></th>
|
||
<th>10</th>
|
||
<th>20</th>
|
||
<th style="width:60px">B</th>
|
||
<th data-i18n="roll">Roll</th>
|
||
</tr>
|
||
<tr>
|
||
<td data-i18n="speaklanguagelowgothic">Speak Language (Low Gothic)</td>
|
||
<td><input name="attr_speaklow1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_speaklow2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_speaklow3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_speaklow4" type="number" value="0"></td>
|
||
<td><button name="roll_speaklow" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollspeaklow}}} [[(@{speaklow}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{speaklow}]]}} {{target=[[@{speaklow} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_speaklow" type="number"
|
||
value="floor((@{speaklow1}+0.5)*@{Int}+@{speaklow2}+@{speaklow3}+@{speaklow4})">
|
||
</button></td>
|
||
</tr>
|
||
</table>
|
||
<fieldset class="repeating_advancedskills">
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-bigger">
|
||
<input class="sheet-baseinfo" name="attr_advancedskillname" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-med">
|
||
<select class="charaselect" name="attr_advancedskillcharacteristic">
|
||
<option value="@{S}" data-i18n="(s)">(S)</option>
|
||
<option value="@{T}" data-i18n="(t)">(T)</option>
|
||
<option value="@{Ag}" data-i18n="(ag)">(Ag)</option>
|
||
<option value="@{Int}" data-i18n="(int)">(Int)</option>
|
||
<option value="@{Per}" data-i18n="(per)">(Per)</option>
|
||
<option value="@{Wp}" data-i18n="(wp)">(Wp)</option>
|
||
<option value="@{Fel}" data-i18n="(fel)">(Fel)</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
<td><input name="attr_advancedskillbox1" type="checkbox" value="0.5"></td>
|
||
<td><input name="attr_advancedskillbox2" type="checkbox" value="10"></td>
|
||
<td><input name="attr_advancedskillbox3" type="checkbox" value="10"></td>
|
||
<td style="width:60px"><input name="attr_advancedskillbox4" type="number" value="0"></td>
|
||
<td><button name="roll_advanceskill" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{advancedskillname}}} [[(@{advancedskill}+?{Modifier|0}-[[1d100]])/10]] {{roll=$[[1]]}} {{skill=[[@{advancedskill}]]}} {{target=[[@{advancedskill} + ?{Modifier|0}]]}} {{modifier=?{Modifier|0}}} {{diceroll=$[[0]]}}">
|
||
<input disabled name="attr_advancedskill" type="number"
|
||
value="floor((@{advancedskillbox1}+0.5)*@{advancedskillcharacteristic}+@{advancedskillbox2}+@{advancedskillbox3}+@{advancedskillbox4})">
|
||
</button></td>
|
||
</tr>
|
||
</table>
|
||
</fieldset>
|
||
<hr>
|
||
<!-- ATTENTION PSYKERS AHEAD! -->
|
||
|
||
<h3 data-i18n="psychicpowers">Psychic Powers</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:37.5%">
|
||
<label data-i18n="psychicdiscipline">Psychic Discipline</label>
|
||
</div>
|
||
<div class="sheet-item sheet-morebig">
|
||
<input name="attr_psychicdiscipline" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny">
|
||
<button name="roll_psycicpower" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{psychicdiscipline}}} {{psy=[[((?{Psy Rating|1}d10cs9cf11)+[[floor(@{wp}/10)]]+?{Modifier|0})]]}}"><label>Psy</label></button>
|
||
</div>
|
||
</div>
|
||
<fieldset class="repeating_psychicdiscipline">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:37.5%">
|
||
<label data-i18n="psychicdiscipline">Psychic Discipline</label>
|
||
</div>
|
||
<div class="sheet-item sheet-morebig">
|
||
<input name="attr_reppsychicdiscipline" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny">
|
||
<button name="roll_reppsycicpower" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{reppsychicdiscipline}}} {{psy=[[((?{Psy Rating|1}d10cs9cf11)+[[floor(@{wp}/10)]]+?{Modifier|0})]]}}"><label>Psy</label></button>
|
||
</div>
|
||
</div>
|
||
</fieldset><!-- Minor Powers -->
|
||
<fieldset class="repeating_minorpsychicpowers">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-large">
|
||
<label data-i18n="minorpower">Minor Power</label>
|
||
</div>
|
||
<div class="sheet-item sheet-morebig sheet-brackets">
|
||
<input name="attr_repminorpsychicpower" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny">
|
||
<button name="roll_repminorpower" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{repminorpsychicpower}}} {{threshold=[[?{Threshold|7}]]}} {{psy=[[((?{Psy Rating|1}d10cs9cf11)+[[floor(@{wp}/10)]]+?{Modifier|0})]]}}"><label>Psy</label></button>
|
||
</div>
|
||
</div>
|
||
</fieldset><!-- Discipline Powers -->
|
||
<fieldset class="repeating_disciplinepsychicpowers">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-large">
|
||
<label data-i18n="disciplinepower">Discipline Power</label>
|
||
</div>
|
||
<div class="sheet-item sheet-morebig sheet-brackets">
|
||
<input name="attr_repdisciplinepsychicpower" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny">
|
||
<button name="roll_repdisciplinepower" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{repdisciplinepsychicpower}}} {{threshold=[[?{Threshold|7}]]}} {{psy=[[((?{Psy Rating|1}d10cs9cf11)+[[floor(@{wp}/10)]]+?{Modifier|0})]]}}"><label>Psy</label></button>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<!-- Mutations anyone? -->
|
||
|
||
<h3 data-i18n="mutations">Mutations</h3>
|
||
<textarea name="attr_mutations" style="width:95%; margin:auto; height:75px;">
|
||
</textarea>
|
||
|
||
<h3 data-i18n="talentsandtraits">Talents & Traits</h3>
|
||
<fieldset class="repeating_talents2">
|
||
<input name="attr_reptalent2" type="text">
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Page 2 -->
|
||
|
||
|
||
<div class="sheet-2colrow">
|
||
|
||
<div class="sheet-col">
|
||
<h3 data-i18n="meleeweapons">Melee Weapons</h3>
|
||
<fieldset class="repeating_meleeweapons">
|
||
<div class="sheet-quickborder">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="name:">Name:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<input name="attr_meleeweaponname" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:12%">
|
||
<label data-i18n="class:">Class:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:19%">
|
||
<input name="attr_meleeweaponclass" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="damage:">Damage:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<input name="attr_meleeweapondamage" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:12%">
|
||
<label data-i18n="type:">Type:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:18%">
|
||
<input name="attr_meleeweapontype" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<label data-i18n="pen:">Pen:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<input name="attr_meleeweaponpen" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width:10%; float: right;">
|
||
<button name="roll_meleehit" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{meleeweaponname} ^{tohit}}} [[(@{WS} ?{Aim | Half aim (+10),+10| No aim (+0),+0 | Full aim (+20),+20} ?{Attack Type | Standard (+0),+0 | Charge (+10),+10 | All out (+20),+20 | Lighting (-10),-10} + ?{Modifier|0}-[[1d100]])/10]] {{weapondiceroll=$[[0]]}} {{roll=$[[1]]}} {{skill=@{WS}}} {{target=[[@{WS} ?{Aim | } ?{Attack Type | } + ?{Modifier|0}]]}} {{aim=?{Aim | }}} {{attacktype=?{Attack Type | }}} {{modifier=?{Modifier|0}}}">
|
||
<label data-i18n="hit">Hit</label>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="special:">Special:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:70%">
|
||
<input name="attr_meleeweaponspecial" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:16%; float: right;">
|
||
<button name="roll_meleedamage" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{meleeweaponname} ^{damage}}} {{damage=[[@{meleeweapondamage}+(floor(@{s}/10))]] (Pen: @{meleeweaponpen})}} {{damagetype=@{meleeweapontype}}} {{special=@{meleeweaponspecial}}}">
|
||
<label data-i18n="damage">Damage</label>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<!-- Movement -->
|
||
|
||
<h3 data-i18n="movement">Movement</h3>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:20%">
|
||
<label data-i18n="halfmove:">Half Move: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:8%">
|
||
<input disabled name="attr_halfspeed" type="number" value="floor(@{ag}/10)">
|
||
</div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<label data-i18n="fullmove:">Full Move: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:8%">
|
||
<input disabled name="attr_fullspeed" type="number" value="2*(floor(@{ag}/10))">
|
||
</div>
|
||
<div class="sheet-item" style="width:16%">
|
||
<label data-i18n="charge:">Charge: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:8%">
|
||
<input disabled name="attr_chargespeed" type="number" value="3*(floor(@{ag}/10))">
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<label data-i18n="run:">Run: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:8%">
|
||
<input disabled name="attr_runspeed" type="number" value="6*(floor(@{ag}/10))">
|
||
</div>
|
||
</div>
|
||
|
||
<br>
|
||
|
||
<!-- Initiative -->
|
||
|
||
<h3 data-i18n="initiative">Initiative</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 15%">
|
||
</div>
|
||
<div class="sheet-item sheet-redbgns" style="width: 20%">
|
||
<button name="roll_Initiative" title="Select your token first!" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollinitiative}}} {{initiative=[[1d10+floor(@{selected|ag}/10)&{tracker}]]}}."
|
||
class="btn ui-draggable"><label data-i18n="fromag">From Ag</label></button>
|
||
</div>
|
||
<div class="sheet-item" style="width: 15%">
|
||
</div>
|
||
<div class="sheet-item" style="width: 30%">
|
||
<input name="attr_CInitiativeInput" type="text" value="1d10">
|
||
</div>
|
||
<div class="sheet-item" style="width: 20%">
|
||
<button name="roll_CInitiative" title="Select your token first!" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=^{rollinitiative}}} {{initiative=[[@{selected|CInitiativeInput}&{tracker}]]}}."
|
||
class="btn ui-draggable"><label data-i18n="cust">Custom</label></button>
|
||
</div>
|
||
</div>
|
||
|
||
<br>
|
||
|
||
<!-- Armor! -->
|
||
|
||
<h3 data-i18n="armor">Armour</h3>
|
||
<div class="sheet-armourblock"></div>
|
||
<div class="sheet-quickborder sheet-armourblock">
|
||
<label data-i18n="head">Head</label> <input name="attr_Headarmourvalue" type="text"> <label>(1-10)
|
||
Type</label> <input name="attr_Headarmourtype" type="text">
|
||
</div><br>
|
||
<div class="sheet-quickborder sheet-armourblock">
|
||
<label data-i18n="leftarm">Left Arm</label> <input name="attr_LeftArmarmourvalue" type="text">
|
||
<label>(21-30) Type</label> <input name="attr_LeftArmarmourtype" type="text">
|
||
</div>
|
||
<div class="sheet-quickborder sheet-armourblock">
|
||
<label data-i18n="body">Body</label> <input name="attr_Bodyarmourvalue" type="text"> <label>(31-70)
|
||
Type</label> <input name="attr_Bodyarmourtype" type="text">
|
||
</div>
|
||
<div class="sheet-quickborder sheet-armourblock">
|
||
<label data-i18n="rightarm">Right Arm</label> <input name="attr_RightArmarmourvalue" type="text">
|
||
<label>(11-20) Type</label> <input name="attr_RightArmarmourtype" type="text">
|
||
</div>
|
||
<div class="sheet-quickborder sheet-armourblock" style="margin: 20px auto auto 11%;">
|
||
<label data-i18n="leftleg">Left Leg</label> <input name="attr_LeftLegarmourvalue" type="text">
|
||
<label>(71-85) Type</label> <input name="attr_LeftLegarmourtype" type="text">
|
||
</div>
|
||
<div class="sheet-quickborder sheet-armourblock" style="margin: 20px auto auto 11%;">
|
||
<label data-i18n="rightleg">Right Leg</label> <input name="attr_RightLegarmourvalue" type="text">
|
||
<label>(86-00) Type</label> <input name="attr_RightLegarmourtype" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Right Side -->
|
||
|
||
<div class="sheet-col">
|
||
|
||
<h3 data-i18n="rangedweapons">Ranged Weapons</h3>
|
||
<fieldset class="repeating_rangedweapons">
|
||
|
||
<div class="sheet-quickborder">
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="name:">Name:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<input name="attr_rangedweaponname" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:12%">
|
||
<label data-i18n="class:">Class:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:15%">
|
||
<input name="attr_rangedweaponclass" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="range:">Range:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="range_pb:">PB:</label>
|
||
</div>
|
||
<div class="sheet-item sheet-rangehover" style="width:10%">
|
||
<input name="attr_range_pb" type="number" value="3m">
|
||
</div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="range_n:">S:</label>
|
||
</div>
|
||
<div class="sheet-item sheet-rangehover" style="width:10%">
|
||
<input name="attr_range_n" type="number" placeholder="R/2">
|
||
</div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="range_m:">M:</label>
|
||
</div>
|
||
<div class="sheet-item sheet-rangehover" style="width:10%">
|
||
<input name="attr_range_m" type="number" placeholder="R*2">
|
||
</div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="range_f:">L:</label>
|
||
</div>
|
||
<div class="sheet-item sheet-rangehover" style="width:10%">
|
||
<input name="attr_range_f" type="number" placeholder="R*3">
|
||
</div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="range_e:">E:</label>
|
||
</div>
|
||
<div class="sheet-item sheet-rangehover" style="width:10%">
|
||
<input name="attr_range_e" type="number" placeholder="R*4">
|
||
</div>
|
||
<div class="sheet-rangehide" data-i18n="range_description:">The input fields always show the maximum value for the distance category and the minimum value is always the previous category +1</div>
|
||
<div class="sheet-item" style="width: 10%; float: right;">
|
||
<button name="roll_rangedhit" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{rangedweaponname} ^{tohit}}} [[(@{BS} ?{Aim | Half aim (+10),+10| No aim (+0),+0 | Full aim (+20),+20} ?{Range | Point Blank (+30),+30 | Short (+10),+10 | Middle (+0),+0 | Long (-10),-10 | Extreme (-30),-30} ?{Rate of Fire/Attack Type | Standard (+0),+0 | Semi auto (+10),+10 | Full Auto (+20),+20 | Called Shot (-20),-20 | Suppressing Fire (-20),-20} + ?{Modifier|0}-[[1d100]])/10]] {{weapondiceroll=$[[0]]}} {{roll=$[[1]]}} {{reliable=[[1d10]]}} {{skill=@{BS}}} {{target=[[@{BS} ?{Aim | } ?{Range | } ?{Rate of Fire/Attack Type | } + ?{Modifier|0}]]}} {{aim=?{Aim | }}} {{range=?{Range | }}} {{attacktype=?{Rate of Fire/Attack Type | }}} {{modifier=?{Modifier|0}}}">
|
||
<label data-i18n="hit">Hit</label>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="damage:">Damage:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:19%">
|
||
<input name="attr_rangedweapondamage" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<label data-i18n="type:">Type:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<input name="attr_rangedweapontype" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:9%">
|
||
<label data-i18n="pen:">Pen:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:7%">
|
||
<input name="attr_rangedweaponpen" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width: 16%; float: right;">
|
||
<button name="roll_rangeddamage" type="roll"
|
||
value="@{abilityroll} &{template:dh1ed} {{rollname=@{rangedweaponname} ^{damage}}} {{damage=[[@{rangedweapondamage}]] (Pen: @{rangedweaponpen})}} {{damagetype=@{rangedweapontype}}} {{special=@{rangedweaponspecial}}}">
|
||
<label data-i18n="damage">Damage</label>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="rof:">RoF:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:6%">
|
||
<input name="attr_rangedweaponsingle" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width:2%">
|
||
<label>/</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:6%">
|
||
<input name="attr_rangedweaponsemi" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width:2%">
|
||
<label>/</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:6%">
|
||
<input name="attr_rangedweaponfull" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width:9%">
|
||
<label data-i18n="clip:">Clip:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<input name="attr_rangedweaponclipcurrent" type="number" value="0">
|
||
</div>
|
||
<div class="sheet-item" style="width:2%">
|
||
<label>/</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<input name="attr_rangedweaponclipfull" type="number" value="0">
|
||
</div>
|
||
|
||
<div class="sheet-item" style="width:8%">
|
||
<label data-i18n="reload:">Reload:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<input name="attr_rangedweaponreload" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:15%">
|
||
<label data-i18n="special:">Special:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:75%">
|
||
<input name="attr_rangedweaponspecial" type="text">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<h3 data-i18n="gear">Gear</h3>
|
||
<fieldset class="repeating_gear">
|
||
<input name="attr_repgear" type="text">
|
||
</fieldset>
|
||
|
||
<!-- Wealth -->
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:25%">
|
||
<label data-i18n="thronegelt:">Throne Gelt: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:25%">
|
||
<input name="attr_ThroneGelt" type="number">
|
||
</div>
|
||
<div class="sheet-item sheet-puny"></div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<label data-i18n="income:">Income: </label>
|
||
</div>
|
||
<div class="sheet-item" style="width:20%">
|
||
<input name="attr_Income" type="number">
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<hr>
|
||
|
||
<!-- Footer Stuff -->
|
||
|
||
<div class="4colrow">
|
||
<div class="sheet-col sheet-wounds" style="width:15%">
|
||
<h3 data-i18n="wounds">Wounds</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:60%">
|
||
<label data-i18n="total:">Total:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:40%">
|
||
<input name="attr_Wounds_max" type="number">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:60%">
|
||
<label data-i18n="current:">Current:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:40%">
|
||
<input name="attr_Wounds" type="number">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-col sheet-fate" style="width:15%">
|
||
<h3 data-i18n="fatepoints">Fate Points</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:60%">
|
||
<label data-i18n="total:">Total:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:40%">
|
||
<input name="attr_Fate_max" type="number">
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:60%">
|
||
<label data-i18n="current:">Current:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:40%">
|
||
<input name="attr_Fate" type="number">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-col sheet-insanity" style="width:34%">
|
||
|
||
<h3 data-i18n="insanity">Insanity</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-puny"></div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<label data-i18n="insanitypoints:">Insanity Points:</label>
|
||
</div>
|
||
|
||
<div class="sheet-item" style="width:35%">
|
||
<input name="attr_Insanitypoints" type="number">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-puny"></div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<label data-i18n="degreeofmadness:">Degree of Madness:</label>
|
||
</div>
|
||
|
||
<div class="sheet-item" style="width:35%">
|
||
<input name="attr_Insanitydegree" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<textarea name="attr_Disorders" placeholder="Disorders"
|
||
style="width:95%; margin:auto; height:75px;">
|
||
</textarea>
|
||
</div>
|
||
|
||
<div class="sheet-row"></div>
|
||
</div>
|
||
|
||
|
||
<div class="sheet-col sheet-corruption" style="width:34%">
|
||
|
||
<h3 data-i18n="corruption">Corruption</h3>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-puny"></div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<label data-i18n="corruptionpoints:">Corruption Points:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:35%">
|
||
<input name="attr_Corruptionpoints" type="number">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item sheet-puny"></div>
|
||
<div class="sheet-item" style="width:55%">
|
||
<label data-i18n="degreeofcorruption:">Degree of Corruption:</label>
|
||
</div>
|
||
|
||
<div class="sheet-item" style="width:35%">
|
||
<input name="attr_Corruptionydegree" type="text">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-row">
|
||
<textarea name="attr_Malignancies" placeholder="Malignancies"
|
||
style="width:95%; margin:auto; height:75px;">
|
||
</textarea>
|
||
</div>
|
||
|
||
<div class="sheet-row"></div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<hr>
|
||
|
||
<!-- XP -->
|
||
|
||
<div class="1colrow colrow">
|
||
|
||
<h3 data-i18n="experiencepoints">Experience Points</h3>
|
||
|
||
|
||
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:12%">
|
||
<label data-i18n="xptospend">XP to Spend:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:22%">
|
||
<input disabled name="attr_XPtoSpend" type="number" value="@{XPTotal} - @{XPSpent}">
|
||
</div>
|
||
<div class="sheet-item" style="width:1%"></div>
|
||
<div class="sheet-item" style="width:10%">
|
||
<label data-i18n="totalxpspent">Total Spent:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:24%">
|
||
<input name="attr_XPSpent" type="number" value="0" readonly>
|
||
</div>
|
||
<div class="sheet-item" style="width:1%"></div>
|
||
<div class="sheet-item" style="width:5%">
|
||
<label data-i18n="totalxp">Total:</label>
|
||
</div>
|
||
<div class="sheet-item" style="width:25%">
|
||
<input name="attr_XPTotal" type="number" value="0">
|
||
</div>
|
||
|
||
|
||
<label data-i18n="advancementtaken:">Advancements Taken:</label>
|
||
|
||
<fieldset class="repeating_advancements">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width:26%;">
|
||
<input name="attr_advancement1" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny sheet-center sheet-brackets sheet-armourblock">
|
||
<input name="attr_advancement1xp" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:26%;">
|
||
<input name="attr_advancement2" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny sheet-center sheet-brackets sheet-armourblock">
|
||
<input name="attr_advancement2xp" type="text">
|
||
</div>
|
||
<div class="sheet-item" style="width:26%;">
|
||
<input name="attr_advancement3" type="text">
|
||
</div>
|
||
<div class="sheet-item sheet-puny sheet-center sheet-brackets sheet-armourblock">
|
||
<input name="attr_advancement3xp" type="text">
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<hr>
|
||
<h3 data-i18n="othernotes:">Other Notes:</h3>
|
||
<textarea name="attr_othernotes">
|
||
</textarea>
|
||
</div><!-- Charsheet End -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sheet-section-psykana sheet-watermark">
|
||
<!-- Psykana Tab Tab -->
|
||
<!-- This section contains Psychic Powers, Focus Power Rolls, and other Psyker Specific characteristics -->
|
||
<div class="sheet-wrapper">
|
||
<br>
|
||
<h3 data-i18n="psychic-powers-u">Psychic Powers</h3>
|
||
<img src="http://i.imgur.com/TKfHnQ9.png"><!-- Divider -->
|
||
<div class="sheet-2colrow">
|
||
<!-- Psychic Powers Left Column -->
|
||
<div class="sheet-col">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="psy-rating-u">Psy Rating:</span></div>
|
||
<div class="sheet-item" style="width: 80%;"><input name="attr_PsyRating" type="number"
|
||
placeholder="0" /></div>
|
||
</div>
|
||
<!-- Psychic Powers Left Column, repeating field -->
|
||
<fieldset class="repeating_PsyPowers1">
|
||
<div class="sheet-quickborder">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 10%;"><span data-i18n="name-u">Name:</span></div>
|
||
<div class="sheet-item" style="width: 40%;"><input name="attr_PsyName1" type="text" /></div>
|
||
<div class="sheet-item" style="width: 25%;"><span data-i18n="action-u">Focus:</span></div>
|
||
<div class="sheet-item" style="width: 25%;"><input name="attr_PsyAction1" type="text" />
|
||
</div>
|
||
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span
|
||
data-i18n="focus-power-u">Threshold:</span></div>
|
||
<div class="sheet-item" style="width: 20%;"><input name="attr_PsyFocusPower1" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 25%;;"><span data-i18n="subtype-u">Subtype:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 35%;"><input name="attr_PsySubtype1" type="text" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 15%;"><span data-i18n="range-u">Range:</span></div>
|
||
<div class="sheet-item" style="width: 10%;"><input name="attr_PsyRange1" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 28%;;"><span data-i18n="sustained-u">Sustained:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 15%;"><input name="attr_PsySustained1" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 22%;"><span data-i18n="damage-type-u">Damage
|
||
Type:</span></div>
|
||
<div class="sheet-item" style="width: 10%;">
|
||
<select class="attr_PsyDamageType1">
|
||
<option selected data-i18n="e-u">E</option>
|
||
<option data-i18n="i-u">I</option>
|
||
<option data-i18n="r-u">P</option>
|
||
<option data-i18n="e-u">E</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="damage-u">Damage:</span></div>
|
||
<div class="sheet-item" style="width: 30%;"><input name="attr_PsyDamage1" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="penetration-u">Pen:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 30%;"><input name="attr_PsyPen1" type="text" /></div>
|
||
</div>
|
||
<div><textarea name="attr_PsyPowersEffect1"></textarea></div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<!-- Break between Left and Right Secondary Columns -->
|
||
<!-- Psychic Powers Right Column -->
|
||
<div class="sheet-col">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="sustaining-u">Sustaining:</span></div>
|
||
<div class="sheet-item" style="width: 80%;"><input name="attr_Sustaining" type="number"
|
||
placeholder="-4/-8/-16" /></div>
|
||
</div>
|
||
<!-- Psychic Powers Right Column, repeating field -->
|
||
<fieldset class="repeating_PsyPowers2">
|
||
<div class="sheet-quickborder">
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 10%;"><span data-i18n="name-u">Name:</span></div>
|
||
<div class="sheet-item" style="width: 40%;"><input name="attr_PsyName2" type="text" /></div>
|
||
<div class="sheet-item" style="width: 25%;"><span data-i18n="action-u">Focus:</span></div>
|
||
<div class="sheet-item" style="width: 25%;"><input name="attr_PsyAction2" type="text" />
|
||
</div>
|
||
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span
|
||
data-i18n="focus-power-u">Threshold:</span></div>
|
||
<div class="sheet-item" style="width: 20%;"><input name="attr_PsyFocusPower2" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 25%;;"><span data-i18n="subtype-u">Subtype:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 35%;"><input name="attr_PsySubtype2" type="text" />
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 15%;"><span data-i18n="range-u">Range:</span></div>
|
||
<div class="sheet-item" style="width: 10%;"><input name="attr_PsyRange2" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 28%;;"><span data-i18n="sustained-u">Sustained:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 15%;"><input name="attr_PsySustained2" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 22%;"><span data-i18n="damage-type-u">Damage
|
||
Type:</span></div>
|
||
<div class="sheet-item" style="width: 10%;">
|
||
<select class="attr_PsyDamageType2">
|
||
<option selected data-i18n="e-u">E</option>
|
||
<option data-i18n="i-u">I</option>
|
||
<option data-i18n="r-u">P</option>
|
||
<option data-i18n="e-u">E</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="sheet-row">
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="damage-u">Damage:</span></div>
|
||
<div class="sheet-item" style="width: 30%;"><input name="attr_PsyDamage2" type="text" />
|
||
</div>
|
||
<div class="sheet-item" style="width: 20%;"><span data-i18n="penetration-u">Pen:</span>
|
||
</div>
|
||
<div class="sheet-item" style="width: 30%;"><input name="attr_PsyPen2" type="text" /></div>
|
||
</div>
|
||
<div><textarea name="attr_PsyPowersEffect2"></textarea></div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!--Roll Template test-->
|
||
<rolltemplate class="sheet-rolltemplate-dh1ed">
|
||
<table>
|
||
<tr>
|
||
<th colspan="2" class="sheet-title">{{rollname}}</th>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="2"><img
|
||
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dark_Heresy/img/spacer.png"
|
||
class="sheet-rolltemplate-spacer"></th>
|
||
</tr>
|
||
{{#skill}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="skill:">Skill: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{skill}}</span></td>
|
||
</tr>
|
||
{{/skill}}
|
||
{{#aim}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="aim:">Aim: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{aim}}</span></td>
|
||
</tr>
|
||
{{/aim}}
|
||
{{#range}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="range:">Range: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{range}}</span></td>
|
||
</tr>
|
||
{{/range}}
|
||
{{#attacktype}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="attacktype:">Attack Type: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{attacktype}}</span></td>
|
||
</tr>
|
||
{{/attacktype}}
|
||
{{#modifier}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="modifier:">Modifier: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{modifier}}</span></td>
|
||
</tr>
|
||
{{/modifier}}
|
||
{{#target}}
|
||
<tr class="sheet-topline">
|
||
<th colspan="2"><span></span></th>
|
||
</tr>
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="target:">Target: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{target}}</span></td>
|
||
</tr>
|
||
{{/target}}
|
||
{{#threshold}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="threshold:">Threshold: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{threshold}}</span></td>
|
||
</tr>
|
||
{{/threshold}}
|
||
{{#diceroll}}
|
||
<tr>
|
||
<th colspan="2"><img
|
||
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dark_Heresy/img/spacer.png"
|
||
class="sheet-rolltemplate-spacer sheet-invert"></th>
|
||
</tr>
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="diceroll:">dice roll: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{diceroll}}</span></td>
|
||
</tr>
|
||
{{/diceroll}}
|
||
{{#rollGreater() weapondiceroll 96}}
|
||
<tr>
|
||
<th colspan="2"><img
|
||
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dark_Heresy/img/spacer.png"
|
||
class="sheet-rolltemplate-spacer sheet-invert"></th>
|
||
</tr>
|
||
<tr class="sheet-failure">
|
||
<td><span class="sheet-tcat" data-i18n="diceroll:">dice roll: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{weapondiceroll}}</span></td>
|
||
</tr>
|
||
{{#rollTotal() reliable 10}}
|
||
<tr class="sheet-failure">
|
||
<td><span class="sheet-tcat" data-i18n="reliable:">reliable: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{reliable}}</span></td>
|
||
</tr>
|
||
{{/rollTotal() reliable 10}}
|
||
{{#rollLess() reliable 10}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="reliable:">reliable: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{reliable}}</span></td>
|
||
</tr>
|
||
{{/rollLess() reliable 10}}
|
||
{{/rollGreater() weapondiceroll 96}}
|
||
{{#rollLess() weapondiceroll 97}}
|
||
<tr>
|
||
<th colspan="2"><img
|
||
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dark_Heresy/img/spacer.png"
|
||
class="sheet-rolltemplate-spacer sheet-invert"></th>
|
||
</tr>
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="diceroll:">dice roll: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{weapondiceroll}}</span></td>
|
||
</tr>
|
||
{{/rollLess() weapondiceroll 97}}
|
||
{{#^rollLess() roll 0}}
|
||
<tr class="sheet-success">
|
||
<th colspan="2">
|
||
<span data-i18n="success">Success</span> <span data-i18n="with">with</span> {{roll}} <span
|
||
data-i18n="degrees">degrees</span>
|
||
</th>
|
||
</tr>
|
||
{{/^rollLess() roll 0}}
|
||
{{#rollLess() roll 0}}
|
||
<tr class="sheet-failure">
|
||
<th colspan="2">
|
||
<span data-i18n="failure">Failure</span> <span data-i18n="with">with</span> {{roll}} <span
|
||
data-i18n="degrees">degrees</span>
|
||
</th>
|
||
</tr>
|
||
{{/rollLess() roll 0}}
|
||
{{#psy}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="resultpsy:">Result Psy: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{psy}}</span></td>
|
||
</tr>
|
||
{{/psy}}
|
||
{{#damage}}
|
||
<tr class="sheet-damage">
|
||
<td><span class="sheet-tcat" data-i18n="damage:">Damage: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{damage}}</span></td>
|
||
</tr>
|
||
{{/damage}}
|
||
{{#damagetype}}
|
||
<tr class="sheet-damage">
|
||
<td><span class="sheet-tcat" data-i18n="type:">Type: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{damagetype}}</span></td>
|
||
</tr>
|
||
{{/damagetype}}
|
||
{{#special}}
|
||
<tr>
|
||
<td><b><span class="sheet-tcat" data-i18n="special:">Special: </span></b></td>
|
||
<td><span class="sheet-inlinerollresult">{{special}}</span></td>
|
||
</tr>
|
||
{{/special}}
|
||
{{#initiative}}
|
||
<tr>
|
||
<td><span class="sheet-tcat" data-i18n="result:">Result: </span></td>
|
||
<td><span class="sheet-inlinerollresult">{{initiative}}</span></td>
|
||
</tr>
|
||
{{/initiative}}
|
||
</table>
|
||
</rolltemplate>
|
||
<script type="text/worker">
|
||
// Github: https://github.com/shdwjk/TheAaronSheet/blob/master/TheAaronSheet.js
|
||
// By: The Aaron, Arcane Scriptomancer
|
||
// Contact: https://app.roll20.net/users/104025/the-aaron
|
||
var TAS = TAS || (function(){
|
||
'use strict';
|
||
var version = '0.2.3',
|
||
lastUpdate = 1457098056,
|
||
loggingSettings = {
|
||
debug: {
|
||
key: 'debug',
|
||
title: 'DEBUG',
|
||
color: {
|
||
bgLabel: '#7732A2',
|
||
label: '#F2EF40',
|
||
bgText: '#FFFEB7',
|
||
text: '#7732A2'
|
||
}
|
||
},
|
||
error: {
|
||
key: 'error',
|
||
title: 'Error',
|
||
color: {
|
||
bgLabel: '#C11713',
|
||
label: 'white',
|
||
bgText: '#C11713',
|
||
text: 'white'
|
||
}
|
||
},
|
||
warn: {
|
||
key: 'warn',
|
||
title: 'Warning',
|
||
color: {
|
||
bgLabel: '#F29140',
|
||
label: 'white',
|
||
bgText: '#FFD8B7',
|
||
text: 'black'
|
||
}
|
||
},
|
||
info: {
|
||
key: 'info',
|
||
title: 'Info',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#B3B2EB',
|
||
text: 'black'
|
||
}
|
||
},
|
||
notice: {
|
||
key: 'notice',
|
||
title: 'Notice',
|
||
color: {
|
||
bgLabel: '#33C133',
|
||
label: 'white',
|
||
bgText: '#ADF1AD',
|
||
text: 'black'
|
||
}
|
||
},
|
||
log: {
|
||
key: 'log',
|
||
title: 'Log',
|
||
color: {
|
||
bgLabel: '#f2f240',
|
||
label: 'black',
|
||
bgText: '#ffff90',
|
||
text: 'black'
|
||
}
|
||
},
|
||
callstack: {
|
||
key: 'TAS',
|
||
title: 'function',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#B3B2EB',
|
||
text: 'black'
|
||
}
|
||
},
|
||
callstack_async: {
|
||
key: 'TAS',
|
||
title: 'ASYNC CALL',
|
||
color: {
|
||
bgLabel: '#413FA9',
|
||
label: 'white',
|
||
bgText: '#413FA9',
|
||
text: 'white'
|
||
}
|
||
},
|
||
TAS: {
|
||
key: 'TAS',
|
||
title: 'TAS',
|
||
color: {
|
||
bgLabel: 'grey',
|
||
label: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)',
|
||
bgText: 'grey',
|
||
text: 'black;background:linear-gradient(#304352,#d7d2cc,#d7d2cc,#d7d2cc,#304352)'
|
||
}
|
||
}
|
||
},
|
||
config = {
|
||
debugMode: false,
|
||
logging: {
|
||
log: true,
|
||
notice: true,
|
||
info: true,
|
||
warn: true,
|
||
error: true,
|
||
debug: false
|
||
}
|
||
},
|
||
callstackRegistry = [],
|
||
queuedUpdates = {}, //< Used for delaying saves till the last momment.
|
||
complexType = function(o){
|
||
switch(typeof o){
|
||
case 'string':
|
||
return 'string';
|
||
case 'boolean':
|
||
return 'boolean';
|
||
case 'number':
|
||
return (_.isNaN(o) ? 'NaN' : (o.toString().match(/\./) ? 'decimal' : 'integer'));
|
||
case 'function':
|
||
return 'function: '+(o.name ? o.name+'()' : '(anonymous)');
|
||
case 'object':
|
||
return (_.isArray(o) ? 'array' : (_.isArguments(o) ? 'arguments' : ( _.isNull(o) ? 'null' : 'object')));
|
||
default:
|
||
return typeof o;
|
||
}
|
||
},
|
||
dataLogger = function(primaryLogger,secondaryLogger,data){
|
||
_.each(data,function(m){
|
||
var type = complexType(m);
|
||
switch(type){
|
||
case 'string':
|
||
primaryLogger(m);
|
||
break;
|
||
case 'undefined':
|
||
case 'null':
|
||
case 'NaN':
|
||
primaryLogger('['+type+']');
|
||
break;
|
||
case 'number':
|
||
case 'not a number':
|
||
case 'integer':
|
||
case 'decimal':
|
||
case 'boolean':
|
||
primaryLogger('['+type+']: '+m);
|
||
break;
|
||
default:
|
||
primaryLogger('['+type+']:=========================================');
|
||
secondaryLogger(m);
|
||
primaryLogger('=========================================================');
|
||
break;
|
||
}
|
||
});
|
||
},
|
||
colorLog = function(options){
|
||
var coloredLoggerFunction,
|
||
key = options.key,
|
||
label = options.title || 'TAS',
|
||
lBGColor = (options.color && options.color.bgLabel) || 'blue',
|
||
lTxtColor = (options.color && options.color.label) || 'white',
|
||
mBGColor = (options.color && options.color.bgText) || 'blue',
|
||
mTxtColor = (options.color && options.color.text) || 'white';
|
||
coloredLoggerFunction = function(message){
|
||
console.log(
|
||
'%c '+label+': %c '+message + ' ',
|
||
'background-color: '+lBGColor+';color: '+lTxtColor+'; font-weight:bold;',
|
||
'background-color: '+mBGColor+';color: '+mTxtColor+';'
|
||
);
|
||
};
|
||
return function(){
|
||
if('TAS'===key || config.logging[key]){
|
||
dataLogger(coloredLoggerFunction,function(m){console.log(m);},_.toArray(arguments));
|
||
}
|
||
};
|
||
},
|
||
logDebug = colorLog(loggingSettings.debug),
|
||
logError = colorLog(loggingSettings.error),
|
||
logWarn = colorLog(loggingSettings.warn),
|
||
logInfo = colorLog(loggingSettings.info),
|
||
logNotice = colorLog(loggingSettings.notice),
|
||
logLog = colorLog(loggingSettings.log),
|
||
log = colorLog(loggingSettings.TAS),
|
||
logCS = colorLog(loggingSettings.callstack),
|
||
logCSA = colorLog(loggingSettings.callstack_async),
|
||
registerCallstack = function(callstack,label){
|
||
var idx=_.findIndex(callstackRegistry,function(o){
|
||
return (_.difference(o.stack,callstack).length === _.difference(callstack,o.stack).length) &&
|
||
_.difference(o.stack,callstack).length === 0 &&
|
||
o.label === label;
|
||
});
|
||
if(-1 === idx){
|
||
idx=callstackRegistry.length;
|
||
callstackRegistry.push({
|
||
stack: callstack,
|
||
label: label
|
||
});
|
||
}
|
||
return idx;
|
||
},
|
||
setConfigOption = function(options){
|
||
var newconf =_.defaults(options,config);
|
||
newconf.logging=_.defaults(
|
||
(options && options.logging)||{},
|
||
config.logging
|
||
);
|
||
config=newconf;
|
||
},
|
||
|
||
debugMode = function(){
|
||
config.logging.debug=true;
|
||
config.debugMode = true;
|
||
},
|
||
getCallstack = function(){
|
||
var e = new Error('dummy'),
|
||
stack = _.map(_.rest(e.stack.replace(/^[^\(]+?[\n$]/gm, '')
|
||
.replace(/^\s+at\s+/gm, '')
|
||
.replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@')
|
||
.split('\n')),function(l){
|
||
return l.replace(/\s+.*$/,'');
|
||
});
|
||
return stack;
|
||
},
|
||
logCallstackSub = function(cs){
|
||
var matches, csa;
|
||
_.find(cs,function(line){
|
||
matches = line.match(/TAS_CALLSTACK_(\d+)/);
|
||
if(matches){
|
||
csa=callstackRegistry[matches[1]];
|
||
logCSA( '===================='+(csa.label ? '> '+csa.label+' <' : '')+'====================');
|
||
logCallstackSub(csa.stack);
|
||
return true;
|
||
}
|
||
logCS(line);
|
||
return false;
|
||
});
|
||
},
|
||
logCallstack = function(){
|
||
var cs;
|
||
if(config.debugMode){
|
||
cs = getCallstack();
|
||
cs.shift();
|
||
log('==============================> CALLSTACK <==============================');
|
||
logCallstackSub(cs);
|
||
log('=========================================================================');
|
||
}
|
||
},
|
||
wrapCallback = function (label, callback, context){
|
||
var callstack;
|
||
if('function' === typeof label){
|
||
context=callback;
|
||
callback=label;
|
||
label=undefined;
|
||
}
|
||
if(!config.debugMode){
|
||
return (function(cb,ctx){
|
||
return function(){
|
||
cb.apply(ctx||{},arguments);
|
||
};
|
||
}(callback,context));
|
||
}
|
||
|
||
callstack = getCallstack();
|
||
callstack.shift();
|
||
|
||
return (function(cb,ctx,cs,lbl){
|
||
var ctxref=registerCallstack(cs,lbl);
|
||
/*jshint -W054 */
|
||
return new Function('cb','ctx','TASlog',
|
||
"return function TAS_CALLSTACK_"+ctxref+"(){"+
|
||
"TASlog('Entering: '+(cb.name||'(anonymous function)'));"+
|
||
"cb.apply(ctx||{},arguments);"+
|
||
"TASlog('Exiting: '+(cb.name||'(anonymous function)'));"+
|
||
"};")(cb,ctx,log);
|
||
/*jshint +W054 */
|
||
}(callback,context,callstack,label));
|
||
},
|
||
prepareUpdate = function( attribute, value ){
|
||
queuedUpdates[attribute]=value;
|
||
},
|
||
applyQueuedUpdates = function() {
|
||
setAttrs(queuedUpdates);
|
||
queuedUpdates = {};
|
||
},
|
||
namesFromArgs = function(args,base){
|
||
return _.chain(args)
|
||
.reduce(function(memo,attr){
|
||
if('string' === typeof attr) {
|
||
memo.push(attr);
|
||
} else if(_.isArray(args) || _.isArguments(args)){
|
||
memo = namesFromArgs(attr,memo);
|
||
}
|
||
return memo;
|
||
},(_.isArray(base) && base) || [])
|
||
.uniq()
|
||
.value();
|
||
},
|
||
addId = function(obj,value){
|
||
Object.defineProperty(obj,'id',{
|
||
value: value,
|
||
writeable: false,
|
||
enumerable: false
|
||
});
|
||
},
|
||
addProp = function(obj,prop,value,fullname){
|
||
(function(){
|
||
var pname=(_.contains(['S','F','I','D'],prop) ? '_'+prop : prop),
|
||
full_pname = fullname || prop,
|
||
pvalue=value;
|
||
_.each(['S','I','F'],function(p){
|
||
if( !_.has(obj,p)){
|
||
Object.defineProperty(obj, p, {
|
||
value: {},
|
||
enumerable: false,
|
||
readonly: true
|
||
});
|
||
}
|
||
});
|
||
if( !_.has(obj,'D')){
|
||
Object.defineProperty(obj, 'D', {
|
||
value: _.reduce(_.range(10),function(m,d){
|
||
Object.defineProperty(m, d, {
|
||
value: {},
|
||
enumerable: true,
|
||
readonly: true
|
||
});
|
||
return m;
|
||
},{}),
|
||
enumerable: false,
|
||
readonly: true
|
||
});
|
||
}
|
||
// Raw value
|
||
Object.defineProperty(obj, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
if(v!==pvalue) {
|
||
pvalue=v;
|
||
prepareUpdate(full_pname,v);
|
||
}
|
||
},
|
||
get: function(){
|
||
return pvalue;
|
||
}
|
||
});
|
||
|
||
// string value
|
||
Object.defineProperty(obj.S, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=v.toString();
|
||
if(val !== pvalue) {
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return pvalue.toString();
|
||
}
|
||
});
|
||
// int value
|
||
Object.defineProperty(obj.I, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=parseInt(v,10) || 0;
|
||
if(val !== pvalue){
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return parseInt(pvalue,10) || 0;
|
||
}
|
||
});
|
||
// float value
|
||
Object.defineProperty(obj.F, pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=parseFloat(v) || 0;
|
||
if(val !== pvalue) {
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return parseFloat(pvalue) || 0;
|
||
}
|
||
});
|
||
_.each(_.range(10),function(d){
|
||
Object.defineProperty(obj.D[d], pname, {
|
||
enumerable: true,
|
||
set: function(v){
|
||
var val=(parseFloat(v) || 0).toFixed(d);
|
||
if(val !== pvalue){
|
||
pvalue=val;
|
||
prepareUpdate(full_pname,val);
|
||
}
|
||
},
|
||
get: function(){
|
||
return (parseFloat(pvalue) || 0).toFixed(d);
|
||
}
|
||
});
|
||
});
|
||
}());
|
||
},
|
||
|
||
repeating = function( section ) {
|
||
return (function(s){
|
||
var sectionName = s,
|
||
attrNames = [],
|
||
fieldNames = [],
|
||
operations = [],
|
||
after = [],
|
||
|
||
repAttrs = function TAS_Repeating_Attrs(){
|
||
attrNames = namesFromArgs(arguments,attrNames);
|
||
return this;
|
||
},
|
||
repFields = function TAS_Repeating_Fields(){
|
||
fieldNames = namesFromArgs(arguments,fieldNames);
|
||
return this;
|
||
},
|
||
repReduce = function TAS_Repeating_Reduce(func, initial, final, context) {
|
||
operations.push({
|
||
type: 'reduce',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
memo: (_.isUndefined(initial) && 0) || initial,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repMap = function TAS_Repeating_Map(func, final, context) {
|
||
operations.push({
|
||
type: 'map',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repEach = function TAS_Repeating_Each(func, final, context) {
|
||
operations.push({
|
||
type: 'each',
|
||
func: (func && _.isFunction(func) && func) || _.noop,
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repTap = function TAS_Repeating_Tap(final, context) {
|
||
operations.push({
|
||
type: 'tap',
|
||
final: (final && _.isFunction(final) && final) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repAfter = function TAS_Repeating_After(callback,context) {
|
||
after.push({
|
||
callback: (callback && _.isFunction(callback) && callback) || _.noop,
|
||
context: context || {}
|
||
});
|
||
return this;
|
||
},
|
||
repExecute = function TAS_Repeating_Execute(callback,context){
|
||
var rowSet = {},
|
||
attrSet = {},
|
||
fieldIds = [],
|
||
fullFieldNames = [];
|
||
repAfter(callback,context);
|
||
// call each operation per row.
|
||
// call each operation's final
|
||
getSectionIDs("repeating_"+sectionName,function(ids){
|
||
fieldIds = ids;
|
||
fullFieldNames = _.reduce(fieldIds,function(memo,id){
|
||
return memo.concat(_.map(fieldNames,function(name){
|
||
return 'repeating_'+sectionName+'_'+id+'_'+name;
|
||
}));
|
||
},[]);
|
||
getAttrs( _.uniq(attrNames.concat(fullFieldNames)), function(values){
|
||
_.each(attrNames,function(aname){
|
||
if(values.hasOwnProperty(aname)){
|
||
addProp(attrSet,aname,values[aname]);
|
||
}
|
||
});
|
||
rowSet = _.reduce(fieldIds,function(memo,id){
|
||
var r={};
|
||
addId(r,id);
|
||
_.each(fieldNames,function(name){
|
||
var fn = 'repeating_'+sectionName+'_'+id+'_'+name;
|
||
addProp(r,name,values[fn],fn);
|
||
});
|
||
memo[id]=r;
|
||
return memo;
|
||
},{});
|
||
_.each(operations,function(op){
|
||
var res;
|
||
switch(op.type){
|
||
case 'tap':
|
||
_.bind(op.final,op.context,rowSet,attrSet)();
|
||
break;
|
||
case 'each':
|
||
_.each(rowSet,function(r){
|
||
_.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,rowSet,attrSet)();
|
||
break;
|
||
case 'map':
|
||
res = _.map(rowSet,function(r){
|
||
return _.bind(op.func,op.context,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,res,rowSet,attrSet)();
|
||
break;
|
||
case 'reduce':
|
||
res = op.memo;
|
||
_.each(rowSet,function(r){
|
||
res = _.bind(op.func,op.context,res,r,attrSet,r.id,rowSet)();
|
||
});
|
||
_.bind(op.final,op.context,res,rowSet,attrSet)();
|
||
break;
|
||
}
|
||
});
|
||
// finalize attrs
|
||
applyQueuedUpdates();
|
||
_.each(after,function(op){
|
||
_.bind(op.callback,op.context)();
|
||
});
|
||
});
|
||
});
|
||
};
|
||
|
||
return {
|
||
attrs: repAttrs,
|
||
attr: repAttrs,
|
||
column: repFields,
|
||
columns: repFields,
|
||
field: repFields,
|
||
fields: repFields,
|
||
reduce: repReduce,
|
||
inject: repReduce,
|
||
foldl: repReduce,
|
||
map: repMap,
|
||
collect: repMap,
|
||
each: repEach,
|
||
forEach: repEach,
|
||
tap: repTap,
|
||
'do': repTap,
|
||
after: repAfter,
|
||
last: repAfter,
|
||
done: repAfter,
|
||
execute: repExecute,
|
||
go: repExecute,
|
||
run: repExecute
|
||
};
|
||
}(section));
|
||
},
|
||
repeatingSimpleSum = function(section, field, destination){
|
||
repeating(section)
|
||
.attr(destination)
|
||
.field(field)
|
||
.reduce(function(m,r){
|
||
return m + (r.F[field]);
|
||
},0,function(t,r,a){
|
||
a.S[destination]=t;
|
||
})
|
||
.execute();
|
||
};
|
||
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ The Aaron Sheet v'+version+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
|
||
console.log('%c•.¸¸.•*´¨`*•.¸¸.•*´¨`*•.¸ Last update: '+(new Date(lastUpdate*1000))+' ¸.•*´¨`*•.¸¸.•*´¨`*•.¸¸.•','background: linear-gradient(to right,green,white,white,green); color:black;text-shadow: 0 0 8px white;');
|
||
return {
|
||
/* Repeating Sections */
|
||
repeatingSimpleSum: repeatingSimpleSum,
|
||
repeating: repeating,
|
||
/* Configuration */
|
||
config: setConfigOption,
|
||
/* Debugging */
|
||
callback: wrapCallback,
|
||
callstack: logCallstack,
|
||
debugMode: debugMode,
|
||
_fn: wrapCallback,
|
||
/* Logging */
|
||
debug: logDebug,
|
||
error: logError,
|
||
warn: logWarn,
|
||
info: logInfo,
|
||
notice: logNotice,
|
||
log: logLog
|
||
};
|
||
}());
|
||
/* ---- END: TheAaronSheet.js ---- */
|
||
|
||
on("change:gmroll", function(f) {
|
||
getAttrs(["gmroll"], function(v) {
|
||
let rollstring = "";
|
||
if (v.gmroll == "1") {
|
||
rollstring = "/w GM **@{character_name}**";
|
||
} else {
|
||
rollstring = "";
|
||
}
|
||
setAttrs({
|
||
abilityroll: rollstring
|
||
});
|
||
});
|
||
});
|
||
|
||
/*on('change:repeating_advancements',function(){
|
||
TAS.repeatingSimpleSum('advancements','advancementRe1xp','XPSpent');
|
||
});*/
|
||
on('change:repeating_advancements', function(){
|
||
TAS.repeating('advancements')
|
||
.attrs('XPSpent')
|
||
.fields('advancement1xp','advancement2xp', 'advancement3xp')
|
||
.reduce(function(memo, row)
|
||
{
|
||
memo += (row.I.advancement1xp);
|
||
memo += (row.I.advancement2xp);
|
||
memo += (row.I.advancement3xp);
|
||
return memo;
|
||
},0,function(memo, row, attrSet)
|
||
{
|
||
attrSet.I.XPSpent = memo;
|
||
})
|
||
.execute();
|
||
});
|
||
</script>
|
||
|
||
|
||
|
||
|