mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-03 05:32:32 +00:00
2940 lines
104 KiB
HTML
2940 lines
104 KiB
HTML
|
|
<div class="sheet-wrapper">
|
|
<!-- HIDDEN FIELDS -->
|
|
<input type="hidden" name="attr_10" value="10" disabled="disabled" />
|
|
<input type="hidden" name="attr_VS" value="vs:" disabled="disabled" />
|
|
<input type="hidden" name="attr_languages_points" value="0" />
|
|
<input type="hidden" name="attr_cf_points" value="0" />
|
|
<input type="hidden" name="attr_advantages_points" value="0" />
|
|
<input type="hidden" name="attr_disadvantages_points" value="0" />
|
|
<input type="hidden" name="attr_racial_points" value="0" />
|
|
<input type="hidden" name="attr_skills_points" value="0" />
|
|
<input type="hidden" name="attr_techniques_points" value="0" />
|
|
<input type="hidden" name="attr_spells_points" value="0" />
|
|
<!-- /HIDDEN FIELDS -->
|
|
|
|
<!-- ===== ===== ===== ===== TABS ===== ===== ===== ===== -->
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab1" value="1" title="General" checked="checked" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab2" value="2" title="Traits" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab3" value="3" title="Skills" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab4" value="4" title="Combat" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab5" value="5" title="Wealth" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab6" value="6" title="Grimoire" />
|
|
<input type="radio" name="attr_tab" class="sheet-tab sheet-tab0" value="0" title="Sheet Options" alt="y" />
|
|
<div class="sheet-tab-br"></div>
|
|
|
|
|
|
<!-- ===== ===== ===== ===== GENERAL TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab1">
|
|
|
|
<!-- _____ _____ ATTRIBUTE BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-attribute">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Attributes</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">Mod</div>
|
|
<span class="sheet-tooltip">
|
|
A modifier that will be applied to your attribute.
|
|
<br />
|
|
All derived attributes draw their base from your<br />
|
|
unmodified attributes. Therefore this MOD will<br />
|
|
generally only affect direct attribute rolls and<br />
|
|
skills rolls.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">Pts</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-main-attribute">
|
|
<div class="sheet-row sheet-row-strength">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">ST</div>
|
|
<span class="sheet-tooltip">
|
|
Strength
|
|
<br />
|
|
10pts/level
|
|
<br />
|
|
Unmodified <span name="attr_strength_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_strength" value="10" readonly="readonly" >
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_strength_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_strength_points" value="0" step="10" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} ST [[@{strength} + @{modifier}]]" name="roll_vsST" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-dexterity">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">DX</div>
|
|
<span class="sheet-tooltip">
|
|
Dexterity
|
|
<br />
|
|
20pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_dexterity_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_dexterity" value="10" readonly="readonly" >
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_dexterity_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dexterity_points" value="0" step="20" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} DX [[@{dexterity} + @{modifier}]]" name="roll_vsDX" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-intelligence">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">IQ</div>
|
|
<span class="sheet-tooltip">
|
|
Intelligence
|
|
<br />
|
|
20pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_intelligence_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_intelligence" value="10" readonly="readonly" >
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_intelligence_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_intelligence_points" value="0" step="20" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} IQ [[@{intelligence} + @{modifier}]]" name="roll_vsIQ" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-health">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">HT</div>
|
|
<span class="sheet-tooltip">
|
|
Health
|
|
<br />
|
|
10pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_health_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_health" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_health_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_health_points" value="0" step="10" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} HT [[@{health} + @{modifier}]]" name="roll_vsHT" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div>
|
|
<div class="sheet-row sheet-row-perception sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Per</div>
|
|
<span class="sheet-tooltip">
|
|
Perception
|
|
<br />
|
|
Based on Intelligence
|
|
<br />
|
|
5pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_perception_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_perception" value="10" readonly="readonly" >
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_perception_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_perception_points" value="0" step="5" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Per [[@{perception} + @{modifier}]]" name="roll_vsPer" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-vision">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Vision</div>
|
|
<span class="sheet-tooltip">
|
|
Visual Perception
|
|
<br />
|
|
Based on Perception
|
|
<br />
|
|
2pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_vision_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_vision" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_vision_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_vision_points" value="0" step="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Vision [[@{vision} + @{modifier}]]" name="roll_vsVision" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-hearing">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Hearing</div>
|
|
<span class="sheet-tooltip">
|
|
Audio Perception
|
|
<br />
|
|
Based on Perception
|
|
<br />
|
|
2pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_hearing_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_hearing" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_hearing_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_hearing_points" value="0" step="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Hearing [[@{hearing} + @{modifier}]]" name="roll_vsHearing" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-taste-smell">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Smell</div>
|
|
<span class="sheet-tooltip">
|
|
Taste & Smell Perception
|
|
<br />
|
|
Based on Perception
|
|
<br />
|
|
2pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_taste_smell_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_taste_smell" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_taste_smell_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_taste_smell_points" value="0" step="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Taste or Smell [[@{taste_smell} + @{modifier}]]" name="roll_vsTasteSmell" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-touch">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Touch</div>
|
|
<span class="sheet-tooltip">
|
|
Touch Perception
|
|
<br />
|
|
Based on Perception
|
|
<br />
|
|
2pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_touch_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_touch" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_touch_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_touch_points" value="0" step="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Touch [[@{touch} + @{modifier}]]" name="roll_vsTouch" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-willpower sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Will</div>
|
|
<span class="sheet-tooltip">
|
|
Willpower
|
|
<br />
|
|
Based on Intelligence
|
|
<br />
|
|
5pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_willpower_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_willpower" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_willpower_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_willpower_points" value="0" step="5" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Will [[@{willpower} + @{modifier}]]" name="roll_vsWill" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-fear">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Fear</div>
|
|
<span class="sheet-tooltip">
|
|
Fear Check
|
|
<br />
|
|
Based on Willpower
|
|
<br />
|
|
2pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_fear_check_base"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_fear_check" value="10" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_fear_check_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_fear_check_points" value="0" step="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Will [[@{fear_check} + @{modifier}]]" name="roll_vsFearCheck" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-basic-speed sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Speed</div>
|
|
<span class="sheet-tooltip">
|
|
Basic Speed
|
|
<br />
|
|
Based on Health and Dexterity
|
|
<br />
|
|
5pts/0.25
|
|
<br />
|
|
Unmodified: <span name="attr_basic_speed_base" value="10"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_basic_speed" value="" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_basic_speed_mod" value="0" step="0.25" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_basic_speed_points" value="0" step="5" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button class="sheet-roll-tracker" type="roll" value="/em has a speed of [[@{basic_speed} &{tracker}]]" name="roll_init" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-basic-move">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Move</div>
|
|
<span class="sheet-tooltip">
|
|
Basic Move
|
|
<br />
|
|
Based on Basic Speed
|
|
<br />
|
|
5pts/level
|
|
<br />
|
|
Unmodified: <span name="attr_basic_move_base" value="0"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_basic_move" value="" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_basic_move_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_basic_move_points" value="0" step="5" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-dodge">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Dodge</div>
|
|
<span class="sheet-tooltip">
|
|
Dodge
|
|
<br />
|
|
Based on Basic Speed
|
|
<br />
|
|
Unmodified: <span name="attr_dodge_base" value="0"></span>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_dodge" value="" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_dodge_mod" value="0" step="1" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-lift-st sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Lift ST</div>
|
|
<span class="sheet-tooltip">
|
|
Lifting Strength
|
|
<br />
|
|
Based on Strength
|
|
<br />
|
|
3pts/level
|
|
<br />
|
|
Unmodified: <input class="sheet-inline" type="number" name="attr_lift_st_base" readonly="readonly">
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_st" value="0" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_lift_st_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_lift_st_points" value="0" step="3" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-basic-lift">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Lift</div>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_basic_lift" value="0" readonly="readonly">
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-strike-st sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Striking</div>
|
|
<span class="sheet-tooltip">
|
|
Striking Strength
|
|
<br />
|
|
Based on Strength
|
|
<br />
|
|
5pts/level
|
|
<br />
|
|
Unmodified: <input class="sheet-inline" type="number" name="attr_striking_st_base" readonly="readonly">
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_striking_st" value="0" readonly="readonly">
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_striking_st_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_striking_st_points" value="0" step="5" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-thrust-damage">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Thrust</div>
|
|
<span class="sheet-tooltip">
|
|
Thrust Damage
|
|
<br />
|
|
<div>See page 16 for the complete table.</div>
|
|
<table>
|
|
<thead><tr><th>Strength</th><th>Thrust</th></tr></thead>
|
|
<tbody>
|
|
<tr><td>1</td><td>1d6-6</td></tr>
|
|
<tr><td>2</td><td>1d6-6</td></tr>
|
|
<tr><td>3</td><td>1d6-5</td></tr>
|
|
<tr><td>4</td><td>1d6-5</td></tr>
|
|
<tr><td>5</td><td>1d6-4</td></tr>
|
|
<tr><td>6</td><td>1d6-4</td></tr>
|
|
<tr><td>7</td><td>1d6-3</td></tr>
|
|
<tr><td>8</td><td>1d6-3</td></tr>
|
|
<tr><td>9</td><td>1d6-2</td></tr>
|
|
<tr><td>10</td><td>1d6-2</td></tr>
|
|
<tr><td>11</td><td>1d6-1</td></tr>
|
|
<tr><td>12</td><td>1d6-1</td></tr>
|
|
<tr><td>13</td><td>1d6</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<table>
|
|
<thead><tr><th>Strength</th><th>Thrust</th></tr></thead>
|
|
<tbody>
|
|
<tr><td>14</td><td>1d6</td></tr>
|
|
<tr><td>15</td><td>1d6+1</td></tr>
|
|
<tr><td>16</td><td>1d6+1</td></tr>
|
|
<tr><td>17</td><td>1d6+2</td></tr>
|
|
<tr><td>18</td><td>1d6+2</td></tr>
|
|
<tr><td>19</td><td>2d6-1</td></tr>
|
|
<tr><td>20</td><td>2d6-1</td></tr>
|
|
<tr><td>21</td><td>2d6</td></tr>
|
|
<tr><td>22</td><td>2d6</td></tr>
|
|
<tr><td>23</td><td>2d6+1</td></tr>
|
|
<tr><td>24</td><td>2d6+1</td></tr>
|
|
<tr><td>25</td><td>2d6+2</td></tr>
|
|
<tr><td>26</td><td>2d6+2</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_thrust" value="1d6-2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="/roll @{thrust}" name="roll_dmgThrust" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-swing-damage">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Swing</div>
|
|
<span class="sheet-tooltip">
|
|
Swing Damage
|
|
<br />
|
|
<div>See page 16 for the complete table.</div>
|
|
<table>
|
|
<thead><tr><th>Strength</th><th>Swing</th></tr></thead>
|
|
<tbody>
|
|
<tr><td>1</td><td>1d6-5</td></tr>
|
|
<tr><td>2</td><td>1d6-5</td></tr>
|
|
<tr><td>3</td><td>1d6-4</td></tr>
|
|
<tr><td>4</td><td>1d6-4</td></tr>
|
|
<tr><td>5</td><td>1d6-3</td></tr>
|
|
<tr><td>6</td><td>1d6-3</td></tr>
|
|
<tr><td>7</td><td>1d6-2</td></tr>
|
|
<tr><td>8</td><td>1d6-2</td></tr>
|
|
<tr><td>9</td><td>1d6-1</td></tr>
|
|
<tr><td>10</td><td>1d6</td></tr>
|
|
<tr><td>11</td><td>1d6+1</td></tr>
|
|
<tr><td>12</td><td>1d6+2</td></tr>
|
|
<tr><td>13</td><td>2d6-1</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<table>
|
|
<thead><tr><th>Strength</th><th>Swing</th></tr></thead>
|
|
<tbody>
|
|
<tr><td>14</td><td>2d6</td></tr>
|
|
<tr><td>15</td><td>2d6+1</td></tr>
|
|
<tr><td>16</td><td>2d6+2</td></tr>
|
|
<tr><td>17</td><td>3d6-1</td></tr>
|
|
<tr><td>18</td><td>3d6</td></tr>
|
|
<tr><td>19</td><td>3d6+1</td></tr>
|
|
<tr><td>20</td><td>3d6+2</td></tr>
|
|
<tr><td>21</td><td>4d6-1</td></tr>
|
|
<tr><td>22</td><td>4d6</td></tr>
|
|
<tr><td>23</td><td>4d6+1</td></tr>
|
|
<tr><td>24</td><td>4d6+2</td></tr>
|
|
<tr><td>25</td><td>5d6-1</td></tr>
|
|
<tr><td>26</td><td>5d6</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_swing" value="1d6" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="/roll @{swing}" name="roll_dmgSwing" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-attributes -->
|
|
|
|
<div class="sheet-box sheet-stats">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Stats</div>
|
|
<div class="sheet-cell sheet-col1">Value</div>
|
|
<div class="sheet-cell sheet-col2">Mod</div>
|
|
<div class="sheet-cell sheet-col3">Pts</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-row sheet-row-hit-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Max HP</div>
|
|
<span class="sheet-tooltip">
|
|
Hit Points
|
|
<br />
|
|
Based on Strength
|
|
<br />
|
|
2pts/level
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_hit_points_max" value="10" readonly="readonly" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_hit_points_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_hit_points_points" value="0" step="2" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-current-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Current HP</div>
|
|
<span class="sheet-tooltip">
|
|
Current Hit Points
|
|
<br />
|
|
When you're hit points are low, you take penalties.
|
|
<br />
|
|
See Page 419.
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td class="sheet-label">Reeling</td>
|
|
<td><input type="text" name="attr_hp_reeling" value="Less than [[(@{hit_points|max}) / 3]]" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Halve Move, Speed, and Dodge
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Verge of Collapse</td>
|
|
<td><input type="text" value="Less than 0" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Roll every turn @{VS} HT or fall unconscious.
|
|
<br />
|
|
- Your HT roll is at -1 for every 1xHP you are below 0.
|
|
<br />
|
|
- If you do nothing, and don't defend, you don't have to roll.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Verge of Death</td>
|
|
<td><input value="(@{hit_points|max}) * -1" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Roll once @{VS} HT to stay alive.
|
|
<br />
|
|
- If you fail by 1 or 2 you are mortally wounded, but not dead.
|
|
<br />
|
|
- Roll again every time you take injury that puts you below<br />
|
|
another multiple of your max HP.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Death</td>
|
|
<td><input value="(@{hit_points|max}) * -5" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- You are dead.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Total Destruction</td>
|
|
<td><input value="(@{hit_points|max}) * -10" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Your body has been destroyed beyond recognition or ressurection.
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_hit_points" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-fatigue-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Max FP</div>
|
|
<span class="sheet-tooltip">
|
|
Fatigue Points
|
|
<br />
|
|
Based on Health
|
|
<br />
|
|
3pts/level
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_fatigue_points_max" value="10" readonly="readonly" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_fatigue_points_mod" value="0" step="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_fatigue_points_points" value="0" step="3" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-current-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Current FP</div>
|
|
<span class="sheet-tooltip">
|
|
Current Fatigue Points
|
|
<br />
|
|
When you're fatigue points are low you take penalties.
|
|
<br />
|
|
See Page 426.
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td class="sheet-label">Tired</td>
|
|
<td><input type="text" name="attr_fp_tired" value="Less than [[(@{fatigue_points|max}) / 3]]" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Halve Move, ST, and Dodge
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Verge of Collapse</td>
|
|
<td><input type="text" value="Less than 0" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Further FP loss also comes off your HP.
|
|
<br />
|
|
- Roll against Will to do anything besides rest or talk.
|
|
<br />
|
|
- If you fail your Will roll, you fall unconscious.
|
|
<br />
|
|
- On a critical failure, roll @{VS} HT or suffer a heart attack.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="sheet-label">Unconscious</td>
|
|
<td><input value="[[-(@{fatigue_points|max})]]" disabled="disabled"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
- Immediately fall unconscious
|
|
<br />
|
|
- FP can't drop any lower, but you still lose HP.
|
|
<br />
|
|
- You regain consciousness at 0 FP
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_fatigue_points" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-energy-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Max ER</div>
|
|
<span class="sheet-tooltip">
|
|
Energy Reserve
|
|
<br />
|
|
Rules can vary depending on what<br />
|
|
magic system you are using.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_energy_points_max" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2"></div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_energy_points_points" value="0" step="3" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-current-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Current ER</div>
|
|
<span class="sheet-tooltip">
|
|
Current Energy Reserve
|
|
<br />
|
|
Rules can vary.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_energy_points" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<input type="text" name="attr_user_pool1_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_user_pool1_max" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2"></div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_user_pool1_points" value=0 />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-current-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Current</div>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_user_pool1" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<input type="text" name="attr_user_pool2_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_user_pool2_max" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2"></div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_user_pool2_points" value=0 />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-sub-row sheet-row-current-points">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Current</div>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_user_pool2" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- _____ _____ MISCELLENEOUS BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-miscelleneous">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Miscelleneous</div>
|
|
<div class="sheet-cell sheet-col1">Pts</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-row sheet-row-tech-level">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Tech Level</div>
|
|
<span class="sheet-tooltip">
|
|
This is the technology level that you character is familiar with.
|
|
<br />
|
|
It costs 5 points to raise this above or below the campaign"s<br />normal TL.
|
|
<div class="sheet-clearfix"></div>
|
|
<table style="text-align: left; widdiv: 100%;">
|
|
<tbody>
|
|
<tr><td>TL0</td><td>Stone Age (Prehistory and later). </td></tr>
|
|
<tr><td>TL1</td><td>Bronze Age (3500 B.C.+).</td></tr>
|
|
<tr><td>TL2</td><td>Iron Age (1200 B.C.+).</td></tr>
|
|
<tr><td>TL3</td><td>Medieval (600 A.D.+).</td></tr>
|
|
<tr><td>TL4</td><td>Age of Sail (1450+).</td></tr>
|
|
<tr><td>TL5</td><td>Industrial Revolution (1730+).</td></tr>
|
|
<tr><td>TL6</td><td>Mechanized Age (1880+).</td></tr>
|
|
<tr><td>TL7</td><td>Nuclear Age (1940+).</td></tr>
|
|
<tr><td>TL8</td><td>Digital Age (1980+).</td></tr>
|
|
<tr><td>TL9</td><td>Microtech Age (2025+?).</td></tr>
|
|
<tr><td>TL10</td><td>Robotic Age (2070+?).</td></tr>
|
|
<tr><td>TL11</td><td>Age of Exotic Matter.</td></tr>
|
|
<tr><td>TL12+</td><td>Whatever the GM likes!</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_tl" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" step="5" name="attr_tl_pts" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-appearance">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Appearance
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<select name="attr_appearance">
|
|
<option value="-24">Horrific (-6)</option>
|
|
<option value="-20">Monstrous (-5)</option>
|
|
<option value="-16">Hideous (-4)</option>
|
|
<option value="-8">Ugly (-2)</option>
|
|
<option value="-4">Unattractive (-1)</option>
|
|
<option value="0" selected="selected">Average</option>
|
|
<option value="4">Attractive (+1)</option>
|
|
<option value="12">Handsome (+4/2)</option>
|
|
<option value="16">Very Handsome (+6/2)</option>
|
|
<option value="20">Transcendent (+8/2)</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_appearance_pts" value="@{appearance}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-race">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Race
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_race" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-gender">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Gender
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_gender" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-size">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Size Modifier
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_size" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-hand">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Primary Hand
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_hand" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-miscelleneous -->
|
|
|
|
|
|
<!-- _____ _____ POINT SUMMARY BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-points">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">
|
|
Point Summary
|
|
</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-row sheet-row-attributes">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Attributes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_att_points" value="@{strength_points} + @{dexterity_points} + @{intelligence_points} + @{health_points} + @{perception_points} + @{vision_points} + @{hearing_points} + @{taste_smell_points} + @{touch_points} + @{willpower_points} + @{fear_check_points} + @{hit_points_points} + @{fatigue_points_points} + @{energy_points_points} + @{user_pool1_points} + @{user_pool2_points} + @{basic_speed_points} + @{basic_move_points} + @{striking_st_points} + @{lift_st_points}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-traits">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Traits
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_trait_points" readonly="readonly" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-skills">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Skills
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_skill_points" disabled="disabled" value="@{skills_points} + @{techniques_points} + @{spells_points}" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-other">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Other
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_misc_points" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-total sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Total
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_total_points" value="150" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-unspent sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Unspent
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_unspent_points" disabled="disabled" value="@{total_points} - (@{att_points} + @{trait_points} + @{skill_points} + @{misc_points})" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-points -->
|
|
|
|
|
|
<!-- _____ _____ LIFTING BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-lift">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Lifting and Moving</div>
|
|
<div class="sheet-cell sheet-col1">Weight</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-row sheet-row-simple-lift">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Simple Lift</div>
|
|
<span class="sheet-tooltip">
|
|
The weight the character can lift overhead<br />with one hand in one second.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_simple_lift" value="@{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-one-handed-lift">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">One-Handed Lift</div>
|
|
<span class="sheet-tooltip">
|
|
The weight the character can lift overhead<br />with one hand in two seconds.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_one_hand_lift" value="2 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-two-handed-lift">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Two-Handed Lift</div>
|
|
<span class="sheet-tooltip">
|
|
The weight the character can lift overhead<br />with both hands in four seconds.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_two_hand_lift" value="8 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-shove-knock-over">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Shove & Knock Over</div>
|
|
<span class="sheet-tooltip">
|
|
The weight of an object the character can<br />shove and knock over.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_shove_lift" value="12 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-running-shove-knock-over">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Running Shove & Knock Over</div>
|
|
<span class="sheet-tooltip">
|
|
The weight of an object the character can<br />shove and knock over with a running start.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_run_shove_lift" value="24 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-carry-on-back">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Carry On Back</div>
|
|
<span class="sheet-tooltip">
|
|
The weight the character can carry slung<br />over his/her back.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_carry_back_lift" value="15 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-shift-slightly">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<div class="sheet-popup">Shift Slightly</div>
|
|
<span class="sheet-tooltip">
|
|
The weight of an object that the character<br />can shift slightly on a floor.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_shift_lift" value="50 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-lift -->
|
|
|
|
|
|
<!-- _____ _____ ENCUMBERANCE BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-encumberance">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Encumberance</div>
|
|
<div class="sheet-cell sheet-col1">Max Load</div>
|
|
<div class="sheet-cell sheet-col2">Move</div>
|
|
<div class="sheet-cell sheet-col3">Dodge</div>
|
|
</div>
|
|
<div class="sheet-row sheet-row-encumberance-0">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
None (0)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_0" value="@{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_move_0" value="@{basic_move}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dodge_0" value="@{dodge} " disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-encumberance-1">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Light (1)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_1" value="2 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_move_1" value="floor((@{basic_move}) * 0.8)" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dodge_1" value="@{dodge} - 1" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-encumberance-2">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Medium (2)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_2" value="3 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_move_2" value="floor((@{basic_move}) * 0.6)" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dodge_2" value="@{dodge} - 2" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-encumberance-3">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Heavy (3)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_3" value="6 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_move_3" value="floor((@{basic_move}) * 0.4)" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dodge_3" value="@{dodge} - 3" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-encumberance-4">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
X-Heavy (4)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_lift_4" value="10 * @{basic_lift}" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_move_4" value="floor((@{basic_move}) * 0.2)" disabled="disabled" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dodge_4" value="@{dodge} - 4" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-load sheet-hr">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Current (<span name="attr_encumbrance_level" value=""></span>)
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_total_weight" value="" readonly="readonly" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_current_move" value="" readonly="readonly" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_current_dodge" value="" readonly="readonly" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-encumberance -->
|
|
|
|
</div> <!-- .sheet-tab1 -->
|
|
|
|
|
|
<!-- ===== ===== ===== ===== TRAITS TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab2">
|
|
|
|
<!-- _____ _____ LANGUAGE BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-language">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Languages</div>
|
|
<div class="sheet-cell sheet-col1">Spoken</div>
|
|
<div class="sheet-cell sheet-col2">Written</div>
|
|
<div class="sheet-cell sheet-col3">Pts</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_languages">
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<select name="attr_spoken">
|
|
<option value="3">Native</option>
|
|
<option value="2">Accented</option>
|
|
<option value="1.0">One-Way</option>
|
|
<option value="1">Broken</option>
|
|
<option value="0" selected>None</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<select name="attr_written">
|
|
<option value="3">Native</option>
|
|
<option value="2">Accented</option>
|
|
<option value="1.0">One-Way</option>
|
|
<option value="1">Broken</option>
|
|
<option value="0" selected>None</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_points" value="@{spoken} + @{written}" disabled="disabled" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_languages -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-language -->
|
|
|
|
|
|
<!-- _____ _____ CULTURE BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-culture">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Cultural Familiarities</div>
|
|
<div class="sheet-cell sheet-col1">Pts</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_cultures">
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_languages -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-language -->
|
|
|
|
<div class="sheet-clearfix"> </div>
|
|
|
|
|
|
<!-- _____ _____ ADVENTAGES BOX _____ _____ -->
|
|
<!-- this box uses the identifier "traits" for backwards compatibility -->
|
|
|
|
<div class="sheet-box sheet-traits">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Advantages</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">CR</div>
|
|
<span class="sheet-tooltip">
|
|
Control Rating
|
|
<br />
|
|
<table>
|
|
<tbody>
|
|
<tr><td>6 or less</td><td>2x</td></tr>
|
|
<tr><td>9 or less</td><td>1.5x</td></tr>
|
|
<tr><td>12 or less</td><td>1x</td></tr>
|
|
<tr><td>15 or less</td><td>0.5x</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">Pts</div>
|
|
<div class="sheet-cell sheet-col3">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_traits">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_control_rating" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_traits -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-traits -->
|
|
|
|
<div class="sheet-box sheet-disadvantages">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Disadvantages</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">CR</div>
|
|
<span class="sheet-tooltip">
|
|
Control Rating
|
|
<br />
|
|
<table>
|
|
<tbody>
|
|
<tr><td>6 or less</td><td>2x</td></tr>
|
|
<tr><td>9 or less</td><td>1.5x</td></tr>
|
|
<tr><td>12 or less</td><td>1x</td></tr>
|
|
<tr><td>15 or less</td><td>0.5x</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">Pts</div>
|
|
<div class="sheet-cell sheet-col3">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_disadvantages">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_control_rating" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_disadvantages -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-disadvantages -->
|
|
|
|
<div class="sheet-box sheet-racial">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Racial Traits</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">CR</div>
|
|
<span class="sheet-tooltip">
|
|
Control Rating
|
|
<br />
|
|
<table>
|
|
<tbody>
|
|
<tr><td>6 or less</td><td>2x</td></tr>
|
|
<tr><td>9 or less</td><td>1.5x</td></tr>
|
|
<tr><td>12 or less</td><td>1x</td></tr>
|
|
<tr><td>15 or less</td><td>0.5x</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">Pts</div>
|
|
<div class="sheet-cell sheet-col3">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_racial">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_control_rating" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_disadvantages -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-disadvantages -->
|
|
|
|
</div> <!-- .sheet-tab2 -->
|
|
|
|
|
|
<!-- ===== ===== ===== ===== SKILLS TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab3">
|
|
|
|
<!-- _____ _____ SKILLS BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-skills">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Skills</div>
|
|
<div class="sheet-cell sheet-col8"></div>
|
|
<div class="sheet-cell sheet-col1">TL</div>
|
|
<div class="sheet-cell sheet-col2">Level</div>
|
|
<div class="sheet-cell sheet-col3">Attr</div>
|
|
<div class="sheet-cell sheet-col4">Diff</div>
|
|
<div class="sheet-cell sheet-col5">Bonus</div>
|
|
<div class="sheet-cell sheet-col6">Pts</div>
|
|
<div class="sheet-cell sheet-col7">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_skills">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col8">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} @{name} [[@{level} + @{modifier}]]" name="roll_vsSL" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_tl" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_level" disabled="disabled" value="@{base} + @{difficulty} + @{bonus} + (floor((@{points} * 0.25) + 2) * ceil( ( ( @{points} - 2 ) + abs( @{points} - 2) ) / 256 ) + @{points} * abs( ceil( ( ( @{points} - 2 ) + abs( @{points} - 2) ) / 256 ) - 1 ))"/>
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<select name="attr_base">
|
|
<option value="@{strength}">ST</option>
|
|
<option value="@{dexterity}">DX</option>
|
|
<option value="@{intelligence}">IQ</option>
|
|
<option value="@{health}">HT</option>
|
|
<option value="@{willpower}">Will</option>
|
|
<option value="@{perception}">Per</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<select name="attr_difficulty">
|
|
<option value="-1">E</option>
|
|
<option value="-2">A</option>
|
|
<option value="-3">H</option>
|
|
<option value="-4">VH</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<input type="number" name="attr_bonus" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col7">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_skills -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-skills -->
|
|
|
|
|
|
<!-- _____ _____ TECHNIQUES BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-techniques">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Techniques</div>
|
|
<div class="sheet-cell sheet-col1">Parent</div>
|
|
<div class="sheet-cell sheet-col2">Min</div>
|
|
<div class="sheet-cell sheet-col3">Max</div>
|
|
<div class="sheet-cell sheet-col4">Level</div>
|
|
<div class="sheet-cell sheet-col5">Cost</div>
|
|
<div class="sheet-cell sheet-col6">Bonus</div>
|
|
<div class="sheet-cell sheet-col7">Pts</div>
|
|
<div class="sheet-cell sheet-col8">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_techniques">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_parent" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_min" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<input type="text" name="attr_level" disabled="disabled" value="@{min} + floor(@{points} / @{points_per_level}) + @{bonus}"/>
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<input type="number" name="attr_points_per_level" value="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<input type="number" name="attr_bonus" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col7">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col8">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_skills -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-skills -->
|
|
|
|
</div> <!-- .sheet-tab3 -->
|
|
|
|
|
|
<!-- ===== ===== ===== ===== COMBAT TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab4">
|
|
|
|
<!-- _____ _____ HIT LOCATION BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-damage-reduction">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header sheet-row-title">
|
|
<div class="sheet-cell sheet-col0">
|
|
Hit Location
|
|
</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Where</div>
|
|
<div class="sheet-cell sheet-col1">Penalty</div>
|
|
<div class="sheet-cell sheet-col2">DR</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-skull">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Skull
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-7
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_skull_dr_max" value="2" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_skull_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-face">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Face
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-5
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_face_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_face_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-eyes">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Eyes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-9
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_eyes_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_eyes_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-eyes">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Neck
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-5
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_neck_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_neck_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-r-arm">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Arms
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-2
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_arms_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_arms_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-hands">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Hands
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-4
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_hands_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_hands_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-torso">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Torso
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
0
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_torso_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_torso_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-vitals">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Vitals
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-3
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_vitals_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_vitals_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-groind">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Groin
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-3
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_groind_dr_max" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_groind_dr" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-l-leg">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Legs
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-2
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_legs_dr" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_legs_dr_max" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-feet">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Feet
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-4
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_feet_dr" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_feet_dr_max" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-r-foot">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Area
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
-
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_area_dr" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_area_dr_max" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<fieldset class="repeating_location">
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="hit_penalty" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_dr" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_dr_max" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset>
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-damage-reduction -->
|
|
|
|
|
|
<!-- _____ _____ ACTIVE DEFENSE BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-active-defense">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Active Defenses</div>
|
|
<div class="sheet-cell sheet-col1">Type</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<div class="sheet-popup">Info</div>
|
|
<span class="sheet-tooltip">
|
|
<strong>F</strong>: this is a fencing weapon.
|
|
<br />
|
|
<strong>U</strong>: the weapon is unbalanced. You cannot use it to<br />
|
|
parry if you've already attacked with it this turn<br /> (and vice versa).
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">Skill</div>
|
|
</div> <!-- .sheet-header -->
|
|
<div class="sheet-row sheet-row-stats sheet-row-standard">
|
|
<div class="sheet-cell sheet-col0">Dodge</div>
|
|
<div class="sheet-cell sheet-col1">Dodge</div>
|
|
<div class="sheet-cell sheet-col2"></div>
|
|
<div class="sheet-cell sheet-col3"><input type="text" name="attr_ad_dodge_skill" value="@{current_dodge}" disabled="disabled" /></div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Dodge [[@{current_dodge} + @{modifier}]]" name="roll_vsDodge" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-stats sheet-row-standard">
|
|
<div class="sheet-cell sheet-col0">Dodge and Retreat</div>
|
|
<div class="sheet-cell sheet-col1">Dodge</div>
|
|
<div class="sheet-cell sheet-col2"></div>
|
|
<div class="sheet-cell sheet-col3"><input type="text" name="attr_ad_dodge_skill" value="@{current_dodge} + 3" disabled="disabled" /></div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} Dodge and Retreat [[@{current_dodge} + @{modifier} + 3]]" name="roll_vsDodgeRetreat" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<fieldset class="repeating_defense">
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<select name="attr_type">
|
|
<option>Dodge</option>
|
|
<option>Parry</option>
|
|
<option>Block</option>
|
|
<option>Magic</option>
|
|
<option>Other</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_info" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_skill" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} @{name} [[@{skill} + @{modifier}]]" name="roll_vsSL" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_defense -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-active-defense -->
|
|
|
|
|
|
<!-- _____ _____ MELEE ATTACKS BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-melee-attacks">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Melee Attacks</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">Reach</div>
|
|
<span class="sheet-tooltip">
|
|
The distance in yards that the weapon can reach.
|
|
<br />
|
|
<strong>C</strong>: this weapon can be used in close combat.
|
|
<br />
|
|
<strong>*</strong>: the weapon is awkward, and requires a Ready<br />
|
|
maneuver to switch between different reaches.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<div class="sheet-popup">Damage</div>
|
|
<span class="sheet-tooltip">
|
|
<strong>Armour Divisor</strong>: A number in parenthesis after<br />
|
|
the damage - eg. (2) - is an armour divisor.<br />
|
|
Divide the target"s DR by this number.
|
|
<br />
|
|
<strong>ex</strong>: indicates the attack causes an explosion.<br />
|
|
See page 269.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<div class="sheet-popup">Type</div>
|
|
<span class="sheet-tooltip">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Abbr</th>
|
|
<th>Multiplier</th>
|
|
<th>Name</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>cut</td> <td>x1.5</td><td>Cutting</td></tr>
|
|
<tr><td>imp</td> <td>x2.0</td><td>Impaling</td></tr>
|
|
<tr><td>cr</td> <td>x1.0</td><td>Crushing</td></tr>
|
|
<tr><td>pi-</td> <td>x0.5</td><td>Small Piercing</td></tr>
|
|
<tr><td>pi</td> <td>x1.0</td><td>Piercing</td></tr>
|
|
<tr><td>pi+</td> <td>x1.5</td><td>Large Piercing</td></tr>
|
|
<tr><td>pi++</td><td>x2.0</td><td>Huge Piercing</td></tr>
|
|
<tr><td>aff</td> <td>-</td><td>Affliction</td></tr>
|
|
<tr><td>burn</td><td>x1.0</td><td>Burning</td></tr>
|
|
<tr><td>cor</td> <td>x1.0</td><td>Corrosion</td></tr>
|
|
<tr><td>fat</td> <td>x1.0</td><td>Fatigue</td></tr>
|
|
<tr><td>tox</td> <td>x1.0</td><td>Toxic</td></tr>
|
|
<tr><td>spec</td><td>-</td><td>Special</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">Skill</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_melee">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_reach" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_damage" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<select name="attr_type">
|
|
<option value="Cutting (cut)">cut</option>
|
|
<option value="Impaling (imp)">imp</option>
|
|
<option value="Crushing (cr)">cr</option>
|
|
<option value="Small Piercing (pi-)">pi-</option>
|
|
<option value="Piercing (pi)">pi</option>
|
|
<option value="Large Piercing (pi+)">pi+</option>
|
|
<option value="Huge Piercing (pi++)">pi++</option>
|
|
<option value="Affliction (aff)">aff</option>
|
|
<option value="Burning (burn)">burn</option>
|
|
<option value="Corrosion (cor)">cor</option>
|
|
<option value="Fatigue (fat)">fat</option>
|
|
<option value="Toxic (tox)">tox</option>
|
|
<option value="Special (spec)">spec</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<button type="roll" value="@{roll} [[@{damage}]] @{type} damage. (@{name})" name="roll_damage" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<input type="text" name="attr_skill" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} @{name} [[@{skill} + @{modifier}]]" name="roll_vsSL" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_melee -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-melee-attacks -->
|
|
|
|
|
|
<!-- _____ _____ RANGED ATTACKS BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-ranged-attacks">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Ranged Attacks</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">Range</div>
|
|
<span class="sheet-tooltip">
|
|
See page 269.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">Acc</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<div class="sheet-popup">RoF</div>
|
|
<span class="sheet-tooltip">
|
|
Rate of Fire
|
|
<br />
|
|
The maximum number of shots that can be fired in <br />
|
|
one turn (by a regular person).
|
|
<br />
|
|
The minimum number of shots is 1.
|
|
<br /><br />
|
|
<strong>!</strong>: minimum RoF is 1/4 of the maximum, rounded up.
|
|
<br />
|
|
<strong>mxn</strong>: fires the first number of shots, which each then split<br />
|
|
into the second number (eg. shotguns)
|
|
<br />
|
|
<strong>Jet</strong>: shoots a continuous stream of fliud. See page 106.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<div class="sheet-popup">Shots</div>
|
|
<span class="sheet-tooltip">
|
|
The number of shots that can be fired before the weapon must be reloaded.
|
|
<br />
|
|
The parenthetical number indicates the number of 1 second ready maneuvers<br />
|
|
required to reload the weapon.
|
|
<br />
|
|
<strong>T</strong>: the weapon is thrown. To "reload" it, pick it up.
|
|
<br />
|
|
<strong>i</strong>: you must load the shots individually. the listed time<br />
|
|
is for each shot.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">Bulk</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<div class="sheet-popup">Recoil</div>
|
|
<span class="sheet-tooltip">
|
|
When firing at RoF 2+, every full multiple of Rcl<br />
|
|
by which you make your attack roll means you score<br />
|
|
one extra hit, to a maximum number of hits equal<br />
|
|
to total shots fired. See page 373.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col7">Damage</div>
|
|
<div class="sheet-cell sheet-col8">
|
|
<div class="sheet-popup">Type</div>
|
|
<span class="sheet-tooltip">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Abbr</th>
|
|
<th>Multiplier</th>
|
|
<th>Name</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>cut</td> <td>x1.5</td><td>Cutting</td></tr>
|
|
<tr><td>imp</td> <td>x2.0</td><td>Impaling</td></tr>
|
|
<tr><td>cr</td> <td>x1.0</td><td>Crushing</td></tr>
|
|
<tr><td>pi-</td> <td>x0.5</td><td>Small Piercing</td></tr>
|
|
<tr><td>pi</td> <td>x1.0</td><td>Piercing</td></tr>
|
|
<tr><td>pi+</td> <td>x1.5</td><td>Large Piercing</td></tr>
|
|
<tr><td>pi++</td><td>x2.0</td><td>Huge Piercing</td></tr>
|
|
<tr><td>aff</td> <td>-</td><td>Affliction</td></tr>
|
|
<tr><td>burn</td><td>x1.0</td><td>Burning</td></tr>
|
|
<tr><td>cor</td> <td>x1.0</td><td>Corrosion</td></tr>
|
|
<tr><td>fat</td> <td>x1.0</td><td>Fatigue</td></tr>
|
|
<tr><td>tox</td> <td>x1.0</td><td>Toxic</td></tr>
|
|
<tr><td>spec</td><td>-</td><td>Special</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col10">Skill</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_ranged">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_range" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_acc" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="text" name="attr_rof" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<input type="text" name="attr_shots" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<input type="text" name="attr_bulk" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<input type="text" name="attr_recoil" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col7">
|
|
<input type="text" name="attr_damage" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col8">
|
|
<select name="attr_type">
|
|
<option value="Cutting (cut)">cut</option>
|
|
<option value="Impaling (imp)">imp</option>
|
|
<option value="Crushing (cr)">cr</option>
|
|
<option value="Small Piercing (pi-)">pi-</option>
|
|
<option value="Piercing (pi)">pi</option>
|
|
<option value="Large Piercing (pi+)">pi+</option>
|
|
<option value="Huge Piercing (pi++)">pi++</option>
|
|
<option value="Burning (burn)">burn</option>
|
|
<option value="Corrosion (cor)">cor</option>
|
|
<option value="Fatigue (fat)">fat</option>
|
|
<option value="Toxic (tox)">tox</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col9">
|
|
<button type="roll" value="@{roll} [[@{damage}]] @{type} damage. (For @{name})" name="roll_damage" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col10">
|
|
<input type="text" name="attr_skill" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col11">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} @{name} [[@{skill} + @{modifier}]]" name="roll_vsSL" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_ranged -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-ranged-attacks -->
|
|
|
|
</div> <!-- .sheet-tab4 -->
|
|
|
|
|
|
<!-- ===== ===== ===== ===== ITEMS TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab5">
|
|
|
|
<!-- _____ _____ QUICK INVENTORY BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-quick-inventory sheet-textarea">
|
|
<div class="sheet-label">Quick Inventory</div>
|
|
<textarea name="attr_quick_inventory"></textarea>
|
|
</div>
|
|
|
|
<!-- _____ _____ WEALTH BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-items">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Possessions</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<div class="sheet-popup">On</div>
|
|
<span class="sheet-tooltip">
|
|
Carried
|
|
<br />
|
|
Is the item being carried at the moment?
|
|
</span>
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">#</div>
|
|
<div class="sheet-cell sheet-col3">$</div>
|
|
<div class="sheet-cell sheet-col4">W</div>
|
|
<div class="sheet-cell sheet-col5">$+</div>
|
|
<div class="sheet-cell sheet-col6">W+</div>
|
|
</div>
|
|
<fieldset class="repeating_item">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input class="sheet-boolean" type="checkbox" name="attr_carried" value="1" checked />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="number" name="attr_count" value="1" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_cost" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<input type="number" name="attr_weight" value="0" step="any" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<span name="attr_costtotal" value="0" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<span name="attr_weighttotal" value="0" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_item -->
|
|
<div class="sheet-row sheet-row-totals">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Total Value:
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="number" name="attr_total_value" value="0" readonly="readonly" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2 sheet-label">
|
|
Total Weight:
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<input type="number" name="attr_total_weight" value="0" readonly="readonly" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-skills -->
|
|
|
|
</div> <!-- .sheet-tab5 -->
|
|
|
|
|
|
<!-- ===== ===== ===== ===== GRIMOIRE TAB ===== ===== ===== ===== -->
|
|
<div class="sheet-tab6">
|
|
|
|
<!-- _____ _____ SPELLS SETUP _____ _____ -->
|
|
<div class="sheet-box sheet-spells">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell"> Spells Based on: </div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<select name="attr_spell_base">
|
|
<option value="@{strength}">ST</option>
|
|
<option value="@{dexterity}">DX</option>
|
|
<option value="@{intelligence}" selected>IQ</option>
|
|
<option value="@{health}">HT</option>
|
|
<option value="@{willpower}">Will</option>
|
|
<option value="@{perception}">Per</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell"> Magery/PI/Bonus Level: </div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<input type="number" name="attr_spell_bonus" value="0" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- _____ _____ SPELLS BOX _____ _____ -->
|
|
|
|
<div class="sheet-box sheet-spells">
|
|
<div class="sheet-table">
|
|
<div class="sheet-header">
|
|
<div class="sheet-cell sheet-col0">Spell</div>
|
|
<div class="sheet-cell sheet-col1"></div>
|
|
<div class="sheet-cell sheet-col2">Level</div>
|
|
<div class="sheet-cell sheet-col3">Diff</div>
|
|
<div class="sheet-cell sheet-col4">Pts</div>
|
|
<div class="sheet-cell sheet-col5">Time</div>
|
|
<div class="sheet-cell sheet-col6">Duration</div>
|
|
<div class="sheet-cell sheet-col7">Cost</div>
|
|
<div class="sheet-cell sheet-col8">Maintain</div>
|
|
<div class="sheet-cell sheet-col9">Ref</div>
|
|
</div> <!-- .sheet-header -->
|
|
<fieldset class="repeating_spells">
|
|
<input class="sheet-toggle" type="checkbox" />
|
|
<span class="sheet-checkbox"></span>
|
|
<div class="sheet-row sheet-row-stats">
|
|
<div class="sheet-cell sheet-col0">
|
|
<input type="text" name="attr_name" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<button type="roll" value="@{roll} [[3d6]] @{VS} @{name} [[@{level} + @{modifier}]]" name="roll_vsSL" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col2">
|
|
<input type="text" name="attr_level" disabled="disabled"
|
|
value="@{spell_base} + @{difficulty} + @{spell_bonus} + (floor((@{points} * 0.25) + 2) * ceil( ( ( @{points} - 2 ) + abs( @{points} - 2) ) / 256 ) + @{points} * abs( ceil( ( ( @{points} - 2 ) + abs( @{points} - 2) ) / 256 ) - 1 ))"/>
|
|
</div>
|
|
<div class="sheet-cell sheet-col3">
|
|
<select name="attr_difficulty">
|
|
<option value="-3">H</option>
|
|
<option value="-4">VH</option>
|
|
</select>
|
|
</div>
|
|
<div class="sheet-cell sheet-col4">
|
|
<input type="number" name="attr_points" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col5">
|
|
<input type="text" name="attr_casttime" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col6">
|
|
<input type="text" name="attr_duration" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col7">
|
|
<input type="text" name="attr_cost" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col8">
|
|
<input type="text" name="attr_maintain" />
|
|
</div>
|
|
<div class="sheet-cell sheet-col9">
|
|
<input type="text" name="attr_ref" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
<div class="sheet-row sheet-row-details">
|
|
<div class="sheet-cell sheet-col0 sheet-label">
|
|
Notes
|
|
</div>
|
|
<div class="sheet-cell sheet-col1">
|
|
<input type="text" name="attr_notes" />
|
|
</div>
|
|
</div> <!-- .sheet-row -->
|
|
</fieldset> <!-- .repeating_spells -->
|
|
</div> <!-- .sheet-table -->
|
|
</div> <!-- .sheet-box .sheet-spells -->
|
|
</div> <!-- .sheet-tab6 -->
|
|
|
|
|
|
<div class="sheet-tab0">
|
|
<div class="sheet-options">
|
|
<div class="sheet-box">
|
|
<input type="radio" name="attr_modifier" value="0" checked="true" />
|
|
<span class="sheet-popup">No Modifier Prompt</span>
|
|
<span class="sheet-tooltip">
|
|
Rolls will be made immediately with no prompt.
|
|
</span>
|
|
<br /><input type="radio" name="attr_modifier" value="?{Modifier|0}" />
|
|
<span class="sheet-popup">Single Modifier Prompt</span>
|
|
<span class="sheet-tooltip">
|
|
Ask for a bonus or penalty to be added to dice rolls.
|
|
<br />
|
|
This will not affect damage rolls.
|
|
</span>
|
|
<br />
|
|
<input type="radio" name="attr_modifier" value="?{Modifier|0} + ?{Shock|0} + ?{Reeling or Staggered|0} + ?{Off-Hand|0} + ?{Familiarity|0}" />
|
|
<span class="sheet-popup">Extended Modifier Prompts</span>
|
|
<span class="sheet-tooltip">
|
|
Instead of a single modifier, rolls will ask for a series of modifiers,<br />
|
|
to remind you about potential bonuses/penalties.
|
|
<br />
|
|
This will not affect damage rolls.
|
|
</span>
|
|
</div>
|
|
<div class="sheet-box">
|
|
<input type="radio" name="attr_roll" value="@{character_name} rolls" checked="true" />
|
|
<span class="sheet-popup">Public Rolls</span>
|
|
<span class="sheet-tooltip">
|
|
All players will be able to see<br />
|
|
your skill level, roll and results.
|
|
</span>
|
|
<br />
|
|
<input type="radio" name="attr_roll" value="/w gm --l @{character_name} rolls" />
|
|
<span class="sheet-popup">Private Skill Levels</span>
|
|
<span class="sheet-tooltip">
|
|
Only the GM will be able to see<br />
|
|
your skill level, but all players<br />
|
|
will see the result.
|
|
<br />
|
|
This will not affect damage rolls.
|
|
</span>
|
|
<br />
|
|
<input type="radio" name="attr_roll" value="/w gm @{character_name} rolls" />
|
|
<span class="sheet-popup">Private Rolls</span>
|
|
<span class="sheet-tooltip">
|
|
Only the GM will see your skill<br />
|
|
level and the result.
|
|
<br />
|
|
This will not affect damage rolls.
|
|
</span>
|
|
</div>
|
|
<hr />
|
|
<div class="sheet-box">
|
|
<input type="radio" name="attr_mod_cascade" value="all" checked="true" />
|
|
<span class="sheet-popup">Mods to attributes increase all derived stats (including HP, FP)</span>
|
|
<br />
|
|
<input type="radio" name="attr_mod_cascade" value="some" />
|
|
<span class="sheet-popup">Mods to attributes increase most derived stats (not HP, FP)</span>
|
|
<br />
|
|
<input type="radio" name="attr_mod_cascade" value="none" />
|
|
<span class="sheet-popup">Mods to attributes do not increase derived stats</span>
|
|
</div>
|
|
|
|
<br />
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- ===== ===== ===== ===== LOGO ===== ===== ===== ===== -->
|
|
|
|
<div style="text-align: center; margin-top: 10px;">
|
|
<hr />
|
|
<img height="30px" src="http://www.sjgames.com/poweredbygurps/img/logo.gif" />
|
|
<hr />
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/worker">
|
|
|
|
var noop = function () {}; // do nothing.
|
|
|
|
var version = '1.3.2';
|
|
|
|
var modCascade = true;
|
|
var modCascadeAll = true;
|
|
|
|
/* Due to the change from auto-calc fields to helper scrips,
|
|
* I'm running a "on open" to set various fields. At some point
|
|
* in the future this might no longer be needed.
|
|
*/
|
|
on('sheet:opened', function() {
|
|
console.log('********* Sheet Opened *********');
|
|
getAttrs(['sheet_version', 'mod_cascade', 'modCascade', 'modCascadeAll'], function(v) {
|
|
if (v.modCascade && v.modCascadeAll) {
|
|
modCascade = v.modCascade;
|
|
modCascadeAll = v.modCascadeAll;
|
|
}
|
|
if (!v.sheet_version || v.sheet_version != version) {
|
|
// Set sheet version:
|
|
setAttrs({ sheet_version: version });
|
|
|
|
// initalize any empty fields in repeating sections since the default values were removed.
|
|
loadRepeating('repeating_languages', 'spoken', 0);
|
|
loadRepeating('repeating_languages', 'written', 0);
|
|
loadRepeating('repeating_skills', 'points', 1);
|
|
loadRepeating('repeating_cultures', 'points', 1);
|
|
loadRepeating('repeating_techniques', 'points', 1);
|
|
loadRepeating('repeating_spells', 'points', 1);
|
|
|
|
// initalize all calculated stats
|
|
resetAll(v.mod_cascade);
|
|
}
|
|
});
|
|
});
|
|
|
|
on('change:mod_cascade', function (e) {
|
|
getAttrs(['mod_cascade'], function (v) {
|
|
resetAll(v.mod_cascade);
|
|
})
|
|
});
|
|
|
|
function resetAll(mod_cascade) {
|
|
switch(mod_cascade) {
|
|
case 'all':
|
|
modCascade = true;
|
|
modCascadeAll = true;
|
|
break;
|
|
case 'some':
|
|
modCascade = true;
|
|
modCascadeAll = false;
|
|
break;
|
|
default:
|
|
modCascade = false;
|
|
modCascadeAll = false;
|
|
}
|
|
setAttrs({
|
|
modCascade: modCascade,
|
|
modCascadeAll: modCascadeAll
|
|
});
|
|
|
|
// After move, dodge, encumbrance, HP, and FP
|
|
var thenCurrentMoveDodge = _.after(5, function () {
|
|
updateMoveDodge();
|
|
});
|
|
|
|
// After DX and HT
|
|
var thenSpeedMoveDodge = _.after(2, function () {
|
|
updateBasicSpeed(function () {
|
|
// After Basic Speed...
|
|
updateBasicMove(thenCurrentMoveDodge);
|
|
updateDodge(thenCurrentMoveDodge);
|
|
});
|
|
});
|
|
|
|
// After Lift and weight...
|
|
var thenEncumbrance = _.after(2, function () {
|
|
updateEncLevel(thenCurrentMoveDodge);
|
|
});
|
|
|
|
sumRepeating('repeating_item', 'weighttotal', function (v) {
|
|
setAttrs({ total_weight: (v * 100) / 100 }, {silent: false}, thenEncumbrance);
|
|
});
|
|
|
|
// Update attributes, then secondary characteristics, and so on...
|
|
updateST(function () {
|
|
// After ST...
|
|
updateHP(thenCurrentMoveDodge);
|
|
updateLift(thenEncumbrance);
|
|
updateStrikingST();
|
|
});
|
|
updateDX(thenSpeedMoveDodge);
|
|
updateIQ(function () {
|
|
// After IQ...
|
|
updateWill();
|
|
updatePer(function () {
|
|
// After Per...
|
|
updateSense();
|
|
});
|
|
});
|
|
updateHT(function () {
|
|
updateFP(thenCurrentMoveDodge);
|
|
thenSpeedMoveDodge();
|
|
});
|
|
|
|
}
|
|
|
|
// Sum values, used in reduce
|
|
function getSum(total, num) {
|
|
return (+total || 0) + (+num || 0);
|
|
}
|
|
|
|
// function to sum a field from a repeating section
|
|
function sumRepeating(sectionName, fieldName, callback) {
|
|
getSectionIDs(sectionName, function (ids) {
|
|
if (ids.length === 0 ) {
|
|
callback(0);
|
|
return;
|
|
}
|
|
var fieldArray = [];
|
|
for (var i = 0; i < ids.length; i++) {
|
|
fieldArray.push(sectionName + '_' + ids[i] + '_' + fieldName);
|
|
}
|
|
getAttrs(fieldArray, function (fieldValues) {
|
|
var vals = Object.values(fieldValues);
|
|
vals.push(0);
|
|
var total = vals.reduce(getSum);
|
|
callback(total);
|
|
});
|
|
});
|
|
}
|
|
|
|
// load values of a repeating section
|
|
function loadRepeating(sectionName, fieldName, defaultValue) {
|
|
console.log('********* loadRepeating ' + sectionName + '.' + fieldName + '*********');
|
|
getSectionIDs(sectionName, function (ids) {
|
|
if (ids.length === 0 ) {
|
|
return;
|
|
}
|
|
var fieldArray = [];
|
|
var update = {};
|
|
for (var i = 0; i < ids.length; i++) {
|
|
var propName = sectionName + '_' + ids[i] + '_' + fieldName;
|
|
fieldArray.push(propName);
|
|
update[propName] = defaultValue;
|
|
}
|
|
getAttrs(fieldArray, function (fieldValues) {
|
|
Object.assign(update, fieldValues);
|
|
setAttrs(update);
|
|
});
|
|
});
|
|
}
|
|
|
|
// Strength Change
|
|
on('change:strength_points change:strength_mod', function (e) {
|
|
updateST();
|
|
});
|
|
// Update Strength
|
|
function updateST(callback) {
|
|
callback = callback || noop;
|
|
console.log('********* updateST *********');
|
|
getAttrs(['strength_points', 'strength_mod'], function(v) {
|
|
var base = 10 + ((+v.strength_points || 0) / 10 | 0);
|
|
var mod = +v.strength_mod || 0;
|
|
setAttrs({
|
|
strength_base: base,
|
|
strength: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Dexterity Change
|
|
on('change:dexterity_points change:dexterity_mod', function (e) {
|
|
updateDX();
|
|
});
|
|
// Update Dexterity
|
|
function updateDX(callback) {
|
|
callback = callback || noop;
|
|
console.log('********* updateDX *********');
|
|
getAttrs(['dexterity_points', 'dexterity_mod'], function(v) {
|
|
var base = 10 + ((+v.dexterity_points || 0) / 20 | 0);
|
|
var mod = +v.dexterity_mod || 0;
|
|
setAttrs({
|
|
dexterity_base: base,
|
|
dexterity: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Intelligence
|
|
on('change:intelligence_points change:intelligence_mod', function (e) {
|
|
updateIQ();
|
|
});
|
|
// Update Intelligence
|
|
function updateIQ(callback) {
|
|
callback = callback || noop;
|
|
console.log('********* updateIQ *********');
|
|
getAttrs(['intelligence_points', 'intelligence_mod'], function(v) {
|
|
var base = 10 + ((+v.intelligence_points || 0) / 20 | 0);
|
|
var mod = +v.intelligence_mod || 0;
|
|
setAttrs({
|
|
intelligence_base: base,
|
|
intelligence: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Health
|
|
on('change:health_points change:health_mod', function (e) {
|
|
updateHT();
|
|
});
|
|
// Update Health
|
|
function updateHT(callback) {
|
|
callback = callback || noop;
|
|
console.log('********* updateHT *********');
|
|
getAttrs(['health_points', 'health_mod'], function(v) {
|
|
var base = 10 + ((+v.health_points || 0) / 10 | 0);
|
|
var mod = +v.health_mod || 0;
|
|
setAttrs({
|
|
health_base: base,
|
|
health: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// HP
|
|
on('change:strength change:hit_points_points change:hit_points_mod', function (e) {
|
|
updateHP();
|
|
});
|
|
// Update HP
|
|
function updateHP(callback) {
|
|
console.log('********* updateHP *********');
|
|
callback = callback || noop;
|
|
getAttrs(['strength', 'strength_base', 'hit_points_points', 'hit_points_mod'], function(v) {
|
|
var base = (modCascadeAll ? +v.strength : +v.strength_base) +
|
|
((+v.hit_points_points || 0) / 2 | 0);
|
|
var mod = +v.hit_points_mod;
|
|
setAttrs({
|
|
hit_points_max: base + mod
|
|
}, {silent: false}, function () {
|
|
getAttrs(['hit_points'], function(v2) {
|
|
if (v2.hit_points == null) {
|
|
setAttrs({ hit_points: base }, {silent: false}, callback);
|
|
} else {
|
|
callback();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// FP
|
|
on('change:health change:fatigue_points_points change:fatigue_points_mod', function (e) {
|
|
updateFP();
|
|
});
|
|
// Update FP
|
|
function updateFP(callback) {
|
|
console.log('********* updateFP *********');
|
|
callback = callback || noop;
|
|
getAttrs(['health', 'health_base', 'fatigue_points_points', 'fatigue_points_mod'], function(v) {
|
|
var base = (modCascadeAll ? +v.health : +v.health_base) +
|
|
((+v.fatigue_points_points || 0) / 3 | 0);
|
|
var mod = +v.fatigue_points_mod;
|
|
setAttrs({
|
|
fatigue_points_max: base + mod
|
|
}, {silent: false}, function () {
|
|
getAttrs(['fatigue_points'], function(v2) {
|
|
if (v2.fatigue_points == null) {
|
|
setAttrs({ fatigue_points: base }, {silent: false}, callback);
|
|
} else {
|
|
callback();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// Perception
|
|
on('change:intelligence change:perception_points change:perception_mod', function (e) {
|
|
updatePer();
|
|
});
|
|
// Update Perception
|
|
function updatePer(callback) {
|
|
console.log('********* updatePer *********');
|
|
callback = callback || noop;
|
|
getAttrs(['intelligence', 'intelligence_base', 'perception_points', 'perception_mod'], function(v) {
|
|
var base = (modCascade ? +v.intelligence : +v.intelligence_base) +
|
|
((+v.perception_points || 0) / 5 | 0);
|
|
var mod = +v.perception_mod || 0;
|
|
setAttrs({
|
|
perception_base: base,
|
|
perception: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Vision, Hearing, Smell, Touch
|
|
on('change:perception change:vision_points change:vision_mod change:hearing_points change:hearing_mod change:taste_smell_points change:taste_smell_mod change:touch_points change:touch_mod', function (e) {
|
|
updateSense();
|
|
});
|
|
// Update Vision, Hearing, Smell, Touch
|
|
function updateSense() {
|
|
console.log('********* updateSense *********');
|
|
getAttrs(['perception', 'perception_base', 'vision_points', 'vision_mod', 'hearing_points', 'hearing_mod', 'taste_smell_points', 'taste_smell_mod', 'touch_points', 'touch_mod'], function(v) {
|
|
var base = (modCascade ? +v.perception : +v.perception_base);
|
|
var visionBase = base + ((+v.vision_points || 0) / 2 | 0);
|
|
var visionMod = +v.vision_mod || 0;
|
|
var hearingBase = base + ((+v.hearing_points || 0) / 2 | 0);
|
|
var hearingMod = +v.hearing_mod || 0;
|
|
var tasteSmellBase = base + ((+v.taste_smell_points || 0) / 2 | 0);
|
|
var tasteSmellMod = +v.taste_smell_mod || 0;
|
|
var touchBase = base + ((+v.touch_points || 0) / 2 | 0);
|
|
var touchMod = +v.touch_mod || 0;
|
|
setAttrs({
|
|
vision_base: visionBase,
|
|
vision: visionBase + visionMod,
|
|
hearing_base: hearingBase,
|
|
hearing: hearingBase + hearingMod,
|
|
taste_smell_base: tasteSmellBase,
|
|
taste_smell: tasteSmellBase + tasteSmellMod,
|
|
touch_base: touchBase,
|
|
touch: touchBase + touchMod
|
|
});
|
|
});
|
|
}
|
|
|
|
// Updage Willpower, Fear
|
|
on('change:intelligence change:willpower_points change:willpower_mod change:fear_check_points change:fear_check_mod', function (e) {
|
|
updateWill();
|
|
});
|
|
// Updage Willpower, Fear
|
|
function updateWill() {
|
|
console.log('********* updateWill *********');
|
|
getAttrs(['intelligence', 'intelligence_base', 'willpower_points', 'willpower_mod', 'fear_check_points', 'fear_check_mod'], function(v) {
|
|
var wBase = (modCascade ? +v.intelligence : +v.intelligence_base) +
|
|
((+v.willpower_points || 0) / 5 | 0);
|
|
var wMod = +v.willpower_mod || 0;
|
|
var fBase = wBase + (modCascade ? +wMod : 0) +
|
|
((+v.fear_check_points || 0) / 2 | 0);
|
|
var fMod = +v.fear_check_mod || 0;
|
|
setAttrs({
|
|
willpower_base: wBase,
|
|
willpower: wBase + wMod,
|
|
fear_check_base: fBase,
|
|
fear_check: fBase + fMod
|
|
});
|
|
});
|
|
}
|
|
|
|
// Speed
|
|
on('change:dexterity change:health change:basic_speed_points change:basic_speed_mod', function (e) {
|
|
updateBasicSpeed();
|
|
});
|
|
// Update Speed
|
|
function updateBasicSpeed(callback) {
|
|
console.log('********* updateBasicSpeed *********');
|
|
callback = callback || noop;
|
|
getAttrs(['dexterity', 'dexterity_base', 'health', 'health_base', 'basic_speed_points', 'basic_speed_mod'], function(v) {
|
|
var dx = (modCascade ? +v.dexterity : +v.dexterity_base);
|
|
var ht = (modCascade ? +v.health : +v.health_base);
|
|
var base = (dx + ht) / 4 + (((+v.basic_speed_points || 0) / 5 | 0) * 0.25);
|
|
var mod = +v.basic_speed_mod || 0;
|
|
setAttrs({
|
|
basic_speed_base: base,
|
|
basic_speed: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Move
|
|
on('change:basic_speed change:basic_move_points change:basic_move_mod', function (e) {
|
|
updateBasicMove();
|
|
});
|
|
// Update Move
|
|
function updateBasicMove(callback) {
|
|
console.log('********* updateBasicMove *********');
|
|
callback = callback || noop;
|
|
getAttrs(['basic_speed', 'basic_speed_base', 'basic_move_points', 'basic_move_mod'], function(v) {
|
|
var speed = (modCascade ? +v.basic_speed : +v.basic_speed_base);
|
|
var base = Math.floor(speed) + ((+v.basic_move_points || 0) / 5 | 0);
|
|
var mod = +v.basic_move_mod || 0;
|
|
setAttrs({
|
|
basic_move_base: base,
|
|
basic_move: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Dodge
|
|
on('change:basic_speed change:dodge_mod', function (e) {
|
|
updateDodge();
|
|
});
|
|
// Update Dodge
|
|
function updateDodge(callback) {
|
|
console.log('********* updateDodge *********');
|
|
callback = callback || noop;
|
|
getAttrs(['basic_speed', 'basic_speed_base', 'dodge_mod'], function(v) {
|
|
var speed = (modCascade ? +v.basic_speed : +v.basic_speed_base);
|
|
var base = Math.floor(speed) + 3;
|
|
var mod = +v.dodge_mod || 0;
|
|
setAttrs({
|
|
dodge_base: base,
|
|
dodge: base + mod
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Encumbered/injured move and dodge
|
|
on('change:encumbrance_level change:dodge change:basic_move change:hit_points change:fatigue_points', function (e) {
|
|
updateMoveDodge();
|
|
});
|
|
// Update encumbered/injured move and dodge
|
|
function updateMoveDodge() {
|
|
console.log('***** UPDATE MOVE/DODGE *****');
|
|
getAttrs(['encumbrance_level', 'dodge', 'basic_move', 'hit_points', 'hit_points_max', 'fatigue_points', 'fatigue_points_max', 'strength_base', 'strength_mod'], function(v) {
|
|
var dodge = +v.dodge;
|
|
var move = +v.basic_move;
|
|
var strength = +v.strength_base + +v.strength_mod;
|
|
if (v.encumbrance_level === 5) {
|
|
dodge = 0;
|
|
move = 0;
|
|
} else {
|
|
dodge = dodge - +v.encumbrance_level;
|
|
move = Math.floor(+v.basic_move * (1 - (0.2 * +v.encumbrance_level)));
|
|
dodge = dodge < 0 ? 0 : dodge;
|
|
move = move < 0 ? 0 : move;
|
|
}
|
|
if (+v.hit_points < +v.hit_points_max / 3) {
|
|
dodge = Math.ceil(dodge / 2);
|
|
move = Math.ceil(move / 2);
|
|
}
|
|
if (+v.fatigue_points < +v.fatigue_points_max / 3 ) {
|
|
dodge = Math.ceil(dodge / 2);
|
|
move = Math.ceil(move / 2);
|
|
strength = Math.ceil(strength / 2);
|
|
}
|
|
setAttrs({
|
|
current_move: move,
|
|
current_dodge: dodge,
|
|
strength: strength
|
|
});
|
|
});
|
|
}
|
|
|
|
// Lifting ST
|
|
on('change:strength change:lift_st_points change:lift_st_mod', function (e) {
|
|
updateLift();
|
|
});
|
|
// Update Lift
|
|
function updateLift(callback) {
|
|
console.log('********* updateLift *********');
|
|
callback = callback || noop;
|
|
getAttrs(['strength', 'strength_base', 'lift_st_points', 'lift_st_mod'], function(v) {
|
|
var base = (modCascade ? +v.strength : +v.strength_base) +
|
|
((+v.lift_st_points || 0) / 3 | 0);
|
|
var modded = base + +v.lift_st_mod;
|
|
var basicLift = (modded * modded) / 5;
|
|
if (basicLift >= 10) {
|
|
basicLift = Math.round(basicLift);
|
|
}
|
|
setAttrs({
|
|
lift_st_base: base,
|
|
lift_st: modded,
|
|
basic_lift: basicLift
|
|
}, {silent: false}, callback);
|
|
});
|
|
}
|
|
|
|
// Striking ST
|
|
on('change:strength change:striking_st_points change:striking_st_mod', function (e) {
|
|
updateStrikingST();
|
|
});
|
|
// Update Striking
|
|
function updateStrikingST() {
|
|
console.log('********* updateStrikingST *********');
|
|
getAttrs(['strength', 'strength_base', 'striking_st_points', 'striking_st_mod'], function(v) {
|
|
var base = (modCascade ? +v.strength : +v.strength_base) +
|
|
((+v.striking_st_points || 0) / 5 | 0);
|
|
var mod = +v.striking_st_mod;
|
|
setAttrs({
|
|
striking_st_base: base,
|
|
striking_st: base + mod
|
|
});
|
|
});
|
|
}
|
|
|
|
// Update the total cost of Languages
|
|
on('change:repeating_languages:spoken change:repeating_languages:written remove:repeating_languages', function (e) {
|
|
var total = 0;
|
|
var tally = _.after(2, function () {
|
|
setAttrs({ languages_points: total });
|
|
});
|
|
sumRepeating('repeating_languages', 'spoken', function(v) {
|
|
console.log('Spoken: ' + v);
|
|
total += +v;
|
|
tally();
|
|
});
|
|
sumRepeating('repeating_languages', 'written', function(v) {
|
|
console.log('Written: ' + v);
|
|
total += +v;
|
|
tally();
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Cultural Familiarities
|
|
on('change:repeating_cultures:points remove:repeating_cultures', function (e) {
|
|
sumRepeating('repeating_cultures', 'points', function(v) {
|
|
setAttrs({ cf_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Advantages
|
|
on('change:repeating_traits:points remove:repeating_traits', function (e) {
|
|
sumRepeating('repeating_traits', 'points', function(v) {
|
|
setAttrs({ advantages_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Disadvantages
|
|
on('change:repeating_disadvantages:points remove:repeating_disadvantages', function (e) {
|
|
sumRepeating('repeating_disadvantages', 'points', function(v) {
|
|
setAttrs({ disadvantages_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Racial Traits
|
|
on('change:repeating_racial:points remove:repeating_racial', function (e) {
|
|
sumRepeating('repeating_racial', 'points', function(v) {
|
|
setAttrs({ racial_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Skills
|
|
on('change:repeating_skills:points remove:repeating_skills', function (e) {
|
|
sumRepeating('repeating_skills', 'points', function(v) {
|
|
setAttrs({ skills_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Techniques
|
|
on('change:repeating_techniques:points remove:repeating_techniques', function (e) {
|
|
sumRepeating('repeating_techniques', 'points', function(v) {
|
|
setAttrs({ techniques_points: v });
|
|
});
|
|
});
|
|
|
|
// Update the total cost of Spells
|
|
on('change:repeating_spells:points remove:repeating_spells', function (e) {
|
|
sumRepeating('repeating_spells', 'points', function(v) {
|
|
setAttrs({ spells_points: v });
|
|
});
|
|
});
|
|
|
|
// Update Summery
|
|
on('change:tl_pts change:appearance change:languages_points change:cf_points change:advantages_points change:disadvantages_points change:racial_points', function (e) {
|
|
getAttrs(['tl_pts', 'appearance', 'languages_points', 'cf_points', 'advantages_points', 'disadvantages_points', 'racial_points'], function(v) {
|
|
var vals = Object.values(v);
|
|
vals.push(0);
|
|
setAttrs({ trait_points: vals.reduce(getSum) });
|
|
});
|
|
});
|
|
|
|
// Update the line total weight and cost
|
|
on('change:repeating_item:count change:repeating_item:cost change:repeating_item:carried change:repeating_item:weight', function (e) {
|
|
getAttrs(['repeating_item_count', 'repeating_item_cost', 'repeating_item_weight', 'repeating_item_carried'], function (item) {
|
|
setAttrs({
|
|
repeating_item_weighttotal: Math.round(item.repeating_item_count * item.repeating_item_weight * item.repeating_item_carried * 100) / 100,
|
|
repeating_item_costtotal: Math.round(item.repeating_item_count * item.repeating_item_cost * 100) / 100
|
|
});
|
|
});
|
|
});
|
|
|
|
// Update the total weight of all carried items.
|
|
on('change:repeating_item:weighttotal remove:repeating_item', function (e) {
|
|
sumRepeating('repeating_item', 'weighttotal', function(v) {
|
|
setAttrs({ total_weight: (v * 100) / 100 });
|
|
});
|
|
});
|
|
|
|
// Get Encumbrance Level:
|
|
on('change:total_weight change:basic_lift', function (e) {
|
|
updateEncLevel();
|
|
});
|
|
function updateEncLevel(callback) {
|
|
getAttrs(['basic_lift', 'total_weight'], function(v) {
|
|
callback = callback || noop;
|
|
var basicLift = +v.basic_lift;
|
|
var encumbranceLevel = Math.floor(v.total_weight / basicLift);
|
|
if (encumbranceLevel > 0 && (v.total_weight % basicLift) === 0) {
|
|
encumbranceLevel--;
|
|
}
|
|
if (encumbranceLevel >= 10) {
|
|
encumbranceLevel = 5;
|
|
} else if (encumbranceLevel >= 6) {
|
|
encumbranceLevel = 4;
|
|
} else if (encumbranceLevel >= 3) {
|
|
encumbranceLevel = 3;
|
|
}
|
|
setAttrs(
|
|
{ encumbrance_level: encumbranceLevel },
|
|
{silent: false},
|
|
callback
|
|
);
|
|
});
|
|
}
|
|
|
|
// Update the total cost of all items.
|
|
on('change:repeating_item:costtotal remove:repeating_item', function (e) {
|
|
sumRepeating('repeating_item', 'costtotal', function(v) {
|
|
setAttrs({ total_value: (v * 100) / 100 });
|
|
});
|
|
});
|
|
</script>
|