mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-09-01 04:32:28 +00:00
This is a character sheet for Fate of the Norns. The images are not currently referenced by this sheet, but as soon as they are on the roll20 github I will update the sheet to use the image files local to roll20.
463 lines
30 KiB
HTML
463 lines
30 KiB
HTML
<div class="sheet-container">
|
|
<div class="tabs">
|
|
<button type="action" name="act_character" >Character</button>
|
|
<button type="action" name="act_current" >Current</button>
|
|
</div>
|
|
<input type='hidden' class='tabstoggle' name='attr_sheetTab' value='character' />
|
|
|
|
|
|
<div class="character">
|
|
<div class="bio ability-box">
|
|
<label class="playernamebox"><span class="labeltext">Player Name: </span><input type="text" name="attr_player_name" /></label>
|
|
<label class="charnamebox"><span class="labeltext">Character Name: </span><input type="text" name="attr_character_name" /></label>
|
|
<label class="archtypebox"><span class="labeltext">Archtype: </span><input type="text" name="attr_archtype" /></label>
|
|
<label class="levelbox"><span class="labeltext"> Level: </span><input type="number" name="attr_level" /></label>
|
|
<input type="text" name="attr_voidrune" class="single-char voidrunebox" />
|
|
</div>
|
|
<div class="stats ability-box">
|
|
<br>
|
|
<label class="labeltext">Size: <span class="sizebox stat-container"><input type="number" value="4" name="attr_basesize" /></span></label>
|
|
<label class="labeltext">Move: <span class="movebox stat-container"><input type="number" value="4" name="attr_basemove" /></span></label>
|
|
<label class="labeltext">Essence: <span class="essencebox stat-container"><input type="number" name="attr_essence" /></span></label>
|
|
<label class="labeltext">Destiny: <span class="destinybox stat-container"><input type="number" name="attr_destiny" /></span></label>
|
|
</div>
|
|
<div class="skills ability-box">
|
|
<div class="skills ability-wrapper">
|
|
<span class="skillname labeltext">Skills:</span>
|
|
<span class="skillrank labeltext">Rank:</span>
|
|
<fieldset class="repeating_skills">
|
|
<input class="skillname" type="text" name="attr_skills_name" />
|
|
<input class="skillrank" type="number" name="attr_skill_rank" />
|
|
<input type="checkbox" class="toggle-show" />
|
|
<div class="silldetails showable">
|
|
<label class="labeltext modlabel">Description:</label><textarea class="skilldesc textbox name="attr_skills_description></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="passives ability-box">
|
|
<span class="checkbox"></span>
|
|
<span class="passivename labeltext">Passive:</span>
|
|
<span class="labeltext type">Ability Type:</span>
|
|
<span class="labeltext toggle-show">Show</span>
|
|
<fieldset class="repeating_passives">
|
|
<input class="checkbox" type="checkbox" name="attr_passives_toggle" value="1" />
|
|
<input class="passivename" type="text" name="attr_passives_name" />
|
|
<select class="passivetype type" name="attr_passives_type">
|
|
<option value="feat">Feat</option>
|
|
<option value="enchantment">Enchantment</option>
|
|
<option value="rune">Rune</option>
|
|
<option value="shadow">Shadow</option>
|
|
<option value="primal">Primal</option>
|
|
<option value="bloodline_primal">Bloodline Primal</option>
|
|
<option value="summon">Summon</option>
|
|
</select>
|
|
<input type="checkbox" class="toggle-show" />
|
|
<div class="passivedetails showable">
|
|
<label class="modlabel labeltext">Description:</label><br><textarea class="passivedesc textbox" name="attr_passives_description"></textarea>
|
|
<label class="modlabel labeltext">PDF:<input class="mod" type='number' name='attr_passives_pdf' /></label>
|
|
<label class="modlabel labeltext">Pierce:<input class="mod" type="number" name='attr_passives_pierce' /></label>
|
|
<label class="modlabel labeltext">Focus:<input class="mod" type="number" name='attr_passives_focus' /></label>
|
|
<label class="modlabel labeltext">Reach/<br>Range:<input class="mod" type="number" name='attr_passives_reach' /></label>
|
|
<label class="modlabel labeltext">Heal:<input class="mod" type="number" name='attr_passives_heal' /></label>
|
|
<label class="modlabel labeltext">Recover:<input class="mod" type="number" name='attr_passives_recover' /></label>
|
|
<label class="modlabel labeltext">Size:<input class="mod" type="number" name='attr_passives_size' /></label>
|
|
<label class="modlabel labeltext">Move:<input class="mod" type="number" name='attr_passives_move' /></label>
|
|
<label class="modlabel labeltext">PPF:<input class="mod" type="number" name='attr_passives_ppf' /></label>
|
|
<label class="modlabel labeltext">Parry:<input class="mod" type="number" name='attr_passives_pparry' /></label>
|
|
<label class="modlabel labeltext">Evade:<input class="mod" type="number" name='attr_passives_evade' /></label>
|
|
<label class="modlabel labeltext">MDF:<input class="mod" type="number" name='attr_passives_mdf' /></label>
|
|
<label class="modlabel labeltext">MPF:<input class="mod" type="number" name='attr_passives_mpf' /></label>
|
|
<label class="modlabel labeltext">MParry:<input class="mod" type="number" name='attr_passives_mparry' /></label>
|
|
<label class="modlabel labeltext">SDF:<input class="mod" type="number" name='attr_passives_sdf' /></label>
|
|
<label class="modlabel labeltext">SPF:<input class="mod" type="number" name='attr_passives_spf' /></label>
|
|
<label class="modlabel labeltext">SParry:<input class="mod" type="number" name='attr_passives_sparry' /></label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="actives ability-box">
|
|
<br>
|
|
<span class="checkbox"></span>
|
|
<span class="rune labeltext">Rune:</span>
|
|
<span class="activename labeltext">Active:</span>
|
|
<span class="type labeltext">Ability Type:</span>
|
|
<span class="pmeta labeltext">PMeta:</span>
|
|
<span class="mmeta labeltext">MMeta:</span>
|
|
<span class="smeta labeltext">SMeta:</span>
|
|
<span class="labeltext toggle-show">Show</span>
|
|
<fieldset class="repeating_actives">
|
|
<input class="checkbox" type="checkbox" name="attr_actives_toggle" value="1" />
|
|
<select name="attr_rune" class="rune">
|
|
<option value="void">Void</option>
|
|
<option value="tiwaz">Tiwaz</option>
|
|
<option value="berkano">Berkano</option>
|
|
<option value="ehwo">Ehwo</option>
|
|
<option value="mann">Mann</option>
|
|
<option value="claguz">Claguz</option>
|
|
<option value="ing">Ing</option>
|
|
<option value="dagaz">Dagaz</option>
|
|
<option value="othala">Othala</option>
|
|
<option value="hagalaz">Hagalaz</option>
|
|
<option value="naudhneed">Naudhneed</option>
|
|
<option value="isaice">Isaice</option>
|
|
<option value="jethe">Jethe</option>
|
|
<option value="Eihwas">Eihwas</option>
|
|
<option value="pertho">Pertho</option>
|
|
<option value="elhaz">Elhaz</option>
|
|
<option value="sowsun">Sowsun</option>
|
|
<option value="fehu">Fehu</option>
|
|
<option value="uruz">Uruz</option>
|
|
<option value="thurisaz">Thurisaz</option>
|
|
<option value="cansuz">Cansuz</option>
|
|
<option value="raidho">Raidho</option>
|
|
<option value="kenaz">Kenaz</option>
|
|
<option value="gebgift">Gebgift</option>
|
|
<option value="wunjo">Wunjo</option>
|
|
<option value="physical">Physical</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="spiritaul">Spiritual</option>
|
|
</select>
|
|
<input class="activename" type="text" name="attr_avtivename" />
|
|
<select name="attr_activetype" class="activetype type">
|
|
<option value="manoeuvre">Manoeuvre</option>
|
|
<option value="stance">Stance</option>
|
|
<option value="interrupt">Interrupt</option>
|
|
<option value="spell">Spell</option>
|
|
<option value="runespell">Rune Spell</option>
|
|
<option value="seithspell">Seith Spell</option>
|
|
<option value="spellsong">Spell Song</option>
|
|
<option value="shapechange">Shapechange</option>
|
|
<option value="transform">Transform</option>
|
|
<option value="gate">Gate</option>
|
|
<option value="alkaspell">Alka Spell</option>
|
|
<option value="shade">Shade</option>
|
|
<option value="snare">Snare</option>
|
|
<option value="verwandlungspell">Verwandlung Spell</option>
|
|
<option value="verwandlungalkaspell">Verwandlung Alka Spell</option>
|
|
<option value="faith">Faith</option>
|
|
<option value="voidspell">Void Spell</option>
|
|
<option value="divinespell">Divine Spell</option>
|
|
<option value="creationspell">Creation Spell</option>
|
|
<option value="feat">Providence</option>
|
|
</select>
|
|
<select name="attr_pmeta" class="pmeta metatag">
|
|
<option value="abate">Abate</option>
|
|
<option value="absorb">Absorb</option>
|
|
<option class="meta" value="amplify">Amplify</option>
|
|
<option value="area">Area</option>
|
|
<option value="cannibalize">Cannibalize</option>
|
|
<option value="combo">Combo</option>
|
|
<option value="cluster">Cluster</option>
|
|
<option value="deflect">Deflect</option>
|
|
<option value="dodge">Dodge</option>
|
|
<option value="echo">Echo</option>
|
|
<option value="eldritch">Eldritch</option>
|
|
<option value="expanse">Expanse</option>
|
|
<option value="fortify">Fortify</option>
|
|
<option value="gloom">Gloom</option>
|
|
<option value="maintain">Maintain</option>
|
|
<option value="multi">Multi</option>
|
|
<option value="open">Open</option>
|
|
<option value="permanency">Permanency</option>
|
|
<option value="piercer">Piercer</option>
|
|
<option value="proficiency">Proficiency</option>
|
|
<option value="range">Range</option>
|
|
<option value="sight">Sight</option>
|
|
<option value="stutter">Stutter</option>
|
|
<option value="weapon">Weapon</option>
|
|
</select>
|
|
<select name="attr_mmeta" class="mmeta metatag">
|
|
<option value="abate">Abate</option>
|
|
<option value="absorb">Absorb</option>
|
|
<option value="amplify">Amplify</option>
|
|
<option value="area">Area</option>
|
|
<option value="cannibalize">Cannibalize</option>
|
|
<option value="combo">Combo</option>
|
|
<option value="cluster">Cluster</option>
|
|
<option value="deflect">Deflect</option>
|
|
<option value="dodge">Dodge</option>
|
|
<option value="echo">Echo</option>
|
|
<option value="eldritch">Eldritch</option>
|
|
<option value="expanse">Expanse</option>
|
|
<option value="fortify">Fortify</option>
|
|
<option value="gloom">Gloom</option>
|
|
<option value="maintain">Maintain</option>
|
|
<option value="multi">Multi</option>
|
|
<option value="open">Open</option>
|
|
<option value="permanency">Permanency</option>
|
|
<option value="piercer">Piercer</option>
|
|
<option value="proficiency">Proficiency</option>
|
|
<option value="range">Range</option>
|
|
<option value="sight">Sight</option>
|
|
<option value="stutter">Stutter</option>
|
|
<option value="weapon">Weapon</option>
|
|
</select>
|
|
<select name="attr_smeta" class="smeta metatag">
|
|
<option value="abate">Abate</option>
|
|
<option value="absorb">Absorb</option>
|
|
<option value="amplify">Amplify</option>
|
|
<option value="area">Area</option>
|
|
<option value="cannibalize">Cannibalize</option>
|
|
<option value="combo">Combo</option>
|
|
<option value="cluster">Cluster</option>
|
|
<option value="deflect">Deflect</option>
|
|
<option value="dodge">Dodge</option>
|
|
<option value="echo">Echo</option>
|
|
<option value="eldritch">Eldritch</option>
|
|
<option value="expanse">Expanse</option>
|
|
<option value="fortify">Fortify</option>
|
|
<option value="gloom">Gloom</option>
|
|
<option value="maintain">Maintain</option>
|
|
<option value="multi">Multi</option>
|
|
<option value="open">Open</option>
|
|
<option value="permanency">Permanency</option>
|
|
<option value="piercer">Piercer</option>
|
|
<option value="proficiency">Proficiency</option>
|
|
<option value="range">Range</option>
|
|
<option value="sight">Sight</option>
|
|
<option value="stutter">Stutter</option>
|
|
<option value="weapon">Weapon</option>
|
|
</select>
|
|
<input type="checkbox" class="toggle-show" />
|
|
<div class="activedetails showable">
|
|
<label class="desclabel labeltext">Description:<textarea name="attr_actives_description" class="activedesc textbox"></textarea></lable>
|
|
<label class="modlabel labeltext">PDF:<input class="mod" type='number' name='attr_actives_pdf' /></label>
|
|
<label class="modlabel labeltext">Pierce:<input class="mod" type="number" name='attr_actives_pierce' /></label>
|
|
<label class="modlabel labeltext">Reach/<br>Range:<input class="mod" type="number" name='attr_actives_reach' /></label>
|
|
<label class="modlabel labeltext">Size:<input class="mod" type="number" name='attr_actives_size' /></label>
|
|
<label class="modlabel labeltext">Move:<input class="mod" type="number" name='attr_actives_move' /></label>
|
|
<label class="modlabel labeltext">Heal:<input class="mod" type="number" name='attr_actives_heal' /></label>
|
|
<label class="modlabel labeltext">Recover:<input class="mod" type="number" name='attr_actives_recover' /></label>
|
|
<label class="modlabel labeltext">Focus:<input class="mod" type="number" name='attr_actives_focus' /></label>
|
|
<label class="modlabel labeltext">PPF:<input class="mod" type="number" name='attr_actives_ppf' /></label>
|
|
<label class="modlabel labeltext">Parry:<input class="mod" type="number" name='attr_actives_pparry' /></label>
|
|
<label class="modlabel labeltext">Evade:<input class="mod" type="number" name='attr_actives_evade' /></label>
|
|
<label class="modlabel labeltext">MDF:<input class="mod" type="number" name='attr_actives_mdf' /></label>
|
|
<label class="modlabel labeltext">MPF:<input class="mod" type="number" name='attr_actives_mpf' /></label>
|
|
<label class="modlabel labeltext">MParry:<input class="mod" type="number" name='attr_actives_mparry' /></label>
|
|
<label class="modlabel labeltext">SDF:<input class="mod" type="number" name='attr_actives_sdf' /></label>
|
|
<label class="modlabel labeltext">SPF:<input class="mod" type="number" name='attr_actives_spf' /></label>
|
|
<label class="modlabel labeltext">SParry:<input class="mod" type="number" name='attr_actives_sparry' /></label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="equipment ability-box">
|
|
<span class="checkbox"></span>
|
|
<span class="equipname labeltext">Equipment:</span>
|
|
<span class="textbox labeltext">Description:</span>
|
|
<span class="labeltext toggle-show">Show</span>
|
|
<fieldset class="repeating_equipment">
|
|
<input class="checkbox" type="checkbox" name="attr_equipment_toggle" value="1" />
|
|
<input class="equipname" type="text" name="attr_equipment_name" />
|
|
<textarea class="equipdesc textbox" name="attr_equipment_description"></textarea>
|
|
<input type="checkbox" class="toggle-show" />
|
|
<div class="equipdetails showable">
|
|
<label class="modlabel labeltext">PDF:<input class="mod" type='number' name='attr_equipment_pdf' /></label>
|
|
<label class="modlabel labeltext">Pierce:<input class="mod" type="number" name='attr_equipment_pierce' /></label>
|
|
<label class="modlabel labeltext">Reach/<br>Range:<input class="mod" type="number" name='attr_equipment_reach' /></label>
|
|
<label class="modlabel labeltext">Heal:<input class="mod" type="number" name='attr_equipment_heal' /></label>
|
|
<label class="modlabel labeltext">Recover:<input class="mod" type="number" name='attr_equipment_recover' /></label>
|
|
<label class="modlabel labeltext">Size:<input class="mod" type="number" name='attr_equipment_size' /></label>
|
|
<label class="modlabel labeltext">Move:<input class="mod" type="number" name='attr_equipment_move' /></label>
|
|
<label class="modlabel labeltext">Focus:<input class="mod" type="number" name='attr_equipment_focus' /></label>
|
|
<label class="modlabel labeltext">PPF:<input class="mod" type="number" name='attr_equipment_ppf' /></label>
|
|
<label class="modlabel labeltext">Parry:<input class="mod" type="number" name='attr_equipment_pparry' /></label>
|
|
<label class="modlabel labeltext">Evade:<input class="mod" type="number" name='attr_equipment_evade' /></label>
|
|
<label class="modlabel labeltext">MDF:<input class="mod" type="number" name='attr_equipment_mdf' /></label>
|
|
<label class="modlabel labeltext">MPF:<input class="mod" type="number" name='attr_equipment_mpf' /></label>
|
|
<label class="modlabel labeltext">MParry:<input class="mod" type="number" name='attr_equipment_mparry' /></label>
|
|
<label class="modlabel labeltext">SDF:<input class="mod" type="number" name='attr_equipment_sdf' /></label>
|
|
<label class="modlabel labeltext">SPF:<input class="mod" type="number" name='attr_equipment_spf' /></label>
|
|
<label class="modlabel labeltext">SParry:<input class="mod" type="number" name='attr_equipment_sparry' /></label>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="notes ability-box">
|
|
<label class="labeltext">Notes:</label>
|
|
<textarea class="notebox" name="attr_notes"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="current">
|
|
<div class="conditions grid-container"></div>
|
|
<div class="condition blind grid-element">
|
|
<input class="blind numbox" type="number" value="0" name="attr_blind" />
|
|
</div>
|
|
<div class="condition degen-curse grid-element">
|
|
<input class="degen numbox" type="number" value="0" name="attr_degen" />
|
|
<input class="curse numbox" type="number" value="0" name="attr_curse" />
|
|
</div>
|
|
<div class="condition taunt grid-element">
|
|
<input class="taunt numbox" type="number" value="0" name="attr_taunt" />
|
|
</div>
|
|
<div class="condition impeded grid-element">
|
|
<input class="impeded numbox" type="number" value="0" name="attr_impeded" />
|
|
</div>
|
|
<div class="condition shroud grid-element">
|
|
<input class="shroud numbox" type="number" value="0" name="attr_shroud" />
|
|
</div>
|
|
<div class="condition possession grid-element">
|
|
<input class="possession numbox" type="number" value="0" name="attr_possession" />
|
|
</div>
|
|
<div class="condition rage grid-element">
|
|
<input class="rage numbox" type="number" value="0" name="attr_rage" />
|
|
</div>
|
|
<div class="condition vulnerable grid-element">
|
|
<input class="vulnerable numbox" type="number" value="0" name="attr_vulnerable" />
|
|
</div>
|
|
<div class="condition aura grid-element">
|
|
<input class="aura numbox" type="number" value="0" name="attr_aura" />
|
|
</div>
|
|
<div class="derived grid-container">
|
|
<div class="derived grid-element pdf">
|
|
<label class="derived-stat-label">Physical<br>DF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_pdf" /></span>
|
|
</div>
|
|
<div class="derived grid-element pierce">
|
|
<label class="derived-stat-label">Pierce: </label>
|
|
<span class="stat-container"><input type="number" name="attr_pierce" /></span>
|
|
</div>
|
|
<div class="derived grid-element focus">
|
|
<label class="derived-stat-label">Focus: </label>
|
|
<span class="stat-container"><input type="number" name="attr_focus" /></span>
|
|
</div>
|
|
<div class="derived grid-element heal">
|
|
<label class="derived-stat-label">Heal:</label>
|
|
<span class="stat-container"><input type="number" name="attr_heal" /></span>
|
|
</div>
|
|
<div class="derived grid-element size">
|
|
<label class="derived-stat-label">Size:</label>
|
|
<span class="stat-container"><input type="number" name="attr_size" /></span>
|
|
</div>
|
|
<div class="derived grid-element move">
|
|
<label class="derived-stat-label">Movement:</label>
|
|
<span class="stat-container"><input type="number" name="attr_move" /></span>
|
|
</div>
|
|
<div class="derived grid-element ppf">
|
|
<label class="derived-stat-label">Physical<br>PF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_ppf" /></span>
|
|
</div>
|
|
<div class="derived grid-element pparry">
|
|
<label class="derived-stat-label">Physical<br>Parry: </label>
|
|
<span class="stat-container"><input type="number" name="attr_pparry" /></span>
|
|
</div>
|
|
<div class="derived grid-element evade">
|
|
<label class="derived-stat-label">Evade: </label>
|
|
<span class="stat-container"><input type="number" name="attr_evade" /></span>
|
|
</div>
|
|
<div class="derived grid-element mdf">
|
|
<label class="derived-stat-label">Mental<br>DF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_mdf" /></span>
|
|
</div>
|
|
<div class="derived grid-element mpf">
|
|
<label class="derived-stat-label">Mental<br>PF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_mpf" /></span>
|
|
</div>
|
|
<div class="derived grid-element mparry">
|
|
<label class="derived-stat-label">Mental<br>Parry: </label>
|
|
<span class="stat-container"><input type="number" name="attr_mparry" /></span>
|
|
</div>
|
|
<div class="derived grid-element sdf">
|
|
<label class="derived-stat-label">Spiritual<br>DF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_sdf" /></span>
|
|
</div>
|
|
<div class="derived grid-element spf">
|
|
<label class="derived-stat-label">Spiritual<br>PF: </label>
|
|
<span class="stat-container"><input type="number" name="attr_spf" /></span>
|
|
</div>
|
|
<div class="derived grid-element sparry">
|
|
<label class="derived-stat-label">Spiritual<br>Parry: </label>
|
|
<span class="stat-container"><input type="number" name="attr_sparry" /></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/worker">
|
|
const int = (value, error = 0) => parseInt(value) || error;
|
|
const derived_stats = ['pdf', 'pierce', 'focus','heal','size','move', 'ppf', 'pparry', 'evade', 'mdf', 'mpf', 'mparry', 'sdf', 'spf', 'sparry'];
|
|
// an array of the repeating section names
|
|
const section_names = ['equipment', 'passives', 'actives'];
|
|
// an array of the attributes outside of the section you want to use.
|
|
const outside_attributes = ['basesize', 'basemove'];
|
|
|
|
// a function to quickly build repeating section names, suitable for this worker.
|
|
const section_field = (section, field, id = ':') => `repeating_${section}${id === ':' ? id : `_${id}_`}${section}_${field}`;
|
|
|
|
// altered buildChanges, so now it is a function that can hanndle all 3 repeating sections
|
|
const buildChanges = (section) => derived_stats.reduce((total, item) => `${total} change:${section_field(section, item)}`, '');
|
|
|
|
// created 3 variables for the change:stuff line, to make that less of a chore to write and read
|
|
const toggleChanges = section_names.map(section => `change:repeating_${section}:${section}_toggle`).join(' ');
|
|
const outsideChanges = outside_attributes.map(stat => `change:${stat}`).join(' ');
|
|
const removeSections = section_names.map(section => `remove:repeating_${section}`).join(' ');
|
|
|
|
on(`${toggleChanges} ${outsideChanges} ${buildChanges(section_names[0])} ${buildChanges(section_names[1])} ${buildChanges(section_names[2])} ${toggleChanges} ${removeSections} sheet:opened`, () => {
|
|
// define the fieldnames outside the first getSectionIDs to make clear it doesnt belong to any of them
|
|
const fieldnames = [];
|
|
// notice the idarray array name has changed. It must be different in each getSectionIDs
|
|
getSectionIDs(`repeating_${section_names[0]}`, idarray0 => {
|
|
|
|
// loop through idarray0, and create the repeating section attribute for each modifier attribute name
|
|
idarray0.forEach(id => {
|
|
derived_stats.forEach(mod => fieldnames.push(section_field(section_names[0], `${mod}`, id)));
|
|
fieldnames.push(section_field(section_names[0], 'toggle', id));
|
|
});
|
|
|
|
getSectionIDs(`repeating_${section_names[1]}`, idarray1 => {
|
|
// loop through idarray1, and create the repeating section attribute for each modifier attribute name
|
|
idarray1.forEach(id => {
|
|
derived_stats.forEach(mod => fieldnames.push(section_field(section_names[1], `${mod}`, id)));
|
|
fieldnames.push(section_field(section_names[1], 'toggle', id));
|
|
});
|
|
|
|
getSectionIDs(`repeating_${section_names[2]}`, idarray2 => {
|
|
// loop through idarray2, and create the repeating section attribute for each modifier attribute name
|
|
idarray2.forEach(id => {
|
|
derived_stats.forEach(mod => fieldnames.push(section_field(section_names[2], `${mod}`, id)));
|
|
fieldnames.push(section_field(section_names[2], 'toggle', id));
|
|
});
|
|
|
|
// now we are ready to grab all the values from the character sheet
|
|
// outside_attributes as an array of the attributes you want to usem that aren't in the repeating sections
|
|
getAttrs([...fieldnames, ...outside_attributes], v => {
|
|
//console.log(v);
|
|
//console.log('v^');
|
|
// initialise the object used for output, with each total attribute set to a default value of 0
|
|
const output = {};
|
|
derived_stats.forEach(mod => output[`${mod}`] = 0);
|
|
|
|
// loop through all 3 idarrays
|
|
// first set up an array of arrays, to make the idearrays easy to access with an index
|
|
const idarrays = [idarray0, idarray1, idarray2];
|
|
|
|
[0,1,2].forEach(num => {
|
|
// now loop through each idarray, and get the various values and add them to output
|
|
idarrays[num].forEach(id => {
|
|
// check if this row is to be counted or not
|
|
const toggle = int(v[section_field(section_names[num], 'toggle', id)]);
|
|
if (toggle) {
|
|
// add each modifier to the total
|
|
derived_stats.forEach(mod => output[`${mod}`] = output[`${mod}`] + int(v[section_field(section_names[num], `${mod}`, id)]));
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
// now handle the outsideattributes however you need to.
|
|
output.size = output.size + int(v.basesize);
|
|
output.move = output.move + int(v.basemove);
|
|
setAttrs(output);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
const buttonlist = ["character","current"];
|
|
buttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
});
|
|
</script> |