mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
Bug caused by residual code accidentally pasted into sheet from prior version caused the level to calculate based on incorrect input causing an erroneous value in the characters level. The level is not supposed to in this version of the sheet.
6611 lines
268 KiB
HTML
6611 lines
268 KiB
HTML
|
|
<div>
|
|
<div align="left">
|
|
<input type="radio" class="sheet-tab sheet-tab1" name="attr_core-tab" value="1" title="Main" checked="checked"/>
|
|
<span class="sheet-tab sheet-tab1" style='line-height: 25px;'>Main</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab4" name="attr_core-tab" value="4" title="Skills" />
|
|
<span class="sheet-tab sheet-tab4" style='line-height: 25px;'>Skills</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab5" name="attr_core-tab" value="5" title="Talents" />
|
|
<span class="sheet-tab sheet-tab5" style='line-height: 25px;'>Talents</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab6" name="attr_core-tab" value="6" title="Combat" />
|
|
<span class="sheet-tab sheet-tab6" style='line-height: 25px;'>Combat</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab7" name="attr_core-tab" value="7" title="Magic" />
|
|
<span class="sheet-tab sheet-tab7" style='line-height: 25px;'>Magic</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab8" name="attr_core-tab" value="8" title="Posessions" />
|
|
<span class="sheet-tab sheet-tab8" style='line-height: 25px;'>Posessions</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab9" name="attr_core-tab" value="9" title="Notes" />
|
|
<span class="sheet-tab sheet-tab9" style='line-height: 25px;'>Notes</span>
|
|
|
|
<input type="radio" class="sheet-tab sheet-tab2" name="attr_core-tab" value="2" title="Sheet Information" />
|
|
<span class="sheet-tab sheet-tab2" style='line-height: 25px;'>Sheet</span>
|
|
<!--
|
|
<input type="radio" class="sheet-tab sheet-tab3" name="attr_core-tab" value="3" title="Background" />
|
|
<span class="sheet-tab sheet-tab3" style='line-height: 25px;'>Background</span>
|
|
-->
|
|
|
|
<div class="sheet-section-basic white"><!-- Start of BASIC Tab -->
|
|
|
|
<p> </p>
|
|
<span class="section-label">Character</span>
|
|
<div class="two-column ">
|
|
<div class="colleft section">
|
|
<span class="minor-label">Name:</span>
|
|
<input type="text" class="compact under text-200" name="attr_character_name">
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">Height Ft:</span><input type="number" class="compact-number under" name="attr_heightfeet" value="0"/>
|
|
<span class="minor-label">In:</span> <input type="number" class="compact-number under" name="attr_heightinches" value="0"/>
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label"> Weight:</span> <input type="number" class="compact-number under" name="attr_weight" value="0"/>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="colright section">
|
|
<span class="subsection-label">Experience</span><br>
|
|
<span class="minor-label">Experience:</span> <input class="sheet-text-75 compact under" type="text" name="attr_experience_points" value="0"/>
|
|
<hidden name="attr_current_profession"/>
|
|
|
|
<span class="minor-label"> Level</span> <input class="sheet-text-75 compact under" type="text" name="attr_character_level" value="1"/>
|
|
</div>
|
|
</div>
|
|
<div class="two-column">
|
|
<div class="colleft section">
|
|
<span class="subsection-label">Endurance</span><br />
|
|
<span class="minor-label">Max: </span>
|
|
<input type="number" class="compact-number under" name="attr_hits_max" readonly />
|
|
<span class="minor-label">Current: </span>
|
|
<input type="number" class="compact-number under" name="attr_hits" />
|
|
</div>
|
|
<div class="colright section">
|
|
<span class="subsection-label">Power Points</span><br />
|
|
<span class="minor-label">Max: </span>
|
|
<input type="number" class="compact-number under" name="attr_power_points_max" readonly />
|
|
<span class="minor-label">Current: </span>
|
|
<input type="number" class="compact-number under" name="attr_power_points" />
|
|
</div>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft section">
|
|
<span class="subsection-label">Statistics</span>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<br />
|
|
<span class="minor-label">St</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Stat</span><br />
|
|
<input type="number" class="compact-number under" name="attr_strength" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label">Bonus</span><br />
|
|
<input type="number" class="compact-number under" name="attr_strength_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">Race</span><br />
|
|
<input type="number" class="compact-number under" name="attr_strength_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<span class="minor-label">Other</span><br />
|
|
<input type="number" class="compact-number under" name="attr_strength_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<span class="minor-label">Total</span><br />
|
|
<input type="number" class="compact-number under" name="attr_strength_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Co</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_constitution" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_constitution_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_constitution_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_constitution_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_constitution_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Ag</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_agility" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_agility_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_agility_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_agility_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_agility_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Qu</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_quickness" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_quickness_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_quickness_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_quickness_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_quickness_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">SD</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_self_discipline" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_self_discipline_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_self_discipline_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_self_discipline_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_self_discipline_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Re</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_reasoning" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_reasoning_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_reasoning_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_reasoning_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_reasoning_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">In</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_insight" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_insight_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_insight_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_insight_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_insight_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Pr</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number under" name="attr_presence" value="0"/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number under" name="attr_presence_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number under" name="attr_presence_race" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_presence_other" value="0"/>
|
|
</div>
|
|
<div class="csix">
|
|
<input type="number" class="compact-number under" name="attr_presence_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
<!--<div class="three-column">
|
|
<div class="tcleft">
|
|
|
|
</div>
|
|
<div class="tccenter">
|
|
<span class="minor-label">DP's</span>
|
|
<span class="minor-label" name="attr_development_points"></span>
|
|
<input type="hidden" name="attr_development_points" value="50" />
|
|
</div>
|
|
<div class="tcright">
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_use_stats" />
|
|
<span class="minor-label">Use Stats</span>
|
|
</div>
|
|
</div>-->
|
|
|
|
</div>
|
|
<div class="tccenter section text-full">
|
|
<span class="subsection-label">Race</span>
|
|
|
|
<fieldset class="repeating_race">
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">Race</span>
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">Blood</span>
|
|
</div>
|
|
</div>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<select class="compact-select-ci" name="attr_race">
|
|
<option value=""></option>
|
|
<option value="Dwarf">Dwarf</option>
|
|
<option value="Elf">Elf</option>
|
|
<option value="Gnome">Gnome</option>
|
|
<option value="Goblin">Gryx</option>
|
|
<option value="Halfling">Halfling</option>
|
|
<option value="Human">Human</option>
|
|
</select>
|
|
</div>
|
|
<div class="colright">
|
|
<select class="compact-select-ci" name="attr_blood">
|
|
<option value=""></option>
|
|
<option value="full">Full Blood</option>
|
|
<option value="grea">Greater Blood</option>
|
|
<option value="less">Lesser Blood</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<span class="minor-label">Abilities</span>
|
|
<input type="text" class="compact under text-full" name="attr_race_ability_one">
|
|
<input type="text" class="compact under text-full" name="attr_race_ability_two">
|
|
<input type="text" class="compact under text-full" name="attr_race_ability_three">
|
|
</div>
|
|
|
|
</fieldset>
|
|
</div>
|
|
<div class="tcright section">
|
|
<span class="subsection-label">Profession</span>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">Profession</span>
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">Level</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_profession">
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<select class="compact-select-ci" name="attr_profession_four">
|
|
<option value=""></option>
|
|
<option value="Cleric">Cleric</option>
|
|
<option value="Fighter">Fighter</option>
|
|
<option value="Harper">Harper</option>
|
|
<option value="Mage">Mage</option>
|
|
<option value="Monk">Monk</option>
|
|
<option value="Ranger">Ranger</option>
|
|
<option value="Rogue">Rogue</option>
|
|
<option value="Thief">Thief</option>
|
|
<option value="Warrior Mage">Warrior Mage</option>
|
|
</select>
|
|
</div>
|
|
<div class="colright">
|
|
<input type="number" class="sheet-compact-number under" name="attr_profession_level"/>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="two-column">
|
|
<div class="colleft section">
|
|
<span class="subsection-label">Move</span>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<br /><span class="minor-label">BMR</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Base</span><br />
|
|
<input type="number" class="compact-number under" name="attr_bmr_base" value="0" readonly/>
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label">Qu </span><br />
|
|
<input type="number" class="compact-number under" name="attr_bmr_quickness_bonus" value="0" readonly/>
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">Other</span><br />
|
|
<input type="number" class="compact-number under" name="attr_bmr_other" value="0"/>
|
|
</div>
|
|
<div class="cfive">
|
|
<span class="minor-label">Total</span><br />
|
|
<input type="number" class="compact-number under" name="attr_bmr_total" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">x2</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Run</span><br />
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label"> </span><br />
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">(-20)</span><br />
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_bmr_run" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">x3</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Fast Run</span><br />
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label"> </span><br />
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">(-40)</span><br />
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_bmr_fastrun" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">x4</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Sprint</span><br />
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label"> </span><br />
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">(-60)</span><br />
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_bmr_sprint" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">x5</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Dash</span><br />
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label"> </span><br />
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">(-80)</span><br />
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number under" name="attr_bmr_dash" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="colright section">
|
|
<span class="subsection-label">Encumbrance</span><br />
|
|
<span class="minor-label">Current Load: </span><input type="number" class="compact-number under" name="attr_encumbrance_current" />
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Encumbrance</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
<span class="minor-label">Max Load</span>
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">Modifier</span>
|
|
</div>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Non</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
|
|
<input type="number" class="compact-number under" name="attr_encumbrance_non" value="0" readonly />
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">0</span>
|
|
</div>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Light</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
|
|
<input type="number" class="compact-number under" name="attr_encumbrance_light" value="0" readonly />
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">-10</span>
|
|
</div>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Medium</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
|
|
<input type="number" class="compact-number under" name="attr_encumbrance_medium" value="0" readonly />
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">-20</span>
|
|
</div>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Heavy</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
|
|
<input type="number" class="compact-number under" name="attr_encumbrance_heavy" value="0" readonly />
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">-30</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="white section">
|
|
<span class="subsection-label">History & Notes</span>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<textarea class="history" name="attr_history"></textarea>
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">Notes</span>
|
|
<fieldset class="repeating_note">
|
|
<input type="text" class="compact under text-full" name="attr_note" />
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="sheet-section-stats white"><!-- Start of stats Tab -->
|
|
<!-- Stuff on the stats tab -->
|
|
<!--<img src="https://s3.amazonaws.com/files.d20.io/images/66341119/IPTiQuSrhKX4XV2VNIV8zA/max.png?1541393491" height="35" width="35"/>-->
|
|
<p> </p>
|
|
<span class="section-label">Character Sheet Information </span>
|
|
<br />
|
|
<span class="subsection-label">General Character Sheet information</span>
|
|
<br />
|
|
<div class="instruction">
|
|
<ul>
|
|
<li>
|
|
Version: 1.0
|
|
</li>
|
|
<li>
|
|
Designed to support online games of High Adventure Role Playing Fantasy © Iron Crown/Guild Companion Publications Ltd. This is an unofficial sheet and the author is not affiliated with ICE/Guild Companion in any way.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<p> </p>
|
|
<span class="subsection-label">Roll Buttons & Output</span>
|
|
<br />
|
|
<div class="instruction">
|
|
Each skill included in this sheet has a button that will execute a virtual dice roll. The displayed result of the roll, is the final roll. All modifiers that are relevant have been included in the calculation. The messages displayed along with the result tell you which chart or column of the maneuver table to use to find the result.
|
|
</div>
|
|
<p> </p>
|
|
<span class="subsection-label">Main Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
The basic information for the character can be entered and edited on this page. The name, race, profession, stats, endurance, power points, experience & level, movement and encumbrance are included on this tab. There is also an area for character background and notes.
|
|
<ul>
|
|
<li>
|
|
When stats are entered, the bonus and totals are automatically calculated.
|
|
</li>
|
|
<li>
|
|
When race is selected, the racial stat bonus is updated and the stat total bonus recalculated. Use the 'Blood' selection to keep track of hybrid characters.
|
|
</li>
|
|
<li>
|
|
When height is entered the characters movement rate is automatically calculated.
|
|
</li>
|
|
<li>
|
|
Encumbrance loads are automaticaly calculated along with the strength total. The current load is calculated as gear is added on the equipment table. Encumbrance penalties are NOT included in the modifiers to skill rolls and should be added to the modifier pop-up when the skills are tested.
|
|
</li>
|
|
<li>
|
|
Experience levels are not enforced by the sheet.
|
|
</li>
|
|
<li>
|
|
Use the 'Other' field to account for talents, magic or other unknowns that could impact bonuses, movement, etc.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<p> </p>
|
|
<span class="subsection-label">Skills Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
Click the '+' button underneath the category header to add a skill to that category. Be sure to enter the Stats that effect the skill as well as the resolution method.
|
|
The button to the left of the skill name can be used to execute the roll when it is time to test a skill. It is suggested to only add skills that the character has ranks
|
|
in. This will keep the listing more manageable and make finding a particular skill easier.
|
|
<ul>
|
|
<li>
|
|
Rank bonus, stat bonus and total are calculated automatically.
|
|
</li>
|
|
<li>
|
|
The combat skills category list should only be used for combat styles or martial arts styles. Enter all weapons and actual fighting skills on the combat tab!
|
|
</li>
|
|
<li>
|
|
Use the 'Other' field to account for talents, magic or other unknowns that could impact the skill.
|
|
</li>
|
|
<li>
|
|
Sorting of the skill within each category is manual. This is a limitation of the tools that are accessible for creating a dynamic list in the roll20 interface. Use the crossed hammers button to the right below the category list to open edit mode. Drag the items into the sort order you like. Click the crossed hammers to close edit mode.
|
|
</li>
|
|
<li>
|
|
The crossed hammers button also allows you to delete items from a category list. Click the trash can to delete. Click the crossed hammers to end edit mode.
|
|
</li>
|
|
<li>
|
|
When skill are tested by clicking on the round button to the left of the name, there will be a number of pop-up boxes that ask for information. These include a general modifier for entering contextual modifiers. Use this to enter difficulty or encumbrance modifiers. You will also be asked if the armor penatly applies. Click 'yes' to apply the armor penalty.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<p> </p>
|
|
<span class="subsection-label">Talents Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
Click the '+' button underneath the list to add a new talent. Enter notes on the talent if you wish. The effect of the talent is not enforced by the sheet, so you will need to
|
|
update any skills or other scores that the talent may effect manually. As always, use the 'Other' field.
|
|
</div>
|
|
|
|
<p> </p>
|
|
<span class="subsection-label">Combat Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
The characters weapon skills, armor, initiative, defensive bonus and armor penatlies are this tab. The weapons list functions identically to the skill list on the skill tab. It does contain a few additional fields
|
|
for weapon type, attack type and attack size. Armor can be full suit or piecemeal.
|
|
<ul><li>
|
|
Click the '+' button to enter a new weapon. Be sure to fill out the record completely or the attack rolls attached to the button on the left, may not calculate correctly
|
|
</li>
|
|
<li>
|
|
To use full suit armor, enter the information about the armor in the bottom left-most section.
|
|
</li>
|
|
<li>
|
|
To use by the piece armor, click the 'Use Piecemeal' checkbox to switch to the armor by the piece list. Click the '+' to add a piece and fill out the type location, etc. information.
|
|
</li>
|
|
<li>
|
|
Enter shield information in the bottom right-most section. Click the 'in Use' checkbox to include the shield in the characters defensive bonus.
|
|
</li>
|
|
<li>
|
|
Defensive bonus updates automatically.
|
|
</li>
|
|
<li>
|
|
Armor penalties update automatically.
|
|
</li>
|
|
<li>
|
|
Initiative updates automatically.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<p> </p>
|
|
<span class="subsection-label">Magic Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
The characters spell lists and other arcane objects are recorded on this tab. Use the spell list like the weapons list, being sure to enter all fields. If fields are left out the roll for the spell may not calculate correctly.
|
|
<ul><li>
|
|
When the button for the spell is clicked, pop-up boxes will ask for the base PP of the spell, any scaling PP and the number of rounds used to cast the spell. This will calculate the time and power modifiers for the specific casting and apply them to the roll.
|
|
</li>
|
|
<li>
|
|
Use the items panel to record information about spell books, enchanted items, etc.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<p> </p>
|
|
<span class="subsection-label">Posessions Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
This where the characters gear and wealth are recorded.
|
|
<ul><li>
|
|
Use the equipment and other valuables lists in the same way the skills or weapons lists are used.
|
|
</li>
|
|
<li>
|
|
If the 'Carry' check box is checked, that piece of equipment will be added to the current load field on the main tab. Weight is calculated by multiplying the qty by the weight. Use the single item weight when adding multiples of the same item.
|
|
If encumbrance is not used in your game, do not check the 'Carry' check box.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<p> </p>
|
|
<span class="subsection-label">Notes Tab</span>
|
|
<br />
|
|
<div class="instruction">
|
|
Just a nice place to keep notes.
|
|
</div>
|
|
<p> </p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="sheet-section-skills white"><!-- Start of skills Tab -->
|
|
|
|
<p> </p>
|
|
<span class="section-label">Skills</span> <span class="minor-label" >Max Skill Ranks</span> <span class="minor-label" name="attr_max_skill_level"></span>
|
|
<input type="hidden" name="attr_max_skill_level" value="0" />
|
|
<div class="two-column">
|
|
<div class="colleft section">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<span class="minor-label"></span>
|
|
</div>
|
|
<div class="skname">
|
|
<span class="minor-label">Name</span>
|
|
</div>
|
|
<div class="skstat">
|
|
<span class="minor-label">Stat Mods</span>
|
|
</div>
|
|
<div class="skranks">
|
|
<span class="minor-label">Rank</span>
|
|
</div>
|
|
<div class="skrbns">
|
|
<span class="minor-label">Bns</span>
|
|
</div>
|
|
<div class="sksbns">
|
|
<span class="minor-label">StBns</span>
|
|
</div>
|
|
<div class="skobns">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="skttl">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Res</span>
|
|
</div>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Artistic</span><br />
|
|
<fieldset class="repeating_artistic">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_artistic_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{artistic_name}}} {{roll=[[1d100!>96cs>96cf<5+@{artistic_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses --@{artistic_stat_one} and @{artistic_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{artistic_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_artistic_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_artistic_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_artistic_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_artistic_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_artistic_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_artistic_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_artistic_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_artistic_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_artistic_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_artistic_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_artistic_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Athletic</span><br />
|
|
<fieldset class="repeating_athletic">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_athletic_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{athletic_name}}} {{roll=[[1d100!>96cs>96cf<5+@{athletic_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{athletic_stat_one} and @{athletic_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{athletic_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_athletic_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_athletic_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_athletic_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_athletic_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_athletic_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_athletic_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_athletic_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_athletic_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_athletic_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_athletic_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_athletic_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Combat</span> <span class="minor-label">Combat & M-A Styles Only</span><br />
|
|
<fieldset class="repeating_combat">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_combat_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{combat_name}}} {{roll=[[1d100!>96cs>96cf<5+@{combat_total}+?{Modifier?|0}+?{Weapon Size?|Tiny,-20|Small,-10|Medium,0|Large,10|Huge,20}-@{target|Enemy|db_total}]]}} {{fumble=[[?{Max of the fumble range + 1|5}]]}} {{Damage Type=?{Damage Type?|Slash}}} {{Applied Size Modifier=[[?{Weapon Size?|Tiny,-20|Small,-10|Medium,0|Large,10|Huge,20}]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_combat_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_combat_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_combat_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_combat_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_combat_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_combat_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_combat_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_combat_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_combat_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_combat_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_combat_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Concentration</span><br />
|
|
<fieldset class="repeating_concentration">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_concentration_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{concentration_name}}} {{roll=[[1d100!>96cs>96cf<5+@{concentration_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{concentration_stat_one} and @{concentration_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{concentration_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_concentration_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_concentration_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_concentration_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_Concentration_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_Concentration_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_concentration_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_concentration_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_concentration_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_concentration_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_concentration_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_concentration_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">General</span><br />
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_magic_roll" value="&{template:skill} {{name=@{character_name}}} {{action=Magic Resistance}} {{roll=[[1d100!>96cs>96+@{magic_total}+?{Modifiers?|0}]]}} {{fumble=[[6]]}} {{res=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_magic_label" value="Res: Magic" readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_magic_stat_one" value="In" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_magic_stat_two" value="In" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_magic_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_magic_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_magic_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_magic_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_magic_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_stamina_roll" value="&{template:skill} {{name=@{character_name}}} {{action=Stamina Resistance}} {{roll=[[1d100!>96cs>96+@{stamina_total}+?{Modifiers?|0}]]}} {{fumble=[[6]]}} {{res=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_stamina_label" value="Res: Stamina" readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_stamina_stat_one" value="Co" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_stamina_stat_two" value="Co" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_stamina_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_stamina_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_stamina_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_stamina_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_stamina_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_will_roll" value="&{template:skill} {{name=@{character_name}}} {{action=Will Resistance}} {{roll=[[1d100!>96cs>96+@{will_total}+?{Modifiers?|0}]]}} {{fumble=[[6]]}} {{res=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_will_label" value="Res: Will" readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_will_stat_one" value="SD" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_will_stat_two" value="SD" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_will_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_will_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_will_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_will_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_will_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_general">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_general_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{general_name}}} {{roll=[[1d100!>96cs>96cf<5+@{general_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{general_stat_one} and @{general_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{general_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_general_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_general_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_general_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_general_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_general_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_general_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_general_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_general_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_general_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_general_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_general_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="colright section">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<span class="minor-label"></span>
|
|
</div>
|
|
<div class="skname">
|
|
<span class="minor-label">Name</span>
|
|
</div>
|
|
<div class="skstat">
|
|
<span class="minor-label">Stat Mods</span>
|
|
</div>
|
|
<div class="skranks">
|
|
<span class="minor-label">Rank</span>
|
|
</div>
|
|
<div class="skrbns">
|
|
<span class="minor-label">Bns</span>
|
|
</div>
|
|
<div class="sksbns">
|
|
<span class="minor-label">StBns</span>
|
|
</div>
|
|
<div class="skobns">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="skttl">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Res</span>
|
|
</div>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Influence</span><br />
|
|
<fieldset class="repeating_influence">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_influence_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{influence_name}}} {{roll=[[1d100!>96cs>96cf<5+@{influence_total}+?{Modifiers?|0}]]}} {{fumble=[[6]]}} {{@{influence_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_influence_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_influence_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_influence_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_influence_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_influence_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_influence_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_influence_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_influence_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_influence_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_influence_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_influence_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Mystical Arts</span><br />
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<!--<button type="roll" class="button-skill nod20" name="attr_power_point_development_roll" value="1d100!>96cs>96" />-->
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_power_point_development_label" value="PP Dev." readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_power_point_development_stat_one" value="In" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_power_point_development_stat_two" value="SD" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_power_point_development_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_power_point_development_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_power_point_development_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_power_point_development_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_power_point_development_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_mysticalarts">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_mystical_arts_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{mystical_arts_name}}} {{roll=[[1d100!>96cs>96cf<5+@{mystical_arts_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{mystical_arts_stat_one} and @{mystical_arts_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{mystical_arts_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_mystical_arts_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_mystical_arts_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_mystical_arts_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_mystical_arts_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_mystical_arts_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_mystical_arts_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_mystical_arts_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_mystical_arts_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_mystical_arts_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_mystical_arts_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_mystical_arts_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Outdoor</span><br />
|
|
<fieldset class="repeating_outdoor">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_outdoor_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{outdoor_name}}} {{roll=[[1d100!>96cs>96cf<5+@{outdoor_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{outdoor_stat_one} and @{outdoor_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{outdoor_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_outdoor_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_outdoor_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_outdoor_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_outdoor_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_outdoor_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_outdoor_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_outdoor_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_outdoor_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_outdoor_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_outdoor_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_outdoor_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Physical</span><br />
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<!--<button type="roll" class="button-skill nod20" name="attr_armor_roll" value="1d100!>96cs>96" />-->
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_armor_label" value="Armor" readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_armor_stat_one" value="St" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_armor_stat_two" value="Ag" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_armor_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_armor_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_armor_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_armor_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_armor_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<!--<button type="roll" class="button-skill nod20" name="attr_endurance_roll" value="1d100!>96cs>96" />-->
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_endurance_label" value="Endurance" readonly />
|
|
</div>
|
|
<div class="skstat">
|
|
<input type="text" class="compact under text-25" name="attr_endurance_stat_one" value="Co" readonly />/
|
|
<input type="text" class="compact under text-25" name="attr_endurance_stat_two" value="SD" readonly />
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_endurance_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_endurance_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_endurance_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_endurance_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_endurance_total" value="0" readonly />
|
|
</div>
|
|
<div class="skres">
|
|
<span class="minor-label">Spcl</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_physical">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_physical_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{physical_name}}} {{roll=[[1d100!>96cs>96cf<5+@{physical_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{physical_stat_one} and @{physical_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{physical_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_physical_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_physical_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_physical_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_physical_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_physical_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_physical_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_physical_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_physical_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_physical_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_physical_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_physical_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="white">
|
|
<span class="subsection-label">Subterfuge</span><br />
|
|
<fieldset class="repeating_subterfuge">
|
|
<div class="skill-grid">
|
|
<div class="skbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_subterfuge_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{subterfuge_name}}} {{roll=[[1d100!>96cs>96cf<5+@{subterfuge_total}+?{Modifiers?|0}+?{Armor penalty applies for skills using Ag or Qu. Current skill uses @{subterfuge_stat_one} and @{subterfuge_stat_two}. Apply maneuver penalty?|no,0|Yes,@{armor_maneuver_penalty}}]]}} {{fumble=[[6]]}} {{@{subterfuge_resolution}=[[1]]}}" />
|
|
</div>
|
|
<div class="skname">
|
|
<input type="text" class="compact under text-full" name="attr_subterfuge_name" value="" />
|
|
</div>
|
|
<div class="skstat">
|
|
<select class="compact-select-cistat" name="attr_subterfuge_stat_one" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
/
|
|
<select class="compact-select-cistat" name="attr_subterfuge_stat_two" >
|
|
<option value=""></option>
|
|
<option value="St">ST</option>
|
|
<option value="Co">CO</option>
|
|
<option value="Ag">AG</option>
|
|
<option value="Qu">QU</option>
|
|
<option value="SD">SD</option>
|
|
<option value="Re">RE</option>
|
|
<option value="In">IN</option>
|
|
<option value="Pr">PR</option>
|
|
</select>
|
|
<!-- <input type="text" class="compact under text-25" name="attr_subterfuge_stat_one" value="" />/
|
|
<input type="text" class="compact under text-25" name="attr_subterfuge_stat_two" value="" />-->
|
|
</div>
|
|
<div class="skranks">
|
|
<input type="number" class="compact-number-skill under" name="attr_subterfuge_rank" value="0" />
|
|
</div>
|
|
<div class="skrbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_subterfuge_rank_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="sksbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_subterfuge_stat_bonus" value="0" readonly />
|
|
</div>
|
|
<div class="skobns">
|
|
<input type="number" class="compact-number-skill under" name="attr_subterfuge_other_bonus" value="0" />
|
|
</div>
|
|
<div class="skttl">
|
|
<input type="number" class="compact-number-skill under" name="attr_subterfuge_total" value="0" readonly/>
|
|
</div>
|
|
<div class="skres">
|
|
<select class="compact-select-cires" name="attr_subterfuge_resolution" >
|
|
<option value=""></option>
|
|
<option value="all">ALL</option>
|
|
<option value="bns">BNS</option>
|
|
<option value="cbt">CMBT</option>
|
|
<option value="per">PCT</option>
|
|
<option value="res">RES</option>
|
|
<option value="spc">SPC</option>
|
|
<option value="var">VAR</option>
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sheet-section-talents white"><!-- Start of talents Tab -->
|
|
|
|
<p> </p>
|
|
<span class="section-label">Talents & Abilities</span>
|
|
<div class="row section">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Talent/Ability</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">Skills Affected</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_talent">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<input type="text" class="compact under text-full" name="attr_talent_name" />
|
|
</div>
|
|
<div class="tccenter">
|
|
<textarea class="talent" name="attr_talent_description"></textarea>
|
|
</div>
|
|
<div class="tcright">
|
|
<input type="text" class="compact under text-full" name="attr_talent_skills" />
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="sheet-section-combat white"><!-- Start of combat Tab -->
|
|
<!-- Stuff on the tab -->
|
|
<!--<img src="https://s3.amazonaws.com/files.d20.io/images/66341119/IPTiQuSrhKX4XV2VNIV8zA/max.png?1541393491" height="35" width="35"/>-->
|
|
<p> </p>
|
|
<span class="section-label">Combat</span>
|
|
<div class="row section">
|
|
<span class="subsection-label">Weapons</span><br />
|
|
<div class="weapon-grid">
|
|
<div class="wpbutt">
|
|
|
|
</div>
|
|
<div class="wpname">
|
|
<span class="minor-label">Weapon Name</span>
|
|
</div>
|
|
<div class="wpcat">
|
|
<span class="minor-label">Category</span>
|
|
</div>
|
|
<div class="wptype">
|
|
<span class="minor-label">Dmg Type</span>
|
|
</div>
|
|
<div class="wpsize">
|
|
<span class="minor-label">Attk Size</span>
|
|
</div>
|
|
<div class="wprank">
|
|
<span class="minor-label">Ranks</span>
|
|
</div>
|
|
<div class="wprbns">
|
|
<span class="minor-label">Bns</span>
|
|
</div>
|
|
<div class="wpstat">
|
|
<span class="minor-label">Stats</span>
|
|
</div>
|
|
<div class="wpother">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="wptotal">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_weapon">
|
|
<div class="weapon-grid">
|
|
<div class="wpbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_weapon_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{weapon_name}}} {{roll=[[1d100!>96cs>96cf<5+@{weapon_total}+?{Modifier?|0}+@{weapon_damage_size}-@{target|Enemy|db_total}]]}} {{fumble=[[@{weapon_fumble}]]}} {{Damage Type=@{weapon_damage_type}}} {{Applied Size Modifier=[[@{weapon_damage_size}]]}}" />
|
|
</div>
|
|
<div class="wpname">
|
|
<input type="text" class="compact under text-full" name="attr_weapon_name" value="" />
|
|
<input type="hidden" name="attr_weapon_fumble"/>
|
|
</div>
|
|
<div class="wpcat">
|
|
<select class="compact-select-cires" name="attr_weapon_category" >
|
|
<option value=""></option>
|
|
<optgroup label="Unarmed">
|
|
<option value="Brawl">Brawl</option>
|
|
<option value="MartialArtsStrikes">M-A Strikes</option>
|
|
<option value="MartialArtsSweeps">M-A Sweeps</option>
|
|
</optgroup>
|
|
<optgroup label="1 Hnd Edged">
|
|
<option value="Axes">Axes</option>
|
|
<option value="LongBlades">Long Blades</option>
|
|
<option value="ShortBlades">Short Blades</option>
|
|
<option value="ThrustingBlades">Thrusting Blades</option>
|
|
</optgroup>
|
|
<optgroup label="1 Hnd Concussion">
|
|
<option value="ChainsPlus">Chains Plus</option>
|
|
<option value="Clubs">Clubs</option>
|
|
</optgroup>
|
|
<optgroup label="Thrown">
|
|
<option value="PoleArmsThrown">Pole Arms</option>
|
|
<option value="BladesThrown">Blades</option>
|
|
<option value="ProjectileThrown">Projectiles</option>
|
|
</optgroup>
|
|
<optgroup label="Missile">
|
|
<option value="Bows">Bows</option>
|
|
<option value="Crossbows">Crossbows</option>
|
|
<option value="Slings">Slings</option>
|
|
</optgroup>
|
|
<oprgroup label="Polearms">
|
|
<option value="Polearms">Polearms</option>
|
|
</oprgroup>
|
|
<optgroup label="2 Hnd">
|
|
<option value="GreatBlades">Great Blades</option>
|
|
<option value="GreatChains">Great Chains</option>
|
|
<option value="LongSpikes">Long Spikes</option>
|
|
<option value="Staves">Staves</option>
|
|
</optgroup>
|
|
</select>
|
|
</div>
|
|
<div class="wptype">
|
|
<select class="compact-select-cires" name="attr_weapon_damage_type" >
|
|
<option value=""></option>
|
|
<option value="Crush">Crush</option>
|
|
<option value="Puncture">Puncture</option>
|
|
<option value="Slash">Slash</option>
|
|
<option value="Grapple">Grapple</option>
|
|
<option value="Martial Arts Strikes">M-A Strikes</option>
|
|
<option value="Martial Arts Sweeps">M-A Sweeps</option>
|
|
<option value="Large">Large</option>
|
|
<option value="Huge">Huge</option>
|
|
</select>
|
|
</div>
|
|
<div class="wpsize">
|
|
<select class="compact-select-cires" name="attr_weapon_damage_size" >
|
|
<option value=""></option>
|
|
<option value="-20">Tiny</option>
|
|
<option value="-10">Small</option>
|
|
<option value="0">Medium</option>
|
|
<option value="10">Large</option>
|
|
<option value="20">Huge</option>
|
|
</select>
|
|
</div>
|
|
<div class="wprank">
|
|
<input type="number" class="compact-number-skill under" name="attr_weapon_rank" value="0" />
|
|
</div>
|
|
<div class="wprbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_weapon_rank_bonus" value="0" readonly/>
|
|
</div>
|
|
<div class="wpstat">
|
|
<input type="number" class="compact-number-skill under" name="attr_weapon_stat_bonus" value="0" readonly/>
|
|
</div>
|
|
<div class="wpother">
|
|
<input type="number" class="compact-number-skill under" name="attr_weapon_other_bonus" value="0" />
|
|
</div>
|
|
<div class="wptotal">
|
|
<input type="number" class="compact-number-skill under" name="attr_weapon_total" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="three-column">
|
|
<div class="tcleft section">
|
|
<span class="subsection-label">Defensive Bonus</span><br />
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Armor</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Stats</span>
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label">Magic</span>
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="cfive">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<input type="number" class="compact-number-skill under" name="attr_db_armor_shield" value="0" readonly/>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number-skill under" name="attr_db_stats" value="0" readonly/>
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number-skill under" name="attr_db_magic" value="0" />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number-skill under" name="attr_db_other" value="0" />
|
|
</div>
|
|
<div class="cfive">
|
|
<input type="number" class="compact-number-skill under" name="attr_db_total" value="0" readonly/>
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tccenter section">
|
|
<span class="subsection-label">Armor Penalties</span><br />
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">Maneuver</span>
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">Casting</span>
|
|
</div>
|
|
</div>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<input type="number" class="compact-number under" name="attr_armor_maneuver_penalty" value="0" readonly />
|
|
</div>
|
|
<div class="colright">
|
|
<input type="number" class="compact-number under" name="attr_armor_casting_penalty" value="0" readonly />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tcright section">
|
|
<span class="subsection-label">Initiative</span><br />
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<span class="minor-label">Stats</span>
|
|
</div>
|
|
<div class="ctwo">
|
|
<span class="minor-label">Magic</span>
|
|
</div>
|
|
<div class="cthree">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="cfour">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
<div class="cfive">
|
|
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="six-column">
|
|
<div class="cone">
|
|
<input type="number" class="compact-number-skill under" name="attr_initiative_stats" value="0" readonly/>
|
|
</div>
|
|
<div class="ctwo">
|
|
<input type="number" class="compact-number-skill under" name="attr_initiative_magic" value="0" />
|
|
</div>
|
|
<div class="cthree">
|
|
<input type="number" class="compact-number-skill under" name="attr_initiative_other" value="0" />
|
|
</div>
|
|
<div class="cfour">
|
|
<input type="number" class="compact-number-skill under" name="attr_initiative_total" value="0" readonly/>
|
|
</div>
|
|
<div class="cfive">
|
|
|
|
</div>
|
|
<div class="csix">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="two-column-left-wide">
|
|
<div class="colleftw section">
|
|
<span class="subsection-label">Armor</span>
|
|
<input type="checkbox" class="sheet-armor-switch-s" name="attr_armor_switch" value="1" />
|
|
|
|
<span class="minor-label">Use Piecemeal</span>
|
|
<div class="full-suit">
|
|
|
|
<div class="full-armor-grid">
|
|
<div class="ardesc">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="arfit">
|
|
<input type="hidden" name="attr_full_suit_db_total"/>
|
|
</div>
|
|
<div class="artype">
|
|
<span class="minor-label">Type</span>
|
|
</div>
|
|
<div class="ardb">
|
|
<span class="minor-label">DB</span>
|
|
</div>
|
|
<div class="arbns">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="armin">
|
|
<span class="minor-label">Min</span>
|
|
</div>
|
|
<div class="armax">
|
|
<span class="minor-label">Max</span>
|
|
</div>
|
|
<div class="arcast">
|
|
<span class="minor-label">Cast</span>
|
|
</div>
|
|
</div>
|
|
<div class="full-armor-grid">
|
|
<div class="ardesc">
|
|
<input type="text" class="compact under text-full" name="attr_full_suit_description" value="" />
|
|
|
|
</div>
|
|
<div class="arfit">
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_full_suit_fitted" value="1" />
|
|
<span class="minor-label">fit</span>
|
|
</div>
|
|
<div class="artype">
|
|
<select class="compact-select-cires" name="attr_full_suit_type" >
|
|
<option value=""></option>
|
|
<option value="softleather">Soft Leather</option>
|
|
<option value="rigidleather">Rigid Leather</option>
|
|
<option value="chain">Chain Mail</option>
|
|
<option value="platechain">Plate & Chain</option>
|
|
<option value="plate">Plate</option>
|
|
</select>
|
|
</div>
|
|
<div class="ardb">
|
|
<input type="number" class="compact-number-skill under" name="attr_full_suit_db" value="0" readonly/>
|
|
</div>
|
|
<div class="arbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_full_suit_bonus" value="0"/>
|
|
</div>
|
|
<div class="armin">
|
|
<input type="number" class="compact-number-skill under" name="attr_full_suit_min_penalty" value="0" readonly/>
|
|
</div>
|
|
<div class="armax">
|
|
<input type="number" class="compact-number-skill under" name="attr_full_suit_max_penalty" value="0" readonly/>
|
|
</div>
|
|
<div class="arcast">
|
|
<input type="number" class="compact-number-skill under" name="attr_full_suit_cast_penalty" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="piecemeal">
|
|
<div class="piece-armor-grid">
|
|
<div class="pardesc">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="parfit">
|
|
<input type="hidden" name="attr_piecemeal_db_total"/>
|
|
<input type="hidden" name="attr_piecemeal_min_total" />
|
|
<input type="hidden" name="attr_piecemeal_max_total"/>
|
|
<input type="hidden" name="attr_piecemeal_cast_total"/>
|
|
</div>
|
|
<div class="parloc">
|
|
<span class="minor-label">Area</span>
|
|
</div>
|
|
<div class="partype">
|
|
<span class="minor-label">Type</span>
|
|
</div>
|
|
<div class="pardb">
|
|
<span class="minor-label">DB</span>
|
|
</div>
|
|
<div class="parbns">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="parmin">
|
|
<span class="minor-label">Min</span>
|
|
</div>
|
|
<div class="parmax">
|
|
<span class="minor-label">Max</span>
|
|
</div>
|
|
<div class="parcast">
|
|
<span class="minor-label">Cast</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_piecearmor">
|
|
<div class="piece-armor-grid">
|
|
<div class="pardesc">
|
|
<input type="text" class="compact under text-full" name="attr_piece_suit_description" value="" />
|
|
</div>
|
|
<div class="parfit">
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_piece_suit_fitted" value="1" />
|
|
<span class="minor-label">fit</span>
|
|
</div>
|
|
<div class="parloc">
|
|
<select class="compact-select-cires" name="attr_piece_suit_location" >
|
|
<option value=""></option>
|
|
<option value="head">Head</option>
|
|
<option value="neck">Neck</option>
|
|
<option value="shoulders">Shoulders</option>
|
|
<option value="arms">Arms</option>
|
|
<option value="hands">Hands</option>
|
|
<option value="torso">Torso</option>
|
|
<option value="legs">Legs</option>
|
|
<option value="feet">Feet</option>
|
|
</select>
|
|
</div>
|
|
<div class="partype">
|
|
<select class="compact-select-cires" name="attr_piece_suit_type" >
|
|
<option value=""></option>
|
|
<option value="softleather">Soft Leather</option>
|
|
<option value="rigidleather">Rigid Leather</option>
|
|
<option value="chain">Chain Mail</option>
|
|
<option value="platechain">Plate & Chain</option>
|
|
<option value="plate">Plate</option>
|
|
</select>
|
|
</div>
|
|
<div class="pardb">
|
|
<input type="number" class="compact-number-skill under" name="attr_piece_suit_db" value="0" readonly/>
|
|
</div>
|
|
<div class="parbns">
|
|
<input type="number" class="compact-number-skill under" name="attr_piece_suit_bonus" value="0"/>
|
|
</div>
|
|
<div class="parmin">
|
|
<input type="number" class="compact-number-skill under" name="attr_piece_suit_min_penalty" value="0" readonly/>
|
|
</div>
|
|
<div class="parmax">
|
|
<input type="number" class="compact-number-skill under" name="attr_piece_suit_max_penalty" value="0" readonly/>
|
|
</div>
|
|
<div class="parcast">
|
|
<input type="number" class="compact-number-skill under" name="attr_piece_suit_cast_penalty" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="colrightw section">
|
|
<span class="subsection-label">Shield</span>
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_shield_in_use" value="1" />
|
|
<input type="hidden" name="attr_shield_total_DB"/>
|
|
<span class="minor-label">In Use</span><br />
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">Type</span>
|
|
</div>
|
|
<div class="colright">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Trained</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
<span class="minor-label">DB</span>
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<select class="compact-select-cires" name="attr_shield_type" >
|
|
<option value=""></option>
|
|
<option value="wall">Wall</option>
|
|
<option value="full">Full</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="target">Target</option>
|
|
<option value="buckler">Buckler</option>
|
|
<option value="maingauche">Main Gauche</option>
|
|
<option value="sai">Sai</option>
|
|
</select>
|
|
</div>
|
|
<div class="colright">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_shield_trained" value="1" />
|
|
</div>
|
|
<div class="tccenter">
|
|
<input type="number" class="compact-number-skill under" name="attr_shield_defensive_bonus" value="0" readonly/>
|
|
</div>
|
|
<div class="tcright">
|
|
<input type="number" class="compact-number-skill under" name="attr_shield_other_bonus" value="0" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="sheet-section-grimoire white"><!-- Start of grimoire Tab -->
|
|
<!-- Stuff on the tab -->
|
|
|
|
<p> </p>
|
|
<span class="section-label">Magic</span>
|
|
<div class="row section">
|
|
<span class="subsection-label">Spells</span>
|
|
<div class="spell-grid">
|
|
<div class="spbutt">
|
|
|
|
</div>
|
|
<div class="spsphere">
|
|
<span class="minor-label">Sphere</span>
|
|
</div>
|
|
<div class="spname">
|
|
<span class="minor-label">Name</span>
|
|
</div>
|
|
<div class="sptype">
|
|
<span class="minor-label">Type</span>
|
|
</div>
|
|
<div class="sprr">
|
|
<span class="minor-label">RR</span>
|
|
</div>
|
|
<div class="sprnk">
|
|
<span class="minor-label">Ranks</span>
|
|
</div>
|
|
<div class="sprnkbns">
|
|
<span class="minor-label">Rnk Bns</span>
|
|
</div>
|
|
<div class="spstat">
|
|
<span class="minor-label">Stats</span>
|
|
</div>
|
|
<div class="spother">
|
|
<span class="minor-label">Other</span>
|
|
</div>
|
|
<div class="sptotal">
|
|
<span class="minor-label">Total</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_spell">
|
|
<div class="spell-grid">
|
|
<div class="spbutt">
|
|
<button type="roll" class="button-skill nod20" name="attr_spell_roll" value="&{template:skill} {{name=@{character_name}}} {{action=@{spell_name}}} {{fumble=[6]}} {{roll=[[1d100!>96cs>96+@{spell_total}+(0*?{Base Power Points}) + ((?{Scaling Power Points|0} * (-5)) + ((ceil(((?{Base Power Points} + ?{Scaling Power Points})/5)) - ?{Rounds to Cast|1})* (-10)))]]}} {{Spell Type=@{spell_type}}} {{Resistance=@{spell_resistance}}}" />
|
|
</div>
|
|
<div class="spsphere">
|
|
<select class="compact-select-cires" name="attr_spell_sphere" >
|
|
<option value=""></option>
|
|
<option value="universal">Universal</option>
|
|
<option value="cleric">Cleric</option>
|
|
<option value="harper">Harper</option>
|
|
<option value="mage">Mage</option>
|
|
<option value="ranger">Ranger</option>
|
|
<option value="warriorage">Warrior Mage</option>
|
|
</select>
|
|
</div>
|
|
<div class="spname">
|
|
<input type="text" class="compact under text-full" name="attr_spell_name" />
|
|
</div>
|
|
<div class="sptype">
|
|
<select class="compact-select-cires" name="attr_spell_type" >
|
|
<option value=""></option>
|
|
<option value="Utility">Utility</option>
|
|
<option value="Attack">Attack</option>
|
|
<option value="Elemental">Elemental</option>
|
|
</select>
|
|
</div>
|
|
<div class="sprr">
|
|
<select class="compact-select-cires" name="attr_spell_resistance" >
|
|
<option value="None"></option>
|
|
<option value="Magic">Magic</option>
|
|
<option value="Stamina">Stamina</option>
|
|
<option value="Will">Will</option>
|
|
</select>
|
|
</div>
|
|
<div class="sprnk">
|
|
<input type="number" class="compact-number under" name="attr_spell_rank" />
|
|
</div>
|
|
<div class="sprnkbns">
|
|
<input type="number" class="compact-number under" name="attr_spell_rank_bonus" readonly/>
|
|
</div>
|
|
<div class="spstat">
|
|
<input type="number" class="compact-number under" name="attr_spell_stat_bonus" readonly/>
|
|
</div>
|
|
<div class="spother">
|
|
<input type="number" class="compact-number under" name="attr_spell_other_bonus" />
|
|
</div>
|
|
<div class="sptotal">
|
|
<input type="number" class="compact-number under" name="attr_spell_total" readonly />
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="row section">
|
|
<span class="subsection-label">Items</span>
|
|
<div class="two-column-right-wide">
|
|
<div class="colleftrw">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="colrightrw">
|
|
<span class="minor-label">Properties</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_magicitem">
|
|
<div class="two-column-right-wide">
|
|
<div class="colleftrw">
|
|
<input type="text" class="compact under text-full" name="attr_magic_item" />
|
|
</div>
|
|
<div class="colrightrw">
|
|
<input type="text" class="compact under text-full" name="attr_magic_item_properties" />
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sheet-section-posessions white"><!-- Start of posessions Tab -->
|
|
<!-- Stuff on the tab -->
|
|
<p> </p>
|
|
<span class="section-label">Posessions</span>
|
|
<div class="two-column">
|
|
<div class="colleft section">
|
|
<span class="subsection-label">Equipment</span>
|
|
<div class="two-column-left-wide">
|
|
<div class="colleftw">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="colrightw">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<span class="minor-label">Carry</span>
|
|
</div>
|
|
<div class="tccenter">
|
|
<span class="minor-label">Qty</span>
|
|
</div>
|
|
<div class="tcright">
|
|
<span class="minor-label">Weight</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_equipment">
|
|
<div class="two-column-left-wide">
|
|
<div class="colleftw">
|
|
<input type="text" class="compact under text-full" name="attr_othertreasure_item" />
|
|
</div>
|
|
<div class="colrightw">
|
|
<div class="three-column">
|
|
<div class="tcleft">
|
|
<input type="checkbox" class="sheet-armor-switch" name="attr_equipment_equipped" value="1" />
|
|
|
|
</div>
|
|
<div class="tccenter">
|
|
<input type="number" class="compact-number under" name="attr_equipment_qty" value="1" />
|
|
</div>
|
|
<div class="tcright">
|
|
<input type="number" class="compact-number under" name="attr_equipment_weight" value="0" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="colright section">
|
|
<span class="subsection-label">Treasure</span>
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">PP</span>
|
|
<input type="number" class="compact-number under" name="attr_treasure_pp" />
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">GP</span>
|
|
<input type="number" class="compact-number under" name="attr_treasure_gp" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="colright">
|
|
<div class="two-column">
|
|
<div class="colleft">
|
|
<span class="minor-label">SP</span>
|
|
<input type="number" class="compact-number under" name="attr_treasure_sp" />
|
|
</div>
|
|
<div class="colright">
|
|
<span class="minor-label">CP</span>
|
|
<input type="number" class="compact-number under" name="attr_treasure_cp" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br />
|
|
<span class="subsection-label">Other Valuables</span>
|
|
<div class="two-column-left-wide">
|
|
<div class="colleftw">
|
|
<span class="minor-label">Description</span>
|
|
</div>
|
|
<div class="colrightw">
|
|
<span class="minor-label">Value</span>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_othertreasure">
|
|
<div class="two-column-left-wide">
|
|
<div class="colleftw">
|
|
<input type="text" class="compact under text-full" name="attr_othertreasure_item" />
|
|
</div>
|
|
<div class="colrightw">
|
|
<input type="text" class="compact under text-full" name="attr_othertreasure_value" />
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sheet-section-notes white"><!-- Start of notes Tab -->
|
|
<p> </p>
|
|
<span class="section-label">Notes</span>
|
|
<div class="row section">
|
|
<fieldset class="repeating_adventurenotes">
|
|
<input type="text" class="compact under text-full" name="attr_adventure_note" />
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<rolltemplate class="sheet-rolltemplate-skill">
|
|
<div class="sheet-container">
|
|
<div class="skill-title">{{name}}</div>
|
|
<div class="skill-header sheet-subtitle">
|
|
{{action}}
|
|
</div>
|
|
<div class="content">
|
|
{{#roll}}
|
|
<div class="display">
|
|
ROLL: {{roll}}
|
|
<p> </p>
|
|
</div>
|
|
{{/roll}}
|
|
{{#rollWasCrit() roll}}
|
|
<div class="display-minor">
|
|
Exploding Roll!
|
|
</div>
|
|
{{#rollTotal() all 1}}
|
|
<div class="display-minor">
|
|
All or Nothing Roll!
|
|
</div>
|
|
{{/rollTotal() all 1}}
|
|
{{#rollTotal() bns 1}}
|
|
<div class="display-minor">
|
|
Bonus Roll!
|
|
</div>
|
|
{{/rollTotal() bns 1}}
|
|
{{#rollTotal() cbt 1}}
|
|
<div class="display-minor">
|
|
Combat Roll!
|
|
</div>
|
|
{{/rollTotal() cbt 1}}
|
|
{{#rollTotal() per 1}}
|
|
<div class="display-minor">
|
|
Percent Roll!
|
|
</div>
|
|
{{/rollTotal() per 1}}
|
|
{{#rollTotal() res 1}}
|
|
<div class="display-minor">
|
|
RR Roll!
|
|
</div>
|
|
{{/rollTotal() res 1}}
|
|
{{#rollTotal() spc 1}}
|
|
<div class="display-minor">
|
|
Special Roll!
|
|
</div>
|
|
{{/rollTotal() spc 1}}
|
|
{{#rollTotal() var 1}}
|
|
<div class="display-minor">
|
|
Varies Roll!
|
|
</div>
|
|
{{/rollTotal() var 1}}
|
|
{{#allprops() name action roll fumble all bns cbt per res spc var}}
|
|
<div class="display-minor">
|
|
{{key}}: {{value}}
|
|
</div>
|
|
{{/allprops() name action roll fumble all bns cbt per res spc var}}
|
|
{{/rollWasCrit() roll}}
|
|
{{#^rollWasCrit() roll}}
|
|
{{#rollWasFumble() roll}}
|
|
<div class="display">
|
|
Fumble!
|
|
</div>
|
|
{{/rollWasFumble() roll}}
|
|
{{#^rollWasFumble() roll}}
|
|
{{#rollWasCrit() roll}}
|
|
<div class="display-minor">
|
|
Exploding Roll!
|
|
</div>
|
|
{{/rollWasCrit() roll}}
|
|
{{#rollTotal() all 1}}
|
|
<div class="display-minor">
|
|
All or Nothing Roll!
|
|
</div>
|
|
{{/rollTotal() all 1}}
|
|
{{#rollTotal() bns 1}}
|
|
<div class="display-minor">
|
|
Bonus Roll!
|
|
</div>
|
|
{{/rollTotal() bns 1}}
|
|
{{#rollTotal() cbt 1}}
|
|
<div class="display-minor">
|
|
Combat Roll!
|
|
</div>
|
|
{{/rollTotal() cbt 1}}
|
|
{{#rollTotal() per 1}}
|
|
<div class="display-minor">
|
|
Percent Roll!
|
|
</div>
|
|
{{/rollTotal() per 1}}
|
|
{{#rollTotal() res 1}}
|
|
<div class="display-minor">
|
|
RR Roll!
|
|
</div>
|
|
{{/rollTotal() res 1}}
|
|
{{#rollTotal() spc 1}}
|
|
<div class="display-minor">
|
|
Special Roll!
|
|
</div>
|
|
{{/rollTotal() spc 1}}
|
|
{{#rollTotal() var 1}}
|
|
<div class="display-minor">
|
|
Varies Roll!
|
|
</div>
|
|
{{/rollTotal() var 1}}
|
|
{{#allprops() name action roll fumble all bns cbt per res spc var}}
|
|
<div class="display-minor">
|
|
{{key}}: {{value}}
|
|
</div>
|
|
{{/allprops() name action roll fumble all bns cbt per res spc var}}
|
|
{{/^rollWasFumble() roll}}
|
|
{{/^rollWasCrit() roll}}
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<script type="text/worker">
|
|
|
|
function GetStatBonus(inum){
|
|
|
|
var modifier = 0;
|
|
|
|
switch(inum){
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
modifier = -18;
|
|
break;
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
case 10:
|
|
modifier = -16;
|
|
break;
|
|
case 11:
|
|
case 12:
|
|
case 13:
|
|
case 14:
|
|
case 15:
|
|
modifier = -14;
|
|
break;
|
|
case 16:
|
|
case 17:
|
|
case 18:
|
|
case 19:
|
|
case 20:
|
|
modifier = -12;
|
|
break;
|
|
case 21:
|
|
case 22:
|
|
case 23:
|
|
case 24:
|
|
case 25:
|
|
modifier = -10;
|
|
break;
|
|
case 26:
|
|
case 27:
|
|
case 28:
|
|
case 29:
|
|
case 30:
|
|
modifier = -8;
|
|
break;
|
|
case 31:
|
|
case 32:
|
|
case 33:
|
|
case 34:
|
|
case 35:
|
|
modifier = -6;
|
|
break;
|
|
case 36:
|
|
case 37:
|
|
case 38:
|
|
case 39:
|
|
case 40:
|
|
modifier = -4;
|
|
break;
|
|
case 41:
|
|
case 42:
|
|
case 43:
|
|
case 44:
|
|
case 45:
|
|
modifier = -2;
|
|
break;
|
|
case 46:
|
|
case 47:
|
|
case 48:
|
|
case 49:
|
|
case 50:
|
|
modifier = 0;
|
|
break;
|
|
case 51:
|
|
case 52:
|
|
case 53:
|
|
case 54:
|
|
case 55:
|
|
modifier = 1;
|
|
break;
|
|
case 56:
|
|
case 57:
|
|
case 58:
|
|
case 59:
|
|
case 60:
|
|
modifier = 2;
|
|
break;
|
|
case 61:
|
|
case 62:
|
|
case 63:
|
|
case 64:
|
|
case 65:
|
|
modifier = 3;
|
|
break;
|
|
case 66:
|
|
case 67:
|
|
case 68:
|
|
case 69:
|
|
case 70:
|
|
modifier = 4;
|
|
break;
|
|
case 71:
|
|
case 72:
|
|
case 73:
|
|
case 74:
|
|
case 75:
|
|
modifier = 5;
|
|
break;
|
|
case 76:
|
|
case 77:
|
|
case 78:
|
|
case 79:
|
|
case 80:
|
|
modifier = 6;
|
|
break;
|
|
case 81:
|
|
case 82:
|
|
case 83:
|
|
case 84:
|
|
case 85:
|
|
modifier = 7;
|
|
break;
|
|
case 86:
|
|
case 87:
|
|
case 88:
|
|
case 89:
|
|
case 90:
|
|
modifier = 8;
|
|
break;
|
|
case 91:
|
|
case 92:
|
|
case 93:
|
|
case 94:
|
|
case 95:
|
|
modifier = 9;
|
|
break;
|
|
case 96:
|
|
case 97:
|
|
case 98:
|
|
case 99:
|
|
case 100:
|
|
modifier = 10;
|
|
break;
|
|
case 101:
|
|
modifier = 11;
|
|
break;
|
|
case 102:
|
|
modifier = 12;
|
|
break;
|
|
case 103:
|
|
modifier = 13;
|
|
break;
|
|
case 104:
|
|
modifier = 14;
|
|
break;
|
|
case 105:
|
|
modifier = 15;
|
|
break;
|
|
}
|
|
|
|
return modifier;
|
|
};
|
|
|
|
function GetProfessionCategories(sprof){
|
|
|
|
var categories = "";
|
|
|
|
switch(sprof){
|
|
case "":
|
|
categories = "No Profession Selected";
|
|
break;
|
|
case "Artisan":
|
|
categories = "Concentration: 4, General: 6, Influence: 2, Outdoor: 4, Physical: 4";
|
|
break;
|
|
case "Athlete":
|
|
categories = "Athletic: 6, Concentration: 3, Combat: 2, General: 2, Physical: 7";
|
|
break;
|
|
case "Cleric":
|
|
categories = "General: 3, Mystical Arts: 8, Physical: 3, Select Two Categories: 3 each";
|
|
break;
|
|
case "Elementalist":
|
|
categories = "General: 4, Influence: 2, Mystical Arts: 10, Outdoor: 2, Physical: 2";
|
|
break;
|
|
case "Fighter":
|
|
categories = "Athletic: 2, Combat: 8, General: 2, Physical: 8";
|
|
break;
|
|
case "Harper":
|
|
categories = "Artistic: 4, Combat: 3, General: 3, Influence: 4, Physical: 3, Mystical Arts: 3";
|
|
break;
|
|
case "Hunter":
|
|
categories = "Athletic: 2, Combat: 3, General: 3, Outdoor: 6, Physical: 3, Subterfuge: 3";
|
|
break;
|
|
case "Laborer":
|
|
categories = "Combat: 3, General: 5, Influence: 3, Outdoor: 5, Physical: 4";
|
|
break;
|
|
case "Mage":
|
|
categories = "Artistic: 2, General: 4, Influence: 2, Mystical Arts: 10, Physical: 2";
|
|
break;
|
|
case "Monk":
|
|
categories = "Athletic: 4, Combat: 5, Concentration: 5, General: 3, Physical: 3";
|
|
break;
|
|
case "Necromancer":
|
|
categories = "General: 4, Influence: 2, Mystical Arts: 10, Physical: 2, Subterfuge: 2";
|
|
break;
|
|
case "Ranger":
|
|
categories = "Combat: 4, General: 3, Mystical Arts: 3, Physical: 2, Outdoor: 6, Subterfuge: 2";
|
|
break;
|
|
case "Rogue":
|
|
categories = "Athletic: 3, Combat: 3, General: 3, Mystical Arts: 2, Outdoor: 3, Physical: 3, Subterfuge 3";
|
|
break;
|
|
case "Thaumaturge":
|
|
categories = "General: 6, Influence: 2, Mystical Arts: 10, Physical: 2";
|
|
break;
|
|
case "Thief":
|
|
categories = "Athletic: 3, Combat: 3, General: 3, Influence: 2, Physical: 3, Subterfuge: 6";
|
|
break;
|
|
case "Vivamancer":
|
|
categories = "General: 4, Influence: 2, Mystical Arts: 10, Outdoor: 2, Physical: 2";
|
|
break;
|
|
case "Warrior Mage":
|
|
categories = "Combat: 6, General: 3, Mystical Arts: 6, Physical: 5";
|
|
break;
|
|
}
|
|
|
|
return categories;
|
|
};
|
|
|
|
|
|
on("change:heightfeet change:heightinches change:bmr_quickness_bonus change:bmr_other sheet:opened", function() {
|
|
getAttrs(["heightfeet", "heightinches", "bmr_quickness_bonus", "bmr_other" ], function(values) {
|
|
var ifeet = parseInt(values.heightfeet)||0;
|
|
var iinches = parseInt(values.heightinches)||0;
|
|
var iquickness = parseInt(values.bmr_quickness_bonus)||0;
|
|
var iother = parseInt(values.bmr_other)||0;
|
|
var irun = 0;
|
|
var ifastrun = 0;
|
|
var isprint = 0;
|
|
var idash = 0;
|
|
var ibase = 6;
|
|
|
|
switch(ifeet){
|
|
case 1:
|
|
ibase = 2;
|
|
break;
|
|
case 2:
|
|
if(iinches < 4){
|
|
ibase = 2;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 3;
|
|
}
|
|
else{
|
|
ibase = 4;
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
if(iinches < 4){
|
|
ibase = 4;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 5;
|
|
}
|
|
else{
|
|
ibase = 6;
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
if(iinches < 4){
|
|
ibase = 6;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 7;
|
|
}
|
|
else{
|
|
ibase = 8;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
if(iinches < 4){
|
|
ibase = 8;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 9;
|
|
}
|
|
else{
|
|
ibase = 10;
|
|
}
|
|
}
|
|
break;
|
|
case 6:
|
|
if(iinches < 4){
|
|
ibase = 10;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 11;
|
|
}
|
|
else{
|
|
ibase = 12;
|
|
}
|
|
}
|
|
break;
|
|
case 7:
|
|
if(iinches < 4){
|
|
ibase = 12;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 13;
|
|
}
|
|
else{
|
|
ibase = 14;
|
|
}
|
|
}
|
|
break;
|
|
case 8:
|
|
if(iinches < 4){
|
|
ibase = 14;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 15;
|
|
}
|
|
else{
|
|
ibase = 16;
|
|
}
|
|
}
|
|
break;
|
|
case 9:
|
|
if(iinches < 4){
|
|
ibase = 16;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 17;
|
|
}
|
|
else{
|
|
ibase = 18;
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
if(iinches < 4){
|
|
ibase = 18;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 19;
|
|
}
|
|
else{
|
|
ibase = 20;
|
|
}
|
|
}
|
|
break;
|
|
case 11:
|
|
if(iinches < 4){
|
|
ibase = 20;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 21;
|
|
}
|
|
else{
|
|
ibase = 22;
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
if(iinches < 4){
|
|
ibase = 22;
|
|
}
|
|
else{
|
|
if(iinches < 10){
|
|
ibase = 23;
|
|
}
|
|
else{
|
|
ibase = 24;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
var itotal = ibase + iquickness + iother;
|
|
var irun = itotal * 2;
|
|
var ifastrun = itotal * 3;
|
|
var isprint = itotal * 4;
|
|
var idash = itotal * 5;
|
|
setAttrs({
|
|
bmr_base: ibase,
|
|
bmr_total: itotal,
|
|
bmr_run: irun,
|
|
bmr_fastrun: ifastrun,
|
|
bmr_sprint: isprint,
|
|
bmr_dash: idash
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:strength change:strength_race change:strength_other sheet:opened", function() {
|
|
getAttrs(["strength", "strength_race", "strength_other"], function(values) {
|
|
var modifier = 0;
|
|
var inum = parseInt(values.strength)||0;
|
|
var irace = parseInt(values.strength_race)||0;
|
|
var iother = parseInt(values.strength_other)||0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
|
|
var non = 30 + itotal;
|
|
var light = 30 + non + itotal;
|
|
var medium = 30 + light + itotal;
|
|
var heavy = 30 + medium + itotal;
|
|
setAttrs({
|
|
strength_bonus: modifier,
|
|
strength_total: itotal,
|
|
encumbrance_non: non,
|
|
encumbrance_light: light,
|
|
encumbrance_medium: medium,
|
|
encumbrance_heavy: heavy
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:constitution change:constitution_race change:constitution_other sheet:opened", function() {
|
|
getAttrs(["constitution", "constitution_other", "constitution_race"], function(values) {
|
|
var modifier = 0;
|
|
var inum = parseInt(values.constitution)||0;
|
|
var irace = parseInt(values.constitution_race)||0;
|
|
var iother = parseInt(values.constitution_other)||0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
constitution_bonus: modifier,
|
|
constitution_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:agility change:agility_race change:agility_other sheet:opened", function() {
|
|
getAttrs(["agility", "agility_race", "agility_other" ], function(values) {
|
|
var inum = parseInt(values.agility)||0;
|
|
var irace = parseInt(values.agility_race)||0;
|
|
var iother = parseInt(values.agility_other)||0;
|
|
var modifier = 0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
agility_bonus: modifier,
|
|
agility_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:quickness change:quickness_race change:quickness_other sheet:opened change:insight_total change:initiative_magic change:initiative_other", function() {
|
|
getAttrs(["quickness", "quickness_race", "quickness_other","quickness_total","insight_total", "initiative_magic", "initiative_other" ], function(values) {
|
|
var inum = parseInt(values.quickness)||0;
|
|
var irace = parseInt(values.quickness_race)||0;
|
|
var iother = parseInt(values.quickness_other)||0;
|
|
var iquittl = parseInt(values.quickness_total)||0;
|
|
var iinsttl = parseInt(values.insight_total)||0;
|
|
var iinitmgc = parseInt(values.initiative_magic)||0;
|
|
var iinitothr = parseInt(values.initiative_other)||0;
|
|
var modifier = 0;
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var ibmrcheck = inum;
|
|
var ibmr = 0;
|
|
switch(ibmrcheck){
|
|
case 1:
|
|
ibmr = -5;
|
|
break;
|
|
case 2:
|
|
ibmr = -4;
|
|
break;
|
|
case 3:
|
|
case 4:
|
|
ibmr = -3;
|
|
break;
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
ibmr = -2;
|
|
break;
|
|
case 10:
|
|
case 11:
|
|
case 12:
|
|
case 13:
|
|
case 14:
|
|
case 15:
|
|
case 16:
|
|
case 17:
|
|
case 18:
|
|
case 19:
|
|
case 20:
|
|
case 21:
|
|
case 22:
|
|
case 23:
|
|
case 24:
|
|
ibmr = -1;
|
|
break;
|
|
case 25:
|
|
case 26:
|
|
case 27:
|
|
case 28:
|
|
case 29:
|
|
case 30:
|
|
case 31:
|
|
case 32:
|
|
case 33:
|
|
case 34:
|
|
case 35:
|
|
case 36:
|
|
case 37:
|
|
case 38:
|
|
case 39:
|
|
case 40:
|
|
case 41:
|
|
case 42:
|
|
case 43:
|
|
case 44:
|
|
case 45:
|
|
case 46:
|
|
case 47:
|
|
case 48:
|
|
case 49:
|
|
case 50:
|
|
case 51:
|
|
case 52:
|
|
case 53:
|
|
case 54:
|
|
case 55:
|
|
case 56:
|
|
case 57:
|
|
case 58:
|
|
case 59:
|
|
case 60:
|
|
case 61:
|
|
case 62:
|
|
case 63:
|
|
case 64:
|
|
case 65:
|
|
case 66:
|
|
case 67:
|
|
case 68:
|
|
case 69:
|
|
case 70:
|
|
case 71:
|
|
case 72:
|
|
case 73:
|
|
case 74:
|
|
ibmr = 0;
|
|
break;
|
|
case 75:
|
|
case 76:
|
|
case 77:
|
|
case 78:
|
|
case 79:
|
|
case 80:
|
|
case 81:
|
|
case 82:
|
|
case 83:
|
|
case 84:
|
|
case 85:
|
|
case 86:
|
|
case 87:
|
|
case 88:
|
|
case 89:
|
|
ibmr = 1;
|
|
break;
|
|
case 90:
|
|
case 91:
|
|
case 92:
|
|
case 93:
|
|
case 94:
|
|
ibmr = 2;
|
|
break;
|
|
case 95:
|
|
case 96:
|
|
case 97:
|
|
ibmr = 3;
|
|
break;
|
|
case 98:
|
|
case 99:
|
|
ibmr = 4;
|
|
break;
|
|
case 100:
|
|
ibmr = 5;
|
|
break;
|
|
case 101:
|
|
ibmr = 6;
|
|
break;
|
|
case 102:
|
|
case 103:
|
|
case 104:
|
|
case 105:
|
|
ibmr = 7;
|
|
break;
|
|
}
|
|
// calc initiative fields
|
|
var itotal = modifier + irace + iother;
|
|
var initsts = iquittl + iinsttl;
|
|
var initttl = initsts + iinitmgc + iinitothr;
|
|
var dbstats = itotal * 2;
|
|
|
|
setAttrs({
|
|
quickness_bonus: modifier,
|
|
quickness_total: itotal,
|
|
bmr_quickness_bonus: ibmr,
|
|
initiative_stats: initsts,
|
|
initiative_total: initttl,
|
|
db_stats: dbstats
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:self_discipline change:self_discipline_race change:self_discipline_other sheet:opened", function() {
|
|
getAttrs(["self_discipline", "self_discipline_race", "self_discipline_other" ], function(values) {
|
|
var inum = parseInt(values.self_discipline)||0;
|
|
var irace = parseInt(values.self_discipline_race)||0;
|
|
var iother = parseInt(values.self_discipline_other)||0;
|
|
var modifier = 0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
self_discipline_bonus: modifier,
|
|
self_discipline_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:reasoning change:reasoning_race change:reasoning_other sheet:opened", function() {
|
|
getAttrs(["reasoning", "reasoning_race", "reasoning_other" ], function(values) {
|
|
var inum = parseInt(values.reasoning)||0;
|
|
var irace = parseInt(values.reasoning_race)||0;
|
|
var iother = parseInt(values.reasoning_other)||0;
|
|
var modifier = 0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
reasoning_bonus: modifier,
|
|
reasoning_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:insight change:insight_race change:insight_other sheet:opened", function() {
|
|
getAttrs(["insight", "insight_race", "insight_other" ], function(values) {
|
|
var inum = parseInt(values.insight)||0;
|
|
var irace = parseInt(values.insight_race)||0;
|
|
var iother = parseInt(values.insight_other)||0;
|
|
var modifier = 0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
insight_bonus: modifier,
|
|
insight_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:presence change:presence_race change:presence_other sheet:opened", function() {
|
|
getAttrs(["presence", "presence_race", "presence_other" ], function(values) {
|
|
var inum = parseInt(values.presence)||0;
|
|
var irace = parseInt(values.presence_race)||0;
|
|
var iother = parseInt(values.presence_other)||0;
|
|
var modifier = 0;
|
|
|
|
modifier = GetStatBonus(inum);
|
|
|
|
var itotal = modifier + irace + iother
|
|
setAttrs({
|
|
presence_bonus: modifier,
|
|
presence_total: itotal
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:profession",function(eventInfo){
|
|
getAttrs(["profession"],function(values){
|
|
var sprof = values.profession;
|
|
var categories = "";
|
|
var first = "Bonus skill ranks apply only at 1st level.";
|
|
|
|
|
|
categories = GetProfessionCategories(sprof);
|
|
|
|
setAttrs({
|
|
profession_special: sprof,
|
|
profession_favored_categories: categories,
|
|
profession_favored_categories_first: first,
|
|
profession_level: 1,
|
|
current_profession: sprof
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:profession_one",function(eventInfo){
|
|
getAttrs(["profession_one"],function(values){
|
|
var sprof = values.profession_one;
|
|
var categories = "";
|
|
var first = "Bonus skill ranks apply only at 1st level.";
|
|
|
|
categories = GetProfessionCategories(sprof);
|
|
|
|
setAttrs({
|
|
profession_one_special: sprof,
|
|
profession_one_favored_categories: categories,
|
|
profession_one_level: 1
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:profession_two",function(eventInfo){
|
|
getAttrs(["profession_two"],function(values){
|
|
var sprof = values.profession_two;
|
|
var categories = "";
|
|
var first = "Bonus skill ranks apply only at 1st level.";
|
|
|
|
categories = GetProfessionCategories(sprof);
|
|
|
|
setAttrs({
|
|
profession_two_special: sprof,
|
|
profession_two_favored_categories: categories,
|
|
profession_two_level: 1
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:profession_three",function(eventInfo){
|
|
getAttrs(["profession_three"],function(values){
|
|
var sprof = values.profession_three;
|
|
var categories = "";
|
|
var first = "Bonus skill ranks apply only at 1st level.";
|
|
|
|
categories = GetProfessionCategories(sprof);
|
|
|
|
setAttrs({
|
|
profession_three_special: sprof,
|
|
profession_three_favored_categories: categories,
|
|
profession_three_level: 1
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:profession_four",function(eventInfo){
|
|
getAttrs(["profession_four", "profession_level"],function(values){
|
|
var sprof = values.profession_four;
|
|
var categories = "";
|
|
var first = "Bonus skill ranks apply only at 1st level.";
|
|
var proflevel = parseInt(values.profession_level)||0;
|
|
var newlev = 0;
|
|
|
|
categories = GetProfessionCategories(sprof);
|
|
|
|
if(categories !== "No Profession Selected"){
|
|
newlev = 1;
|
|
}
|
|
|
|
setAttrs({
|
|
profession_four_special: sprof,
|
|
profession_four_favored_categories: categories,
|
|
profession_four_level: 1
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
on("change:profession_one_level",function(eventInfo){
|
|
getAttrs(["profession_one_level","additional_profession_one","earned_level"],function(values){
|
|
|
|
var one = parseInt(values.additional_profession_one)||0;
|
|
var levone = parseInt(values.profession_one_level)||0;
|
|
var earnlev = parseInt(values.earned_level)||0;
|
|
var rollback =0;
|
|
|
|
if (levone == 1){
|
|
if(earnlev < 2){
|
|
rollback = 1;
|
|
}
|
|
if(one !== 1){
|
|
rollback = 1;
|
|
}
|
|
if(rollback == 1){
|
|
setAttrs({
|
|
profession_one_Level: 0,
|
|
profession_one: "",
|
|
profession_one_favored_categories: "In order to add a second profession, you must be at least second level and purchase the first additional profession talent"
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
|
|
on("change:profession_two_level",function(eventInfo){
|
|
getAttrs(["profession_two_level","additional_profession_two","earned_level"],function(values){
|
|
|
|
var sel = parseInt(values.additional_profession_two)||0;
|
|
var tstlev = parseInt(values.profession_two_level)||0;
|
|
var earnlev = parseInt(values.earned_level)||0;
|
|
var rollback =0;
|
|
|
|
if (tstlev == 1){
|
|
if(earnlev < 3){
|
|
rollback = 1;
|
|
}
|
|
if(sel !== 1){
|
|
rollback = 1;
|
|
}
|
|
if(rollback == 1){
|
|
setAttrs({
|
|
profession_two_Level: 0,
|
|
profession_two: "",
|
|
profession_two_favored_categories: "In order to add a third profession, you must be at least third level and purchase the second additional profession talent"
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
|
|
on("change:profession_three_level",function(eventInfo){
|
|
getAttrs(["profession_three_level","additional_profession_three","earned_level"],function(values){
|
|
|
|
var sel = parseInt(values.additional_profession_three)||0;
|
|
var tstlev = parseInt(values.profession_three_level)||0;
|
|
var earnlev = parseInt(values.earned_level)||0;
|
|
var rollback =0;
|
|
|
|
if (tstlev == 1){
|
|
if(earnlev < 4){
|
|
rollback = 1;
|
|
}
|
|
if(sel !== 1){
|
|
rollback = 1;
|
|
}
|
|
if(rollback == 1){
|
|
setAttrs({
|
|
profession_three_Level: 0,
|
|
profession_three: "",
|
|
profession_three_favored_categories: "In order to add a fourth profession, you must be at least fourth level and purchase the third additional profession talent"
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
|
|
on("change:profession_four_level",function(eventInfo){
|
|
getAttrs(["profession_four_level","additional_profession_four","earned_level"],function(values){
|
|
|
|
var sel = parseInt(values.additional_profession_four)||0;
|
|
var tstlev = parseInt(values.profession_four_level)||0;
|
|
var earnlev = parseInt(values.earned_level)||0;
|
|
var rollback =0;
|
|
|
|
if (tstlev == 1){
|
|
if(earnlev < 5){
|
|
rollback = 1;
|
|
}
|
|
if(sel !== 1){
|
|
rollback = 1;
|
|
}
|
|
if(rollback == 1){
|
|
setAttrs({
|
|
profession_four_Level: 0,
|
|
profession_four: "",
|
|
profession_four_favored_categories: "In order to add a fifth profession, you must be at least fifth level and purchase the fourth additional profession talent"
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
on("change:repeating_race:race ", function() {
|
|
getAttrs(["repeating_race_race" ], function(values) {
|
|
var srace = values.repeating_race_race;
|
|
var st = 0;
|
|
var co = 0;
|
|
var ag = 0;
|
|
var qu = 0 ;
|
|
var sd = 0;
|
|
var re = 0;
|
|
var ins = 0;
|
|
var pr = 0;
|
|
var end = 0;
|
|
var pp = 0;
|
|
var stm = 0;
|
|
var will = 0;
|
|
var mgc = 0;
|
|
var special = "";
|
|
var racetalent1 = "";
|
|
var racetalent2 = "";
|
|
var racetalent3 = "";
|
|
|
|
switch(srace)
|
|
{
|
|
case "Amarvish":
|
|
st = 3;
|
|
co = 4;
|
|
qu = 3;
|
|
pr = 1;
|
|
end = 35;
|
|
pp = 25;
|
|
stm = 20;
|
|
will = 5;
|
|
mgc = 5;
|
|
special = "";
|
|
break;
|
|
case "Bentaxa":
|
|
st = 1;
|
|
co = 2;
|
|
ag = 2;
|
|
sd = 2;
|
|
re = 1;
|
|
pr = 3;
|
|
end = 25;
|
|
pp = 35;
|
|
stm = 5;
|
|
will = 15;
|
|
mgc = 10;
|
|
special = "";
|
|
break;
|
|
case "Faleeka":
|
|
st = 0;
|
|
co = 0;
|
|
ag = 3;
|
|
qu = 3 ;
|
|
sd = 1;
|
|
re = 0;
|
|
ins = 3;
|
|
pr = 1;
|
|
end = 20;
|
|
pp = 40;
|
|
stm = 5;
|
|
will = 10;
|
|
mgc = 15;
|
|
special = "";
|
|
break;
|
|
case "Gordaz":
|
|
st = 1;
|
|
co = 2;
|
|
ag = 4;
|
|
qu = 4 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 35;
|
|
pp = 25;
|
|
stm = 15;
|
|
will = 5;
|
|
mgc = 10;
|
|
special = "";
|
|
break;
|
|
case "Hehn":
|
|
st = 4;
|
|
co = 4;
|
|
ag = 1;
|
|
qu = 2 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 40;
|
|
pp = 20;
|
|
stm = 15;
|
|
will = 10;
|
|
mgc = 5;
|
|
special = "";
|
|
break;
|
|
case "Kenra":
|
|
st = 2;
|
|
co = 0;
|
|
ag = 3;
|
|
qu = 3 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 2;
|
|
pr = 1;
|
|
end = 35;
|
|
pp = 25;
|
|
stm = 10;
|
|
will = 10;
|
|
mgc = 10;
|
|
special = "";
|
|
break;
|
|
case "Menomonee":
|
|
st = 0;
|
|
co = 2;
|
|
ag = 2;
|
|
qu = 2 ;
|
|
sd = 0;
|
|
re = 1;
|
|
ins = 2;
|
|
pr = 2;
|
|
end = 25;
|
|
pp = 35;
|
|
stm = 10;
|
|
will = 5;
|
|
mgc = 15;
|
|
special = "";
|
|
break;
|
|
case "Navrothor":
|
|
st = 4;
|
|
co = 4;
|
|
ag = 0;
|
|
qu = 0 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 1;
|
|
end = 45;
|
|
pp = 15;
|
|
stm = 20;
|
|
will = 5;
|
|
mgc = 5;
|
|
special = "";
|
|
break;
|
|
case "Queequayth":
|
|
st = 0;
|
|
co = 0;
|
|
ag = 0;
|
|
qu = 0 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 30;
|
|
pp = 30;
|
|
stm = 10;
|
|
will = 10;
|
|
mgc = 10;
|
|
special = "Queequayth gets 8 bonus points to divide among stat bonuses. No stat may recieve higher than +3";
|
|
break;
|
|
case "Tomalak":
|
|
st = 0;
|
|
co = 0;
|
|
ag = 2;
|
|
qu = 3 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 3;
|
|
pr = 3;
|
|
end = 30;
|
|
pp = 30;
|
|
stm = 5;
|
|
will = 15;
|
|
mgc = 10;
|
|
special = "";
|
|
break;
|
|
case "Vengha":
|
|
st = 2;
|
|
co = 4;
|
|
ag = 0;
|
|
qu = 0 ;
|
|
sd = 4;
|
|
re = 1;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 40;
|
|
pp = 20;
|
|
stm = 10;
|
|
will = 15;
|
|
mgc = 5;
|
|
special = "";
|
|
break;
|
|
case "Dwarf":
|
|
st = 2;
|
|
co = 5;
|
|
ag = -1;
|
|
qu = -1 ;
|
|
sd = 4;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 50;
|
|
pp = 10;
|
|
stm = 20;
|
|
will = 10;
|
|
mgc = 0;
|
|
special = "";
|
|
racetalent1 = "Dark Vision (Greater)";
|
|
racetalent2 = "Dense Musculature";
|
|
racetalent3 = "Stone Sense";
|
|
break;
|
|
case "Elf":
|
|
st = 0;
|
|
co = 0;
|
|
ag = 1;
|
|
qu = 3 ;
|
|
sd = 0;
|
|
re = 1;
|
|
ins = 2;
|
|
pr = 4;
|
|
end = 20;
|
|
pp = 40;
|
|
stm = 5;
|
|
will = 5;
|
|
mgc = 20;
|
|
racetalent1 = "Enhanced Senses";
|
|
racetalent2 = "Quiet Stride";
|
|
racetalent3 = "Night Vision";
|
|
special = "";
|
|
break;
|
|
case "Gnome":
|
|
st = 0;
|
|
co = 2;
|
|
ag = 2;
|
|
qu = 2 ;
|
|
sd = 0;
|
|
re = 2;
|
|
ins = 0;
|
|
pr = 3;
|
|
end = 25;
|
|
pp = 35;
|
|
stm = 10;
|
|
will = 5;
|
|
mgc = 15;
|
|
racetalent1 = "Dark Vision (Lesser)";
|
|
racetalent2 = "Natural Camouflage";
|
|
racetalent3 = "Sense Magic";
|
|
special = "";
|
|
break;
|
|
case "Gryx":
|
|
st = 4;
|
|
co = 3;
|
|
ag = 0;
|
|
qu = 0 ;
|
|
sd = 2;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 45;
|
|
pp = 15;
|
|
stm = 20;
|
|
will = 5;
|
|
mgc = 5;
|
|
racetalent1 = "Lightning Reflexes";
|
|
racetalent2 = "Dense Musculature";
|
|
racetalent3 = "Night Vision";
|
|
special = "";
|
|
break;
|
|
case "Goblin":
|
|
st = 3;
|
|
co = 3;
|
|
ag = 3;
|
|
qu = 2 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 30;
|
|
pp = 30;
|
|
stm = 10;
|
|
will = 10;
|
|
mgc = 10;
|
|
racetalent1 = "Agile Defense";
|
|
racetalent2 = "Lightning Reflexes";
|
|
racetalent3 = "Night Vision";
|
|
special = "";
|
|
break;
|
|
case "Halfling":
|
|
st = -2;
|
|
co = 4;
|
|
ag = 4;
|
|
qu = 4 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 35;
|
|
pp = 25;
|
|
stm = 15;
|
|
will = 15;
|
|
mgc = 0;
|
|
racetalent1 = "Blazing Speed";
|
|
racetalent2 = "Extremely Nimble";
|
|
racetalent3 = "Heat/Cold Resistance (Minor)";
|
|
special = "";
|
|
break;
|
|
case "Human":
|
|
st = 0;
|
|
co = 0;
|
|
ag = 0;
|
|
qu = 0 ;
|
|
sd = 0;
|
|
re = 0;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 30;
|
|
pp = 30;
|
|
stm = 10;
|
|
will = 10;
|
|
mgc = 10;
|
|
racetalent1 = "Bonus Skill Ranks";
|
|
racetalent2 = "Skill Specialization";
|
|
racetalent3 = "Profession Adaptability";
|
|
special = "Humans get 8 stat bonus points to distribute as desired. No stat may receive greater than +3.";
|
|
break;
|
|
case "Orc":
|
|
st = 4;
|
|
co = 4;
|
|
ag = 2;
|
|
qu = 2 ;
|
|
sd = 0;
|
|
re = -1;
|
|
ins = 0;
|
|
pr = 0;
|
|
end = 45;
|
|
pp = 15;
|
|
stm = 20;
|
|
will = 5;
|
|
mgc = 5;
|
|
racetalent1 = "Bane";
|
|
racetalent2 = "Dense Musculature";
|
|
racetalent3 = "Night Vision";
|
|
special = "";
|
|
break;
|
|
case "Ogre":
|
|
st = 14;
|
|
co = 8;
|
|
ag = -3;
|
|
qu = -3 ;
|
|
sd = -3;
|
|
re = -2;
|
|
ins = -2;
|
|
pr = 0;
|
|
end = 60;
|
|
pp = 0;
|
|
stm = 30;
|
|
will = 0;
|
|
mgc = 0;
|
|
racetalent1 = "Dense Musculature";
|
|
racetalent2 = "Great Arm";
|
|
racetalent3 = "Night Vision";
|
|
special = "";
|
|
break;
|
|
}
|
|
|
|
setAttrs({
|
|
strength_race: st,
|
|
constitution_race: co,
|
|
agility_race: ag,
|
|
quickness_race: qu,
|
|
self_discipline_race: sd,
|
|
reasoning_race: re,
|
|
insight_race: ins,
|
|
presence_race: pr,
|
|
endurance_race: end,
|
|
ppdevelopment_race: pp,
|
|
stamina_race: stm,
|
|
will_race: will,
|
|
magic_race: mgc,
|
|
power_point_development_other_bonus: pp,
|
|
endurance_other_bonus: end,
|
|
stamina_other_bonus: stm,
|
|
will_other_bonus: will,
|
|
magic_other_bonus: mgc,
|
|
repeating_race_race_ability_one: racetalent1,
|
|
repeating_race_race_ability_two: racetalent2,
|
|
repeating_race_race_ability_three: racetalent3
|
|
});
|
|
});
|
|
});
|
|
|
|
function SkillRankBonus(ranks){
|
|
|
|
var subtotal = 0;
|
|
var leftoverranks = 0;
|
|
|
|
if (ranks == 0){
|
|
subtotal = -25;
|
|
}else{
|
|
if(ranks < 11){
|
|
subtotal = ranks * 5;
|
|
}else{
|
|
if(ranks < 21){
|
|
leftoverranks = ranks - 10;
|
|
subtotal = (leftoverranks * 2) + 50;
|
|
}else{
|
|
leftoverranks = ranks - 20;
|
|
subtotal = (leftoverranks * 1) + 70;
|
|
}
|
|
}
|
|
}
|
|
|
|
return subtotal;
|
|
|
|
};
|
|
|
|
on("change:power_point_development_rank change:power_point_development_other_bonus change:self_discipline_total change:insight_total sheet:opened",function(eventInfo){
|
|
getAttrs(["power_point_development_rank","power_point_development_other_bonus","self_discipline_total","insight_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.power_point_development_rank)||0;
|
|
var other = parseInt(values.power_point_development_other_bonus)||0;
|
|
var pr = parseInt(values.self_discipline_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = pr + ins;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
power_point_development_rank: ranks,
|
|
power_point_development_rank_bonus: rank,
|
|
power_point_development_stat_bonus: statbonus,
|
|
power_point_development_total: totalbonus,
|
|
power_points_max: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:armor_rank change:armor_other_bonus change:strength_total change:agility_total sheet:opened",function(eventInfo){
|
|
getAttrs(["armor_rank","armor_other_bonus","strength_total","agility_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.armor_rank)||0;
|
|
var other = parseInt(values.armor_other_bonus)||0;
|
|
var st = parseInt(values.strength_total)||0;
|
|
var ag = parseInt(values.agility_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = st + ag;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
armor_rank: ranks,
|
|
armor_rank_bonus: rank,
|
|
armor_stat_bonus: statbonus,
|
|
armor_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:endurance_rank change:endurance_other_bonus change:self_discipline_total change:constitution_total sheet:opened",function(eventInfo){
|
|
getAttrs(["endurance_rank","endurance_other_bonus","constitution_total","self_discipline_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.endurance_rank)||0;
|
|
var other = parseInt(values.endurance_other_bonus)||0;
|
|
var stone = parseInt(values.self_discipline_total)||0;
|
|
var sttwo = parseInt(values.constitution_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = stone + sttwo;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
endurance_rank: ranks,
|
|
endurance_rank_bonus: rank,
|
|
endurance_stat_bonus: statbonus,
|
|
endurance_total: totalbonus,
|
|
hits_max: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:magic_rank change:magic_other_bonus change:insight_total sheet:opened",function(eventInfo){
|
|
getAttrs(["magic_rank","magic_other_bonus","insight_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.magic_rank)||0;
|
|
var other = parseInt(values.magic_other_bonus)||0;
|
|
var stone = parseInt(values.insight_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = stone * 2;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
magic_rank: ranks,
|
|
magic_rank_bonus: rank,
|
|
magic_stat_bonus: statbonus,
|
|
magic_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:stamina_rank change:stamina_other_bonus change:constitution_total sheet:opened",function(eventInfo){
|
|
getAttrs(["stamina_rank","stamina_other_bonus","constitution_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.stamina_rank)||0;
|
|
var other = parseInt(values.stamina_other_bonus)||0;
|
|
var stone = parseInt(values.constitution_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = stone * 2;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
stamina_rank: ranks,
|
|
stamina_rank_bonus: rank,
|
|
stamina_stat_bonus: statbonus,
|
|
stamina_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:will_rank change:will_other_bonus change:self_discipline_total sheet:opened",function(eventInfo){
|
|
getAttrs(["will_rank","will_other_bonus","self_discipline_total","max_skill_level"],function(values){
|
|
var ranks = parseInt(values.will_rank)||0;
|
|
var other = parseInt(values.will_other_bonus)||0;
|
|
var stone = parseInt(values.self_discipline_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(ranks > max){
|
|
ranks = max;
|
|
}
|
|
|
|
var rank = 0;
|
|
var statbonus = stone * 2;
|
|
var totalbonus = 0;
|
|
|
|
rank = SkillRankBonus(ranks);
|
|
|
|
totalbonus = rank + statbonus + other;
|
|
|
|
setAttrs({
|
|
will_rank: ranks,
|
|
will_rank_bonus: rank,
|
|
will_stat_bonus: statbonus,
|
|
will_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_general:general_rank change:repeating_general:general_stat_one change:repeating_general:general_stat_two change:repeating_general:general_other_bonus change:repeating_general:general_stat_bonus", function() {
|
|
getAttrs(["repeating_general_general_rank","repeating_general_general_stat_one", "repeating_general_general_stat_two","repeating_general_general_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_general_general_rank)||0;
|
|
var one = values.repeating_general_general_stat_one;
|
|
var two = values.repeating_general_general_stat_two;
|
|
var otherbonus = parseInt(values.repeating_general_general_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
|
|
setAttrs({
|
|
repeating_general_general_rank: rank,
|
|
repeating_general_general_rank_bonus: rankbonus,
|
|
repeating_general_general_stat_bonus: totalstatbonus,
|
|
repeating_general_general_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_artistic:artistic_rank change:repeating_artistic:artistic_stat_one change:repeating_artistic:artistic_stat_two change:repeating_artistic:artistic_other_bonus change:repeating_artistic:artistic_stat_bonus", function() {
|
|
getAttrs(["repeating_artistic_artistic_rank","repeating_artistic_artistic_stat_one", "repeating_artistic_artistic_stat_two","repeating_artistic_artistic_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total", "max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_artistic_artistic_rank)||0;
|
|
var one = values.repeating_artistic_artistic_stat_one;
|
|
var two = values.repeating_artistic_artistic_stat_two;
|
|
var otherbonus = parseInt(values.repeating_artistic_artistic_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_artistic_artistic_rank: rank,
|
|
repeating_artistic_artistic_rank_bonus: rankbonus,
|
|
repeating_artistic_artistic_stat_bonus: totalstatbonus,
|
|
repeating_artistic_artistic_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_athletic:athletic_rank change:repeating_athletic:athletic_stat_one change:repeating_athletic:athletic_stat_two change:repeating_athletic:athletic_other_bonus change:repeating_athletic:athletic_stat_bonus", function() {
|
|
getAttrs(["repeating_athletic_athletic_rank","repeating_athletic_athletic_stat_one", "repeating_athletic_athletic_stat_two","repeating_athletic_athletic_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_athletic_athletic_rank)||0;
|
|
var one = values.repeating_athletic_athletic_stat_one;
|
|
var two = values.repeating_athletic_athletic_stat_two;
|
|
var otherbonus = parseInt(values.repeating_athletic_athletic_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_athletic_athletic_rank: rank,
|
|
repeating_athletic_athletic_rank_bonus: rankbonus,
|
|
repeating_athletic_athletic_stat_bonus: totalstatbonus,
|
|
repeating_athletic_athletic_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_combat:combat_rank change:repeating_combat:combat_stat_one change:repeating_combat:combat_stat_two change:repeating_combat:combat_other_bonus change:repeating_combat:combat_stat_bonus", function() {
|
|
getAttrs(["repeating_combat_combat_rank","repeating_combat_combat_stat_one", "repeating_combat_combat_stat_two","repeating_combat_combat_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_combat_combat_rank)||0;
|
|
var one = values.repeating_combat_combat_stat_one;
|
|
var two = values.repeating_combat_combat_stat_two;
|
|
var otherbonus = parseInt(values.repeating_combat_combat_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_combat_combat_rank: rank,
|
|
repeating_combat_combat_rank_bonus: rankbonus,
|
|
repeating_combat_combat_stat_bonus: totalstatbonus,
|
|
repeating_combat_combat_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_concentration:concentration_rank change:repeating_concentration:concentration_stat_one change:repeating_concentration:concentration_stat_two change:repeating_concentration:concentration_other_bonus change:repeating_concentration:concentration_stat_bonus", function() {
|
|
getAttrs(["repeating_concentration_concentration_rank","repeating_concentration_concentration_stat_one", "repeating_concentration_concentration_stat_two","repeating_concentration_concentration_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_concentration_concentration_rank)||0;
|
|
var one = values.repeating_concentration_concentration_stat_one;
|
|
var two = values.repeating_concentration_concentration_stat_two;
|
|
var otherbonus = parseInt(values.repeating_concentration_concentration_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_concentration_concentration_rank: rank,
|
|
repeating_concentration_concentration_rank_bonus: rankbonus,
|
|
repeating_concentration_concentration_stat_bonus: totalstatbonus,
|
|
repeating_concentration_concentration_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_influence:influence_rank change:repeating_influence:influence_stat_one change:repeating_influence:influence_stat_two change:repeating_influence:influence_other_bonus change:repeating_influence:influence_stat_bonus", function() {
|
|
getAttrs(["repeating_influence_influence_rank","repeating_influence_influence_stat_one", "repeating_influence_influence_stat_two","repeating_influence_influence_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_influence_influence_rank)||0;
|
|
var one = values.repeating_influence_influence_stat_one;
|
|
var two = values.repeating_influence_influence_stat_two;
|
|
var otherbonus = parseInt(values.repeating_influence_influence_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_influence_influence_rank: rank,
|
|
repeating_influence_influence_rank_bonus: rankbonus,
|
|
repeating_influence_influence_stat_bonus: totalstatbonus,
|
|
repeating_influence_influence_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:repeating_mysticalarts:mystical_arts_rank change:repeating_mysticalarts:mystical_arts_stat_one change:repeating_mysticalarts:mystical_arts_stat_two change:repeating_mysticalarts:mystical_arts_other_bonus change:repeating_mysticalarts:mystical_arts_stat_bonus", function() {
|
|
getAttrs(["repeating_mysticalarts_mystical_arts_rank","repeating_mysticalarts_mystical_arts_stat_one", "repeating_mysticalarts_mystical_arts_stat_two","repeating_mysticalarts_mystical_arts_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_mysticalarts_mystical_arts_rank)||0;
|
|
var one = values.repeating_mysticalarts_mystical_arts_stat_one;
|
|
var two = values.repeating_mysticalarts_mystical_arts_stat_two;
|
|
var otherbonus = parseInt(values.repeating_mysticalarts_mystical_arts_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_mysticalarts_mystical_arts_rank: rank,
|
|
repeating_mysticalarts_mystical_arts_rank_bonus: rankbonus,
|
|
repeating_mysticalarts_mystical_arts_stat_bonus: totalstatbonus,
|
|
repeating_mysticalarts_mystical_arts_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:repeating_outdoor:outdoor_rank change:repeating_outdoor:outdoor_stat_one change:repeating_outdoor:outdoor_stat_two change:repeating_outdoor:outdoor_other_bonus change:repeating_outdoor:outdoor_stat_bonus", function() {
|
|
getAttrs(["repeating_outdoor_outdoor_rank","repeating_outdoor_outdoor_stat_one", "repeating_outdoor_outdoor_stat_two","repeating_outdoor_outdoor_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_outdoor_outdoor_rank)||0;
|
|
var one = values.repeating_outdoor_outdoor_stat_one;
|
|
var two = values.repeating_outdoor_outdoor_stat_two;
|
|
var otherbonus = parseInt(values.repeating_outdoor_outdoor_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_outdoor_outdoor_rank: rank,
|
|
repeating_outdoor_outdoor_rank_bonus: rankbonus,
|
|
repeating_outdoor_outdoor_stat_bonus: totalstatbonus,
|
|
repeating_outdoor_outdoor_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_physical:physical_rank change:repeating_physical:physical_stat_one change:repeating_physical:physical_stat_two change:repeating_physical:physical_other_bonus change:repeating_physical:physical_stat_bonus", function() {
|
|
getAttrs(["repeating_physical_physical_rank","repeating_physical_physical_stat_one", "repeating_physical_physical_stat_two","repeating_physical_physical_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_physical_physical_rank)||0;
|
|
var one = values.repeating_physical_physical_stat_one;
|
|
var two = values.repeating_physical_physical_stat_two;
|
|
var otherbonus = parseInt(values.repeating_physical_physical_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_physical_physical_rank: rank,
|
|
repeating_physical_physical_rank_bonus: rankbonus,
|
|
repeating_physical_physical_stat_bonus: totalstatbonus,
|
|
repeating_physical_physical_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_subterfuge:subterfuge_rank change:repeating_subterfuge:subterfuge_stat_one change:repeating_subterfuge:subterfuge_stat_two change:repeating_subterfuge:subterfuge_other_bonus change:repeating_subterfuge:subterfuge_stat_bonus", function() {
|
|
getAttrs(["repeating_subterfuge_subterfuge_rank","repeating_subterfuge_subterfuge_stat_one", "repeating_subterfuge_subterfuge_stat_two","repeating_subterfuge_subterfuge_other_bonus",
|
|
"strength_total","constitution_total","agility_total","quickness_total","self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_subterfuge_subterfuge_rank)||0;
|
|
var one = values.repeating_subterfuge_subterfuge_stat_one;
|
|
var two = values.repeating_subterfuge_subterfuge_stat_two;
|
|
var otherbonus = parseInt(values.repeating_subterfuge_subterfuge_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(one){
|
|
case "St":
|
|
statbonusone = str;
|
|
break;
|
|
case "Co":
|
|
statbonusone = con;
|
|
break;
|
|
case "Ag":
|
|
statbonusone = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonusone = qui;
|
|
break;
|
|
case "SD":
|
|
statbonusone = sld;
|
|
break;
|
|
case "Re":
|
|
statbonusone = rea;
|
|
break;
|
|
case "In":
|
|
statbonusone = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonusone = pre;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = 0;
|
|
switch(two){
|
|
case "St":
|
|
statbonustwo = str;
|
|
break;
|
|
case "Co":
|
|
statbonustwo = con;
|
|
break;
|
|
case "Ag":
|
|
statbonustwo = agi;
|
|
break;
|
|
case "Qu":
|
|
statbonustwo = qui;
|
|
break;
|
|
case "SD":
|
|
statbonustwo = sld;
|
|
break;
|
|
case "Re":
|
|
statbonustwo = rea;
|
|
break;
|
|
case "In":
|
|
statbonustwo = ins;
|
|
break;
|
|
case "Pr":
|
|
statbonustwo = pre;
|
|
break;
|
|
}
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_subterfuge_subterfuge_rank: rank,
|
|
repeating_subterfuge_subterfuge_rank_bonus: rankbonus,
|
|
repeating_subterfuge_subterfuge_stat_bonus: totalstatbonus,
|
|
repeating_subterfuge_subterfuge_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_weapon:weapon_rank change:repeating_weapon:weapon_other_bonus change:repeating_weapon:weapon_stat_bonus", function() {
|
|
getAttrs(["repeating_weapon_weapon_rank","repeating_weapon_weapon_other_bonus",
|
|
"strength_total","agility_total","max_skill_level","repeating_weapon_weapon_category","repeating_weapon_weapon_name"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_weapon_weapon_rank)||0;
|
|
var one = values.repeating_weapon_weapon_stat_one;
|
|
var two = values.repeating_weapon_weapon_stat_two;
|
|
var otherbonus = parseInt(values.repeating_weapon_weapon_other_bonus)||0;
|
|
var str = parseInt(values.strength_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
var weaponcat = values.repeating_weapon_weapon_category;
|
|
var weaponname = values.repeating_weapon_weapon_name
|
|
var fumble = 6;
|
|
var standardroll = "&{template:skill} {{name=@{character_name}}} {{action=@{weapon_name}}} {{roll=[[1d100!>96cs>96cf<@{weapon_fumble}+@{weapon_total}+?{Modifier?|0}+@{weapon_damage_size}-@{target|Enemy|db_total}]]}} {{fumble=[[@{weapon_fumble}]]}} {{Damage Type=@{weapon_damage_type}}} {{Applied Size Modifier=[[@{weapon_damage_size}]]}}";
|
|
var brawlroll = "&{template:skill} {{name=@{character_name}}} {{action=@{weapon_name}}} {{roll=[[1d100!>96cs>96cf<@{weapon_fumble}+@{weapon_total}+?{Modifier?|0}+@{weapon_damage_size}-@{target|Enemy|db_total}]]}} {{fumble=[[@{weapon_fumble}]]}} {{Damage Type=?{Attack Type?|Crush|Puncture|Slash|Grapple}}} {{Applied Size Modifier=[[@{weapon_damage_size}]]}}";
|
|
var roll = "";
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
if(weaponname.toLowerCase() == "brawl"){
|
|
roll = brawlroll;
|
|
}
|
|
else{
|
|
roll = standardroll;
|
|
}
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = str;
|
|
var statbonustwo = agi;
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
|
|
switch(weaponcat){
|
|
case "Axes":
|
|
case "ShortBlades":
|
|
case "Clubs":
|
|
case "Crossbows":
|
|
case "Brawl":
|
|
case "MartialArtsStrikes":
|
|
fumble = 3;
|
|
break;
|
|
case "LongBlades":
|
|
case "ThrustingBlades":
|
|
case "ThrownBlades":
|
|
case "Bows":
|
|
case "LongSpikes":
|
|
case "MartialArtsSweeps":
|
|
fumble = 4;
|
|
break;
|
|
case "PoleArmsThrown":
|
|
case "Slings":
|
|
case "PoleArms":
|
|
case "GreatBlades":
|
|
case "Staves":
|
|
fumble = 5;
|
|
break;
|
|
case "ChainsPlus":
|
|
fumble = 6;
|
|
break;
|
|
case "ThrownProjectiles":
|
|
case "GreatChains":
|
|
fumble = 7
|
|
break;
|
|
}
|
|
|
|
setAttrs({
|
|
repeating_weapon_weapon_rank: rank,
|
|
repeating_weapon_weapon_rank_bonus: rankbonus,
|
|
repeating_weapon_weapon_stat_bonus: totalstatbonus,
|
|
repeating_weapon_weapon_total: totalbonus,
|
|
repeating_weapon_weapon_fumble: fumble,
|
|
repeating_weapon_weapon_roll: roll
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_spell:spell_rank change:repeating_spell:spell_sphere change:repeating_spell:spell_other_bonus change:repeating_spell:spell_stat_bonus", function() {
|
|
getAttrs(["repeating_spell_spell_rank","repeating_spell_spell_sphere", "repeating_spell_spell_other_bonus",
|
|
"self_discipline_total","reasoning_total","insight_total","presence_total","max_skill_level"], function(values) {
|
|
|
|
var rank = parseInt(values.repeating_spell_spell_rank)||0;
|
|
var sphere = values.repeating_spell_spell_sphere;
|
|
var otherbonus = parseInt(values.repeating_spell_spell_other_bonus)||0;
|
|
var sld = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
var max = parseInt(values.max_skill_level)||0;
|
|
|
|
if(rank > max){
|
|
rank = max;
|
|
}
|
|
|
|
var rankbonus = SkillRankBonus(rank);
|
|
var statbonusone = 0;
|
|
switch(sphere){
|
|
case "cleric":
|
|
case "ranger":
|
|
statbonusone = ins;
|
|
break;
|
|
case "harper":
|
|
statbonusone = pre;
|
|
break;
|
|
default:
|
|
statbonusone = rea;
|
|
break;
|
|
}
|
|
|
|
var statbonustwo = sld;
|
|
|
|
var totalstatbonus = statbonusone + statbonustwo;
|
|
var totalbonus = rankbonus + totalstatbonus + otherbonus
|
|
setAttrs({
|
|
repeating_spell_spell_rank: rank,
|
|
repeating_spell_spell_rank_bonus: rankbonus,
|
|
repeating_spell_spell_stat_bonus: totalstatbonus,
|
|
repeating_spell_spell_total: totalbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:strength_total change:agility_total change:self_discipline_total change:reasoning_total change:insight_total change:presence_total", function() {
|
|
getAttrs(["strength_total","constitution_total", "agility_total", "quickness_total","self_discipline_total","reasoning_total" , "insight_total", "presence_total"],function(values){
|
|
var str = parseInt(values.strength_total)||0;
|
|
var con = parseInt(values.constitution_total)||0;
|
|
var agi = parseInt(values.agility_total)||0;
|
|
var qui = parseInt(values.quickness_total)||0;
|
|
var sdi = parseInt(values.self_discipline_total)||0;
|
|
var rea = parseInt(values.reasoning_total)||0;
|
|
var ins = parseInt(values.insight_total)||0;
|
|
var pre = parseInt(values.presence_total)||0;
|
|
|
|
// process the weapons repeater to update the stat score bonuses
|
|
getSectionIDs("repeating_weapon", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
var bonus = str + agi;
|
|
let attrsToSet = {["repeating_weapon_" + idarray[i] +'_weapon_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
});
|
|
});
|
|
// process the spells repeater to update the stat bonuses
|
|
getSectionIDs("repeating_spell", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_spell_" + currentid + "_spell_sphere"],function(values){
|
|
var sphere = values["repeating_spell_" + currentid + "_spell_sphere"];
|
|
|
|
bonus = 0
|
|
|
|
switch(sphere){
|
|
case "harper":
|
|
bonus = pre + sdi;
|
|
break;
|
|
case "cleric":
|
|
case "ranger":
|
|
bonus = ins + sdi;
|
|
break;
|
|
default:
|
|
bonus = rea + sdi;
|
|
break;
|
|
}
|
|
|
|
let attrsToSet = {["repeating_spell_" + idarray[i] +'_spell_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
// process the artistic repeater to update stat boonuses
|
|
getSectionIDs("repeating_artistic", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_artistic_" + currentid + "_artistic_stat_one","repeating_artistic_" + currentid + "_artistic_stat_two"],function(values){
|
|
var statone = values["repeating_artistic_" + currentid + "_artistic_stat_one"];
|
|
var stattwo = values["repeating_artistic_" + currentid + "_artistic_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_artistic_" + idarray[i] +'_artistic_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
// process athlettic
|
|
getSectionIDs("repeating_athletic", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_athletic_" + currentid + "_athletic_stat_one","repeating_athletic_" + currentid + "_athletic_stat_two"],function(values){
|
|
var statone = values["repeating_athletic_" + currentid + "_athletic_stat_one"];
|
|
var stattwo = values["repeating_athletic_" + currentid + "_athletic_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_athletic_" + idarray[i] +'_athletic_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
// process combat
|
|
getSectionIDs("repeating_combat", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_combat_" + currentid + "_combat_stat_one","repeating_combat_" + currentid + "_combat_stat_two"],function(values){
|
|
var statone = values["repeating_combat_" + currentid + "_combat_stat_one"];
|
|
var stattwo = values["repeating_combat_" + currentid + "_combat_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_combat_" + idarray[i] +'_combat_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//process concentration
|
|
getSectionIDs("repeating_concentration", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_concentration_" + currentid + "_concentration_stat_one","repeating_concentration_" + currentid + "_concentration_stat_two"],function(values){
|
|
var statone = values["repeating_concentration_" + currentid + "_concentration_stat_one"];
|
|
var stattwo = values["repeating_concentration_" + currentid + "_concentration_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_concentration_" + idarray[i] +'_concentration_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//proc3ss genral
|
|
getSectionIDs("repeating_general", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_general_" + currentid + "_general_stat_one","repeating_general_" + currentid + "_general_stat_two"],function(values){
|
|
var statone = values["repeating_general_" + currentid + "_general_stat_one"];
|
|
var stattwo = values["repeating_general_" + currentid + "_general_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_general_" + idarray[i] +'_general_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//process influence
|
|
getSectionIDs("repeating_influence", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_influence_" + currentid + "_influence_stat_one","repeating_influence_" + currentid + "_influence_stat_two"],function(values){
|
|
var statone = values["repeating_influence_" + currentid + "_influence_stat_one"];
|
|
var stattwo = values["repeating_influence_" + currentid + "_influence_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_influence_" + idarray[i] +'_influence_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//process mystical arts
|
|
getSectionIDs("repeating_mysticalarts", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_mysticalarts_" + currentid + "_mystical_arts_stat_one","repeating_mysticalarts_" + currentid + "_mystical_arts_stat_two"],function(values){
|
|
var statone = values["repeating_mysticalarts_" + currentid + "_mystical_arts_stat_one"];
|
|
var stattwo = values["repeating_mysticalarts_" + currentid + "_mystical_arts_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_mysticalarts_" + idarray[i] +'_mystical_arts_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//process outdoor
|
|
getSectionIDs("repeating_outdoor", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_outdoor_" + currentid + "_outdoor_stat_one","repeating_outdoor_" + currentid + "_outdoor_stat_two"],function(values){
|
|
var statone = values["repeating_outdoor_" + currentid + "_outdoor_stat_one"];
|
|
var stattwo = values["repeating_outdoor_" + currentid + "_outdoor_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_outdoor_" + idarray[i] +'_outdoor_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
// process physical
|
|
getSectionIDs("repeating_physical", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_physical_" + currentid + "_physical_stat_one","repeating_physical_" + currentid + "_physical_stat_two"],function(values){
|
|
var statone = values["repeating_physical_" + currentid + "_physical_stat_one"];
|
|
var stattwo = values["repeating_physical_" + currentid + "_physical_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_physical_" + idarray[i] +'_physical_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
//process subterfuge
|
|
getSectionIDs("repeating_subterfuge", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_subterfuge_" + currentid + "_subterfuge_stat_one","repeating_subterfuge_" + currentid + "_subterfuge_stat_two"],function(values){
|
|
var statone = values["repeating_subterfuge_" + currentid + "_subterfuge_stat_one"];
|
|
var stattwo = values["repeating_subterfuge_" + currentid + "_subterfuge_stat_two"];
|
|
bonus = 0
|
|
switch(statone){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
switch(stattwo){
|
|
case "St":
|
|
bonus += str;
|
|
break;
|
|
case "Co":
|
|
bonus += con;
|
|
break;
|
|
case "Ag":
|
|
bonus += agi;
|
|
break;
|
|
case "Qu":
|
|
bonus += qui;
|
|
break;
|
|
case "SD":
|
|
bonus += sdi;
|
|
break;
|
|
case "Re":
|
|
bonus += rea;
|
|
break;
|
|
case "In":
|
|
bonus += ins;
|
|
break;
|
|
case "Pr":
|
|
bonus += pre;
|
|
break;
|
|
}
|
|
let attrsToSet = {["repeating_subterfuge_" + idarray[i] +'_subterfuge_stat_bonus']: bonus};
|
|
setAttrs(attrsToSet);
|
|
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:db_stats change:db_magic change:db_other change:db_armor_shield sheet:opened",function(eventInfo){
|
|
getAttrs(["db_stats","db_magic","db_other","db_armor_shield"],function(values){
|
|
var armor = parseInt(values.db_armor_shield)||0;
|
|
var stat = parseInt(values.db_stats)||0;
|
|
var magic = parseInt(values.db_magic)||0;
|
|
var other = parseInt(values.db_other)||0;
|
|
|
|
total = armor + stat + magic + other;
|
|
|
|
setAttrs({
|
|
db_total: total
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:shield_type change:shield_trained change:shield_other_bonus change:shield_in_use sheet:opened",function(eventInfo){
|
|
getAttrs(["shield_type","shield_trained","shield_defensive_bonus","shield_other_bonus","shield_in_use","armor_switch","full_suit_db_total","piecemeal_db_total"],function(values){
|
|
|
|
var type = values.shield_type;
|
|
var trained = parseInt(values.shield_trained)||0;
|
|
var other = parseInt(values.shield_other_bonus)||0;
|
|
var armor = parseInt(values.db_armor_shield)||0;
|
|
var inuse = parseInt(values.shield_in_use)||0;
|
|
var armorswitch = parseInt(values.armor_switch)||0;
|
|
var fullsuitdb = parseInt(values.full_suit_db_total)||0;
|
|
var piecemealdb = parseInt(values.piecemeal_db_total)||0;
|
|
var value = 0;
|
|
var dbval = 0;
|
|
var total = 0;
|
|
var totaldb = 0;
|
|
|
|
switch(type){
|
|
case "wall":
|
|
if(trained == 1){
|
|
value = 40;
|
|
}else{
|
|
value = 20;
|
|
}
|
|
break;
|
|
case "full":
|
|
if(trained == 1){
|
|
value = 30;
|
|
}else{
|
|
value = 15;
|
|
}
|
|
break;
|
|
case "normal":
|
|
if(trained == 1){
|
|
value = 25;
|
|
}else{
|
|
value = 10;
|
|
}
|
|
break;
|
|
case "target":
|
|
if(trained == 1){
|
|
value = 20;
|
|
}else{
|
|
value = 5;
|
|
}
|
|
break;
|
|
case "buckler":
|
|
if(trained == 1){
|
|
value = 15;
|
|
}else{
|
|
value = 0;
|
|
}
|
|
break;
|
|
case "maingauche":
|
|
if(trained == 1){
|
|
value = 15;
|
|
}else{
|
|
value = 0;
|
|
}
|
|
break;
|
|
case "sai":
|
|
if(trained == 1){
|
|
value = 15;
|
|
}else{
|
|
value = 0;
|
|
}
|
|
break;
|
|
}
|
|
dbval = value + other;
|
|
if(inuse ==1){
|
|
total = dbval;
|
|
}
|
|
if(armorswitch == 0){
|
|
// full suit
|
|
totaldb = fullsuitdb + total;
|
|
}else{
|
|
// piecemeal
|
|
totaldb = piecemealdb + total;
|
|
}
|
|
|
|
setAttrs({
|
|
shield_defensive_bonus: value,
|
|
shield_total_db: dbval,
|
|
db_armor_shield: totaldb
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_equipment:equipment_equipped change:repeating_equipment:equipment_qty change:repeating_equipment:equipment_weight", function() {
|
|
var runningweight = 0;
|
|
setAttrs({
|
|
encumbrance_current: runningweight
|
|
});
|
|
getSectionIDs("repeating_equipment", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_equipment_" + currentid + "_equipment_equipped","repeating_equipment_" + currentid + "_equipment_qty","repeating_equipment_" + currentid + "_equipment_weight"],function(values){
|
|
var equipped = parseInt(values["repeating_equipment_" + currentid + "_equipment_equipped"])||0;
|
|
var qty = parseInt(values["repeating_equipment_" + currentid + "_equipment_qty"])||0;
|
|
var weight = parseInt(values["repeating_equipment_" + currentid + "_equipment_weight"])||0;
|
|
var current = Math.ceil((qty * weight)-0.5);
|
|
if(current ==0){current = 1;}
|
|
if(equipped == 1){
|
|
runningweight += current;
|
|
setAttrs({
|
|
encumbrance_current: runningweight
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:full_suit_type change:full_suit_fitted change:full_suit_bonus",function(eventInfo){
|
|
getAttrs(["full_suit_type","full_suit_fitted","full_suit_bonus","shield_in_use","shield_total_db"],function(values){
|
|
|
|
var type = values.full_suit_type;
|
|
var fitted = parseInt(values.full_suit_fitted)||0;
|
|
var bonus = parseInt(values.full_suit_bonus)||0;
|
|
var inuse = parseInt(values.shield_in_use)||0;
|
|
var shielddb = parseInt(values.shield_total_db)||0;
|
|
var total = 0;
|
|
var armorshieldtotal = 0;
|
|
var dbvalue = 0;
|
|
var min = 0;
|
|
var max = 0;
|
|
var cast = 0;
|
|
|
|
if(fitted == 1){
|
|
switch(type){
|
|
case "softleather":
|
|
dbvalue = 20;
|
|
min = 0;
|
|
max = -20;
|
|
cast = 2;
|
|
break;
|
|
case "rigidleather":
|
|
dbvalue = 30;
|
|
min = -5;
|
|
max = -40;
|
|
cast = 4;
|
|
break;
|
|
case "chain":
|
|
dbvalue = 40;
|
|
min = -10;
|
|
max = -60;
|
|
cast = 6;
|
|
break;
|
|
case "platechain":
|
|
dbvalue = 50;
|
|
min = -15;
|
|
max = -80;
|
|
cast = 8;
|
|
break;
|
|
case "plate":
|
|
dbvalue = 60;
|
|
min = -20;
|
|
max = -100;
|
|
cast = 10;
|
|
break;
|
|
default:
|
|
dbvalue = 0;
|
|
min = 0;
|
|
max = 0;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
|
|
}else{
|
|
switch(type){
|
|
case "softleather":
|
|
dbvalue = 20;
|
|
min = -6;
|
|
max = -26;
|
|
cast = 2;
|
|
break;
|
|
case "rigidleather":
|
|
dbvalue = 30;
|
|
min = -10;
|
|
max = -80;
|
|
cast = 4;
|
|
break;
|
|
case "chain":
|
|
dbvalue = 40;
|
|
min = -20;
|
|
max = -120;
|
|
cast = 6;
|
|
break;
|
|
case "platechain":
|
|
dbvalue = 50;
|
|
min = -30;
|
|
max = -160;
|
|
cast = 8;
|
|
break;
|
|
case "plate":
|
|
dbvalue = 60;
|
|
min = -40;
|
|
max = -200;
|
|
cast = 10;
|
|
break;
|
|
default:
|
|
dbvalue = 0;
|
|
min = 0;
|
|
max = 0;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
total = dbvalue + bonus;
|
|
|
|
if(inuse == 1){
|
|
armorshieldtotal = total + shielddb;
|
|
}else{
|
|
armorshieldtotal = total;
|
|
}
|
|
|
|
setAttrs({
|
|
full_suit_db_total: total,
|
|
full_suit_db: dbvalue,
|
|
full_suit_min_penalty: min,
|
|
full_suit_max_penalty: max,
|
|
full_suit_cast_penalty: cast,
|
|
db_armor_shield: armorshieldtotal
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_piecearmor:piece_suit_type change:repeating_piecearmor:piece_suit_location change:repeating_piecearmor:piece_suit_fitted change:repeating_piecearmor:piece_suit_bonus",function(eventInfo){
|
|
getAttrs(["repeating_piecearmor_piece_suit_type","repeating_piecearmor_piece_suit_fitted","repeating_piecearmor_piece_suit_bonus","repeating_piecearmor_piece_suit_location"],function(values){
|
|
|
|
var type = values.repeating_piecearmor_piece_suit_type;
|
|
var location = values.repeating_piecearmor_piece_suit_location;
|
|
var fitted = parseInt(values.repeating_piecearmor_piece_suit_fitted)||0;
|
|
var bonus = parseInt(values.repeating_piecearmor_piece_suit_bonus)||0;
|
|
|
|
var dbvalue = 0;
|
|
var min = 0;
|
|
var max = 0;
|
|
var cast = 0;
|
|
//console.log("location: " + location + " type: " + type);
|
|
if(fitted == 1){
|
|
switch(type){
|
|
case "softleather":
|
|
//console.log("WE HAVE LEATHER!");
|
|
switch(location){
|
|
case "head":
|
|
//console.log("Head!");
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 8;
|
|
min = 0;
|
|
max = 8;
|
|
cast = 2;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "rigidleather":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 12;
|
|
min = -4;
|
|
max = -16;
|
|
cast = 3;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -4;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "chain":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 4;
|
|
min = -1;
|
|
max = -6;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 4;
|
|
min = -1;
|
|
max = -6;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -6;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -6;
|
|
cast = 1;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 4;
|
|
min = -1;
|
|
max = -6;
|
|
cast = 1;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 16;
|
|
min = -4;
|
|
max = -24;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 4;
|
|
min = -1;
|
|
max = -6;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 4;
|
|
min = -1;
|
|
max = -6;
|
|
cast = 1;
|
|
break;
|
|
}
|
|
break;
|
|
case "platechain":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 5;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 5;
|
|
min = -2;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 5;
|
|
min = -2;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 5;
|
|
min = -2;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 20;
|
|
min = -6;
|
|
max = -32;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 5;
|
|
min = -2;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 5;
|
|
min = -2;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "plate":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 24;
|
|
min = -8;
|
|
max = -40;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 6;
|
|
min = -2;
|
|
max = -10;
|
|
cast = 1;
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
dbvalue = 0;
|
|
min = 0;
|
|
max = 0;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
|
|
}else{
|
|
switch(type){
|
|
case "softleather":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 2;
|
|
min = 1;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 2;
|
|
min = 1;
|
|
max = 2;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 2;
|
|
min = 1;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 2;
|
|
min = 1;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 8;
|
|
min = 2;
|
|
max = 9;
|
|
cast = 2;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 2;
|
|
min = 1;
|
|
max = 2;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 2;
|
|
min = 0;
|
|
max = 2;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "rigidleather":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
//console.log("neck leather --------")
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 12;
|
|
min = -3;
|
|
max = -25;
|
|
cast = 3;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 3;
|
|
min = -1;
|
|
max = -8;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "chain":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 0;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 0;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 16;
|
|
min = -8;
|
|
max = -48;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 4;
|
|
min = -2;
|
|
max = -12;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "platechain":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 1;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 1;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 0;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 20;
|
|
min = -12;
|
|
max = -64;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 5;
|
|
min = -3;
|
|
max = -16;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "plate":
|
|
switch(location){
|
|
case "head":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
case "neck":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
case "shoulders":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
case "arms":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 0;
|
|
break;
|
|
case "hands":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
case "torso":
|
|
dbvalue = 24;
|
|
min = -16;
|
|
max = -80;
|
|
cast = 4;
|
|
break;
|
|
case "legs":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
case "feet":
|
|
dbvalue = 6;
|
|
min = -4;
|
|
max = -20;
|
|
cast = 1;
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
dbvalue = 0;
|
|
min = 0;
|
|
max = 0;
|
|
cast = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
setAttrs({
|
|
repeating_piecearmor_piece_suit_db: dbvalue,
|
|
repeating_piecearmor_piece_suit_min_penalty: min,
|
|
repeating_piecearmor_piece_suit_max_penalty: max,
|
|
repeating_piecearmor_piece_suit_cast_penalty: cast,
|
|
});
|
|
|
|
ProcessPeicmealDB();
|
|
|
|
});
|
|
});
|
|
|
|
function ProcessPeicmealDB(){
|
|
var runningdb = 0;
|
|
var runningmin = 0;
|
|
var runningmax = 0;
|
|
var runningcast = 0;
|
|
getSectionIDs("repeating_piecearmor", function(idarray) {
|
|
_.each(idarray, function(currentid,i){
|
|
getAttrs(["repeating_piecearmor_" + currentid + "_piece_suit_bonus","repeating_piecearmor_" + currentid + "_piece_suit_db","repeating_piecearmor_" + currentid + "_piece_suit_min_penalty","repeating_piecearmor_" + currentid + "_piece_suit_max_penalty","repeating_piecearmor_" + currentid + "_piece_suit_cast_penalty"],function(values){
|
|
var bonus = parseInt(values["repeating_piecearmor_" + currentid + "_piece_suit_bonus"])||0;
|
|
var db = parseInt(values["repeating_piecearmor_" + currentid + "_piece_suit_db"])||0;
|
|
var min = parseInt(values["repeating_piecearmor_" + currentid + "_piece_suit_min_penalty"])||0;
|
|
var max = parseInt(values["repeating_piecearmor_" + currentid + "_piece_suit_max_penalty"])||0;
|
|
var cast = parseInt(values["repeating_piecearmor_" + currentid + "_piece_suit_cast_penalty"])||0;
|
|
var dbvalue = bonus + db;
|
|
runningdb += dbvalue;
|
|
runningmin += min;
|
|
runningmax += max;
|
|
runningcast += cast;
|
|
setAttrs({
|
|
piecemeal_db_total: runningdb,
|
|
piecemeal_min_total: runningmin,
|
|
piecemeal_max_total: runningmax,
|
|
piecemeal_cast_total: runningcast
|
|
});
|
|
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
on("change:armor_switch change:shield_in_use change:piecemeal_db_total change:full_suit_db_total",function(eventInfo){
|
|
getAttrs(["armor_switch","shield_in_use","piecemeal_db_total","full_suit_db_total","shield_total_db"],function(values){
|
|
//console.log("-------------" + JSON.stringify(values));
|
|
var armorswitch = parseInt(values.armor_switch)||0; //0 = full suit 1=Piecemeal armor
|
|
var shieldinuse = parseInt(values.shield_in_use)||0; //0=no shield 1=shield used
|
|
var piecesuitdb = parseInt(values.piecemeal_db_total)||0;
|
|
var fullsuitdb = parseInt(values.full_suit_db_total)||0;
|
|
var shielddb = parseInt(values.shield_total_db)||0;
|
|
|
|
var db = 0;
|
|
|
|
if(armorswitch == 0){
|
|
db += fullsuitdb;
|
|
}else{
|
|
db += piecesuitdb;
|
|
}
|
|
|
|
if(shieldinuse == 1){
|
|
db += shielddb;
|
|
}
|
|
|
|
|
|
setAttrs({
|
|
db_armor_shield: db
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:armor_switch change:full_suit_min_penalty change:piecemeal_min_total",function(eventInfo){
|
|
getAttrs(["armor_switch","full_suit_min_penalty","full_suit_max_penalty","full_suit_cast_penalty",
|
|
,"piecemeal_min_total","piecemeal_max_total","piecemeal_cast_total","armor_total"],function(values){
|
|
var armorswitch = parseInt(values.armor_switch)||0; //0 = full suit 1=Piecemeal armor
|
|
var fullmin = parseInt(values.full_suit_min_penalty)||0; //0=no shield 1=shield used
|
|
var fullmax = parseInt(values.full_suit_max_penalty)||0;
|
|
var fullcast = parseInt(values.full_suit_cast_penalty)||0;
|
|
var pcmin = parseInt(values.piecemeal_min_total)||0;
|
|
var pcmax = parseInt(values.piecemeal_max_total)||0;
|
|
var pccast = parseInt(values.piecemeal_cast_total)||0;
|
|
var armor = parseInt(values.armor_total)||0;
|
|
|
|
var castpen = 0;
|
|
var manpen = 0;
|
|
|
|
if(armorswitch ==0){
|
|
//full suit
|
|
if(armor ==0){
|
|
manpen = fullmax;
|
|
}
|
|
else
|
|
{
|
|
var modifiedfull = fullmax + armor;
|
|
console.log("modified full +++ " + modifiedfull + " max; " + fullmax + " armor: " + armor + " min " + fullmin);
|
|
if(modifiedfull <= fullmin){
|
|
console.log("greater");
|
|
manpen = modifiedfull;
|
|
}
|
|
else
|
|
{
|
|
console.log("else");
|
|
manpen = fullmin;
|
|
}
|
|
}
|
|
castpen = fullcast;
|
|
}
|
|
else
|
|
{
|
|
//piece suit
|
|
if(armor ==0){
|
|
manpen = pcmax;
|
|
}
|
|
else
|
|
{
|
|
var modifiedpc = pcmax + armor;
|
|
console.log("modified pc +++ " + modifiedpc + " max; " + pcmax + " armor: " + armor + " min " + pcmin);
|
|
if(modifiedpc <= pcmin){
|
|
manpen = modifiedpc;
|
|
}
|
|
else
|
|
{
|
|
manpen = pcmin;
|
|
}
|
|
}
|
|
castpen = pccast;
|
|
}
|
|
|
|
|
|
|
|
setAttrs({
|
|
armor_maneuver_penalty: manpen,
|
|
armor_casting_penalty: castpen
|
|
});
|
|
});
|
|
});
|
|
//max_skill_level character_level
|
|
on("change:character_level sheet:opened",function(eventInfo){
|
|
getAttrs(["character_level"],function(values){
|
|
var level = parseInt(values.character_level)||0; //0 = full suit 1=Piecemeal armor
|
|
var max = (level * 3) + 3;
|
|
|
|
setAttrs({
|
|
max_skill_level: max
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
</script> |