mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
Added Total Skill Ranks Tally & an automated roll for all Skills -Clicking on a Skill now does 1d20+Skill Total for that skill. -Fixed Text for Seafaring & Tactics
2484 lines
129 KiB
HTML
2484 lines
129 KiB
HTML
<!--
|
||
Logical Fantasy Gaming (LFG)
|
||
Official Roll20 Character Sheet
|
||
|
||
Author: Daniel Brillat
|
||
System: Logical Fantasy Gaming (LFG)
|
||
Repository: https://github.com/LogicalFantasyGaming/lfg-roll20-character-sheet
|
||
|
||
All game mechanics and system content © Logical Fantasy Gaming.
|
||
Character sheet code may be reused with attribution.
|
||
-->
|
||
|
||
<div class="lfg-sheet">
|
||
<!-- sheet359: Sheet header line with logo -->
|
||
<div class="lfg-sheet-titlebar">
|
||
<img class="lfg-sheet-logo" src="https://raw.githubusercontent.com/LogicalFantasyGaming/lfg-roll20-character-sheet/main/assets/lfg-logo-horizontal.png" alt="Logical Fantasy Gaming">
|
||
</div>
|
||
|
||
<!-- TAB STATE -->
|
||
<input id="tab-front" class="tabstate" type="radio" name="attr_sheetTab" value="front" checked>
|
||
<input id="tab-back" class="tabstate" type="radio" name="attr_sheetTab" value="back">
|
||
<input id="tab-magic" class="tabstate" type="radio" name="attr_sheetTab" value="magic">
|
||
|
||
<!-- TAB BUTTONS -->
|
||
<div class="tabs">
|
||
<label class="tabbtn" for="tab-front">Front</label>
|
||
<label class="tabbtn" for="tab-back">Back</label>
|
||
<label class="tabbtn" for="tab-magic">Spells & Magic</label>
|
||
</div>
|
||
|
||
<!-- ===================== FRONT ===================== -->
|
||
<div class="page page-front">
|
||
|
||
|
||
<!-- ===== Identity Strip (Paper-sheet order) ===== -->
|
||
<!-- Identity Strip Toggle -->
|
||
<input type="checkbox" class="id-toggle" name="attr_show_identity" id="show-identity">
|
||
<label class="id-toggle-btn" for="show-identity">Identity & XP</label>
|
||
|
||
<div class="identity-strip">
|
||
<div class="id-grid">
|
||
<!-- Row 1 -->
|
||
<div class="id-field id-name">
|
||
<label>Character Name</label>
|
||
<input type="text" name="attr_Name">
|
||
</div>
|
||
<div class="id-field id-class">
|
||
<label>Class</label>
|
||
<input type="text" name="attr_Class">
|
||
</div>
|
||
<div class="id-field id-level">
|
||
<label>Level</label>
|
||
<input type="text" name="attr_Level">
|
||
</div>
|
||
<div class="id-xp">
|
||
<label>Experience Points</label>
|
||
<input type="text" name="attr_XP" maxlength="4" class="xp4" placeholder="XP">
|
||
</div>
|
||
|
||
<!-- Row 2 -->
|
||
<div class="id-field id-age">
|
||
<label>Age</label>
|
||
<input type="text" name="attr_Age">
|
||
</div>
|
||
<div class="id-field id-sex">
|
||
<label>Sex</label>
|
||
<input type="text" name="attr_Sex">
|
||
</div>
|
||
<div class="id-field id-height">
|
||
<label>Height</label>
|
||
<input type="text" name="attr_Height">
|
||
</div>
|
||
<div class="id-field id-weight">
|
||
<label>Weight</label>
|
||
<input type="text" name="attr_Weight">
|
||
</div>
|
||
<div class="id-field id-hair">
|
||
<label>Hair</label>
|
||
<input type="text" name="attr_HairColor">
|
||
</div>
|
||
<div class="id-field id-eyes">
|
||
<label>Eyes</label>
|
||
<input type="text" name="attr_EyeColor">
|
||
</div>
|
||
<div class="id-field id-race">
|
||
<label>Race</label>
|
||
<input type="text" name="attr_Race">
|
||
</div>
|
||
|
||
<!-- Row 3 -->
|
||
<div class="id-field id-morality">
|
||
<label>Morality</label>
|
||
<input type="text" name="attr_Morality">
|
||
</div>
|
||
<div class="id-field id-motivation1">
|
||
<label>Motivation 1</label>
|
||
<input type="text" name="attr_Motivation_1">
|
||
</div>
|
||
<div class="id-field id-motivation2">
|
||
<label>Motivation 2</label>
|
||
<input type="text" name="attr_Motivation_2">
|
||
</div>
|
||
|
||
<div class="id-field id-moralitypoints">
|
||
<label>Morality Points</label>
|
||
<input type="text" name="attr_Morality_Points" class="mp3" placeholder="MP">
|
||
</div>
|
||
|
||
|
||
<div class="id-row id-row-vision">
|
||
<div class="id-field id-vision">
|
||
<label>Vision & Senses</label>
|
||
<input type="text" name="attr_Vision_Senses">
|
||
</div>
|
||
<div class="id-field id-languages">
|
||
<label>Languages</label>
|
||
<input type="text" name="attr_Languages">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- (Front retained from v2 baseline) -->
|
||
<div class="grid top-two">
|
||
<div class="card core-stats-card">
|
||
<div class="card-title">Core Stats</div>
|
||
|
||
<div class="ability-block">
|
||
<div class="ability-header">
|
||
<div></div>
|
||
<div class="ability-col-title">Ability<br>Score</div>
|
||
<div class="ability-col-title">Ability<br>Mod</div>
|
||
</div>
|
||
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">STR</div>
|
||
<input type="text" name="attr_STR" class="ability-box">
|
||
<input type="text" name="attr_STRMOD" class="ability-box" readonly>
|
||
</div>
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">DEX</div>
|
||
<input type="text" name="attr_DEX" class="ability-box">
|
||
<input type="text" name="attr_DEXMOD" class="ability-box" readonly>
|
||
</div>
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">CON</div>
|
||
<input type="text" name="attr_CON" class="ability-box">
|
||
<input type="text" name="attr_CONMOD" class="ability-box" readonly>
|
||
</div>
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">INT</div>
|
||
<input type="text" name="attr_INT" class="ability-box">
|
||
<input type="text" name="attr_INTMOD" class="ability-box" readonly>
|
||
</div>
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">WIS</div>
|
||
<input type="text" name="attr_WIS" class="ability-box">
|
||
<input type="text" name="attr_WISMOD" class="ability-box" readonly>
|
||
</div>
|
||
<div class="ability-row">
|
||
<div class="ability-abbr">CHA</div>
|
||
<input type="text" name="attr_CHA" class="ability-box">
|
||
<input type="text" name="attr_CHAMOD" class="ability-box" readonly>
|
||
</div>
|
||
|
||
<div class="ability-tokenline">
|
||
<div class="hp-drlabel">Confidence Tokens</div>
|
||
<input type="text" name="attr_Confidence_Tokens" class="hp-drbox ct-box">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="hp-panel">
|
||
<div class="hp-panel-title">Hit Points</div>
|
||
|
||
<div class="hp-grid">
|
||
<div class="hp-cell">
|
||
<div class="hp-label">Max HP</div>
|
||
<input type="text" name="attr_HP" class="hp-box">
|
||
</div>
|
||
|
||
<div class="hp-cell">
|
||
<div class="hp-label">Current</div>
|
||
<input type="text" name="attr_Current_HP" class="hp-box">
|
||
</div>
|
||
|
||
<div class="hp-cell">
|
||
<div class="hp-label hp-label-small">Injured<br>Threshold</div>
|
||
<input type="text" name="attr_Injured_Threshold" class="hp-box" readonly>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="hp-drgrid">
|
||
<div class="hp-drlabel">Damage Resistance (DR)</div>
|
||
<input type="text" name="attr_DR" class="hp-drbox" placeholder="DR">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="corestat-row hr-row" style="margin-top:6px; margin-bottom:-3px; ">
|
||
<div class="corestat-label">Hit Rating</div>
|
||
<input type="text" name="attr_HR" class="corestat-box" placeholder="HR">
|
||
</div>
|
||
<div class="corestat-row movespeed-row">
|
||
<div class="corestat-label">Move Speed</div>
|
||
<input type="text" name="attr_Move" class="corestat-box">
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="right-col">
|
||
<div class="card initiative-card">
|
||
<div class="initiative-row">
|
||
<div class="corestat-label corestat-label-initiative">Initiative
|
||
<div class="initiative-reactions">
|
||
<span class="initiative-reactions-label">Reactions:</span>
|
||
<input type="text" name="attr_Reactions" class="initiative-reactions-box">
|
||
</div>
|
||
</div>
|
||
<input type="text" name="attr_Initiative2" class="corestat-box">
|
||
|
||
<!-- Two-state toggle button (does not affect layout) -->
|
||
<input type="checkbox" id="init-ready-toggle" class="init-ready-toggle" name="attr_InitReadyToggle">
|
||
<label class="init-ready-btn" for="init-ready-toggle"></label>
|
||
</div>
|
||
|
||
<div class="sh sh-rating" style="margin:1px 0 8px 0; text-align:left;">
|
||
Initiative = IR+WISMod+DEXMod
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card armor-saves-card">
|
||
<div class="card-title">AC & Saves</div>
|
||
|
||
<!-- Armor -->
|
||
<div class="armor-top">
|
||
<div class="armor-class-label">Armor Class</div>
|
||
<input type="text" name="attr_AC" class="armor-box armor-box-main" placeholder="AC">
|
||
|
||
<div class="temp-ac-block">
|
||
<div class="temp-ac-label">Temp AC</div>
|
||
<input type="text" name="attr_Temp_AC" class="armor-box armor-box-temp">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="armor-lines">
|
||
<div class="armor-line">
|
||
<div class="armor-line-label">Flat-Footed AC</div>
|
||
<input type="text" name="attr_FFAC" class="armor-box armor-box-small" placeholder="FFAC">
|
||
</div>
|
||
|
||
<div class="armor-line">
|
||
<div class="armor-line-label">AC vs Critical</div>
|
||
<input type="text" name="attr_ACvsCrit" class="armor-box armor-box-small" placeholder="ACvC">
|
||
</div>
|
||
|
||
<div class="armor-line">
|
||
<div class="armor-line-label">Touch AC</div>
|
||
<input type="text" name="attr_TouchAC" class="armor-box armor-box-small" placeholder="Touch">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- AC formula helper -->
|
||
<div class="ac-formula">AC = 10+AR+DEXMod+Other Modifiers</div>
|
||
|
||
<!-- Conditions -->
|
||
<div class="conditions-panel">
|
||
<div class="conditions-label">Conditions / Effects:</div>
|
||
<textarea name="attr_Conditions___Effects" class="conditions-text"></textarea>
|
||
</div>
|
||
|
||
<!-- Saves -->
|
||
<div class="saving-title">Saving Throws</div>
|
||
|
||
<div class="saving-header">
|
||
<div></div>
|
||
<div class="sh sh-total">Total<br>Save</div>
|
||
<div></div>
|
||
<div class="sh sh-rating">Save<br>Rating</div>
|
||
<div></div>
|
||
<div class="sh sh-ability">Ability<br>Mod</div>
|
||
<div></div>
|
||
<div class="sh sh-other">Other<br>Bonus</div>
|
||
</div>
|
||
|
||
<div class="save-row">
|
||
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=FORT Save}} {{Save Total=[[1d20 + @{FORT}]]}}">FORT</button>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_FORT" class="save-box save-total" readonly>
|
||
</div>
|
||
<div class="save-eq">=</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_FORT_Save_Rating" class="save-box">
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_FORT_AbilityMod" class="save-box save-ability" placeholder="CON" readonly>
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_FORT_OtherBonus" class="save-box">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="save-row">
|
||
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=REF Save}} {{Save Total=[[1d20 + @{REF}]]}}">REF</button>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_REF" class="save-box save-total" readonly>
|
||
</div>
|
||
<div class="save-eq">=</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_REF_Save_Rating" class="save-box">
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_REF_AbilityMod" class="save-box save-ability" placeholder="DEX" readonly>
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_REF_OtherBonus" class="save-box">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="save-row">
|
||
<button type="roll" class="save-name save-roll-btn" value="&{template:default} {{name=WILL Save}} {{Save Total=[[1d20 + @{WILL}]]}}">WILL</button>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_WILL" class="save-box save-total" readonly>
|
||
</div>
|
||
<div class="save-eq">=</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_WILL_Save_Rating" class="save-box">
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_WILL_AbilityMod" class="save-box save-ability" placeholder="WIS" readonly>
|
||
</div>
|
||
<div class="save-plus">+</div>
|
||
<div class="save-cell">
|
||
<input type="text" name="attr_WILL_OtherBonus" class="save-box">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="card armor-defenses-card">
|
||
<input type="checkbox" class="ad-card-toggle" name="attr_ui_armor_defenses_open" id="ad-card-toggle-armor-defenses" checked>
|
||
<label class="card-title ad-card-toggle-btn" for="ad-card-toggle-armor-defenses">Armor & Defenses</label>
|
||
<div class="ad-card-collapsible">
|
||
<div class="ad-body">
|
||
|
||
<!-- ARMOR -->
|
||
<div class="ad-block ad-armor">
|
||
<div class="ad-block-title">Armor:<input type="text" name="attr_Equipped_Armor" class="ad-input ad-title-input" placeholder="Equipped Armor"></div>
|
||
|
||
<div class="ad-row ad-row-two">
|
||
<div class="ad-field ar-field">
|
||
<div class="ad-label red nowrap">Armor Rating:</div>
|
||
<input type="text" name="attr_Armor_Rating" class="ad-input ad-box ad-box-ar" placeholder="AR">
|
||
</div>
|
||
<div class="ad-field">
|
||
<div class="ad-label arvc-black">ARvC:</div>
|
||
<input type="text" name="attr_ARvC" class="ad-input ad-box ad-box-secondary" placeholder="ARvC">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="ad-row ad-armor-type">
|
||
<input type="text" name="attr_Armor_Type" class="ad-input ad-line armor-type-full" placeholder="Armor Type & Info (Simple / Light / Med / Heavy)">
|
||
</div>
|
||
|
||
|
||
<div class="ad-divider"></div>
|
||
|
||
<div class="ad-row ad-dr-row">
|
||
<div class="ad-label red">Damage Resistance:</div>
|
||
<input type="text" name="attr_Armor_DR" class="corestat-box" placeholder="DR">
|
||
</div>
|
||
|
||
<div class="ad-row ad-row-two">
|
||
<div class="ad-field">
|
||
<div class="ad-label">Time to Don:</div>
|
||
<input type="text" name="attr_Time_to_Don" class="ad-input ad-line" placeholder="">
|
||
</div>
|
||
<div class="ad-field">
|
||
<div class="ad-label">Weight:</div>
|
||
<input type="text" name="attr_Armor_Weight" class="ad-input ad-line" placeholder="">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="ad-row ad-details">
|
||
<label class="ad-check">
|
||
<span class="ad-check-label">Tattered (-1AC)</span>
|
||
<input type="checkbox" name="attr_Armor_Tattered">
|
||
</label>
|
||
|
||
<div class="ad-label red nowrap">Attack Penalty</div>
|
||
<input type="text" name="attr_Attack_Penalty" class="ad-input ad-box" placeholder="0">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- OTHER DEFENSES -->
|
||
<div class="ad-block ad-otherdef">
|
||
<div class="ad-table">
|
||
<div class="ad-th ad-th-left">Other Defenses</div>
|
||
<div class="ad-th ad-th-right">+ to AC</div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name1" class="ad-input ad-td-input" placeholder="DEX Mod"></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_DEX_Mod" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name2" class="ad-input ad-td-input" placeholder="Shield Rating (SR)"></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Shield_Rating" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name3" class="ad-input ad-td-input" placeholder="Natural Armor"></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Natural_Armor" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name4" class="ad-input ad-td-input" placeholder=""></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other1" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name5" class="ad-input ad-td-input" placeholder=""></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other2" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-td ad-td-left"><input type="text" name="attr_OD_Name6" class="ad-input ad-td-input" placeholder=""></div>
|
||
<div class="ad-td ad-td-right"><input type="text" name="attr_OD_Other3" class="ad-input ad-tablebox"></div>
|
||
|
||
<div class="ad-parry">
|
||
<div class="ad-parry-label">Active Parry Roll: <span class="ad-parry-fixed">1d20 +</span></div>
|
||
<input type="text" name="attr_Active_Parry_Bonus" class="corestat-box">
|
||
</div>
|
||
|
||
<div class="ad-resist">
|
||
<div class="ad-resist-label">Resistances:</div>
|
||
<textarea name="attr_Resistances" class="ad-textarea" rows="2"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="grid two">
|
||
<!-- REPEATING WEAPONS --> </div>
|
||
<div class="card weapons-card-full">
|
||
<div class="card-title">Weapons & Attacks</div>
|
||
|
||
<fieldset class="repeating_weapons">
|
||
<div class="weapon-table">
|
||
<!-- Row 1 -->
|
||
<div class="wt-left wt-row1">
|
||
<div class="wt-weaponline">
|
||
<input type="text" name="attr_weapon_label" class="wt-weaponlabelbox" placeholder="Weapon">
|
||
|
||
</div>
|
||
<div class="wt-handline">
|
||
<div class="wt-handlabel">Hand:</div>
|
||
<input type="text" name="attr_weapon_hand" class="wt-hand" placeholder="R/L">
|
||
</div>
|
||
<div class="wt-bigaction">
|
||
<div class="wt-biglabel">Big Action Attack:</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="wt-head wt-attackbonus"><div class="wt-headlabel">Attack Bonus</div><input type="text" name="attr_weapon_attack_top" class="wt-box wt-box-top" placeholder="Atk Bonus 1">
|
||
<button type="roll" class="wt-attackroll-btn" value="&{template:default} {{name=@{weapon_label} – Attack Roll}} {{Total=[[1d20 + @{weapon_attack_top}]]}}">Attack Roll</button></div>
|
||
<div class="wt-head wt-critical"><div class="wt-headlabel">Critical</div><input type="text" name="attr_weapon_critical_top" class="wt-box wt-box-top" placeholder="Critical 1"></div>
|
||
<div class="wt-head wt-damage"><div class="wt-headlabel">Damage</div><input type="text" name="attr_weapon_damage_top" class="wt-box wt-box-top" placeholder="Damage 1"></div>
|
||
|
||
<!-- Row 2 -->
|
||
<div class="wt-left wt-row2">
|
||
<input type="text" name="attr_weapon_otherattack" class="wt-otherattack" placeholder="Other Attack">
|
||
</div>
|
||
|
||
<div class="wt-cell">
|
||
<input type="text" name="attr_weapon_attack" class="wt-box wt-box-secondary" placeholder="Atk Bonus 2">
|
||
</div>
|
||
<div class="wt-cell">
|
||
<input type="text" name="attr_weapon_critical" class="wt-box wt-box-secondary" placeholder="Critical 2">
|
||
</div>
|
||
<div class="wt-cell">
|
||
<input type="text" name="attr_weapon_damage" class="wt-box wt-box-secondary" placeholder="Damage 2">
|
||
</div>
|
||
|
||
<!-- Row 3 -->
|
||
<div class="wt-otherinfo">
|
||
<div class="wt-otherlabel">Other Info:</div>
|
||
<textarea name="attr_weapon_notes" class="weapon-notes-text" placeholder="AP / Traits / Range / Ammo / Notes"></textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<hr>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="grid two">
|
||
<div class="card">
|
||
<div class="card-title">Feats & Abilities</div>
|
||
<div class="row"><textarea name="attr_Feat1" class="feats-notes-text" rows="1" placeholder="Feat 1"></textarea></div>
|
||
<div class="row"><textarea name="attr_Feat2" class="feats-notes-text" rows="1" placeholder="Feat 2"></textarea></div>
|
||
<div class="row"><textarea name="attr_Feat3" class="feats-notes-text" rows="1" placeholder="Feat 3"></textarea></div>
|
||
<div class="row"><textarea name="attr_Ability1" class="feats-notes-text" rows="1" placeholder="Ability 1"></textarea></div>
|
||
<div class="row"><textarea name="attr_Ability2" class="feats-notes-text" rows="1" placeholder="Ability 2"></textarea></div>
|
||
<div class="row"><textarea name="attr_Ability3" class="feats-notes-text" rows="1" placeholder="Ability 3"></textarea></div>
|
||
<!-- Optional extra rows -->
|
||
<fieldset class="repeating_featsabilities">
|
||
<div class="row"><textarea name="attr_name" class="feats-notes-text" rows="1" placeholder="Additional Feat / Ability"></textarea></div>
|
||
</fieldset>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-title">Story Notes</div>
|
||
<textarea name="attr_Note1"></textarea>
|
||
<textarea name="attr_Note2"></textarea>
|
||
<textarea name="attr_Note3"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ===================== BACK ===================== -->
|
||
<div class="page page-back">
|
||
<div class="grid two">
|
||
<div class="card skills-card">
|
||
<div class="card-title">Skills</div>
|
||
|
||
<div class="skill-header">
|
||
<div>Total</div>
|
||
<div>Skill</div>
|
||
<div>Ability Mod</div>
|
||
<div>Bonus1</div>
|
||
<div>Bonus2</div>
|
||
<div>RANKS</div>
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Acrobatics" placeholder="Total" readonly readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Acrobatics}} {{Skill Check=[[1d20 + @{Acrobatics}]]}}">Acrobatics*</button>
|
||
<input type="text" name="attr_Acrobatics_AbilityMod" placeholder="DEX" readonly>
|
||
<input type="text" name="attr_AcroBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_AcroBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Acro_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Bluff" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Bluff}} {{Skill Check=[[1d20 + @{Bluff}]]}}">Bluff</button>
|
||
<input type="text" name="attr_Bluff_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_BluffBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_BluffBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Bluff_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Climb" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Climb*}} {{Skill Check=[[1d20 + @{Climb}]]}}">Climb*</button>
|
||
<input type="text" name="attr_Climb_AbilityMod" placeholder="STR" readonly>
|
||
<input type="text" name="attr_ClimbBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_ClimbBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Climb_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Academia" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Academia)}} {{Skill Check=[[1d20 + @{Academia}]]}}">Craft (Academia)</button>
|
||
<input type="text" name="attr_Craft_Academia_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_AcademiaBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_AcademiaBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Academia_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Alchemy" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Alchemy)}} {{Skill Check=[[1d20 + @{Alchemy}]]}}">Craft (Alchemy)</button>
|
||
<input type="text" name="attr_Craft_Alchemy_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_AlchemyBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_AlchemyBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Alchemy_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Blacksmith" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Blacksmith)}} {{Skill Check=[[1d20 + @{Blacksmith}]]}}">Craft (Blacksmith)</button>
|
||
<input type="text" name="attr_Craft_Blacksmith_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_BlacksmithBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_BlacksmithBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Blacksmith_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Bow_Fletch" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Bow/Fletch)}} {{Skill Check=[[1d20 + @{Bow_Fletch}]]}}">Craft (Bow/Fletch)</button>
|
||
<input type="text" name="attr_Craft_Bow_Fletch_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_Bow_FletchBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_Bow_FletchBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Bow_Fletch_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Fine_Arts" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Fine Arts)*}} {{Skill Check=[[1d20 + @{Fine_Arts}]]}}">Craft (Fine Arts)*</button>
|
||
<input type="text" name="attr_Craft_Fine_Arts_AbilityMod" placeholder="IN/DX">
|
||
<input type="text" name="attr_FineArtsBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_FineArtsBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Fine_Arts_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Jeweler" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Jeweler)*}} {{Skill Check=[[1d20 + @{Jeweler}]]}}">Craft (Jeweler)*</button>
|
||
<input type="text" name="attr_Craft_Jeweler_AbilityMod" placeholder="IN/DX">
|
||
<input type="text" name="attr_JewelerBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_JewelerBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Jeweler_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Craft_Magic_Item" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Magic Item)}} {{Skill Check=[[1d20 + @{Craft_Magic_Item}]]}}">Craft (Magic Item)</button>
|
||
<input type="text" name="attr_Craft_Magic_Item_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_CraftMagicItemBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_CraftMagicItemBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Craft_Magic_Item_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Mechanisms" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Mechanisms)*}} {{Skill Check=[[1d20 + @{Mechanisms}]]}}">Craft (Mechanisms)*</button>
|
||
<input type="text" name="attr_Craft_Mechanisms_AbilityMod" placeholder="IN/DX">
|
||
<input type="text" name="attr_MechanismsBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_MechanismsBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Mechanisms_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Stonework" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Stonework)}} {{Skill Check=[[1d20 + @{Stonework}]]}}">Craft (Stonework)</button>
|
||
<input type="text" name="attr_Craft_Stonework_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_StoneworkBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_StoneworkBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Stonework_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Tailor" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Tailor)}} {{Skill Check=[[1d20 + @{Tailor}]]}}">Craft (Tailor)</button>
|
||
<input type="text" name="attr_Craft_Tailor_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_TailorBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_TailorBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Tailor_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Woodwork" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Craft (Woodwork)}} {{Skill Check=[[1d20 + @{Woodwork}]]}}">Craft (Woodwork)</button>
|
||
<input type="text" name="attr_Craft_Woodwork_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_WoodworkBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_WoodworkBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Woodwork_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Diplomacy" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Diplomacy}} {{Skill Check=[[1d20 + @{Diplomacy}]]}}">Diplomacy</button>
|
||
<input type="text" name="attr_Diplomacy_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_DiplomacyBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_DiplomacyBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Diplomacy_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Handle_Animal" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Handle Animal}} {{Skill Check=[[1d20 + @{Handle_Animal}]]}}">Handle Animal</button>
|
||
<input type="text" name="attr_Handle_Animal_AbilityMod" placeholder="WIS" readonly>
|
||
<input type="text" name="attr_HandleAnimalBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_HandleAnimalBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Handle_Animal_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Heal" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Heal}} {{Skill Check=[[1d20 + @{Heal}]]}}">Heal</button>
|
||
<input type="text" name="attr_Heal_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_HealBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_HealBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Heal_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Hide" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Hide}} {{Skill Check=[[1d20 + @{Hide}]]}}">Hide</button>
|
||
<input type="text" name="attr_Hide_AbilityMod" placeholder="IN/WI">
|
||
<input type="text" name="attr_HideBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_HideBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Hide_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Intimidate" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Intimidate}} {{Skill Check=[[1d20 + @{Intimidate}]]}}">Intimidate</button>
|
||
<input type="text" name="attr_Intimidate_AbilityMod" placeholder="CH/ST">
|
||
<input type="text" name="attr_IntimidateBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_IntimidateBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Intimidate_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_JumpandSprint" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Jump & Sprint*}} {{Skill Check=[[1d20 + @{JumpandSprint}]]}}">Jump & Sprint*</button>
|
||
<input type="text" name="attr_Jump_and_Sprint_AbilityMod" placeholder="STR" readonly>
|
||
<input type="text" name="attr_JumpandSprintBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_JumpandSprintBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Jump_and_Sprint_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Arcana" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Arcana)}} {{Skill Check=[[1d20 + @{Arcana}]]}}">Knowledge (Arcana)</button>
|
||
<input type="text" name="attr_Knowledge_Arcana_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_ArcanaBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_ArcanaBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Arcana_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Civilization" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Civilization)}} {{Skill Check=[[1d20 + @{Civilization}]]}}">Knowledge (Civilization)</button>
|
||
<input type="text" name="attr_Knowledge_Civilization_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_CivilizationBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_CivilizationBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Civilization_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Dungeons" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Dungeons)}} {{Skill Check=[[1d20 + @{Dungeons}]]}}">Knowledge (Dungeons)</button>
|
||
<input type="text" name="attr_Knowledge_Dungeons_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_DungeonsBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_DungeonsBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Dungeons_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Nature" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Nature)}} {{Skill Check=[[1d20 + @{Nature}]]}}">Knowledge (Nature)</button>
|
||
<input type="text" name="attr_Knowledge_Nature_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_NatureBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_NatureBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Nature_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Planes" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Planes)}} {{Skill Check=[[1d20 + @{Planes}]]}}">Knowledge (Planes)</button>
|
||
<input type="text" name="attr_Knowledge_Planes_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_PlanesBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_PlanesBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Planes_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Religion" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Religion)}} {{Skill Check=[[1d20 + @{Religion}]]}}">Knowledge (Religion)</button>
|
||
<input type="text" name="attr_Knowledge_Religion_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_ReligionBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_ReligionBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Religion_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Linguistics" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Linguistics}} {{Skill Check=[[1d20 + @{Linguistics}]]}}">Linguistics</button>
|
||
<input type="text" name="attr_Linguistics_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_LinguisticsBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_LinguisticsBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Linguistics_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Listen" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Listen}} {{Skill Check=[[1d20 + @{Listen}]]}}">Listen</button>
|
||
<input type="text" name="attr_Listen_AbilityMod" placeholder="WIS" readonly>
|
||
<input type="text" name="attr_ListenBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_ListenBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Listen_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Move_Silently" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Move Silently*}} {{Skill Check=[[1d20 + @{Move_Silently}]]}}">Move Silently*</button>
|
||
<input type="text" name="attr_Move_Silently_AbilityMod" placeholder="DEX" readonly>
|
||
<input type="text" name="attr_MoveSilentlyBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_MoveSilentlyBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Move_Silently_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Comedy_and_Stories" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perform (Comedy & Stories)}} {{Skill Check=[[1d20 + @{Comedy_and_Stories}]]}}">Perform (Comedy & Stories)</button>
|
||
<input type="text" name="attr_Perform_Comedy_and_Stories_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_ComedyBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_ComedyBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Comedy_and_Stories_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Dance_and_Motion" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perform (Dance & Motion)*}} {{Skill Check=[[1d20 + @{Dance_and_Motion}]]}}">Perform (Dance & Motion)*</button>
|
||
<input type="text" name="attr_Perform_Dance_and_Motion_AbilityMod" placeholder="DEX" readonly>
|
||
<input type="text" name="attr_DanceBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_DanceBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Dance_and_Motion_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Music_Aerobic" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perform (Music - Aerobic)}} {{Skill Check=[[1d20 + @{Music_Aerobic}]]}}">Perform (Music - Aerobic)</button>
|
||
<input type="text" name="attr_Perform_Music___Aerobic_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_MusicAerobicBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_MusicAerobicBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Music_Aerobic_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Music_Manual" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perform (Music - Manual)}} {{Skill Check=[[1d20 + @{Music_Manual}]]}}">Perform (Music - Manual)</button>
|
||
<input type="text" name="attr_Perform_Music___Manual_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_MusicManualBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_MusicManualBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Music_Manual_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Song_and_Poerty" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perform (Song & Poetry)}} {{Skill Check=[[1d20 + @{Song_and_Poerty}]]}}">Perform (Song & Poetry)</button>
|
||
<input type="text" name="attr_Perform_Song_and_Poetry_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_SongPoetryBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SongPoetryBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Song_and_Poetry_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Perseverance" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Perseverance*}} {{Skill Check=[[1d20 + @{Perseverance}]]}}">Perseverance*</button>
|
||
<input type="text" name="attr_Perseverance_AbilityMod" placeholder="CO/WI">
|
||
<input type="text" name="attr_PerseveranceBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_PerseveranceBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Perseverance_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Ride" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Ride*}} {{Skill Check=[[1d20 + @{Ride}]]}}">Ride*</button>
|
||
<input type="text" name="attr_Ride_AbilityMod" placeholder="DEX" readonly>
|
||
<input type="text" name="attr_RideBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_RideBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Ride_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Seafaring" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Seafaring}} {{Skill Check=[[1d20 + @{Seafaring}]]}}">Seafaring</button>
|
||
<input type="text" name="attr_Knowledge_Seafaring_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_SeafaringBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SeafaringBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Seafaring_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Sense_Motive" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Sense Motive}} {{Skill Check=[[1d20 + @{Sense_Motive}]]}}">Sense Motive</button>
|
||
<input type="text" name="attr_Sense_Motive_AbilityMod" placeholder="WIS" readonly>
|
||
<input type="text" name="attr_SenseMotiveBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SenseMotiveBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Sense_Motive_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Sleight_of_Hand" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Sleight of Hand*}} {{Skill Check=[[1d20 + @{Sleight_of_Hand}]]}}">Sleight of Hand*</button>
|
||
<input type="text" name="attr_Sleight_of_Hand_AbilityMod" placeholder="DEX" readonly>
|
||
<input type="text" name="attr_SleightofHandBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SleightofHandBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Sleight_of_Hand_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Spot" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Spot}} {{Skill Check=[[1d20 + @{Spot}]]}}">Spot</button>
|
||
<input type="text" name="attr_Spot_AbilityMod" placeholder="WIS" readonly>
|
||
<input type="text" name="attr_SpotBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SpotBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Spot_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Survival" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Survival}} {{Skill Check=[[1d20 + @{Survival}]]}}">Survival</button>
|
||
<input type="text" name="attr_Survival_AbilityMod" placeholder="WIS" readonly>
|
||
<input type="text" name="attr_SurvivalBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SurvivalBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Survival_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Swim" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Swim*}} {{Skill Check=[[1d20 + @{Swim}]]}}">Swim*</button>
|
||
<input type="text" name="attr_Swim_AbilityMod" placeholder="STR" readonly>
|
||
<input type="text" name="attr_SwimBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_SwimBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Swim_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Tactics" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Knowledge (Tactics)}} {{Skill Check=[[1d20 + @{Tactics}]]}}">Knowledge (Tactics)</button>
|
||
<input type="text" name="attr_Knowledge_Tactics_AbilityMod" placeholder="INT" readonly>
|
||
<input type="text" name="attr_TacticsBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_TacticsBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Tactics_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Under_Cover" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Under Cover}} {{Skill Check=[[1d20 + @{Under_Cover}]]}}">Under Cover</button>
|
||
<input type="text" name="attr_Under_Cover_AbilityMod" placeholder="CHA" readonly>
|
||
<input type="text" name="attr_UnderCoverBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_UnderCoverBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Under_Cover_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
|
||
<div class="skill-row">
|
||
<input type="text" name="attr_Wrestling" placeholder="Total" readonly>
|
||
<button type="roll" class="skill-name skill-roll-btn" value="&{template:default} {{name=Wrestling}} {{Skill Check=[[1d20 + @{Wrestling}]]}}">Wrestling</button>
|
||
<input type="text" name="attr_Wrestling_AbilityMod" placeholder="STR" readonly>
|
||
<input type="text" name="attr_WrestlingBonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_WrestlingBonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_Wrestling_Ranks" placeholder="RANKS">
|
||
</div>
|
||
|
||
<div class="skills-physnote">* indicates Physical Skills affected by your Mobility Penalty</div>
|
||
|
||
<div class="row skills-totalranks">
|
||
<label>Total Skill Ranks</label>
|
||
<input type="text" name="attr_Total_Skill_Ranks" placeholder="Total Skill Ranks" readonly>
|
||
</div>
|
||
<hr>
|
||
|
||
<div class="card-title">Custom Skills</div>
|
||
|
||
<div class="skill-header skill-header-custom">
|
||
<div>Total</div>
|
||
<div>Skill</div>
|
||
<div>Ability Mod</div>
|
||
<div>Bonus1</div>
|
||
<div>Bonus2</div>
|
||
<div>RANKS</div>
|
||
</div>
|
||
|
||
<fieldset class="repeating_customskills">
|
||
<div class="skill-row skill-row-custom">
|
||
<input type="text" name="attr_total" placeholder="Total" readonly>
|
||
<input type="text" name="attr_name" placeholder="Skill Name">
|
||
<input type="text" name="attr_abilitymod" placeholder="Ability Mod">
|
||
<input type="text" name="attr_bonus1" placeholder="Bonus1">
|
||
<input type="text" name="attr_bonus2" placeholder="Bonus2">
|
||
<input type="text" name="attr_ranks" placeholder="RANKS">
|
||
</div>
|
||
</fieldset>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="card gear-equipment">
|
||
<div class="card-title">Gear & Equipment</div>
|
||
|
||
<div class="subcard gold-money-subcard">
|
||
<div class="subcard-title">Gold & Money</div>
|
||
|
||
<div class="equip-grid">
|
||
<div class="equip-row equip-header-row">
|
||
<div class="equip-col-header">Gems & Valuables</div>
|
||
<div class="equip-col-header">Gold</div>
|
||
</div>
|
||
|
||
<div class="equip-sep"></div>
|
||
|
||
<div class="equip-row">
|
||
<textarea type="text" name="attr_GemsValuables" placeholder="Gems & Valuables" class="gm-gems-text" rows="1" placeholder="Gems & Valuables"></textarea>
|
||
<input type="text" name="attr_Gold" placeholder="Gold (GP)">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="subcard equip-slots">
|
||
<div class="subcard-title">Equip Slots</div>
|
||
<div class="equip-grid">
|
||
|
||
<div class="equip-row equip-header-row">
|
||
<div class="equip-label"></div>
|
||
<div class="equip-col-header">Equipped Item</div>
|
||
<div class="equip-col-header">Weight</div>
|
||
</div>
|
||
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Head</div>
|
||
<input type="text" name="attr_Head_Equip" placeholder="Head Equip">
|
||
<input type="text" name="attr_HeadWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Face</div>
|
||
<input type="text" name="attr_Face_Equip" placeholder="Face Equip">
|
||
<input type="text" name="attr_FaceWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Neck</div>
|
||
<input type="text" name="attr_Neck_Equip" placeholder="Neck Equip">
|
||
<input type="text" name="attr_NeckWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Torso-Under</div>
|
||
<input type="text" name="attr_Torso_Under_Equip" placeholder="Torso-Under Equip">
|
||
<input type="text" name="attr_TorsoUnderWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Torso-Over</div>
|
||
<input type="text" name="attr_Torso_Over_Equip" placeholder="Torso-Over Equip">
|
||
<input type="text" name="attr_TorsoOverWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Waist</div>
|
||
<input type="text" name="attr_Waist_Equip" placeholder="Waist Equip">
|
||
<input type="text" name="attr_WaistWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Shoulders</div>
|
||
<input type="text" name="attr_Shoulders_Equip" placeholder="Shoulders Equip">
|
||
<input type="text" name="attr_ShouldersWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Arm/Wrist</div>
|
||
<input type="text" name="attr_Arm_Wrist_Equip" placeholder="Arm/Wrist Equip">
|
||
<input type="text" name="attr_ArmsWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Hands</div>
|
||
<input type="text" name="attr_Hands_Equip" placeholder="Hands Equip">
|
||
<input type="text" name="attr_HandsWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Ring 1</div>
|
||
<input type="text" name="attr_Ring_1_Equip" placeholder="Ring 1 Equip">
|
||
<input type="text" name="attr_RingWeight1" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Ring 2</div>
|
||
<input type="text" name="attr_Ring_2_Equip" placeholder="Ring 2 Equip">
|
||
<input type="text" name="attr_RingWeight2" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Legs</div>
|
||
<input type="text" name="attr_Legs_Equip" placeholder="Legs Equip">
|
||
<input type="text" name="attr_LegsWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Feet</div>
|
||
<input type="text" name="attr_Feet_Equip" placeholder="Feet Equip">
|
||
<input type="text" name="attr_FeetWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Accessory</div>
|
||
<input type="text" name="attr_Accessory_Equip" placeholder="Accessory Equip">
|
||
<input type="text" name="attr_AccessoryWeight" placeholder="Wt">
|
||
</div>
|
||
|
||
|
||
<div class="equip-row">
|
||
<div class="equip-label">Carried Item 1</div>
|
||
<input type="text" name="attr_CarriedItem1_Equip" placeholder="Carried Item 1">
|
||
<input type="text" name="attr_CarriedItem1_Equip_Wt" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-row">
|
||
<div class="equip-label">Carried Item 2</div>
|
||
<input type="text" name="attr_CarriedItem2_Equip" placeholder="Carried Item 2">
|
||
<input type="text" name="attr_CarriedItem2_Equip_Wt" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-sep"></div>
|
||
|
||
<div class="equip-row equip-total-row">
|
||
<div class="equip-label">TOTAL EQUIPPED WEIGHT</div>
|
||
<input type="text" name="attr_TotalEquippedWeight" placeholder="TOTAL EQUIPPED WEIGHT" class="equip-total-weight" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="subcard backpack-test">
|
||
<div class="subcard-title">Backpack</div>
|
||
<div class="equip-grid">
|
||
<div class="equip-row equip-header-row">
|
||
<div class="equip-col-header">Backpack Item</div>
|
||
<div class="equip-col-header">Weight</div>
|
||
</div>
|
||
<div class="equip-sep"></div>
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_BackpackTest_Item_1" placeholder="Backpack Item 1">
|
||
<input type="text" name="attr_BackpackTest_Wt_1" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_BackpackTest_Item_2" placeholder="Backpack Item 2">
|
||
<input type="text" name="attr_BackpackTest_Wt_2" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_BackpackTest_Item_3" placeholder="Backpack Item 3">
|
||
<input type="text" name="attr_BackpackTest_Wt_3" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_BackpackTest_Item_4" placeholder="Backpack Item 4">
|
||
<input type="text" name="attr_BackpackTest_Wt_4" placeholder="Wt">
|
||
</div>
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_BackpackTest_Item_5" placeholder="Backpack Item 5">
|
||
<input type="text" name="attr_BackpackTest_Wt_5" placeholder="Wt">
|
||
</div>
|
||
|
||
|
||
<!-- Additional Backpack rows (Roll20 repeating section) -->
|
||
<fieldset class="repeating_backpack">
|
||
<div class="equip-row">
|
||
<input type="text" name="attr_item" placeholder="Backpack Item">
|
||
<input type="text" name="attr_wt" placeholder="Wt">
|
||
</div>
|
||
</fieldset>
|
||
<div class="equip-sep"></div>
|
||
<div class="equip-row backpack-total-row">
|
||
<div class="equip-label backpack-total-label">TOTAL BACKPACK WEIGHT</div>
|
||
<input type="text" name="attr_BackpackTest_TotalWeight" placeholder="" class="backpack-total-weight" readonly>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="inv-sheaths">
|
||
|
||
|
||
|
||
|
||
<div class="subcard boot-sheath">
|
||
<div class="subcard-title">Sheaths & Bandoliers</div>
|
||
<div class="inv-grid inv-cols-1">
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BootSheathSlot1" placeholder="Left Sheath">
|
||
<input type="text" name="attr_SheathWeight1" placeholder="Wt 1">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BootSheathSlot2" placeholder="Right Sheath">
|
||
<input type="text" name="attr_SheathWeight2" placeholder="Wt 2">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BootSheathSlot3" placeholder="Back/Bandolier 1">
|
||
<input type="text" name="attr_SheathWeight3" placeholder="Wt 3">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BootSheathSlot4" placeholder="Back/Bandolier 2">
|
||
<input type="text" name="attr_SheathWeight4" placeholder="Wt 4">
|
||
</div>
|
||
|
||
<fieldset class="repeating_sheathsbandoliers">
|
||
<div class="inv-row">
|
||
<input type="text" name="attr_other_sheath" placeholder="Other Sheath">
|
||
<input type="text" name="attr_other_sheath_weight" placeholder="Wt">
|
||
</div>
|
||
</fieldset>
|
||
|
||
<div class="equip-sep"></div>
|
||
<div class="sheath-total-row">
|
||
<div class="equip-label sheath-total-label">TOTAL SHEATH WEIGHT</div>
|
||
<input type="text" name="attr_TotalSheathWeight" placeholder="" class="sheath-total-weight" readonly>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="subcard boot-sheath belt-pouches">
|
||
<div class="subcard-title">Belt Pouches</div>
|
||
<div class="inv-grid inv-cols-1">
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot1" placeholder="Pouch Item 1">
|
||
<input type="text" name="attr_BeltPouchWeight1" placeholder="Wt 1">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot2" placeholder="Pouch Item 2">
|
||
<input type="text" name="attr_BeltPouchWeight2" placeholder="Wt 2">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot3" placeholder="Pouch Item 3">
|
||
<input type="text" name="attr_BeltPouchWeight3" placeholder="Wt 3">
|
||
</div>
|
||
|
||
<div class="inv-row"><input type="text" name="attr_BeltPouchSlot4" placeholder="Pouch Item 4">
|
||
<input type="text" name="attr_BeltPouchWeight4" placeholder="Wt 4">
|
||
</div>
|
||
|
||
<fieldset class="repeating_beltpouches">
|
||
<div class="inv-row">
|
||
<input type="text" name="attr_pouch_item" placeholder="Pouch Item">
|
||
<input type="text" name="attr_pouch_weight" placeholder="Wt">
|
||
</div>
|
||
</fieldset>
|
||
|
||
<div class="equip-sep"></div>
|
||
<div class="pouch-total-row">
|
||
<div class="equip-label pouch-total-label">TOTAL POUCH WEIGHT</div>
|
||
<input type="text" name="attr_TotalPouchWeight" placeholder="" class="pouch-total-weight" readonly>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
<div class="subcard capacity-encumbrance">
|
||
<div class="subcard-title">Capacity & Encumbrance</div>
|
||
|
||
|
||
<div class="cap-block">
|
||
<div class="cap-header">CARRYING CAPACITY & ENCUMBRANCE</div>
|
||
<div class="cap-grid">
|
||
<div class="cap-grid-head cap-grid-lefthead"><span class="cap-grid-note">Carrying Capacity is determined by STR & size. Some skills, races, & feats can impact this value.</span></div>
|
||
<div class="cap-grid-head cap-grid-right">Mobility<br>Penalty*</div>
|
||
|
||
<div class="cap-grid-label">Light Load (No Penalties)</div>
|
||
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Light" placeholder="Lt Weight">
|
||
<div class="cap-grid-penalty"> </div>
|
||
|
||
|
||
<div class="cap-grid-label mod-light">Modified Light Load (Size/Skills/etc)</div>
|
||
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Light_Modified" placeholder="Mod Lt Weight">
|
||
<div class="cap-grid-penalty"> </div>
|
||
<div class="cap-grid-label">Medium Load (Encumbered)</div>
|
||
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Moderate" placeholder="Md Weight">
|
||
<div class="cap-grid-penalty">-3</div>
|
||
|
||
<div class="cap-grid-label">Heavy Load (Heavily Encumbered)</div>
|
||
<input class="cap-grid-input" type="text" name="attr_CarryCapacity_Heavy" placeholder="Hvy Weight">
|
||
<div class="cap-grid-penalty">-6</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cap-block cap-totals">
|
||
<div class="cap-totals-grid">
|
||
<div class="cap-totals-head cap-totals-left">TOTALS:</div>
|
||
<div class="cap-totals-head">GEAR WEIGHT</div>
|
||
<div class="cap-totals-head">MOBILITY PENALTY*</div>
|
||
|
||
<div class="cap-totals-sep"></div>
|
||
|
||
<div class="cap-totals-label">With Backpack</div>
|
||
<input type="text" name="attr_TotalGearWeight_WithBackpack" placeholder="Weight w/Bkpk" readonly>
|
||
<input type="text" name="attr_TotalMobPenalty_WithBackpack" placeholder="Mob* w/Bkpk">
|
||
|
||
<div class="cap-totals-label">Without Backpack</div>
|
||
<input type="text" name="attr_TotalGearWeight_WithoutBackpack" placeholder="Weight NO Bkpk" readonly>
|
||
<input type="text" name="attr_TotalMobPenalty_WithoutBackpack" placeholder="Mob* NO Bkpk">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-title">Player Notes</div>
|
||
<textarea name="attr_PlayerNotes1"></textarea>
|
||
<textarea name="attr_PlayerNotes2"></textarea>
|
||
<textarea name="attr_PlayerNotes3"></textarea>
|
||
</div>
|
||
</div>
|
||
<!-- ===================== SPELLS & MAGIC ===================== -->
|
||
<div class="page page-magic">
|
||
<div class="card magic-card">
|
||
<div class="magic-subtitle">Spellcasting Information</div>
|
||
|
||
<div class="magic-row">
|
||
<div class="magic-pair">
|
||
<div class="magic-label">Perseverance</div>
|
||
<input type="text" name="attr_Spell_Perseverance" class="magic-box small">
|
||
</div>
|
||
|
||
<div class="magic-group">
|
||
<div class="magic-label">Touch Attacks:</div>
|
||
<div class="magic-inline">
|
||
<div class="magic-label">Ranged</div>
|
||
<input type="text" name="attr_TouchAtk_Ranged" class="magic-box small">
|
||
<div class="magic-label">Melee</div>
|
||
<input type="text" name="attr_TouchAtk_Melee" class="magic-box small">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="magic-pair">
|
||
<div class="magic-label">Caster Level</div>
|
||
<input type="text" name="attr_CasterLevel" class="magic-box small">
|
||
</div>
|
||
|
||
<div class="magic-pair wide">
|
||
<div class="magic-label">Casting Ability Mod (CastingMod)</div>
|
||
<input type="text" name="attr_CastingMod" class="magic-box medium">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="magic-notes">
|
||
<textarea name="attr_SpellcastingNotes1" class="magic-notes-box" placeholder="Important Spellcasting Notes"></textarea>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ===================== SPELL LEVEL 0 (SL0) ===================== -->
|
||
<div class="card sl0-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl0-toggle" name="attr_show_sl0" id="show-sl0" checked>
|
||
<label class="sl0-toggle-btn" for="show-sl0">Spell Level 0 (SL0)</label>
|
||
|
||
<div class="sl0-body">
|
||
|
||
<div class="sl0-toprow">
|
||
<div class="sl0-topitem">SL0 - Save DC: <input type="text" name="attr_SL0_SaveDC" class="sl0-box"></div>
|
||
<div class="sl0-topitem">SL0 - Spells per Day: <input type="text" name="attr_SL0_SpellsPerDay" class="sl0-box"></div>
|
||
<div class="sl0-topitem">SL0 - Spells Remaining: <input type="text" name="attr_SL0_SpellsRemaining" class="sl0-box"></div>
|
||
</div>
|
||
|
||
<div class="sl0-knownrow">
|
||
<div class="sl0-knownlabel">SL0 - Spells Known:</div>
|
||
<textarea name="attr_SL0_SpellsKnown" class="sl0-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl0-sep"></div>
|
||
|
||
|
||
<div class="sl0-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl0-spellrow sl0-spellrow-name">
|
||
<div class="sl0-spellpair namepair"><div class="sl0-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL0_SpellName0" class="sl0-line short name">
|
||
</div>
|
||
<div class="sl0-spellpair timepair"><div class="sl0-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL0_CastingTime0" class="sl0-line short time">
|
||
</div>
|
||
<div class="sl0-spellpair rangepair"><div class="sl0-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL0_Range0" class="sl0-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl0-spellrow">
|
||
<div class="sl0-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL0_SpellDesc0" class="sl0-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl0-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl0-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl0spellinfo">
|
||
<div class="sl0-spellbox sl0-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl0-spellrow sl0-spellrow-name">
|
||
<div class="sl0-spellpair namepair"><div class="sl0-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl0-line short name">
|
||
</div>
|
||
<div class="sl0-spellpair timepair"><div class="sl0-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl0-line short time">
|
||
</div>
|
||
<div class="sl0-spellpair rangepair"><div class="sl0-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl0-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl0-spellrow">
|
||
<div class="sl0-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl0-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl1-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl1-toggle" name="attr_show_sl1" id="show-sl1" checked>
|
||
<label class="sl1-toggle-btn" for="show-sl1">Spell Level 1 (SL1)</label>
|
||
|
||
<div class="sl1-body">
|
||
|
||
<div class="sl1-toprow">
|
||
<div class="sl1-topitem">SL1 - Save DC: <input type="text" name="attr_SL1_SaveDC" class="sl1-box"></div>
|
||
<div class="sl1-topitem">SL1 - Spells per Day: <input type="text" name="attr_SL1_SpellsPerDay" class="sl1-box"></div>
|
||
<div class="sl1-topitem">SL1 - Spells Remaining: <input type="text" name="attr_SL1_SpellsRemaining" class="sl1-box"></div>
|
||
</div>
|
||
|
||
<div class="sl1-knownrow">
|
||
<div class="sl1-knownlabel">SL1 - Spells Known:</div>
|
||
<textarea name="attr_SL1_SpellsKnown" class="sl1-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl1-sep"></div>
|
||
|
||
|
||
<div class="sl1-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl1-spellrow sl1-spellrow-name">
|
||
<div class="sl1-spellpair namepair"><div class="sl1-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL1_SpellName0" class="sl1-line short name">
|
||
</div>
|
||
<div class="sl1-spellpair timepair"><div class="sl1-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL1_CastingTime0" class="sl1-line short time">
|
||
</div>
|
||
<div class="sl1-spellpair rangepair"><div class="sl1-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL1_Range0" class="sl1-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl1-spellrow">
|
||
<div class="sl1-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL1_SpellDesc0" class="sl1-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl1-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl1-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl1spellinfo">
|
||
<div class="sl1-spellbox sl1-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl1-spellrow sl1-spellrow-name">
|
||
<div class="sl1-spellpair namepair"><div class="sl1-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl1-line short name">
|
||
</div>
|
||
<div class="sl1-spellpair timepair"><div class="sl1-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl1-line short time">
|
||
</div>
|
||
<div class="sl1-spellpair rangepair"><div class="sl1-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl1-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl1-spellrow">
|
||
<div class="sl1-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl1-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl2-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl2-toggle" name="attr_show_sl2" id="show-sl2" checked>
|
||
<label class="sl2-toggle-btn" for="show-sl2">Spell Level 2 (SL2)</label>
|
||
|
||
<div class="sl2-body">
|
||
|
||
<div class="sl2-toprow">
|
||
<div class="sl2-topitem">SL2 - Save DC: <input type="text" name="attr_SL2_SaveDC" class="sl2-box"></div>
|
||
<div class="sl2-topitem">SL2 - Spells per Day: <input type="text" name="attr_SL2_SpellsPerDay" class="sl2-box"></div>
|
||
<div class="sl2-topitem">SL2 - Spells Remaining: <input type="text" name="attr_SL2_SpellsRemaining" class="sl2-box"></div>
|
||
</div>
|
||
|
||
<div class="sl2-knownrow">
|
||
<div class="sl2-knownlabel">SL2 - Spells Known:</div>
|
||
<textarea name="attr_SL2_SpellsKnown" class="sl2-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl2-sep"></div>
|
||
|
||
|
||
<div class="sl2-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl2-spellrow sl2-spellrow-name">
|
||
<div class="sl2-spellpair namepair"><div class="sl2-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL2_SpellName0" class="sl2-line short name">
|
||
</div>
|
||
<div class="sl2-spellpair timepair"><div class="sl2-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL2_CastingTime0" class="sl2-line short time">
|
||
</div>
|
||
<div class="sl2-spellpair rangepair"><div class="sl2-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL2_Range0" class="sl2-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl2-spellrow">
|
||
<div class="sl2-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL2_SpellDesc0" class="sl2-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl2-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl2-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl2spellinfo">
|
||
<div class="sl2-spellbox sl2-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl2-spellrow sl2-spellrow-name">
|
||
<div class="sl2-spellpair namepair"><div class="sl2-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl2-line short name">
|
||
</div>
|
||
<div class="sl2-spellpair timepair"><div class="sl2-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl2-line short time">
|
||
</div>
|
||
<div class="sl2-spellpair rangepair"><div class="sl2-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl2-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl2-spellrow">
|
||
<div class="sl2-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl2-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl3-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl3-toggle" name="attr_show_sl3" id="show-sl3" checked>
|
||
<label class="sl3-toggle-btn" for="show-sl3">Spell Level 3 (SL3)</label>
|
||
|
||
<div class="sl3-body">
|
||
|
||
<div class="sl3-toprow">
|
||
<div class="sl3-topitem">SL3 - Save DC: <input type="text" name="attr_SL3_SaveDC" class="sl3-box"></div>
|
||
<div class="sl3-topitem">SL3 - Spells per Day: <input type="text" name="attr_SL3_SpellsPerDay" class="sl3-box"></div>
|
||
<div class="sl3-topitem">SL3 - Spells Remaining: <input type="text" name="attr_SL3_SpellsRemaining" class="sl3-box"></div>
|
||
</div>
|
||
|
||
<div class="sl3-knownrow">
|
||
<div class="sl3-knownlabel">SL3 - Spells Known:</div>
|
||
<textarea name="attr_SL3_SpellsKnown" class="sl3-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl3-sep"></div>
|
||
|
||
|
||
<div class="sl3-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl3-spellrow sl3-spellrow-name">
|
||
<div class="sl3-spellpair namepair"><div class="sl3-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL3_SpellName0" class="sl3-line short name">
|
||
</div>
|
||
<div class="sl3-spellpair timepair"><div class="sl3-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL3_CastingTime0" class="sl3-line short time">
|
||
</div>
|
||
<div class="sl3-spellpair rangepair"><div class="sl3-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL3_Range0" class="sl3-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl3-spellrow">
|
||
<div class="sl3-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL3_SpellDesc0" class="sl3-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl3-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl3-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl3spellinfo">
|
||
<div class="sl3-spellbox sl3-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl3-spellrow sl3-spellrow-name">
|
||
<div class="sl3-spellpair namepair"><div class="sl3-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl3-line short name">
|
||
</div>
|
||
<div class="sl3-spellpair timepair"><div class="sl3-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl3-line short time">
|
||
</div>
|
||
<div class="sl3-spellpair rangepair"><div class="sl3-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl3-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl3-spellrow">
|
||
<div class="sl3-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl3-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl4-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl4-toggle" name="attr_show_sl4" id="show-sl4" checked>
|
||
<label class="sl4-toggle-btn" for="show-sl4">Spell Level 4 (SL4)</label>
|
||
|
||
<div class="sl4-body">
|
||
|
||
<div class="sl4-toprow">
|
||
<div class="sl4-topitem">SL4 - Save DC: <input type="text" name="attr_SL4_SaveDC" class="sl4-box"></div>
|
||
<div class="sl4-topitem">SL4 - Spells per Day: <input type="text" name="attr_SL4_SpellsPerDay" class="sl4-box"></div>
|
||
<div class="sl4-topitem">SL4 - Spells Remaining: <input type="text" name="attr_SL4_SpellsRemaining" class="sl4-box"></div>
|
||
</div>
|
||
|
||
<div class="sl4-knownrow">
|
||
<div class="sl4-knownlabel">SL4 - Spells Known:</div>
|
||
<textarea name="attr_SL4_SpellsKnown" class="sl4-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl4-sep"></div>
|
||
|
||
|
||
<div class="sl4-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl4-spellrow sl4-spellrow-name">
|
||
<div class="sl4-spellpair namepair"><div class="sl4-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL4_SpellName0" class="sl4-line short name">
|
||
</div>
|
||
<div class="sl4-spellpair timepair"><div class="sl4-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL4_CastingTime0" class="sl4-line short time">
|
||
</div>
|
||
<div class="sl4-spellpair rangepair"><div class="sl4-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL4_Range0" class="sl4-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl4-spellrow">
|
||
<div class="sl4-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL4_SpellDesc0" class="sl4-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl4-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl4-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl4spellinfo">
|
||
<div class="sl4-spellbox sl4-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl4-spellrow sl4-spellrow-name">
|
||
<div class="sl4-spellpair namepair"><div class="sl4-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl4-line short name">
|
||
</div>
|
||
<div class="sl4-spellpair timepair"><div class="sl4-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl4-line short time">
|
||
</div>
|
||
<div class="sl4-spellpair rangepair"><div class="sl4-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl4-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl4-spellrow">
|
||
<div class="sl4-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl4-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl5-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl5-toggle" name="attr_show_sl5" id="show-sl5" checked>
|
||
<label class="sl5-toggle-btn" for="show-sl5">Spell Level 5 (SL5)</label>
|
||
|
||
<div class="sl5-body">
|
||
|
||
<div class="sl5-toprow">
|
||
<div class="sl5-topitem">SL5 - Save DC: <input type="text" name="attr_SL5_SaveDC" class="sl5-box"></div>
|
||
<div class="sl5-topitem">SL5 - Spells per Day: <input type="text" name="attr_SL5_SpellsPerDay" class="sl5-box"></div>
|
||
<div class="sl5-topitem">SL5 - Spells Remaining: <input type="text" name="attr_SL5_SpellsRemaining" class="sl5-box"></div>
|
||
</div>
|
||
|
||
<div class="sl5-knownrow">
|
||
<div class="sl5-knownlabel">SL5 - Spells Known:</div>
|
||
<textarea name="attr_SL5_SpellsKnown" class="sl5-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl5-sep"></div>
|
||
|
||
|
||
<div class="sl5-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl5-spellrow sl5-spellrow-name">
|
||
<div class="sl5-spellpair namepair"><div class="sl5-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL5_SpellName0" class="sl5-line short name">
|
||
</div>
|
||
<div class="sl5-spellpair timepair"><div class="sl5-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL5_CastingTime0" class="sl5-line short time">
|
||
</div>
|
||
<div class="sl5-spellpair rangepair"><div class="sl5-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL5_Range0" class="sl5-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl5-spellrow">
|
||
<div class="sl5-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL5_SpellDesc0" class="sl5-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl5-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl5-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl5spellinfo">
|
||
<div class="sl5-spellbox sl5-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl5-spellrow sl5-spellrow-name">
|
||
<div class="sl5-spellpair namepair"><div class="sl5-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl5-line short name">
|
||
</div>
|
||
<div class="sl5-spellpair timepair"><div class="sl5-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl5-line short time">
|
||
</div>
|
||
<div class="sl5-spellpair rangepair"><div class="sl5-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl5-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl5-spellrow">
|
||
<div class="sl5-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl5-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl6-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl6-toggle" name="attr_show_sl6" id="show-sl6" checked>
|
||
<label class="sl6-toggle-btn" for="show-sl6">Spell Level 6 (SL6)</label>
|
||
|
||
<div class="sl6-body">
|
||
|
||
<div class="sl6-toprow">
|
||
<div class="sl6-topitem">SL6 - Save DC: <input type="text" name="attr_SL6_SaveDC" class="sl6-box"></div>
|
||
<div class="sl6-topitem">SL6 - Spells per Day: <input type="text" name="attr_SL6_SpellsPerDay" class="sl6-box"></div>
|
||
<div class="sl6-topitem">SL6 - Spells Remaining: <input type="text" name="attr_SL6_SpellsRemaining" class="sl6-box"></div>
|
||
</div>
|
||
|
||
<div class="sl6-knownrow">
|
||
<div class="sl6-knownlabel">SL6 - Spells Known:</div>
|
||
<textarea name="attr_SL6_SpellsKnown" class="sl6-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl6-sep"></div>
|
||
|
||
|
||
<div class="sl6-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl6-spellrow sl6-spellrow-name">
|
||
<div class="sl6-spellpair namepair"><div class="sl6-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL6_SpellName0" class="sl6-line short name">
|
||
</div>
|
||
<div class="sl6-spellpair timepair"><div class="sl6-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL6_CastingTime0" class="sl6-line short time">
|
||
</div>
|
||
<div class="sl6-spellpair rangepair"><div class="sl6-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL6_Range0" class="sl6-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl6-spellrow">
|
||
<div class="sl6-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL6_SpellDesc0" class="sl6-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl6-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl6-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl6spellinfo">
|
||
<div class="sl6-spellbox sl6-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl6-spellrow sl6-spellrow-name">
|
||
<div class="sl6-spellpair namepair"><div class="sl6-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl6-line short name">
|
||
</div>
|
||
<div class="sl6-spellpair timepair"><div class="sl6-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl6-line short time">
|
||
</div>
|
||
<div class="sl6-spellpair rangepair"><div class="sl6-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl6-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl6-spellrow">
|
||
<div class="sl6-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl6-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl7-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl7-toggle" name="attr_show_sl7" id="show-sl7" checked>
|
||
<label class="sl7-toggle-btn" for="show-sl7">Spell Level 7 (SL7)</label>
|
||
|
||
<div class="sl7-body">
|
||
|
||
<div class="sl7-toprow">
|
||
<div class="sl7-topitem">SL7 - Save DC: <input type="text" name="attr_SL7_SaveDC" class="sl7-box"></div>
|
||
<div class="sl7-topitem">SL7 - Spells per Day: <input type="text" name="attr_SL7_SpellsPerDay" class="sl7-box"></div>
|
||
<div class="sl7-topitem">SL7 - Spells Remaining: <input type="text" name="attr_SL7_SpellsRemaining" class="sl7-box"></div>
|
||
</div>
|
||
|
||
<div class="sl7-knownrow">
|
||
<div class="sl7-knownlabel">SL7 - Spells Known:</div>
|
||
<textarea name="attr_SL7_SpellsKnown" class="sl7-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl7-sep"></div>
|
||
|
||
|
||
<div class="sl7-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl7-spellrow sl7-spellrow-name">
|
||
<div class="sl7-spellpair namepair"><div class="sl7-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL7_SpellName0" class="sl7-line short name">
|
||
</div>
|
||
<div class="sl7-spellpair timepair"><div class="sl7-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL7_CastingTime0" class="sl7-line short time">
|
||
</div>
|
||
<div class="sl7-spellpair rangepair"><div class="sl7-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL7_Range0" class="sl7-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl7-spellrow">
|
||
<div class="sl7-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL7_SpellDesc0" class="sl7-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl7-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl7-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl7spellinfo">
|
||
<div class="sl7-spellbox sl7-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl7-spellrow sl7-spellrow-name">
|
||
<div class="sl7-spellpair namepair"><div class="sl7-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl7-line short name">
|
||
</div>
|
||
<div class="sl7-spellpair timepair"><div class="sl7-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl7-line short time">
|
||
</div>
|
||
<div class="sl7-spellpair rangepair"><div class="sl7-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl7-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl7-spellrow">
|
||
<div class="sl7-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl7-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl8-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl8-toggle" name="attr_show_sl8" id="show-sl8" checked>
|
||
<label class="sl8-toggle-btn" for="show-sl8">Spell Level 8 (SL8)</label>
|
||
|
||
<div class="sl8-body">
|
||
|
||
<div class="sl8-toprow">
|
||
<div class="sl8-topitem">SL8 - Save DC: <input type="text" name="attr_SL8_SaveDC" class="sl8-box"></div>
|
||
<div class="sl8-topitem">SL8 - Spells per Day: <input type="text" name="attr_SL8_SpellsPerDay" class="sl8-box"></div>
|
||
<div class="sl8-topitem">SL8 - Spells Remaining: <input type="text" name="attr_SL8_SpellsRemaining" class="sl8-box"></div>
|
||
</div>
|
||
|
||
<div class="sl8-knownrow">
|
||
<div class="sl8-knownlabel">SL8 - Spells Known:</div>
|
||
<textarea name="attr_SL8_SpellsKnown" class="sl8-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl8-sep"></div>
|
||
|
||
|
||
<div class="sl8-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl8-spellrow sl8-spellrow-name">
|
||
<div class="sl8-spellpair namepair"><div class="sl8-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL8_SpellName0" class="sl8-line short name">
|
||
</div>
|
||
<div class="sl8-spellpair timepair"><div class="sl8-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL8_CastingTime0" class="sl8-line short time">
|
||
</div>
|
||
<div class="sl8-spellpair rangepair"><div class="sl8-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL8_Range0" class="sl8-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl8-spellrow">
|
||
<div class="sl8-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL8_SpellDesc0" class="sl8-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl8-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl8-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl8spellinfo">
|
||
<div class="sl8-spellbox sl8-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl8-spellrow sl8-spellrow-name">
|
||
<div class="sl8-spellpair namepair"><div class="sl8-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl8-line short name">
|
||
</div>
|
||
<div class="sl8-spellpair timepair"><div class="sl8-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl8-line short time">
|
||
</div>
|
||
<div class="sl8-spellpair rangepair"><div class="sl8-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl8-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl8-spellrow">
|
||
<div class="sl8-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl8-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card sl9-card">
|
||
<!-- Collapsible toggle (matches Identity & XP triangle indicator) -->
|
||
<input type="checkbox" class="sl9-toggle" name="attr_show_sl9" id="show-sl9" checked>
|
||
<label class="sl9-toggle-btn" for="show-sl9">Spell Level 9 (SL9)</label>
|
||
|
||
<div class="sl9-body">
|
||
|
||
<div class="sl9-toprow">
|
||
<div class="sl9-topitem">SL9 - Save DC: <input type="text" name="attr_SL9_SaveDC" class="sl9-box"></div>
|
||
<div class="sl9-topitem">SL9 - Spells per Day: <input type="text" name="attr_SL9_SpellsPerDay" class="sl9-box"></div>
|
||
<div class="sl9-topitem">SL9 - Spells Remaining: <input type="text" name="attr_SL9_SpellsRemaining" class="sl9-box"></div>
|
||
</div>
|
||
|
||
<div class="sl9-knownrow">
|
||
<div class="sl9-knownlabel">SL9 - Spells Known:</div>
|
||
<textarea name="attr_SL9_SpellsKnown" class="sl9-knownarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
<div class="sl9-sep"></div>
|
||
|
||
|
||
<div class="sl9-spellbox">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl9-spellrow sl9-spellrow-name">
|
||
<div class="sl9-spellpair namepair"><div class="sl9-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SL9_SpellName0" class="sl9-line short name">
|
||
</div>
|
||
<div class="sl9-spellpair timepair"><div class="sl9-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_SL9_CastingTime0" class="sl9-line short time">
|
||
</div>
|
||
<div class="sl9-spellpair rangepair"><div class="sl9-spelllabel">Range:</div>
|
||
<input type="text" name="attr_SL9_Range0" class="sl9-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl9-spellrow">
|
||
<div class="sl9-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SL9_SpellDesc0" class="sl9-descarea" placeholder=""></textarea>
|
||
</div>
|
||
|
||
|
||
<div class="sl9-spellinfo-repeat-note">Need more Spell Info cards? Use the <span class="sl9-addhint">+ Add</span> button (appears below) to create additional entries.</div>
|
||
|
||
<fieldset class="repeating_sl9spellinfo">
|
||
<div class="sl9-spellbox sl9-spellbox-repeat">
|
||
<div class="subcard-title">Spell Info</div>
|
||
|
||
<div class="sl9-spellrow sl9-spellrow-name">
|
||
<div class="sl9-spellpair namepair"><div class="sl9-spelllabel">Spell Name:</div>
|
||
<input type="text" name="attr_SpellName" class="sl9-line short name">
|
||
</div>
|
||
<div class="sl9-spellpair timepair"><div class="sl9-spelllabel">Casting Time:</div>
|
||
<input type="text" name="attr_CastingTime" class="sl9-line short time">
|
||
</div>
|
||
<div class="sl9-spellpair rangepair"><div class="sl9-spelllabel">Range:</div>
|
||
<input type="text" name="attr_Range" class="sl9-line short range">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sl9-spellrow">
|
||
<div class="sl9-spelllabel">Spell Description:</div>
|
||
<textarea name="attr_SpellDesc" class="sl9-descarea" placeholder=""></textarea>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script type="text/worker">
|
||
(function() {
|
||
var LFG_LIGHT_LOAD_BY_STR = {
|
||
1:3, 2:6, 3:10, 4:13, 5:16, 6:20, 7:25, 8:30, 9:35, 10:40,
|
||
11:45, 12:50, 13:55, 14:60, 15:70, 16:80, 17:90, 18:100, 19:120, 20:150,
|
||
21:180, 22:220, 23:260, 24:300, 25:350, 26:400, 27:450, 28:500, 29:600, 30:700
|
||
};
|
||
|
||
function toNumber(value) {
|
||
if (value === undefined || value === null) return 0;
|
||
var text = String(value).trim();
|
||
if (!text) return 0;
|
||
var match = text.match(/-?\d+(?:\.\d+)?/);
|
||
if (!match) return 0;
|
||
var num = parseFloat(match[0]);
|
||
return isNaN(num) ? 0 : num;
|
||
}
|
||
|
||
function formatNumber(num) {
|
||
if (num === undefined || num === null || isNaN(num)) return "";
|
||
if (Math.abs(num - Math.round(num)) < 0.000001) return String(Math.round(num));
|
||
return String(Math.round(num * 100) / 100);
|
||
}
|
||
|
||
function abilityMod(score) {
|
||
var raw = String(score || "").trim();
|
||
if (!raw) return "";
|
||
return Math.floor((toNumber(raw) - 10) / 2);
|
||
}
|
||
|
||
function updateAbilityMods() {
|
||
getAttrs(["STR","DEX","CON","INT","WIS","CHA"], function(v) {
|
||
var strMod = abilityMod(v.STR);
|
||
var dexMod = abilityMod(v.DEX);
|
||
var conMod = abilityMod(v.CON);
|
||
var intMod = abilityMod(v.INT);
|
||
var wisMod = abilityMod(v.WIS);
|
||
var chaMod = abilityMod(v.CHA);
|
||
|
||
setAttrs({
|
||
STRMOD: strMod === "" ? "" : String(strMod),
|
||
DEXMOD: dexMod === "" ? "" : String(dexMod),
|
||
CONMOD: conMod === "" ? "" : String(conMod),
|
||
INTMOD: intMod === "" ? "" : String(intMod),
|
||
WISMOD: wisMod === "" ? "" : String(wisMod),
|
||
CHAMOD: chaMod === "" ? "" : String(chaMod),
|
||
OD_DEX_Mod: dexMod === "" ? "" : String(dexMod)
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateInjuredThreshold() {
|
||
getAttrs(["HP"], function(v) {
|
||
var raw = String(v.HP || "").trim();
|
||
if (!raw) {
|
||
setAttrs({ Injured_Threshold: "" });
|
||
return;
|
||
}
|
||
var hp = toNumber(raw);
|
||
setAttrs({ Injured_Threshold: String(Math.floor(hp / 4)) });
|
||
});
|
||
}
|
||
|
||
function updateSaveAbilityMods() {
|
||
getAttrs(["CONMOD","DEXMOD","WISMOD"], function(v) {
|
||
setAttrs({
|
||
FORT_AbilityMod: String(v.CONMOD || ""),
|
||
REF_AbilityMod: String(v.DEXMOD || ""),
|
||
WILL_AbilityMod: String(v.WISMOD || "")
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateSaveTotals() {
|
||
getAttrs([
|
||
"FORT_Save_Rating","FORT_AbilityMod","FORT_OtherBonus",
|
||
"REF_Save_Rating","REF_AbilityMod","REF_OtherBonus",
|
||
"WILL_Save_Rating","WILL_AbilityMod","WILL_OtherBonus"
|
||
], function(v) {
|
||
setAttrs({
|
||
FORT: formatNumber(toNumber(v.FORT_Save_Rating) + toNumber(v.FORT_AbilityMod) + toNumber(v.FORT_OtherBonus)),
|
||
REF: formatNumber(toNumber(v.REF_Save_Rating) + toNumber(v.REF_AbilityMod) + toNumber(v.REF_OtherBonus)),
|
||
WILL: formatNumber(toNumber(v.WILL_Save_Rating) + toNumber(v.WILL_AbilityMod) + toNumber(v.WILL_OtherBonus))
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateInitiative() {
|
||
getAttrs(["Reactions","WISMOD","DEXMOD"], function(v) {
|
||
var allBlank = String(v.Reactions || "").trim() === "" &&
|
||
String(v.WISMOD || "").trim() === "" &&
|
||
String(v.DEXMOD || "").trim() === "";
|
||
setAttrs({
|
||
});
|
||
});
|
||
}
|
||
|
||
var autoSkillMap = [{"total": "Acrobatics", "ability": "Acrobatics_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "AcroBonus1", "bonus2": "AcroBonus2", "ranks": "Acro_Ranks"}, {"total": "Bluff", "ability": "Bluff_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "BluffBonus1", "bonus2": "BluffBonus2", "ranks": "Bluff_Ranks"}, {"total": "Climb", "ability": "Climb_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "ClimbBonus1", "bonus2": "ClimbBonus2", "ranks": "Climb_Ranks"}, {"total": "Academia", "ability": "Craft_Academia_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "AcademiaBonus1", "bonus2": "AcademiaBonus2", "ranks": "Academia_Ranks"}, {"total": "Alchemy", "ability": "Craft_Alchemy_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "AlchemyBonus1", "bonus2": "AlchemyBonus2", "ranks": "Alchemy_Ranks"}, {"total": "Blacksmith", "ability": "Craft_Blacksmith_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "BlacksmithBonus1", "bonus2": "BlacksmithBonus2", "ranks": "Blacksmith_Ranks"}, {"total": "Bow_Fletch", "ability": "Craft_Bow_Fletch_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "Bow_FletchBonus1", "bonus2": "Bow_FletchBonus2", "ranks": "Bow_Fletch_Ranks"}, {"total": "Craft_Magic_Item", "ability": "Craft_Magic_Item_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "CraftMagicItemBonus1", "bonus2": "CraftMagicItemBonus2", "ranks": "Craft_Magic_Item_Ranks"}, {"total": "Stonework", "ability": "Craft_Stonework_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "StoneworkBonus1", "bonus2": "StoneworkBonus2", "ranks": "Stonework_Ranks"}, {"total": "Tailor", "ability": "Craft_Tailor_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "TailorBonus1", "bonus2": "TailorBonus2", "ranks": "Tailor_Ranks"}, {"total": "Woodwork", "ability": "Craft_Woodwork_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "WoodworkBonus1", "bonus2": "WoodworkBonus2", "ranks": "Woodwork_Ranks"}, {"total": "Diplomacy", "ability": "Diplomacy_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "DiplomacyBonus1", "bonus2": "DiplomacyBonus2", "ranks": "Diplomacy_Ranks"}, {"total": "Handle_Animal", "ability": "Handle_Animal_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "HandleAnimalBonus1", "bonus2": "HandleAnimalBonus2", "ranks": "Handle_Animal_Ranks"}, {"total": "Heal", "ability": "Heal_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "HealBonus1", "bonus2": "HealBonus2", "ranks": "Heal_Ranks"}, {"total": "JumpandSprint", "ability": "Jump_and_Sprint_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "JumpandSprintBonus1", "bonus2": "JumpandSprintBonus2", "ranks": "Jump_and_Sprint_Ranks"}, {"total": "Arcana", "ability": "Knowledge_Arcana_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "ArcanaBonus1", "bonus2": "ArcanaBonus2", "ranks": "Arcana_Ranks"}, {"total": "Civilization", "ability": "Knowledge_Civilization_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "CivilizationBonus1", "bonus2": "CivilizationBonus2", "ranks": "Civilization_Ranks"}, {"total": "Dungeons", "ability": "Knowledge_Dungeons_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "DungeonsBonus1", "bonus2": "DungeonsBonus2", "ranks": "Dungeons_Ranks"}, {"total": "Nature", "ability": "Knowledge_Nature_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "NatureBonus1", "bonus2": "NatureBonus2", "ranks": "Nature_Ranks"}, {"total": "Planes", "ability": "Knowledge_Planes_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "PlanesBonus1", "bonus2": "PlanesBonus2", "ranks": "Planes_Ranks"}, {"total": "Religion", "ability": "Knowledge_Religion_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "ReligionBonus1", "bonus2": "ReligionBonus2", "ranks": "Religion_Ranks"}, {"total": "Linguistics", "ability": "Linguistics_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "LinguisticsBonus1", "bonus2": "LinguisticsBonus2", "ranks": "Linguistics_Ranks"}, {"total": "Listen", "ability": "Listen_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "ListenBonus1", "bonus2": "ListenBonus2", "ranks": "Listen_Ranks"}, {"total": "Move_Silently", "ability": "Move_Silently_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "MoveSilentlyBonus1", "bonus2": "MoveSilentlyBonus2", "ranks": "Move_Silently_Ranks"}, {"total": "Comedy_and_Stories", "ability": "Perform_Comedy_and_Stories_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "ComedyBonus1", "bonus2": "ComedyBonus2", "ranks": "Comedy_and_Stories_Ranks"}, {"total": "Dance_and_Motion", "ability": "Perform_Dance_and_Motion_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "DanceBonus1", "bonus2": "DanceBonus2", "ranks": "Dance_and_Motion_Ranks"}, {"total": "Music_Aerobic", "ability": "Perform_Music___Aerobic_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "MusicAerobicBonus1", "bonus2": "MusicAerobicBonus2", "ranks": "Music_Aerobic_Ranks"}, {"total": "Music_Manual", "ability": "Perform_Music___Manual_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "MusicManualBonus1", "bonus2": "MusicManualBonus2", "ranks": "Music_Manual_Ranks"}, {"total": "Song_and_Poerty", "ability": "Perform_Song_and_Poetry_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "SongPoetryBonus1", "bonus2": "SongPoetryBonus2", "ranks": "Song_and_Poetry_Ranks"}, {"total": "Ride", "ability": "Ride_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "RideBonus1", "bonus2": "RideBonus2", "ranks": "Ride_Ranks"}, {"total": "Seafaring", "ability": "Knowledge_Seafaring_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "SeafaringBonus1", "bonus2": "SeafaringBonus2", "ranks": "Seafaring_Ranks"}, {"total": "Sense_Motive", "ability": "Sense_Motive_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SenseMotiveBonus1", "bonus2": "SenseMotiveBonus2", "ranks": "Sense_Motive_Ranks"}, {"total": "Sleight_of_Hand", "ability": "Sleight_of_Hand_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "SleightofHandBonus1", "bonus2": "SleightofHandBonus2", "ranks": "Sleight_of_Hand_Ranks"}, {"total": "Spot", "ability": "Spot_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SpotBonus1", "bonus2": "SpotBonus2", "ranks": "Spot_Ranks"}, {"total": "Survival", "ability": "Survival_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SurvivalBonus1", "bonus2": "SurvivalBonus2", "ranks": "Survival_Ranks"}, {"total": "Swim", "ability": "Swim_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "SwimBonus1", "bonus2": "SwimBonus2", "ranks": "Swim_Ranks"}, {"total": "Tactics", "ability": "Knowledge_Tactics_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "TacticsBonus1", "bonus2": "TacticsBonus2", "ranks": "Tactics_Ranks"}, {"total": "Under_Cover", "ability": "Under_Cover_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "UnderCoverBonus1", "bonus2": "UnderCoverBonus2", "ranks": "Under_Cover_Ranks"}, {"total": "Wrestling", "ability": "Wrestling_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "WrestlingBonus1", "bonus2": "WrestlingBonus2", "ranks": "Wrestling_Ranks"}];
|
||
function updateSkillAbilityMods() {
|
||
var attrs = ["STRMOD","DEXMOD","CONMOD","INTMOD","WISMOD","CHAMOD"];
|
||
getAttrs(attrs, function(v) {
|
||
var out = {};
|
||
for (var i = 0; i < autoSkillMap.length; i++) {
|
||
var skill = autoSkillMap[i];
|
||
var modField = skill.placeholder + "MOD";
|
||
out[skill.ability] = String(v[modField] || "");
|
||
}
|
||
setAttrs(out);
|
||
});
|
||
}
|
||
|
||
var allSkillMap = [{"total": "Acrobatics", "ability": "Acrobatics_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "AcroBonus1", "bonus2": "AcroBonus2", "ranks": "Acro_Ranks"}, {"total": "Bluff", "ability": "Bluff_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "BluffBonus1", "bonus2": "BluffBonus2", "ranks": "Bluff_Ranks"}, {"total": "Climb", "ability": "Climb_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "ClimbBonus1", "bonus2": "ClimbBonus2", "ranks": "Climb_Ranks"}, {"total": "Academia", "ability": "Craft_Academia_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "AcademiaBonus1", "bonus2": "AcademiaBonus2", "ranks": "Academia_Ranks"}, {"total": "Alchemy", "ability": "Craft_Alchemy_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "AlchemyBonus1", "bonus2": "AlchemyBonus2", "ranks": "Alchemy_Ranks"}, {"total": "Blacksmith", "ability": "Craft_Blacksmith_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "BlacksmithBonus1", "bonus2": "BlacksmithBonus2", "ranks": "Blacksmith_Ranks"}, {"total": "Bow_Fletch", "ability": "Craft_Bow_Fletch_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "Bow_FletchBonus1", "bonus2": "Bow_FletchBonus2", "ranks": "Bow_Fletch_Ranks"}, {"total": "Fine_Arts", "ability": "Craft_Fine_Arts_AbilityMod", "placeholder": "IN/DX", "readonly": false, "bonus1": "FineArtsBonus1", "bonus2": "FineArtsBonus2", "ranks": "Fine_Arts_Ranks"}, {"total": "Jeweler", "ability": "Craft_Jeweler_AbilityMod", "placeholder": "IN/DX", "readonly": false, "bonus1": "JewelerBonus1", "bonus2": "JewelerBonus2", "ranks": "Jeweler_Ranks"}, {"total": "Craft_Magic_Item", "ability": "Craft_Magic_Item_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "CraftMagicItemBonus1", "bonus2": "CraftMagicItemBonus2", "ranks": "Craft_Magic_Item_Ranks"}, {"total": "Mechanisms", "ability": "Craft_Mechanisms_AbilityMod", "placeholder": "IN/DX", "readonly": false, "bonus1": "MechanismsBonus1", "bonus2": "MechanismsBonus2", "ranks": "Mechanisms_Ranks"}, {"total": "Stonework", "ability": "Craft_Stonework_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "StoneworkBonus1", "bonus2": "StoneworkBonus2", "ranks": "Stonework_Ranks"}, {"total": "Tailor", "ability": "Craft_Tailor_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "TailorBonus1", "bonus2": "TailorBonus2", "ranks": "Tailor_Ranks"}, {"total": "Woodwork", "ability": "Craft_Woodwork_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "WoodworkBonus1", "bonus2": "WoodworkBonus2", "ranks": "Woodwork_Ranks"}, {"total": "Diplomacy", "ability": "Diplomacy_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "DiplomacyBonus1", "bonus2": "DiplomacyBonus2", "ranks": "Diplomacy_Ranks"}, {"total": "Handle_Animal", "ability": "Handle_Animal_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "HandleAnimalBonus1", "bonus2": "HandleAnimalBonus2", "ranks": "Handle_Animal_Ranks"}, {"total": "Heal", "ability": "Heal_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "HealBonus1", "bonus2": "HealBonus2", "ranks": "Heal_Ranks"}, {"total": "Hide", "ability": "Hide_AbilityMod", "placeholder": "IN/WI", "readonly": false, "bonus1": "HideBonus1", "bonus2": "HideBonus2", "ranks": "Hide_Ranks"}, {"total": "Intimidate", "ability": "Intimidate_AbilityMod", "placeholder": "CH/ST", "readonly": false, "bonus1": "IntimidateBonus1", "bonus2": "IntimidateBonus2", "ranks": "Intimidate_Ranks"}, {"total": "JumpandSprint", "ability": "Jump_and_Sprint_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "JumpandSprintBonus1", "bonus2": "JumpandSprintBonus2", "ranks": "Jump_and_Sprint_Ranks"}, {"total": "Arcana", "ability": "Knowledge_Arcana_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "ArcanaBonus1", "bonus2": "ArcanaBonus2", "ranks": "Arcana_Ranks"}, {"total": "Civilization", "ability": "Knowledge_Civilization_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "CivilizationBonus1", "bonus2": "CivilizationBonus2", "ranks": "Civilization_Ranks"}, {"total": "Dungeons", "ability": "Knowledge_Dungeons_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "DungeonsBonus1", "bonus2": "DungeonsBonus2", "ranks": "Dungeons_Ranks"}, {"total": "Nature", "ability": "Knowledge_Nature_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "NatureBonus1", "bonus2": "NatureBonus2", "ranks": "Nature_Ranks"}, {"total": "Planes", "ability": "Knowledge_Planes_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "PlanesBonus1", "bonus2": "PlanesBonus2", "ranks": "Planes_Ranks"}, {"total": "Religion", "ability": "Knowledge_Religion_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "ReligionBonus1", "bonus2": "ReligionBonus2", "ranks": "Religion_Ranks"}, {"total": "Linguistics", "ability": "Linguistics_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "LinguisticsBonus1", "bonus2": "LinguisticsBonus2", "ranks": "Linguistics_Ranks"}, {"total": "Listen", "ability": "Listen_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "ListenBonus1", "bonus2": "ListenBonus2", "ranks": "Listen_Ranks"}, {"total": "Move_Silently", "ability": "Move_Silently_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "MoveSilentlyBonus1", "bonus2": "MoveSilentlyBonus2", "ranks": "Move_Silently_Ranks"}, {"total": "Comedy_and_Stories", "ability": "Perform_Comedy_and_Stories_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "ComedyBonus1", "bonus2": "ComedyBonus2", "ranks": "Comedy_and_Stories_Ranks"}, {"total": "Dance_and_Motion", "ability": "Perform_Dance_and_Motion_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "DanceBonus1", "bonus2": "DanceBonus2", "ranks": "Dance_and_Motion_Ranks"}, {"total": "Music_Aerobic", "ability": "Perform_Music___Aerobic_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "MusicAerobicBonus1", "bonus2": "MusicAerobicBonus2", "ranks": "Music_Aerobic_Ranks"}, {"total": "Music_Manual", "ability": "Perform_Music___Manual_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "MusicManualBonus1", "bonus2": "MusicManualBonus2", "ranks": "Music_Manual_Ranks"}, {"total": "Song_and_Poerty", "ability": "Perform_Song_and_Poetry_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "SongPoetryBonus1", "bonus2": "SongPoetryBonus2", "ranks": "Song_and_Poetry_Ranks"}, {"total": "Perseverance", "ability": "Perseverance_AbilityMod", "placeholder": "CO/WI", "readonly": false, "bonus1": "PerseveranceBonus1", "bonus2": "PerseveranceBonus2", "ranks": "Perseverance_Ranks"}, {"total": "Ride", "ability": "Ride_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "RideBonus1", "bonus2": "RideBonus2", "ranks": "Ride_Ranks"}, {"total": "Seafaring", "ability": "Knowledge_Seafaring_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "SeafaringBonus1", "bonus2": "SeafaringBonus2", "ranks": "Seafaring_Ranks"}, {"total": "Sense_Motive", "ability": "Sense_Motive_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SenseMotiveBonus1", "bonus2": "SenseMotiveBonus2", "ranks": "Sense_Motive_Ranks"}, {"total": "Sleight_of_Hand", "ability": "Sleight_of_Hand_AbilityMod", "placeholder": "DEX", "readonly": true, "bonus1": "SleightofHandBonus1", "bonus2": "SleightofHandBonus2", "ranks": "Sleight_of_Hand_Ranks"}, {"total": "Spot", "ability": "Spot_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SpotBonus1", "bonus2": "SpotBonus2", "ranks": "Spot_Ranks"}, {"total": "Survival", "ability": "Survival_AbilityMod", "placeholder": "WIS", "readonly": true, "bonus1": "SurvivalBonus1", "bonus2": "SurvivalBonus2", "ranks": "Survival_Ranks"}, {"total": "Swim", "ability": "Swim_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "SwimBonus1", "bonus2": "SwimBonus2", "ranks": "Swim_Ranks"}, {"total": "Tactics", "ability": "Knowledge_Tactics_AbilityMod", "placeholder": "INT", "readonly": true, "bonus1": "TacticsBonus1", "bonus2": "TacticsBonus2", "ranks": "Tactics_Ranks"}, {"total": "Under_Cover", "ability": "Under_Cover_AbilityMod", "placeholder": "CHA", "readonly": true, "bonus1": "UnderCoverBonus1", "bonus2": "UnderCoverBonus2", "ranks": "Under_Cover_Ranks"}, {"total": "Wrestling", "ability": "Wrestling_AbilityMod", "placeholder": "STR", "readonly": true, "bonus1": "WrestlingBonus1", "bonus2": "WrestlingBonus2", "ranks": "Wrestling_Ranks"}];
|
||
function updateSkillTotals() {
|
||
var attrs = [];
|
||
for (var i = 0; i < allSkillMap.length; i++) {
|
||
attrs.push(allSkillMap[i].ability, allSkillMap[i].bonus1, allSkillMap[i].bonus2, allSkillMap[i].ranks);
|
||
}
|
||
getAttrs(attrs, function(v) {
|
||
var out = {};
|
||
for (var i = 0; i < allSkillMap.length; i++) {
|
||
var skill = allSkillMap[i];
|
||
var sourcesBlank = String(v[skill.ability] || "").trim() === "" &&
|
||
String(v[skill.bonus1] || "").trim() === "" &&
|
||
String(v[skill.bonus2] || "").trim() === "" &&
|
||
String(v[skill.ranks] || "").trim() === "";
|
||
out[skill.total] = sourcesBlank ? "" : formatNumber(
|
||
toNumber(v[skill.ability]) +
|
||
toNumber(v[skill.bonus1]) +
|
||
toNumber(v[skill.bonus2]) +
|
||
toNumber(v[skill.ranks])
|
||
);
|
||
}
|
||
setAttrs(out);
|
||
});
|
||
}
|
||
|
||
function updateCustomSkillTotals(callback) {
|
||
getSectionIDs("repeating_customskills", function(ids) {
|
||
if (!ids || !ids.length) {
|
||
if (typeof callback === "function") callback();
|
||
return;
|
||
}
|
||
var attrs = [];
|
||
for (var i = 0; i < ids.length; i++) {
|
||
attrs.push(
|
||
"repeating_customskills_" + ids[i] + "_abilitymod",
|
||
"repeating_customskills_" + ids[i] + "_bonus1",
|
||
"repeating_customskills_" + ids[i] + "_bonus2",
|
||
"repeating_customskills_" + ids[i] + "_ranks"
|
||
);
|
||
}
|
||
getAttrs(attrs, function(v) {
|
||
var out = {};
|
||
for (var i = 0; i < ids.length; i++) {
|
||
var prefix = "repeating_customskills_" + ids[i] + "_";
|
||
var allBlank = String(v[prefix + "abilitymod"] || "").trim() === "" &&
|
||
String(v[prefix + "bonus1"] || "").trim() === "" &&
|
||
String(v[prefix + "bonus2"] || "").trim() === "" &&
|
||
String(v[prefix + "ranks"] || "").trim() === "";
|
||
out[prefix + "total"] = allBlank ? "" : formatNumber(
|
||
toNumber(v[prefix + "abilitymod"]) +
|
||
toNumber(v[prefix + "bonus1"]) +
|
||
toNumber(v[prefix + "bonus2"]) +
|
||
toNumber(v[prefix + "ranks"])
|
||
);
|
||
}
|
||
setAttrs(out, {}, function() {
|
||
if (typeof callback === "function") callback();
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateTotalSkillRanks() {
|
||
var attrs = [];
|
||
for (var i = 0; i < allSkillMap.length; i++) {
|
||
attrs.push(allSkillMap[i].ranks);
|
||
}
|
||
getSectionIDs("repeating_customskills", function(ids) {
|
||
var repAttrs = [];
|
||
for (var i = 0; i < ids.length; i++) {
|
||
repAttrs.push("repeating_customskills_" + ids[i] + "_ranks");
|
||
}
|
||
getAttrs(attrs.concat(repAttrs), function(v) {
|
||
var total = 0;
|
||
for (var i = 0; i < allSkillMap.length; i++) {
|
||
total += toNumber(v[allSkillMap[i].ranks]);
|
||
}
|
||
for (var i = 0; i < repAttrs.length; i++) {
|
||
total += toNumber(v[repAttrs[i]]);
|
||
}
|
||
setAttrs({ Total_Skill_Ranks: total ? formatNumber(total) : "" });
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateCarryCapacitiesFromSTR() {
|
||
getAttrs(["STR", "CarryCapacity_Light_Modified"], function(v) {
|
||
var raw = String(v.STR || "").trim();
|
||
var str = parseInt(raw, 10);
|
||
var modRaw = String(v.CarryCapacity_Light_Modified || "").trim();
|
||
var hasOverride = modRaw !== "";
|
||
var modLight = hasOverride ? toNumber(modRaw) : null;
|
||
|
||
if (isNaN(str) || str < 1 || str > 30) {
|
||
setAttrs({
|
||
CarryCapacity_Light: "",
|
||
CarryCapacity_Moderate: "",
|
||
CarryCapacity_Heavy: ""
|
||
});
|
||
return;
|
||
}
|
||
|
||
var baseLight = LFG_LIGHT_LOAD_BY_STR[str];
|
||
var effectiveLight = hasOverride ? modLight : baseLight;
|
||
|
||
setAttrs({
|
||
CarryCapacity_Light: formatNumber(baseLight),
|
||
CarryCapacity_Moderate: formatNumber(effectiveLight * 2),
|
||
CarryCapacity_Heavy: formatNumber(effectiveLight * 3)
|
||
});
|
||
});
|
||
}
|
||
|
||
function sumWeights(baseFields, repeatingSection, repeatingField, callback) {
|
||
getAttrs(baseFields, function(v) {
|
||
var total = 0;
|
||
for (var i = 0; i < baseFields.length; i++) {
|
||
total += toNumber(v[baseFields[i]]);
|
||
}
|
||
if (!repeatingSection) {
|
||
callback(total);
|
||
return;
|
||
}
|
||
getSectionIDs(repeatingSection, function(ids) {
|
||
if (!ids || !ids.length) {
|
||
callback(total);
|
||
return;
|
||
}
|
||
var repAttrs = [];
|
||
for (var i = 0; i < ids.length; i++) {
|
||
repAttrs.push("repeating_" + repeatingSection + "_" + ids[i] + "_" + repeatingField);
|
||
}
|
||
getAttrs(repAttrs, function(repVals) {
|
||
for (var i = 0; i < repAttrs.length; i++) {
|
||
total += toNumber(repVals[repAttrs[i]]);
|
||
}
|
||
callback(total);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
function updateWeightTotals() {
|
||
sumWeights(
|
||
["HeadWeight","FaceWeight","NeckWeight","TorsoUnderWeight","TorsoOverWeight","WaistWeight","ShouldersWeight","ArmsWeight","HandsWeight","RingWeight1","RingWeight2","LegsWeight","FeetWeight","AccessoryWeight","CarriedItem1_Equip_Wt","CarriedItem2_Equip_Wt"],
|
||
null,
|
||
null,
|
||
function(equippedTotal) {
|
||
sumWeights(
|
||
["BackpackTest_Wt_1","BackpackTest_Wt_2","BackpackTest_Wt_3","BackpackTest_Wt_4","BackpackTest_Wt_5"],
|
||
"backpack",
|
||
"wt",
|
||
function(backpackTotal) {
|
||
sumWeights(
|
||
["SheathWeight1","SheathWeight2","SheathWeight3","SheathWeight4"],
|
||
"sheathsbandoliers",
|
||
"other_sheath_weight",
|
||
function(sheathTotal) {
|
||
sumWeights(
|
||
["BeltPouchWeight1","BeltPouchWeight2","BeltPouchWeight3","BeltPouchWeight4"],
|
||
"beltpouches",
|
||
"pouch_weight",
|
||
function(pouchTotal) {
|
||
var withPack = equippedTotal + backpackTotal + sheathTotal + pouchTotal;
|
||
var withoutPack = equippedTotal + sheathTotal + pouchTotal;
|
||
setAttrs({
|
||
TotalEquippedWeight: formatNumber(equippedTotal),
|
||
BackpackTest_TotalWeight: formatNumber(backpackTotal),
|
||
TotalSheathWeight: formatNumber(sheathTotal),
|
||
TotalPouchWeight: formatNumber(pouchTotal),
|
||
TotalGearWeight_WithBackpack: formatNumber(withPack),
|
||
TotalGearWeight_WithoutBackpack: formatNumber(withoutPack)
|
||
});
|
||
}
|
||
);
|
||
}
|
||
);
|
||
}
|
||
);
|
||
}
|
||
);
|
||
}
|
||
|
||
on("sheet:opened", function() {
|
||
updateAbilityMods();
|
||
updateInjuredThreshold();
|
||
updateSaveAbilityMods();
|
||
updateSaveTotals();
|
||
updateInitiative();
|
||
updateSkillAbilityMods();
|
||
updateSkillTotals();
|
||
updateCustomSkillTotals(updateTotalSkillRanks);
|
||
updateTotalSkillRanks();
|
||
updateCarryCapacitiesFromSTR();
|
||
updateWeightTotals();
|
||
});
|
||
|
||
on("change:STR change:DEX change:CON change:INT change:WIS change:CHA", function() {
|
||
updateAbilityMods();
|
||
updateSaveAbilityMods();
|
||
updateInitiative();
|
||
updateSkillAbilityMods();
|
||
updateSkillTotals();
|
||
updateCarryCapacitiesFromSTR();
|
||
});
|
||
|
||
on("change:HP", updateInjuredThreshold);
|
||
|
||
on("change:FORT_Save_Rating change:FORT_AbilityMod change:FORT_OtherBonus change:REF_Save_Rating change:REF_AbilityMod change:REF_OtherBonus change:WILL_Save_Rating change:WILL_AbilityMod change:WILL_OtherBonus", updateSaveTotals);
|
||
|
||
on("change:CONMOD change:DEXMOD change:WISMOD", function() {
|
||
updateSaveAbilityMods();
|
||
updateSaveTotals();
|
||
updateInitiative();
|
||
updateSkillAbilityMods();
|
||
updateSkillTotals();
|
||
});
|
||
|
||
on("change:Reactions", updateInitiative);
|
||
|
||
on("change:CarryCapacity_Light_Modified", updateCarryCapacitiesFromSTR);
|
||
|
||
on("change:Acrobatics_AbilityMod change:AcroBonus1 change:AcroBonus2 change:Acro_Ranks change:Bluff_AbilityMod change:BluffBonus1 change:BluffBonus2 change:Bluff_Ranks change:Climb_AbilityMod change:ClimbBonus1 change:ClimbBonus2 change:Climb_Ranks change:Craft_Academia_AbilityMod change:AcademiaBonus1 change:AcademiaBonus2 change:Academia_Ranks change:Craft_Alchemy_AbilityMod change:AlchemyBonus1 change:AlchemyBonus2 change:Alchemy_Ranks change:Craft_Blacksmith_AbilityMod change:BlacksmithBonus1 change:BlacksmithBonus2 change:Blacksmith_Ranks change:Craft_Bow_Fletch_AbilityMod change:Bow_FletchBonus1 change:Bow_FletchBonus2 change:Bow_Fletch_Ranks change:Craft_Fine_Arts_AbilityMod change:FineArtsBonus1 change:FineArtsBonus2 change:Fine_Arts_Ranks change:Craft_Jeweler_AbilityMod change:JewelerBonus1 change:JewelerBonus2 change:Jeweler_Ranks change:Craft_Magic_Item_AbilityMod change:CraftMagicItemBonus1 change:CraftMagicItemBonus2 change:Craft_Magic_Item_Ranks change:Craft_Mechanisms_AbilityMod change:MechanismsBonus1 change:MechanismsBonus2 change:Mechanisms_Ranks change:Craft_Stonework_AbilityMod change:StoneworkBonus1 change:StoneworkBonus2 change:Stonework_Ranks change:Craft_Tailor_AbilityMod change:TailorBonus1 change:TailorBonus2 change:Tailor_Ranks change:Craft_Woodwork_AbilityMod change:WoodworkBonus1 change:WoodworkBonus2 change:Woodwork_Ranks change:Diplomacy_AbilityMod change:DiplomacyBonus1 change:DiplomacyBonus2 change:Diplomacy_Ranks change:Handle_Animal_AbilityMod change:HandleAnimalBonus1 change:HandleAnimalBonus2 change:Handle_Animal_Ranks change:Heal_AbilityMod change:HealBonus1 change:HealBonus2 change:Heal_Ranks change:Hide_AbilityMod change:HideBonus1 change:HideBonus2 change:Hide_Ranks change:Intimidate_AbilityMod change:IntimidateBonus1 change:IntimidateBonus2 change:Intimidate_Ranks change:Jump_and_Sprint_AbilityMod change:JumpandSprintBonus1 change:JumpandSprintBonus2 change:Jump_and_Sprint_Ranks change:Knowledge_Arcana_AbilityMod change:ArcanaBonus1 change:ArcanaBonus2 change:Arcana_Ranks change:Knowledge_Civilization_AbilityMod change:CivilizationBonus1 change:CivilizationBonus2 change:Civilization_Ranks change:Knowledge_Dungeons_AbilityMod change:DungeonsBonus1 change:DungeonsBonus2 change:Dungeons_Ranks change:Knowledge_Nature_AbilityMod change:NatureBonus1 change:NatureBonus2 change:Nature_Ranks change:Knowledge_Planes_AbilityMod change:PlanesBonus1 change:PlanesBonus2 change:Planes_Ranks change:Knowledge_Religion_AbilityMod change:ReligionBonus1 change:ReligionBonus2 change:Religion_Ranks change:Linguistics_AbilityMod change:LinguisticsBonus1 change:LinguisticsBonus2 change:Linguistics_Ranks change:Listen_AbilityMod change:ListenBonus1 change:ListenBonus2 change:Listen_Ranks change:Move_Silently_AbilityMod change:MoveSilentlyBonus1 change:MoveSilentlyBonus2 change:Move_Silently_Ranks change:Perform_Comedy_and_Stories_AbilityMod change:ComedyBonus1 change:ComedyBonus2 change:Comedy_and_Stories_Ranks change:Perform_Dance_and_Motion_AbilityMod change:DanceBonus1 change:DanceBonus2 change:Dance_and_Motion_Ranks change:Perform_Music___Aerobic_AbilityMod change:MusicAerobicBonus1 change:MusicAerobicBonus2 change:Music_Aerobic_Ranks change:Perform_Music___Manual_AbilityMod change:MusicManualBonus1 change:MusicManualBonus2 change:Music_Manual_Ranks change:Perform_Song_and_Poetry_AbilityMod change:SongPoetryBonus1 change:SongPoetryBonus2 change:Song_and_Poerty_Ranks change:Perseverance_AbilityMod change:PerseveranceBonus1 change:PerseveranceBonus2 change:Perseverance_Ranks change:Ride_AbilityMod change:RideBonus1 change:RideBonus2 change:Ride_Ranks change:Knowledge_Seafaring_AbilityMod change:SeafaringBonus1 change:SeafaringBonus2 change:Seafaring_Ranks change:Sense_Motive_AbilityMod change:SenseMotiveBonus1 change:SenseMotiveBonus2 change:Sense_Motive_Ranks change:Sleight_of_Hand_AbilityMod change:SleightofHandBonus1 change:SleightofHandBonus2 change:Sleight_of_Hand_Ranks change:Spot_AbilityMod change:SpotBonus1 change:SpotBonus2 change:Spot_Ranks change:Survival_AbilityMod change:SurvivalBonus1 change:SurvivalBonus2 change:Survival_Ranks change:Swim_AbilityMod change:SwimBonus1 change:SwimBonus2 change:Swim_Ranks change:Knowledge_Tactics_AbilityMod change:TacticsBonus1 change:TacticsBonus2 change:Tactics_Ranks change:Under_Cover_AbilityMod change:UnderCoverBonus1 change:UnderCoverBonus2 change:Under_Cover_Ranks change:Wrestling_AbilityMod change:WrestlingBonus1 change:WrestlingBonus2 change:Wrestling_Ranks", function() { updateSkillTotals(); updateTotalSkillRanks(); });
|
||
|
||
on("change:repeating_customskills:abilitymod change:repeating_customskills:bonus1 change:repeating_customskills:bonus2 change:repeating_customskills:ranks remove:repeating_customskills", function() { updateCustomSkillTotals(updateTotalSkillRanks); });
|
||
|
||
on("change:HeadWeight change:FaceWeight change:NeckWeight change:TorsoUnderWeight change:TorsoOverWeight change:WaistWeight change:ShouldersWeight change:ArmsWeight change:HandsWeight change:RingWeight1 change:RingWeight2 change:LegsWeight change:FeetWeight change:AccessoryWeight change:CarriedItem1_Equip_Wt change:CarriedItem2_Equip_Wt change:BackpackTest_Wt_1 change:BackpackTest_Wt_2 change:BackpackTest_Wt_3 change:BackpackTest_Wt_4 change:BackpackTest_Wt_5 change:SheathWeight1 change:SheathWeight2 change:SheathWeight3 change:SheathWeight4 change:BeltPouchWeight1 change:BeltPouchWeight2 change:BeltPouchWeight3 change:BeltPouchWeight4 change:repeating_backpack:wt remove:repeating_backpack change:repeating_sheathsbandoliers:other_sheath_weight remove:repeating_sheathsbandoliers change:repeating_beltpouches:pouch_weight remove:repeating_beltpouches", updateWeightTotals);
|
||
})();
|
||
</script>
|