Files
roll20-character-sheets/Fate/FateOmni.html
T

5136 lines
316 KiB
HTML

<input type="hidden" name="attr_theme" value="blue" class="theme">
<div class="Wrapper">
<!-- input type="checkbox" name="attr_uninitialized" value="1" checked> (Testing Only) -->
<input type="checkbox" name="attr_uninitialized" value="1" class="triggerbox" checked>
<div>
<div class="SectionHeader">Initialization Controls</div>
<div style="padding: 6px;" class="space-below">
If no game settings were set (shouldn't be possible), this is displayed, until an initialization choice is made.
<div>
<b><span data-i18n="initialize">Initialize</span></b>:
<select name="attr_setgame">
<option value="" data-i18n="choose-gameset">Choose a Gameset to Load</option>
<option value="none" data-i18n="noset"></option>
<option value="custom" data-i18n="custom-build"></option>
<option value="fcore" data-i18n="fcore"></option>
<option value="fcon" data-i18n="fcon"></option>
<option value="fae" data-i18n="fae"></option>
<option value="threerocketeers" data-i18n="threerocketeers"></option>
<option value="robo" data-i18n="robo"></option>
<option value="dfa" data-i18n="dfa"></option>
<option value="foc" data-i18n="foc"></option>
<option value="kaijuinc" data-i18n="kaijuinc"></option>
<option value="ngen" data-i18n="ngen"></option>
<option value="cats" data-i18n="cats"></option>
<option value="shotc" data-i18n="shotc"></option>
<option value="tachyon" data-i18n="tachyon-squadron"></option>
<option value="venture" data-i18n="venture"></option>
</select>
</div>
<div>
<b><span data-i18n="custom-aspects"></span>:</b>
<input type="text" name="attr_custom-aspects" value="">
<div data-i18n="custom-aspects-desc"></div>
</div>
<div>
<b><span data-i18n="custom-skills"></span>:</b>
<input type="text" name="attr_custom-skills" value="">
<div data-i18n="custom-skills-desc"></div>
</div>
<div>
<b><span data-i18n="custom-combos-columns"></span>:</b>
<input type="text" name="attr_custom-combos" value="">
<div data-i18n="custom-combos-desc"></div>
</div>
<div>
<b><span data-i18n="custom-stress"></span>:</b>
<input type="text" name="attr_custom-stress" value="">
<div data-i18n="custom-stress-desc"></div>
</div>
<div>
<b><span data-i18n="custom-consequences"></span>:</b>
<input type="text" name="attr_custom-consequences" value="">
<div data-i18n="custom-consequences-desc"></div>
</div>
<div>
<b><span data-i18n="custom-conditions"></span>:</b>
<input type="text" name="attr_custom-conditions" value="">
<div data-i18n="custom-conditions-desc"></div>
</div>
</div>
</div>
<!-- input type="hidden" name="attr_comstyle" value="" -->
<input type="checkbox" class="triggerbox" name="attr_SheetOptions" value="1">
<div class="optbar">
<span><input type="checkbox" class="checkbox" name="attr_Show-Aspects" value="1" checked><span class="checker" data-i18n="aspects">Aspects</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Combinable" value="1"><span class="checker" data-i18n="combine-skills">Combinable Skills</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Conditions" value="1" checked><span class="checker" data-i18n="conditions">Conditions</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Consequences" value="1" checked><span class="checker" data-i18n="consequences">Consequences</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Corruption" value="1"><span class="checker" data-i18n="corruption">Corruption</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-DeveloperMode" value="1"><span class="checker" data-i18n="developer-mode">Developer Mode</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Extras" value="1"><span class="checker" data-i18n="extras">Extras</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-FP" value="1" checked><span class="checker" data-i18n="fp">Fate Points</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Logo" value="1"><span class="checker" data-i18n="logo">Logo</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Modes" value="1"><span class="checker" data-i18n="modes">Modes</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Notes" value="1" checked><span class="checker" data-i18n="notes">Notes</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Packages" value="1"><span class="checker" data-i18n="packages">Packages</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Powers" value="1"><span class="checker" data-i18n="powers">Powers</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Refresh" value="1" checked><span class="checker" data-i18n="refresh">Refresh</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Roles" value="1"><span class="checker" data-i18n="roles">Roles</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Diceprompts" value="?{ Rating + @{fatedice} +/-? |0}" checked><span class="checker" data-i18n="rollmod-prompt">Roll Modifier Prompt</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-RollableAspects" value="1"><span class="checker" data-i18n="rollable-aspects">Rollable Aspects</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Skills" value="1" checked><span class="checker" data-i18n="skills">Skills</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Stress" value="1" checked><span class="checker" data-i18n="stress">Stress</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Stunts" value="1" checked><span class="checker" data-i18n="stunts">Stunts</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-Skillswaps" value="1"><span class="checker" data-i18n="swap-skills">Swappable Skillsets</span> </span>
<span><input type="checkbox" class="checkbox" name="attr_Show-TempAspects" value="1" checked><span class="checker" data-i18n="situation-aspects">Situation Aspects</span> </span>
<span>
<select name="attr_comstyle">
<option value="">Display sheet's rolls publicly</option>
<option value="/w gm">Whisper sheet's rolls to GM</option>
</select>
</span>
<span>
<select name="attr_fatedice" class="compact">
<option value="4dF">4dF</option>
<option value="1d6-1d6">d6-d6</option>
</select>
</span>
<span>
<select name="attr_theme" class="compact">
<option value="blue">Core Blue</option>
<option value="green">World Green</option>
<option value="purple">Toolkit Purple</option>
<option value="evilhat">Evil Hat</option>
<option value="cthulhu">Elder God</option>
<option value="orange">Golden</option>
<option value="gray">Gray</option>
<option value="shotc">Radical</option>
</select>
</span>
</div>
<div class="topwrap">
<input type="checkbox" class="triggerbox" name="attr_Show-Logo" value="1"><div>
<img src="https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/fate-logo.png" width="130" height="53" style="margin-left: 12px;"/>
</div>
<div class="fpbox">
<input type="checkbox" class="triggerbox" checked name="attr_Show-FP" value="1">
<div>
<div>
<input type="number" value="3" name="attr_fp">
</div>
<div data-i18n="fp">
Fate Points
</div>
</div>
<input type="checkbox" class="triggerbox" checked name="attr_Show-Refresh" value="1">
<div>
<div>
<input type="number" value="3" name="attr_refresh">
</div>
<div data-i18n="refresh">
Refresh
</div>
</div>
</div>
<div class="pronounbox">
<div>
<div>
<input name="attr_pronouns" type="text" class="compact pronouns">
</div>
<div data-i18n="pronouns">
Pronouns
</div>
</div>
</div>
<div>
<div class="optwrap">
<input type="checkbox" class="checkbox" name="attr_SheetOptions" value="1"><span class="optionsbox"></span>
</div>
<div class="Bar">
<div class="nowrap">
<input name="attr_character_name" type="text" class="charname">
</div>
</div>
</div>
</div>
<input type="checkbox" class="triggerbox" name="attr_Show-DeveloperMode" value="1"><div class="StuntCell"><div class="SectionHeader"><span data-i18n="developer-mode"></span></div><div class="StuntDisplay">
Please proceed with caution. The stuff here messes with the sheet data directly and extensively.
<hr>
Click this button to export the entire sheet as a JSON object that can be imported to another sheet using the import area below.
<div><button type="action" name="act_exportsheet">Export</button></div>
<div><textarea name="attr_exportsheetdata" style="width: 90%"></textarea></div>
<hr>
Clicking this button will empty out all the dynamic elements of the sheet. It will leave some attributes untouched, but should blank out aspects, skills, stunts, stress, consequences, conditions, tempaspects, modes, roles, swaps, packages, powers, extras, and notes.
<div><button type="action" name="act_clearsheet">Clear Sheet</button></div>
<hr>
Import: If you paste the JSON in this field and then move out of it, the sheet will notice and perform an import of the data. Please note, this will ADD to the existing content of this sheet rather than overwrite it where possible (causing duplicates in your skill list, potentially, etc). If you need it to REPLACE everything, please first click the "clear sheet" button above.
<div><textarea name="attr_importsheetdata" style="width: 90%"></textarea></div>
</div></div>
<div class="SheetFlex">
<div class="SheetCol">
<input type="checkbox" class="triggerbox" name="attr_Show-Modes" value="1">
<div class="ModeCell">
<div class="SectionHeader">
<span data-i18n="modes">Modes</span>
<span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditModes" value="1" checked><span class="pencilbox"/></span></span>
</div>
<div class="SkillFrame">
<input type="checkbox" class="triggerbox" name="attr_EditModes" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="modes">Modes</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditModes" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_modes">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="mode">Mode</div>
<input type="text" name="attr_mode">
<div class="fieldlabel"><span data-i18n="rating">Rating</span> <input type="number" name="attr_rating" value="0" min="-4" max="6"></div>
<input type="hidden" name="attr_word" value="">
<div class="fieldlabel" data-i18n="skill-comma-list">List of Skills (Comma Separated)</div>
<input type="text" name="attr_skills">
</div>
</fieldset>
<div data-i18n="skills-listed-need" class="limited-width"></div>
<div>
<div class="fieldlabel" data-i18n="add-modes">Add Mode</div>
<select name="attr_addmode">
<option value="" data-i18n="mode-choose"></option>
<optgroup label="Atomic Robo" data-i18n-label="robo">
<option value="action" data-i18n="action"></option>
<option value="banter" data-i18n="banter"></option>
<option value="intrigue" data-i18n="intrigue"></option>
<option value="science" data-i18n="science"></option>
</optgroup>
<optgroup label="Majestic 12" data-i18n-label="m12">
<option value="adf" data-i18n="adf"></option>
<option value="erd" data-i18n="erd"></option>
<option value="feb" data-i18n="feb"></option>
<option value="oop" data-i18n="oop"></option>
<option value="psi" data-i18n="psi"></option>
<option value="sdu" data-i18n="sdu"></option>
<option value="soldier" data-i18n="soldier"></option>
</optgroup>
<optgroup label="Kaiju Inc" data-i18n-label="kaijuinc">
<option value="crisis" data-i18n="crisis"></option>
<option value="lab" data-i18n="lab"></option>
<option value="office" data-i18n="office"></option>
<option value="pr" data-i18n="pr"></option>
</optgroup>
<optgroup label="Fate System Toolkit" data-i18n-label="fst">
<option value="battle" data-i18n="battle"></option>
<option value="talk" data-i18n="talk"></option>
<option value="thievery" data-i18n="thievery"></option>
<option value="woodcraft" data-i18n="woodcraft"></option>
</optgroup>
</select>
</div>
</div> <!-- SkillEdit -->
<div class="PowerDisplay">
<fieldset class="repeating_modes">
<div class="mode space-below">
<b><span name="attr_mode"></span>:</b>
<span name="attr_word"></span><br>
<i><span name="attr_skills"></span></i>
</div>
</fieldset>
<input type="hidden" name="attr_focused" value="" class="hideIfNull">
<div>
<b><span data-i18n="autofocus">Automatically Focused</span>:</b>
<span name="attr_focused"></span>
</div>
<input type="hidden" name="attr_specialized" value="" class="hideIfNull">
<div>
<b><span data-i18n="autospecialized">Automatically Specialized</span>:</b>
<span name="attr_specialized"></span>
</div>
</div> <!-- PowerDisplay -->
</div> <!-- SkillFrame -->
</div> <!-- End Modes -->
<input type="checkbox" class="triggerbox" name="attr_Show-Roles" value="1">
<div class="RoleCell">
<div class="SectionHeader">
<span data-i18n="roles">Roles</span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditRoles" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="SkillFrame">
<input type="checkbox" class="triggerbox" name="attr_EditRoles" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="roles">Roles</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditRoles" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_roles">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="role">Role</div>
<input type="text" name="attr_role">
<div class="fieldlabel" data-i18n="skill-comma-list">List of Skills (Comma Separated)</div>
<input type="text" name="attr_skills">
</div>
</fieldset>
<div data-i18n="skills-listed-need" class="limited-width"></div>
<div>
<div class="fieldlabel" data-i18n="add-roles">Add Role</div>
<select name="attr_addrole">
<option value="" data-i18n="role-choose"></option>
<optgroup label="Shadow of the Century" data-i18n-label="shotc">
<option value="brain" data-i18n="brain"></option>
<option value="brawler" data-i18n="brawler"></option>
<option value="cop" data-i18n="cop"></option>
<option value="detective" data-i18n="detective"></option>
<option value="dilettante" data-i18n="dilettante"></option>
<option value="face" data-i18n="face"></option>
<option value="hacker" data-i18n="hacker"></option>
<option value="inventor" data-i18n="inventor"></option>
<option value="leader" data-i18n="leader"></option>
<option value="ninja" data-i18n="ninja"></option>
<option value="saboteur" data-i18n="saboteur"></option>
<option value="soldier" data-i18n="soldier"></option>
<option value="spy" data-i18n="spy"></option>
<option value="thief" data-i18n="thief"></option>
<option value="warrior" data-i18n="warrior"></option>
<option value="wheels" data-i18n="wheels"></option>
</optgroup>
</select>
</div>
</div>
<div class="PowerDisplay">
<fieldset class="repeating_roles">
<div class="role">
<b><span name="attr_role"></span></b> (<span name="attr_skills"></span>)
</div>
</fieldset>
</div>
</div>
</div> <!-- End Roles -->
<!-- Swappable Skillsets -->
<input type="hidden" name="attr_lastswapped" value="">
<input type="checkbox" class="triggerbox" name="attr_Show-Skillswaps" value="1">
<div class="SkillCell">
<div class="SectionHeader">
<span data-i18n="swap-skills">Swappable Skillsets</span> <span name="attr_lastswapped"></span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditSwaps" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="SkillFrame">
<input type="checkbox" class="triggerbox" name="attr_EditSwaps" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="swap-skills">Swappable Skillsets</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditSwaps" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_swaps">
<div>
<div class="fieldlabel" data-i18n="label">Label</div>
</div>
<input type="text" name="attr_label" value="">
<div>
<div class="fieldlabel" data-i18n="skills">Skills</div>
</div>
<div data-i18n="swap-skills-instruct"></div>
<textarea name="attr_skills"></textarea>
<button type="action" name="act_importswap"><span data-i18n="grab-current-skills"></span></button>
</fieldset>
</div>
<div class="SkillDisplay">
<input type="hidden" value="list">
<div class="SkillList">
<fieldset class="repeating_swaps">
<button type="action" name="act_loadswap"><span data-i18n="load-skillset"></span>: <b><span name="attr_label"></span></b></button>
</fieldset>
</div>
</div>
</div>
</div>
<!-- / Swappable Skillsets -->
<!-- Combinable Skills -->
<input type="checkbox" class="triggerbox" name="attr_Show-Combinable" value="1">
<div class="SkillCell">
<div class="SectionHeader">
<span data-i18n="combine-skills">Combinable Skills</span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditCombos" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="SkillFrame">
<input type="checkbox" class="triggerbox" name="attr_EditCombos" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="combine-skills">Combinable Skills</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditCombos" value="1" checked><span class="pencilbox"/></span>
</div>
<div>
<span data-i18n="combine-skills-instruct"></span>
<fieldset class="repeating_skills">
<input type="hidden" name="attr_skill">
<div class="SkillEditRow" style="padding-bottom: 6px;">
<div class="nowrap">#<input type="number" value="1" min="0" max="3" name="attr_column" class="ultracompact"></div>
<div class="nowrap clipped" style="width: 100%;"><span name="attr_skill"></span></div>
</div>
</fieldset>
</div>
<div>
<input type="checkbox" class="checkbox" name="attr_combomulti" value="1"><span class="checkmark"></span> <span data-i18n="combine-skills-multi">Allow selection of multiple skills from the same column</span>
</div>
<div class="fieldlabel" data-i18n="column names optional">
Column Names (Optional)
</div>
<div>
#1&nbsp;<input type="text" name="attr_combocol1" value="">
</div>
<div>
#2&nbsp;<input type="text" name="attr_combocol2" value="">
</div>
<div>
#3&nbsp;<input type="text" name="attr_combocol3" value="">
</div>
</div> <!-- end edit frame -->
<div>
<div>
<input type="hidden" name="attr_combotally" value="0">
<input type="hidden" name="attr_combotext" value="" class="hideIfNull">
<div class="SkillDisplay">
<button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{combotext}}} {{roll=[[@{fatedice}+@{combotally}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll">
<b><span name="attr_combotext"></span></b>
=
<span name="attr_combotally"></span>
</button>
</div>
</div>
<div class="ComboColumns">
<input type="hidden" name="attr_combocol1" value="">
<input type="hidden" name="attr_combocol2" value="">
<input type="hidden" name="attr_combocol3" value="">
<div class="ComboColumn">
<div class="fieldlabel"><span name="attr_combocol1" class="label"></span></div>
<fieldset class="repeating_skills">
<input type="hidden" name="attr_skill">
<input type="hidden" name="attr_rating-word">
<input type="hidden" name="attr_column">
<div class="SkillColumnFirst">
<input type="checkbox" class="checkbox" name="attr_rollthis" value="1"><span class="checkmark"></span>
<b><span name="attr_skill"></span></b>: <span name="attr_rating-word"></span>
</div>
</fieldset>
</div>
<div class="ComboColumn">
<div class="fieldlabel"><span name="attr_combocol2" class="label"></span></div>
<fieldset class="repeating_skills">
<input type="hidden" name="attr_skill">
<input type="hidden" name="attr_rating-word">
<input type="hidden" name="attr_column">
<div class="SkillColumnSecond">
<input type="checkbox" class="checkbox" name="attr_rollthis" value="1"><span class="checkmark"></span>
<b><span name="attr_skill"></span></b>: <span name="attr_rating-word"></span>
</div>
</fieldset>
</div>
<div class="ComboColumn">
<div class="fieldlabel"><span name="attr_combocol3" class="label"></span></div>
<fieldset class="repeating_skills">
<input type="hidden" name="attr_skill">
<input type="hidden" name="attr_rating-word">
<input type="hidden" name="attr_column">
<div class="SkillColumnThird">
<input type="checkbox" class="checkbox" name="attr_rollthis" value="1"><span class="checkmark"></span>
<b><span name="attr_skill"></span></b>: <span name="attr_rating-word"></span>
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
<!-- / Combinable Skills -->
<!-- Skills -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-Skills" value="1">
<div class="SkillCell">
<div class="SectionHeader">
<span><span data-i18n="skills">Skills</span> <span class="listcount" name="attr_skillcount"></span></span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditSkills" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="SkillFrame">
<input type="checkbox" class="triggerbox" name="attr_EditSkills" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="skills">Skills</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditSkills" value="1" checked><span class="pencilbox"/></span>
</div>
<input type="checkbox" class="deeptrigger" name="attr_Show-Modes" value="1">
<input type="checkbox" class="deeptrigger" name="attr_Show-Roles" value="1">
<fieldset class="repeating_skills">
<div class="SkillEditRow">
<input name="attr_column" type="hidden" value="1">
<input name="attr_skill" type="text" class="compact">
<input type="number" value="0" min="-4" max="10" name="attr_rating" class="ultracompact">
<input type="hidden" name="attr_bonus" value="0">
<div class="deeptriggered smalltext">+&nbsp;<span name="attr_bonus"></span>&nbsp;=</span></div>
<input name="attr_rating-word" type="hidden">
<div class="nowrap clipped smalltext" style="width: 100%;"><span name="attr_rating-word"></span></div>
</div>
</fieldset>
<input type="checkbox" class="triggerbox" name="attr_Show-Roles" value="1">
<div>
<div class="fieldlabel" data-i18n="roles-enabled" style="padding-left: 6px;">Roles Enabled!</div>
</div>
<div>
<div class="fieldlabel" data-i18n="display-style">Display Style:</div>
<select name="attr_SkillStyle">
<option value="" selected data-i18n="display-choose">[Choose Display Style]</option>
<option value="pyramid" data-i18n="display-by-rating">Group By Rating</option>
<option value="list" data-i18n="display-by-list">List</option>
</select>
</div>
<div>
<div class="fieldlabel" data-i18n="add-skills">Add Skillset</div>
<select name="attr_addskills">
<option value="" data-i18n="set-choose"></option>
<option value="fcore" data-i18n="fcore"></option>
<option value="fcon" data-i18n="fcon"></option>
<option value="fae" data-i18n="fae"></option>
<option value="robo" data-i18n="robo"></option>
<option value="m12" data-i18n="m12"></option>
<option value="cats" data-i18n="cats"></option>
<option value="dfa" data-i18n="dfa"></option>
<option value="kaijuinc" data-i18n="kaijuinc"></option>
<option value="shotc" data-i18n="shotc"></option>
</select>
<div data-i18n="roll20-issue" class="limited-width"></div>
</div>
</div> <!-- /SkillEdit -->
<div class="SkillDisplay">
<input type="hidden" name="attr_SkillStyle" value="">
<div class="SkillNone">
</div>
<input type="hidden" name="attr_SkillStyle" value="">
<div class="SkillList">
<fieldset class="repeating_skills">
<input type="hidden" name="attr_skill"><input type="hidden" name="attr_bonus" value="0"><input type="hidden" name="attr_rating"><input type="hidden" name="attr_rating-word"><!-- with a type so it'll register as available to the button -->
<button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill}}} {{roll=[[@{fatedice}+@{rating}+@{bonus}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll">
<b><span name="attr_skill"></span></b>:
<span name="attr_rating-word"></span>
</button>
</fieldset>
</div> <!-- /SkillList -->
<input type="hidden" name="attr_SkillStyle" value="">
<div class="SkillGrid">
<input type="hidden" name="attr_skill-row10" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating10"></div>
<div>
<input type="hidden" name="attr_skill-row10-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-0}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-0"></span></button>
<input type="hidden" name="attr_skill-row10-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-1}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-1"></span></button>
<input type="hidden" name="attr_skill-row10-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-2}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-2"></span></button>
<input type="hidden" name="attr_skill-row10-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-3}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-3"></span></button>
<input type="hidden" name="attr_skill-row10-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-4}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-4"></span></button>
<input type="hidden" name="attr_skill-row10-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-5}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-5"></span></button>
<input type="hidden" name="attr_skill-row10-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-6}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-6"></span></button>
<input type="hidden" name="attr_skill-row10-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-7}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-7"></span></button>
<input type="hidden" name="attr_skill-row10-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-8}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-8"></span></button>
<input type="hidden" name="attr_skill-row10-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-9}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-9"></span></button>
<input type="hidden" name="attr_skill-row10-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-10}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-10"></span></button>
<input type="hidden" name="attr_skill-row10-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-11}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-11"></span></button>
<input type="hidden" name="attr_skill-row10-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-12}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-12"></span></button>
<input type="hidden" name="attr_skill-row10-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-13}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-13"></span></button>
<input type="hidden" name="attr_skill-row10-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-14}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-14"></span></button>
<input type="hidden" name="attr_skill-row10-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-15}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-15"></span></button>
<input type="hidden" name="attr_skill-row10-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-16}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-16"></span></button>
<input type="hidden" name="attr_skill-row10-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-17}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-17"></span></button>
<input type="hidden" name="attr_skill-row10-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-18}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-18"></span></button>
<input type="hidden" name="attr_skill-row10-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row10-19}}} {{roll=[[@{fatedice}+10+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row10-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row9" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating9"></div>
<div>
<input type="hidden" name="attr_skill-row9-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-0}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-0"></span></button>
<input type="hidden" name="attr_skill-row9-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-1}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-1"></span></button>
<input type="hidden" name="attr_skill-row9-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-2}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-2"></span></button>
<input type="hidden" name="attr_skill-row9-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-3}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-3"></span></button>
<input type="hidden" name="attr_skill-row9-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-4}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-4"></span></button>
<input type="hidden" name="attr_skill-row9-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-5}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-5"></span></button>
<input type="hidden" name="attr_skill-row9-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-6}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-6"></span></button>
<input type="hidden" name="attr_skill-row9-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-7}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-7"></span></button>
<input type="hidden" name="attr_skill-row9-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-8}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-8"></span></button>
<input type="hidden" name="attr_skill-row9-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-9}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-9"></span></button>
<input type="hidden" name="attr_skill-row9-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-10}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-10"></span></button>
<input type="hidden" name="attr_skill-row9-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-11}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-11"></span></button>
<input type="hidden" name="attr_skill-row9-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-12}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-12"></span></button>
<input type="hidden" name="attr_skill-row9-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-13}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-13"></span></button>
<input type="hidden" name="attr_skill-row9-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-14}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-14"></span></button>
<input type="hidden" name="attr_skill-row9-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-15}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-15"></span></button>
<input type="hidden" name="attr_skill-row9-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-16}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-16"></span></button>
<input type="hidden" name="attr_skill-row9-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-17}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-17"></span></button>
<input type="hidden" name="attr_skill-row9-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-18}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-18"></span></button>
<input type="hidden" name="attr_skill-row9-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row9-19}}} {{roll=[[@{fatedice}+9+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row9-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row8" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating8"></div>
<div>
<input type="hidden" name="attr_skill-row8-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-0}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-0"></span></button>
<input type="hidden" name="attr_skill-row8-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-1}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-1"></span></button>
<input type="hidden" name="attr_skill-row8-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-2}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-2"></span></button>
<input type="hidden" name="attr_skill-row8-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-3}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-3"></span></button>
<input type="hidden" name="attr_skill-row8-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-4}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-4"></span></button>
<input type="hidden" name="attr_skill-row8-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-5}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-5"></span></button>
<input type="hidden" name="attr_skill-row8-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-6}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-6"></span></button>
<input type="hidden" name="attr_skill-row8-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-7}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-7"></span></button>
<input type="hidden" name="attr_skill-row8-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-8}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-8"></span></button>
<input type="hidden" name="attr_skill-row8-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-9}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-9"></span></button>
<input type="hidden" name="attr_skill-row8-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-10}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-10"></span></button>
<input type="hidden" name="attr_skill-row8-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-11}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-11"></span></button>
<input type="hidden" name="attr_skill-row8-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-12}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-12"></span></button>
<input type="hidden" name="attr_skill-row8-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-13}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-13"></span></button>
<input type="hidden" name="attr_skill-row8-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-14}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-14"></span></button>
<input type="hidden" name="attr_skill-row8-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-15}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-15"></span></button>
<input type="hidden" name="attr_skill-row8-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-16}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-16"></span></button>
<input type="hidden" name="attr_skill-row8-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-17}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-17"></span></button>
<input type="hidden" name="attr_skill-row8-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-18}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-18"></span></button>
<input type="hidden" name="attr_skill-row8-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row8-19}}} {{roll=[[@{fatedice}+8+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row8-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row7" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating7"></div>
<div>
<input type="hidden" name="attr_skill-row7-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-0}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-0"></span></button>
<input type="hidden" name="attr_skill-row7-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-1}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-1"></span></button>
<input type="hidden" name="attr_skill-row7-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-2}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-2"></span></button>
<input type="hidden" name="attr_skill-row7-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-3}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-3"></span></button>
<input type="hidden" name="attr_skill-row7-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-4}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-4"></span></button>
<input type="hidden" name="attr_skill-row7-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-5}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-5"></span></button>
<input type="hidden" name="attr_skill-row7-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-6}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-6"></span></button>
<input type="hidden" name="attr_skill-row7-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-7}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-7"></span></button>
<input type="hidden" name="attr_skill-row7-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-8}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-8"></span></button>
<input type="hidden" name="attr_skill-row7-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-9}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-9"></span></button>
<input type="hidden" name="attr_skill-row7-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-10}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-10"></span></button>
<input type="hidden" name="attr_skill-row7-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-11}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-11"></span></button>
<input type="hidden" name="attr_skill-row7-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-12}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-12"></span></button>
<input type="hidden" name="attr_skill-row7-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-13}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-13"></span></button>
<input type="hidden" name="attr_skill-row7-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-14}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-14"></span></button>
<input type="hidden" name="attr_skill-row7-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-15}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-15"></span></button>
<input type="hidden" name="attr_skill-row7-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-16}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-16"></span></button>
<input type="hidden" name="attr_skill-row7-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-17}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-17"></span></button>
<input type="hidden" name="attr_skill-row7-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-18}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-18"></span></button>
<input type="hidden" name="attr_skill-row7-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row7-19}}} {{roll=[[@{fatedice}+7+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row7-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row6" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating6"></div>
<div>
<input type="hidden" name="attr_skill-row6-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-0}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-0"></span></button>
<input type="hidden" name="attr_skill-row6-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-1}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-1"></span></button>
<input type="hidden" name="attr_skill-row6-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-2}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-2"></span></button>
<input type="hidden" name="attr_skill-row6-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-3}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-3"></span></button>
<input type="hidden" name="attr_skill-row6-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-4}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-4"></span></button>
<input type="hidden" name="attr_skill-row6-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-5}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-5"></span></button>
<input type="hidden" name="attr_skill-row6-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-6}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-6"></span></button>
<input type="hidden" name="attr_skill-row6-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-7}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-7"></span></button>
<input type="hidden" name="attr_skill-row6-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-8}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-8"></span></button>
<input type="hidden" name="attr_skill-row6-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-9}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-9"></span></button>
<input type="hidden" name="attr_skill-row6-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-10}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-10"></span></button>
<input type="hidden" name="attr_skill-row6-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-11}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-11"></span></button>
<input type="hidden" name="attr_skill-row6-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-12}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-12"></span></button>
<input type="hidden" name="attr_skill-row6-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-13}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-13"></span></button>
<input type="hidden" name="attr_skill-row6-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-14}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-14"></span></button>
<input type="hidden" name="attr_skill-row6-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-15}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-15"></span></button>
<input type="hidden" name="attr_skill-row6-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-16}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-16"></span></button>
<input type="hidden" name="attr_skill-row6-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-17}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-17"></span></button>
<input type="hidden" name="attr_skill-row6-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-18}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-18"></span></button>
<input type="hidden" name="attr_skill-row6-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row6-19}}} {{roll=[[@{fatedice}+6+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row6-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row5" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating5"></div>
<div>
<input type="hidden" name="attr_skill-row5-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-0}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-0"></span></button>
<input type="hidden" name="attr_skill-row5-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-1}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-1"></span></button>
<input type="hidden" name="attr_skill-row5-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-2}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-2"></span></button>
<input type="hidden" name="attr_skill-row5-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-3}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-3"></span></button>
<input type="hidden" name="attr_skill-row5-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-4}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-4"></span></button>
<input type="hidden" name="attr_skill-row5-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-5}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-5"></span></button>
<input type="hidden" name="attr_skill-row5-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-6}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-6"></span></button>
<input type="hidden" name="attr_skill-row5-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-7}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-7"></span></button>
<input type="hidden" name="attr_skill-row5-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-8}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-8"></span></button>
<input type="hidden" name="attr_skill-row5-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-9}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-9"></span></button>
<input type="hidden" name="attr_skill-row5-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-10}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-10"></span></button>
<input type="hidden" name="attr_skill-row5-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-11}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-11"></span></button>
<input type="hidden" name="attr_skill-row5-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-12}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-12"></span></button>
<input type="hidden" name="attr_skill-row5-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-13}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-13"></span></button>
<input type="hidden" name="attr_skill-row5-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-14}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-14"></span></button>
<input type="hidden" name="attr_skill-row5-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-15}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-15"></span></button>
<input type="hidden" name="attr_skill-row5-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-16}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-16"></span></button>
<input type="hidden" name="attr_skill-row5-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-17}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-17"></span></button>
<input type="hidden" name="attr_skill-row5-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-18}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-18"></span></button>
<input type="hidden" name="attr_skill-row5-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row5-19}}} {{roll=[[@{fatedice}+5+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row5-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row4" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating4"></div>
<div>
<input type="hidden" name="attr_skill-row4-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-0}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-0"></span></button>
<input type="hidden" name="attr_skill-row4-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-1}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-1"></span></button>
<input type="hidden" name="attr_skill-row4-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-2}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-2"></span></button>
<input type="hidden" name="attr_skill-row4-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-3}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-3"></span></button>
<input type="hidden" name="attr_skill-row4-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-4}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-4"></span></button>
<input type="hidden" name="attr_skill-row4-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-5}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-5"></span></button>
<input type="hidden" name="attr_skill-row4-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-6}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-6"></span></button>
<input type="hidden" name="attr_skill-row4-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-7}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-7"></span></button>
<input type="hidden" name="attr_skill-row4-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-8}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-8"></span></button>
<input type="hidden" name="attr_skill-row4-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-9}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-9"></span></button>
<input type="hidden" name="attr_skill-row4-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-10}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-10"></span></button>
<input type="hidden" name="attr_skill-row4-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-11}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-11"></span></button>
<input type="hidden" name="attr_skill-row4-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-12}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-12"></span></button>
<input type="hidden" name="attr_skill-row4-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-13}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-13"></span></button>
<input type="hidden" name="attr_skill-row4-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-14}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-14"></span></button>
<input type="hidden" name="attr_skill-row4-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-15}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-15"></span></button>
<input type="hidden" name="attr_skill-row4-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-16}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-16"></span></button>
<input type="hidden" name="attr_skill-row4-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-17}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-17"></span></button>
<input type="hidden" name="attr_skill-row4-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-18}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-18"></span></button>
<input type="hidden" name="attr_skill-row4-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row4-19}}} {{roll=[[@{fatedice}+4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row4-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row3" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating3"></div>
<div>
<input type="hidden" name="attr_skill-row3-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-0}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-0"></span></button>
<input type="hidden" name="attr_skill-row3-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-1}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-1"></span></button>
<input type="hidden" name="attr_skill-row3-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-2}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-2"></span></button>
<input type="hidden" name="attr_skill-row3-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-3}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-3"></span></button>
<input type="hidden" name="attr_skill-row3-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-4}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-4"></span></button>
<input type="hidden" name="attr_skill-row3-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-5}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-5"></span></button>
<input type="hidden" name="attr_skill-row3-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-6}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-6"></span></button>
<input type="hidden" name="attr_skill-row3-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-7}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-7"></span></button>
<input type="hidden" name="attr_skill-row3-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-8}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-8"></span></button>
<input type="hidden" name="attr_skill-row3-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-9}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-9"></span></button>
<input type="hidden" name="attr_skill-row3-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-10}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-10"></span></button>
<input type="hidden" name="attr_skill-row3-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-11}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-11"></span></button>
<input type="hidden" name="attr_skill-row3-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-12}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-12"></span></button>
<input type="hidden" name="attr_skill-row3-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-13}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-13"></span></button>
<input type="hidden" name="attr_skill-row3-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-14}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-14"></span></button>
<input type="hidden" name="attr_skill-row3-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-15}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-15"></span></button>
<input type="hidden" name="attr_skill-row3-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-16}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-16"></span></button>
<input type="hidden" name="attr_skill-row3-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-17}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-17"></span></button>
<input type="hidden" name="attr_skill-row3-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-18}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-18"></span></button>
<input type="hidden" name="attr_skill-row3-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row3-19}}} {{roll=[[@{fatedice}+3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row3-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row2" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating2"></div>
<div>
<input type="hidden" name="attr_skill-row2-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-0}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-0"></span></button>
<input type="hidden" name="attr_skill-row2-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-1}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-1"></span></button>
<input type="hidden" name="attr_skill-row2-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-2}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-2"></span></button>
<input type="hidden" name="attr_skill-row2-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-3}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-3"></span></button>
<input type="hidden" name="attr_skill-row2-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-4}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-4"></span></button>
<input type="hidden" name="attr_skill-row2-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-5}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-5"></span></button>
<input type="hidden" name="attr_skill-row2-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-6}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-6"></span></button>
<input type="hidden" name="attr_skill-row2-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-7}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-7"></span></button>
<input type="hidden" name="attr_skill-row2-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-8}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-8"></span></button>
<input type="hidden" name="attr_skill-row2-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-9}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-9"></span></button>
<input type="hidden" name="attr_skill-row2-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-10}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-10"></span></button>
<input type="hidden" name="attr_skill-row2-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-11}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-11"></span></button>
<input type="hidden" name="attr_skill-row2-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-12}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-12"></span></button>
<input type="hidden" name="attr_skill-row2-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-13}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-13"></span></button>
<input type="hidden" name="attr_skill-row2-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-14}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-14"></span></button>
<input type="hidden" name="attr_skill-row2-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-15}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-15"></span></button>
<input type="hidden" name="attr_skill-row2-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-16}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-16"></span></button>
<input type="hidden" name="attr_skill-row2-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-17}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-17"></span></button>
<input type="hidden" name="attr_skill-row2-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-18}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-18"></span></button>
<input type="hidden" name="attr_skill-row2-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row2-19}}} {{roll=[[@{fatedice}+2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row2-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row1" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating1"></div>
<div>
<input type="hidden" name="attr_skill-row1-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-0}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-0"></span></button>
<input type="hidden" name="attr_skill-row1-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-1}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-1"></span></button>
<input type="hidden" name="attr_skill-row1-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-2}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-2"></span></button>
<input type="hidden" name="attr_skill-row1-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-3}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-3"></span></button>
<input type="hidden" name="attr_skill-row1-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-4}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-4"></span></button>
<input type="hidden" name="attr_skill-row1-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-5}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-5"></span></button>
<input type="hidden" name="attr_skill-row1-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-6}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-6"></span></button>
<input type="hidden" name="attr_skill-row1-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-7}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-7"></span></button>
<input type="hidden" name="attr_skill-row1-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-8}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-8"></span></button>
<input type="hidden" name="attr_skill-row1-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-9}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-9"></span></button>
<input type="hidden" name="attr_skill-row1-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-10}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-10"></span></button>
<input type="hidden" name="attr_skill-row1-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-11}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-11"></span></button>
<input type="hidden" name="attr_skill-row1-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-12}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-12"></span></button>
<input type="hidden" name="attr_skill-row1-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-13}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-13"></span></button>
<input type="hidden" name="attr_skill-row1-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-14}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-14"></span></button>
<input type="hidden" name="attr_skill-row1-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-15}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-15"></span></button>
<input type="hidden" name="attr_skill-row1-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-16}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-16"></span></button>
<input type="hidden" name="attr_skill-row1-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-17}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-17"></span></button>
<input type="hidden" name="attr_skill-row1-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-18}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-18"></span></button>
<input type="hidden" name="attr_skill-row1-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row1-19}}} {{roll=[[@{fatedice}+1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row1-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row0" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating0"></div>
<div>
<input type="hidden" name="attr_skill-row0-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-0}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-0"></span></button>
<input type="hidden" name="attr_skill-row0-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-1}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-1"></span></button>
<input type="hidden" name="attr_skill-row0-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-2}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-2"></span></button>
<input type="hidden" name="attr_skill-row0-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-3}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-3"></span></button>
<input type="hidden" name="attr_skill-row0-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-4}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-4"></span></button>
<input type="hidden" name="attr_skill-row0-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-5}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-5"></span></button>
<input type="hidden" name="attr_skill-row0-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-6}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-6"></span></button>
<input type="hidden" name="attr_skill-row0-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-7}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-7"></span></button>
<input type="hidden" name="attr_skill-row0-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-8}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-8"></span></button>
<input type="hidden" name="attr_skill-row0-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-9}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-9"></span></button>
<input type="hidden" name="attr_skill-row0-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-10}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-10"></span></button>
<input type="hidden" name="attr_skill-row0-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-11}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-11"></span></button>
<input type="hidden" name="attr_skill-row0-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-12}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-12"></span></button>
<input type="hidden" name="attr_skill-row0-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-13}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-13"></span></button>
<input type="hidden" name="attr_skill-row0-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-14}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-14"></span></button>
<input type="hidden" name="attr_skill-row0-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-15}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-15"></span></button>
<input type="hidden" name="attr_skill-row0-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-16}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-16"></span></button>
<input type="hidden" name="attr_skill-row0-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-17}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-17"></span></button>
<input type="hidden" name="attr_skill-row0-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-18}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-18"></span></button>
<input type="hidden" name="attr_skill-row0-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row0-19}}} {{roll=[[@{fatedice}+0+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row0-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row-1" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating-1"></div>
<div>
<input type="hidden" name="attr_skill-row-1-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-0}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-0"></span></button>
<input type="hidden" name="attr_skill-row-1-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-1}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-1"></span></button>
<input type="hidden" name="attr_skill-row-1-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-2}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-2"></span></button>
<input type="hidden" name="attr_skill-row-1-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-3}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-3"></span></button>
<input type="hidden" name="attr_skill-row-1-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-4}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-4"></span></button>
<input type="hidden" name="attr_skill-row-1-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-5}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-5"></span></button>
<input type="hidden" name="attr_skill-row-1-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-6}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-6"></span></button>
<input type="hidden" name="attr_skill-row-1-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-7}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-7"></span></button>
<input type="hidden" name="attr_skill-row-1-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-8}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-8"></span></button>
<input type="hidden" name="attr_skill-row-1-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-9}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-9"></span></button>
<input type="hidden" name="attr_skill-row-1-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-10}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-10"></span></button>
<input type="hidden" name="attr_skill-row-1-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-11}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-11"></span></button>
<input type="hidden" name="attr_skill-row-1-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-12}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-12"></span></button>
<input type="hidden" name="attr_skill-row-1-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-13}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-13"></span></button>
<input type="hidden" name="attr_skill-row-1-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-14}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-14"></span></button>
<input type="hidden" name="attr_skill-row-1-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-15}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-15"></span></button>
<input type="hidden" name="attr_skill-row-1-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-16}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-16"></span></button>
<input type="hidden" name="attr_skill-row-1-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-17}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-17"></span></button>
<input type="hidden" name="attr_skill-row-1-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-18}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-18"></span></button>
<input type="hidden" name="attr_skill-row-1-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-1-19}}} {{roll=[[4dF-1+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-1-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row-2" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating-2"></div>
<div>
<input type="hidden" name="attr_skill-row-2-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-0}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-0"></span></button>
<input type="hidden" name="attr_skill-row-2-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-1}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-1"></span></button>
<input type="hidden" name="attr_skill-row-2-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-2}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-2"></span></button>
<input type="hidden" name="attr_skill-row-2-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-3}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-3"></span></button>
<input type="hidden" name="attr_skill-row-2-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-4}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-4"></span></button>
<input type="hidden" name="attr_skill-row-2-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-5}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-5"></span></button>
<input type="hidden" name="attr_skill-row-2-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-6}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-6"></span></button>
<input type="hidden" name="attr_skill-row-2-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-7}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-7"></span></button>
<input type="hidden" name="attr_skill-row-2-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-8}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-8"></span></button>
<input type="hidden" name="attr_skill-row-2-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-9}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-9"></span></button>
<input type="hidden" name="attr_skill-row-2-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-10}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-10"></span></button>
<input type="hidden" name="attr_skill-row-2-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-11}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-11"></span></button>
<input type="hidden" name="attr_skill-row-2-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-12}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-12"></span></button>
<input type="hidden" name="attr_skill-row-2-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-13}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-13"></span></button>
<input type="hidden" name="attr_skill-row-2-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-14}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-14"></span></button>
<input type="hidden" name="attr_skill-row-2-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-15}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-15"></span></button>
<input type="hidden" name="attr_skill-row-2-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-16}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-16"></span></button>
<input type="hidden" name="attr_skill-row-2-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-17}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-17"></span></button>
<input type="hidden" name="attr_skill-row-2-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-18}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-18"></span></button>
<input type="hidden" name="attr_skill-row-2-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-2-19}}} {{roll=[[4dF-2+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-2-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row-3" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating-3"></div>
<div>
<input type="hidden" name="attr_skill-row-3-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-0}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-0"></span></button>
<input type="hidden" name="attr_skill-row-3-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-1}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-1"></span></button>
<input type="hidden" name="attr_skill-row-3-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-2}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-2"></span></button>
<input type="hidden" name="attr_skill-row-3-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-3}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-3"></span></button>
<input type="hidden" name="attr_skill-row-3-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-4}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-4"></span></button>
<input type="hidden" name="attr_skill-row-3-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-5}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-5"></span></button>
<input type="hidden" name="attr_skill-row-3-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-6}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-6"></span></button>
<input type="hidden" name="attr_skill-row-3-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-7}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-7"></span></button>
<input type="hidden" name="attr_skill-row-3-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-8}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-8"></span></button>
<input type="hidden" name="attr_skill-row-3-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-9}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-9"></span></button>
<input type="hidden" name="attr_skill-row-3-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-10}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-10"></span></button>
<input type="hidden" name="attr_skill-row-3-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-11}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-11"></span></button>
<input type="hidden" name="attr_skill-row-3-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-12}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-12"></span></button>
<input type="hidden" name="attr_skill-row-3-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-13}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-13"></span></button>
<input type="hidden" name="attr_skill-row-3-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-14}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-14"></span></button>
<input type="hidden" name="attr_skill-row-3-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-15}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-15"></span></button>
<input type="hidden" name="attr_skill-row-3-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-16}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-16"></span></button>
<input type="hidden" name="attr_skill-row-3-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-17}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-17"></span></button>
<input type="hidden" name="attr_skill-row-3-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-18}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-18"></span></button>
<input type="hidden" name="attr_skill-row-3-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-3-19}}} {{roll=[[4dF-3+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-3-19"></span></button>
</div>
</div>
<input type="hidden" name="attr_skill-row-4" value="" class="hideIfNull">
<div>
<div class="SkillGridRating" data-i18n="rating-4"></div>
<div>
<input type="hidden" name="attr_skill-row-4-0" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-0}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-0"></span></button>
<input type="hidden" name="attr_skill-row-4-1" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-1}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-1"></span></button>
<input type="hidden" name="attr_skill-row-4-2" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-2}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-2"></span></button>
<input type="hidden" name="attr_skill-row-4-3" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-3}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-3"></span></button>
<input type="hidden" name="attr_skill-row-4-4" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-4}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-4"></span></button>
<input type="hidden" name="attr_skill-row-4-5" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-5}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-5"></span></button>
<input type="hidden" name="attr_skill-row-4-6" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-6}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-6"></span></button>
<input type="hidden" name="attr_skill-row-4-7" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-7}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-7"></span></button>
<input type="hidden" name="attr_skill-row-4-8" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-8}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-8"></span></button>
<input type="hidden" name="attr_skill-row-4-9" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-9}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-9"></span></button>
<input type="hidden" name="attr_skill-row-4-10" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-10}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-10"></span></button>
<input type="hidden" name="attr_skill-row-4-11" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-11}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-11"></span></button>
<input type="hidden" name="attr_skill-row-4-12" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-12}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-12"></span></button>
<input type="hidden" name="attr_skill-row-4-13" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-13}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-13"></span></button>
<input type="hidden" name="attr_skill-row-4-14" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-14}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-14"></span></button>
<input type="hidden" name="attr_skill-row-4-15" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-15}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-15"></span></button>
<input type="hidden" name="attr_skill-row-4-16" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-16}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-16"></span></button>
<input type="hidden" name="attr_skill-row-4-17" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-17}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-17"></span></button>
<input type="hidden" name="attr_skill-row-4-18" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-18}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-18"></span></button>
<input type="hidden" name="attr_skill-row-4-19" value="" class="hideIfNull"><button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill-row-4-19}}} {{roll=[[4dF-4+@{Show-Diceprompts}]]}}" name="roll_SkillRoll"><span name="attr_skill-row-4-19"></span></button>
</div>
</div>
</div> <!-- /SkillGrid -->
</div> <!-- /SkillDisplay -->
</div> <!-- /SkillFrame -->
</div> <!-- /SkillCell -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-Stunts" value="1">
<div class="StuntCell">
<div class="SectionHeader">
<span><span data-i18n="stunts">Stunts</span> <span class="listcount" name="attr_stuntcount"></span></span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditStunts" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="StuntFrame">
<input type="checkbox" class="triggerbox" name="attr_EditStunts" value="1" checked>
<div class="StuntEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="stunts">Stunts</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditStunts" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_stunts">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="name">Name</div>
<input name="attr_name" type="text">
<div class"fieldlabel"><input type="checkbox" name="attr_rollable" value="1"> <span class="fieldlabel" data-i18n="rollable">Rollable</span></div>
<input type="checkbox" class="triggerbox" name="attr_rollable" value="1">
<div>
<div class="fieldlabel" data-i18n="bonus">Bonus</div>
<input name="attr_bonus" type="number" value="0">
<div class="fieldlabel" data-i18n="skill">Skill</div>
<input name="attr_skill" type="text" value="">
<input name="attr_skillvalue" type="hidden" value="0">
</div>
<div class="fieldlabel" data-i18n="desc">Description</div>
<textarea name="attr_desc" rows=3></textarea>
</div>
</fieldset>
</div> <!-- /StuntEdit -->
<div class="StuntDisplay">
<fieldset class="repeating_stunts">
<div class="stunt">
<span name="attr_name" class="name"></span>
<span name="attr_desc" class="desc"></span>
<input type="hidden" name="attr_name" value="">
<input type="hidden" name="attr_desc" value=""><button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{stunt}}} {{text=**@{name}:** @{desc}}}"></button>
<input type="hidden" name="attr_skill" value="">
<input type="hidden" name="attr_skillvalue" value="0">
<input type="hidden" name="attr_bonus" value="0">
<input type="checkbox" class="triggerbox" name="attr_rollable" value="1">
<span><br/><button type="roll" class="sheet-roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{name} (@{skill})}} {{roll=[[@{fatedice}+@{skillvalue}+@{bonus}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll">
<b><span data-i18n="roll"></span>
<span name="attr_skill"></span></b> = <span name="attr_skillvalue"></span> + <span name="attr_bonus"></span> &nbsp;
</button></span>
</div>
</fieldset>
</div>
</div> <!-- /StuntFrame -->
</div> <!-- /StuntCell -->
<!-- Packages -->
<input type="checkbox" class="triggerbox" name="attr_Show-Packages" value="1">
<div class="RoleCell">
<div class="SectionHeader">
<span data-i18n="packages">Packages</span> <span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditPackages" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="StuntFrame">
<input type="checkbox" class="triggerbox" name="attr_EditPackages" value="1" checked>
<div class="SkillEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="packages">Packages</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditPackages" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_packages"><div class="AspectSeparator">
<div class="fieldlabel"><span data-i18n="package"></span></div>
<input type="text" name="attr_package" value="">
<div class="fieldlabel"><span data-i18n="aspects"></span></div>
<input type="text" name="attr_aspects" value="">
<div data-i18n="package-aspects-instruct">Enter a list of aspects from this package, separated by commas: Aspect, Aspect2, etc</div>
<div class="fieldlabel"><span data-i18n="skills"></span></div>
<input type="text" name="attr_skills" value="">
<div data-i18n="package-skills-instruct">Enter a list of skills and the points to allocate to each of them in this format: First:1, Second:2, etc. The named skills must already exist on your sheet, so make sure to establish those first.</div>
<div class="fieldlabel"><span data-i18n="stunts"></span></div>
<textarea name="attr_stunts"></textarea>
<div data-i18n="package-stunts-instruct">Enter a list of stunts, one per line, in the format: Stunt Name: Stunt Description.</div>
</div></fieldset>
<div class="fieldlabel" data-i18n="package-add-set">Add Package Sets</div>
<select name="attr_addpackage">
<option value="" data-i18n="package-choose"></option>
<option value="inmf" data-i18n-label="inmf">It's Not My Fault</option>
<option value="inmfif" data-i18n-label="inmfif">It's Not My Fault I'm Fantastic</option>
</select>
</div>
<div class="StuntDisplay">
<div style="padding: 6px;">
<span data-i18n="packages-instructions"></span>
</div>
<fieldset class="repeating_packages">
<input type="hidden" name="attr_package" value="">
<input type="hidden" name="attr_aspects" value="">
<input type="hidden" name="attr_skills" value="">
<input type="hidden" name="attr_stunts" value="">
<div class="AspectSeparator">
<div class="fieldlabel">
<span name="attr_package"></span>
<button type="action" name="act_add"><span data-i18n="package-add"></span></button>
<button type="action" name="act_subtract"><span data-i18n="package-subtract"></span></button>
</div>
<input type="hidden" name="attr_aspects" value="" class="hideIfNull">
<div>
<b><span data-i18n="aspects"></span></b>: <span name="attr_aspects"></span>
</div>
<input type="hidden" name="attr_skills" value="" class="hideIfNull">
<div>
<b><span data-i18n="skills"></span></b>: <span name="attr_skills"></span>
</div>
<input type="hidden" name="attr_aspects" value="" class="hideIfNull">
<div>
<b><span data-i18n="stunts"></span></b>: <span name="attr_stunts"></span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<!-- End Packages -->
<input type="checkbox" class="triggerbox" name="attr_Show-Powers" value="1">
<div class="PowerCell">
<div class="SectionHeader">
<span data-i18n="powers">Powers</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditPowers" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="PowerFrame">
<input type="checkbox" class="triggerbox" name="attr_EditPowers" value="1" checked>
<div class="PowerEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="powers">Powers</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditPowers" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_powers">
<div class="fieldlabel" data-i18n="name">Name</div>
<input name="attr_name" type="text">
<div class="fieldlabel" data-i18n="desc">Description</div>
<textarea name="attr_desc" rows=3></textarea>
<div class="fieldlabel"><span data-i18n="power">Power</span> <span data-i18n="breakdown">Breakdown</span></div>
<textarea name="attr_breakdown" rows=3></textarea>
<div class="fieldlabel" data-i18n="special-effects">Special Effects</div>
<textarea name="attr_sfx" rows=3></textarea>
<select name="attr_sfxmenu">
<option value="" data-i18n="add-fx"></option>
<option value="fx1" data-i18n="fx1n">Forced Movement</option>
<option value="fx2" data-i18n="fx2n">Area Attack</option>
<option value="fx3" data-i18n="fx3n">Inflict Condition</option>
<option value="fx4" data-i18n="fx4n">Extra Movement</option>
<option value="fx5" data-i18n="fx5n">Physical Recovery</option>
<option value="fx6" data-i18n="fx6n">Mental Recovery</option>
<option value="fx7" data-i18n="fx7n">Extra Action</option>
</select>
<div class="fieldlabel" data-i18n="drawbacks">Drawbacks</div>
<input name="attr_drawbacks" type="text">
<div class="fieldlabel" data-i18n="collateral-damage">Collateral Damage</div>
<textarea name="attr_collateral" rows=3></textarea>
<div class="fieldlabel" data-i18n="cost">Cost</div>
<input name="attr_cost" type="number" min="0" value="1">
</fieldset>
</div> <!-- /PowerEdit -->
<div class="PowerDisplay">
<fieldset class="repeating_powers">
<div class="power">
<div class="powerflex">
<span>
<span name="attr_name" class="name"></span>
<input type="hidden" name="attr_cost" value="1">
<input type="hidden" name="attr_desc" value="">
<input type="hidden" name="attr_name" value="">
<input type="hidden" name="attr_sfx" value="">
<input type="hidden" name="attr_breakdown" value="">
<input type="hidden" name="attr_drawbacks" value="">
<input type="hidden" name="attr_collateral" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: @{name} ^{power}}} {{text=@{desc} *(^{cost}: @{cost})*}} {{^{power} ^{breakdown}=@{breakdown}}} {{^{special-effects}=@{sfx}}} {{^{drawbacks}=@{drawbacks}}} {{^{collateral-damage}=@{collateral}}}"></button>
</span>
<span name="attr_cost" class="cost nowrap"></span>
</div>
<div class="desc">
<span name="attr_desc" class="desc"></span>
</div>
<input type="hidden" value="" class="hideIfNull" name="attr_breakdown">
<div class="field">
<b><span data-i18n="power">Power</span> <span data-i18n="breakdown">Breakdown</span></b>: <span name="attr_breakdown"></span>
</div>
<input type="hidden" value="" class="hideIfNull" name="attr_sfx">
<div class="field">
<b><span data-i18n="special-effects"></span></b>: <span name="attr_sfx"></span>
</div>
<input type="hidden" value="" class="hideIfNull" name="attr_drawbacks">
<div class="field">
<b><span data-i18n="drawbacks"></span></b>: <span name="attr_drawbacks"></span>
</div>
<input type="hidden" value="" class="hideIfNull" name="attr_collateral">
<div class="field">
<b><span data-i18n="collateral-damage"></span></b>: <span name="attr_collateral"></span>
</div>
</div>
</fieldset>
</div>
</div> <!-- /PowerFrame -->
</div> <!-- /PowerCell -->
<!-- Begin the Extras section -->
<input type="checkbox" class="triggerbox" name="attr_Show-Extras" value="1">
<div class="ExtraCell">
<div class="SectionHeader">
<span data-i18n="extras">Extras</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditExtras" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="ExtraFrame">
<input type="checkbox" class="triggerbox" name="attr_EditExtras" value="1" checked>
<div class="ExtraEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="extras">Extras</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditExtras" value="1" checked><span class="pencilbox"/></span>
</div>
<div data-i18n="extra-desc" class="limited-width">Extras are composed of a series of elements. For each extra, start by adding a title element, then add other elements as needed: permissions, costs, aspects, skills, stunts, tracks, ratings (e.g., weapon:X, armor:X), notes.</div>
<fieldset class="repeating_extras">
<input type="hidden" name="attr_element" class="element hideUnlessNull" value="">
<select name="attr_element">
<option value="" data-i18n="add..."></option>
<option value="title" data-i18n="title"></option>
<option value="permissions" data-i18n="permissions"></option>
<option value="cost" data-i18n="cost"></option>
<option value="aspect" data-i18n="aspect"></option>
<option value="skill" data-i18n="skill"></option>
<option value="stunt" data-i18n="stunt"></option>
<option value="track" data-i18n="track"></option>
<option value="rating" data-i18n="rating"></option>
<option value="note" data-i18n="note"></option>
</select>
<div class="title AspectSeparator">
<input type="text" name="attr_name" value="" data-i18n-placeholder="title" placeholder="title" class="title">
</div>
<div class="fieldlabel aspect"><span data-i18n="aspects"></span></div>
<div class="fieldlabel permissions cost skill track rating note stunt label"><span name="attr_element"></span></div>
<div class="aspect note skill stunt rating track">
<b style="font-size: 80%;"><span data-i18n="label"></span> (<span data-i18n="optional"></span>):</b>
<input type="text" name="attr_label" value="" class="compact">
</div>
<div class="track">
<input type="hidden" class="hideIfNull" name="attr_label" value="">
<div>
<b style="font-size: 80%;"><span data-i18n="label-icon"></span>:</b>
<select class="compact" name="attr_icon">
<option value="" data-i18n="none"></option>
<option value="plus" data-i18n="plusdie"></option>
<option value="blank" data-i18n="blankdie"></option>
<option value="minus" data-i18n="minusdie"></option>
</select>
</div>
<input type="hidden" class="hideIfNull" name="attr_icon" value="">
<div>
<b style="font-size: 80%;"><span data-i18n="label-icon"></span> 2:</b>
<select class="compact" name="attr_icon2">
<option value="" data-i18n="none"></option>
<option value="plus" data-i18n="plusdie"></option>
<option value="blank" data-i18n="blankdie"></option>
<option value="minus" data-i18n="minusdie"></option>
</select>
</div>
<input type="hidden" class="hideIfNull" name="attr_icon2" value="">
<div>
<b style="font-size: 80%;"><span data-i18n="label-icon"></span> 3:</b>
<select class="compact" name="attr_icon3">
<option value="" data-i18n="none"></option>
<option value="plus" data-i18n="plusdie"></option>
<option value="blank" data-i18n="blankdie"></option>
<option value="minus" data-i18n="minusdie"></option>
</select>
</div>
</div>
<div class="skill">
<b style="font-size: 80%;"><span data-i18n="skill"></span>:</b>
<input type="text" name="attr_skill" value="" class="compact" data-i18n-placeholder="skill" placeholder="skill">
</div>
<div class="skill" style="font-size: 80%;">
<b><span data-i18n="rating"></span>:</b>
<input type="number" name="attr_rating" value="0" min="-4" max="10" class="compact">
<input type="hidden" name="attr_word" value="">
<span name="attr_word"></span>
</div>
<div class="stunt">
<b style="font-size: 80%;"><span data-i18n="name"></span>:</b>
<input type="text" name="attr_name" value="" class="compact" data-i18n-placeholder="stunt" placeholder="stunt">
<div class"fieldlabel"><input type="checkbox" name="attr_rollable" value="1"> <span class="fieldlabel" data-i18n="rollable">Rollable</span></div>
<input type="checkbox" class="triggerbox" name="attr_rollable" value="1">
<div>
<div class="fieldlabel" data-i18n="bonus">Bonus</div>
<input name="attr_bonus" type="number" value="0">
<div class="fieldlabel" data-i18n="skill">Skill</div>
<input name="attr_skill" type="text" value="">
<input name="attr_skillvalue" type="hidden" value="0">
</div>
</div>
<div class="rating">
<b style="font-size: 80%;"><span data-i18n="name"></span>:</b>
<input type="text" name="attr_name" value="" class="compact" data-i18n-placeholder="name" placeholder="name">
</div>
<div class="rating">
<b style="font-size: 80%;"><span data-i18n="rating"></span>:</b>
<input type="number" name="attr_rating" value="0" class="compact">
</div>
<div class="track">
<b style="font-size: 80%;"><span data-i18n="name"></span>:</b>
<input type="text" name="attr_name" value="" data-i18n-placeholder="optional" placeholder="optional" class="compact">
</div>
<div class="track">
<b style="font-size: 80%;"><span data-i18n="track-length"></span>:</b>
<input type="number" name="attr_track" value="1" min="1" max="10" class="compact">
</div>
<div class="track">
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track1">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track2">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track3">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track4">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track5">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track6">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track7">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track8">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track9">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track10">
</div>
<div class="permissions cost aspect note stunt">
<textarea name="attr_text" rows=2 class="squat"></textarea>
</div>
</fieldset>
<div>
<select name="attr_addextra">
<option value="" data-i18n="add...">Add...</option>
<optgroup label="3 Rocketeers" data-i18n-label="threerocketeers">
<option value="swordplay">Swordplay Template</option>
</optgroup>
<optgroup label="Tachyon Squadron" data-i18n-label="tachyon-squadron">
<option value="blackfish">SF-46D Blackfish</option>
<option value="ship00">Ship Template: Scale 0, Quality 0+</option>
<option value="ship0-1">Ship Template: Scale 0, Poor Quality</option>
<option value="ship10">Ship Template: Scale 1, Quality 0+</option>
<option value="ship1-1">Ship Template: Scale 1, Poor Quality</option>
<option value="ship20">Ship Template: Scale 2, Quality 0+</option>
<option value="ship2-1">Ship Template: Scale 2, Poor Quality</option>
<option value="ship30">Ship Template: Scale 3, Quality 0+</option>
<option value="ship3-1">Ship Template: Scale 3, Poor Quality</option>
<option value="ship40">Ship Template: Scale 4, Quality 0+</option>
<option value="ship4-1">Ship Template: Scale 4, Poor Quality</option>
<option value="turretdamage">Turret Damage Track (if module installed)</option>
</optgroup>
<option value="template">Template</option>
</select>
</div>
</div> <!-- /ExtraEdit -->
<div class="ExtraDisplay">
<fieldset class="repeating_extras">
<input type="hidden" name="attr_element" class="element" value="">
<div class="title clear-all space-above" width="100%">
<span name="attr_name"></span>
</div>
<div class="permissions space-below clear-all">
<div class="fieldlabel"><b><span data-i18n="permissions"></span></b></div>
<div class="indented"><span name="attr_text"></span></div>
</div>
<div class="cost space-below clear-all">
<div class="fieldlabel"><b><span data-i18n="cost"></span></b></div>
<div class="indented"><span name="attr_text"></span></div>
</div>
<div class="aspect space-below clear-all">
<!-- input type="hidden" class="hideUnlessNull" name="attr_label" value=""><div class="fieldlabel"><b><span data-i18n="aspects"></span></b></div -->
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel"><b><span name="attr_label"></span></b></div>
<div class="aspect indented">
<span name="attr_text" class="aspect"></span>
<input type="hidden" name="attr_text" value="">
<input type="hidden" name="attr_label" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{extra} @{label} ^{aspect}}} {{text=***@{text}***}}"></button>
</div>
</div>
<div class="note space-below clear-all">
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel"><b><span name="attr_label"></span></b></div>
<div class="indented">
<span name="attr_text"></span>
<input type="hidden" name="attr_label" value="">
<input type="hidden" name="attr_text" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: @{label} ^{note}}} {{text=@{text}}}"></button>
</div>
</div>
<div class="skill">
<input type="hidden" name="attr_skill" value="">
<input type="hidden" name="attr_rating" value="0">
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel clear-all"><b><span name="attr_label"></span></b></div>
<button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{skill}}} {{roll=[[@{fatedice}+@{rating}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll" class="sheet-roll">
<b><span name="attr_skill"></span></b>:
<span name="attr_word"></span>
</button>
</div>
<div class="stunt space-below clear-all">
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel"><b><span name="attr_label"></span></b></div>
<div class="stunt">
<b><span name="attr_name"></span>:</b>
<span name="attr_text"></span>
<input type="hidden" name="attr_name" value=""><input type="hidden" name="attr_text" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{extra} ^{stunt}}} {{text=**@{name}:** @{text}}}"></button>
<input type="hidden" name="attr_skill" value="">
<input type="hidden" name="attr_skillvalue" value="0">
<input type="hidden" name="attr_bonus" value="0">
<input type="checkbox" class="triggerbox" name="attr_rollable" value="1">
<span><br/><button type="roll" class="sheet-roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: @{name} (@{skill})}} {{roll=[[@{fatedice}+@{skillvalue}+@{bonus}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll">
<b><span data-i18n="roll"></span>
<span name="attr_skill"></span></b> = <span name="attr_skillvalue"></span> + <span name="attr_bonus"></span> &nbsp;
</button></span>
</div>
</div>
<div class="rating space-below clear-all">
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel"><b><span name="attr_label"></span></b></div>
<div class="indented">
<b><span name="attr_name"></span>:</b>
<span name="attr_rating"></span>
<input type="hidden" name="attr_name" value="">
<input type="hidden" name="attr_rating" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{extra} ^{rating}}} {{text=**@{name}:** @{rating}}}"></button>
</div>
</div>
<div class="track space-below clear-all">
<input type="hidden" class="hideIfNull" name="attr_label" value=""><div class="fieldlabel">
<input type="hidden" class="hideIfNull icon" name="attr_icon" value=""><span class="icon"></span>
<input type="hidden" class="hideIfNull icon" name="attr_icon2" value=""><span class="icon"></span>
<input type="hidden" class="hideIfNull icon" name="attr_icon3" value=""><span class="icon"></span>
<b><span name="attr_label"></span></b>
</div>
<div class="indented">
<span class="nowrap float-left">
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check1" value="1"><span class="tracker" name="attr_track1"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check2" value="1"><span class="tracker" name="attr_track2"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check3" value="1"><span class="tracker" name="attr_track3"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check4" value="1"><span class="tracker" name="attr_track4"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check5" value="1"><span class="tracker" name="attr_track5"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check6" value="1"><span class="tracker" name="attr_track6"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check7" value="1"><span class="tracker" name="attr_track7"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check8" value="1"><span class="tracker" name="attr_track8"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check9" value="1"><span class="tracker" name="attr_track9"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check10" value="1"><span class="tracker" name="attr_track10"></span></span>
</span>
<span name="attr_name"></span>
</div>
</div>
</fieldset>
</div>
</div> <!-- /ExtraFrame -->
</div> <!-- /ExtraCell -->
<!-- End the Extras section -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-Notes" value="1">
<div class="NoteCell">
<div class="SectionHeader">
<span data-i18n="notes">Notes</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditNotes" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="NoteFrame">
<input type="checkbox" class="triggerbox" name="attr_EditNotes" value="1" checked>
<div class="NoteEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="notes">Notes</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditNotes" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_Notes">
<div class="fieldlabel" data-i18n="title">Title</div>
<input name="attr_name" type="text">
<div class="fieldlabel" data-i18n="note">Note</div>
<textarea name="attr_desc" rows=3></textarea>
</fieldset>
</div> <!-- /NoteEdit -->
<div class="NoteDisplay">
<fieldset class="repeating_Notes"><div class="note">
<div class="name"><span name="attr_name"></span></div>
<div class="desc">
<span name="attr_desc"></span>
<input type="hidden" name="attr_desc" value="">
<input type="hidden" name="attr_name" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: @{name} ^{note}}} {{text=@{desc}}}"></button>
</div>
</div></fieldset>
</div>
</div> <!-- /NoteFrame -->
</div> <!-- /NoteCell -->
</div> <!-- /SheetCol -->
<div class="SheetCol">
<input type="checkbox" class="triggerbox" checked name="attr_Show-Aspects" value="1">
<div class="AspectCell">
<div class="SectionHeader">
<span data-i18n="aspects">Aspects</span>
<span class="boxcorner">
<input type="hidden" name="attr_aspectlist" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{aspects}}} {{breaks=@{aspectlist}}}"></button>
<input type="checkbox" class="checkbox" name="attr_EditAspects" value="1" checked><span class="pencilbox"/>
</span>
</div>
<div class="AspectFrame">
<input type="checkbox" class="triggerbox" name="attr_EditAspects" value="1" checked>
<div class="AspectEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="aspects">Aspects</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditAspects" value="1" checked><span class="pencilbox"/></span>
</div>
<input type="checkbox" class="deeptrigger" name="attr_Show-RollableAspects" value="1">
<fieldset class="repeating_aspects">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="category header optional">Category Header (optional)</div>
<input name="attr_category" type="text" value="">
<div class="fieldlabel" data-i18n="label">Label</div>
<input name="attr_label" type="text" value="">
<div class="fieldlabel" data-i18n="aspect">Aspect</div>
<input name="attr_aspect" type="text">
<div class="fieldlabel" data-i18n="flags">Flags</div>
<input name="attr_flags" type="text">
<div class="fieldlabel">
<span data-i18n="free-invokes">Free Invokes</span>
<select name="attr_invokes" style="width: 20%"><option value="" selected>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option></select>
</div>
<div class="fieldlabel deeptriggered">
<span data-i18n="aspect-value">Aspect Value When Rolled</span>
<select name="attr_rollvalue" style="width: 20%"> <option value="" selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select>
</div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</fieldset>
</div> <!-- /AspectEdit -->
<div class="AspectDisplay">
<input type="checkbox" class="deeptrigger" name="attr_Show-RollableAspects" value="1">
<fieldset class="repeating_aspects">
<input type="hidden" name="attr_category" value="" class="hideIfNull"><div class="aspect-category"><span name="attr_category"></span></div>
<div class="aspect">
<input type="hidden" value="" name="attr_label" class="hideIfNull"><div class="AspectLabelBar">
<span class="label align-left">
<span name="attr_label"></span>
</span>
</div>
<div>
<span class="deeptriggered"><input type="checkbox" class="checkbox" name="attr_rollthis" value="1"><span class="checkmark"></span></span>
<span class="name"><span class="deeptriggered"><input type="checkbox" class="triggerbox" name="attr_rollthis" value="1"><span>+</span></span><span name="attr_aspect"></span><span class="deeptriggered"> (+<span name="attr_rollvalue"></span>)</span></span>
<input type="hidden" value="" name="attr_flags" class="hideIfNull"><span>(<span name="attr_flags"></span>)</span>
<span>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: @{label} @{flags} ^{aspect}}} {{text=***@{aspect}*** @{notes}}}"></button>
<input type="hidden" name="attr_label" value="">
<input type="hidden" name="attr_flags" value="">
<input type="hidden" name="attr_aspect" value="">
<input type="hidden" name="attr_notes" value="">
<input type="hidden" name="attr_rollvalue" value="1">
</div>
<input type="checkbox" name="attr_options" class="triggerbox" value="1">
<div class="AspectOptionsBox">
<div class="OptionsEdit">
<div class="OptionsTitleBar">
<span><span name="attr_label"></span> <span name="options">Options</span></span>
<span>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<div>
<div class="nowrap">
<span class="fieldlabel" data-i18n="free-invokes">Free Invokes</span>
<select name="attr_invokes" style="width: 20%">
<option value="" selected>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option>
</select>
<span class="fieldlabel" data-i18n="flags">Flags</span>
<input type="text" class="compact" name="attr_flags" value="" style="width: 30%">
</div>
<div class="fieldlabel deeptriggered">
<span data-i18n="aspect-value">Aspect Value When Rolled</span>
<select name="attr_rollvalue" style="width: 20%"> <option value="" selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select>
</div>
<div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</div>
</div>
</div>
<div class="notes">
<span name="attr_notes"></span>
</div>
<div class="boxes">
<span class="nowrap">
<input type="hidden" name="attr_invokes" value="0" class="hideAllBut">
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check1" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check2" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check3" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check4" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check5" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check6" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check7" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check8" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check9" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check10" value="1"><span class="tracker"></span></span>
</span>
</div>
</div>
</fieldset>
<input type="checkbox" class="triggerbox" name="attr_Show-RollableAspects" value="1">
<div class="ExtraDisplay limited-width">
<input type="hidden" name="attr_rolltally" value="0">
<input type="hidden" name="attr_rolllist" value="" class="compact">
<button type="roll" value="@{comstyle} &{template:fateroll} {{theme=@{theme}}} {{name=@{character_name}: ^{rollable-aspects}}} {{note=@{rolllist}}} {{roll=[[@{fatedice}+@{rolltally}+@{Show-Diceprompts}]]}}" name="roll_SkillRoll" class="sheet-roll"><b><span data-i18n="roll-marked-aspects"></span> (+<span name="attr_rolltally"></span>)</b></button>
</div>
</div>
</div> <!-- /AspectFrame -->
</div> <!-- /AspectCell -->
<input type="checkbox" class="triggerbox" name="attr_Show-Corruption" value="1">
<div class="CorruptionCell">
<div class="SectionHeader">
<span data-i18n="corruption">Corruption</span>
</div>
<input type="hidden" name="attr_corruption" value="0" class="corruptor">
<div class="CorrClock">
<div>
<input type="number" name="attr_corruption" value="0" max="4" min="0">
</div>
</div>
</div>
<input type="checkbox" class="triggerbox" checked name="attr_Show-Stress" value="1">
<div class="TrackCell">
<div class="SectionHeader">
<span data-i18n="stress">Stress</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditStress" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="TrackFrame">
<input type="checkbox" class="triggerbox" name="attr_EditStress" value="1" checked>
<div class="TrackEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="stress">Stress</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditStress" value="1" checked><span class="pencilbox"/></span>
</div>
<div>
<div class="fieldlabel" data-i18n="quick-add">Quick Add</div>
<select name="attr_addstress">
<option value="" selected data-i18n="track-choose">[Choose Track Style]</option>
<option value="flat" data-i18n="flat-track">Flat Track (1-1-1)</option>
<option value="esc" data-i18n="escalating-track">Escalating Track (1-2-3)</option>
<option value="cust" data-i18n="custom-track">Custom Track (?-?-?)</option>
</select>
</div>
<fieldset class="repeating_stress">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="label">Label</div>
<input name="attr_label" type="text">
<div class="fieldlabel">
<span data-i18n="track-length">Track Length</span>
<select name="attr_track" style="width: 20%"><option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option></select>
</div>
<div class="fieldlabel" data-i18n="box-values">Box Values</div>
<div>
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track1">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track2">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track3">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track4">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track5">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track6">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track7">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track8">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track9">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track10">
</div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</fieldset>
</div> <!-- /TrackEdit -->
<div class="TrackDisplay">
<fieldset class="repeating_stress">
<div class="track">
<div class="name">
<span name="attr_label"></span>
<span class="floatright">
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<input type="checkbox" name="attr_options" class="triggerbox" value="1">
<div class="OptionsBox">
<div class="OptionsEdit">
<div class="OptionsTitleBar">
<span><span name="attr_label"></span> <span name="options">Options</span></span>
<span>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<div>
<div class="nowrap">
<span class="fieldlabel" data-i18n="track-length">Track Length</span>
<select name="attr_track" style="width: 20%">
<option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option>
</select>
</div>
<div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</div>
</div>
</div>
<div class="notes">
<span name="attr_notes"></span>
</div>
<div class="boxes">
<span class="nowrap">
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check1" value="1"><span class="tracker" name="attr_track1"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check2" value="1"><span class="tracker" name="attr_track2"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check3" value="1"><span class="tracker" name="attr_track3"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check4" value="1"><span class="tracker" name="attr_track4"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check5" value="1"><span class="tracker" name="attr_track5"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check6" value="1"><span class="tracker" name="attr_track6"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check7" value="1"><span class="tracker" name="attr_track7"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check8" value="1"><span class="tracker" name="attr_track8"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check9" value="1"><span class="tracker" name="attr_track9"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check10" value="1"><span class="tracker" name="attr_track10"></span></span>
</span>
</div>
</div>
</fieldset>
</div>
</div>
</div> <!-- End Stress -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-Consequences" value="1">
<div class="TrackCell">
<div class="SectionHeader">
<span data-i18n="consequences">Consequences</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditConsequences" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="TrackFrame">
<input type="checkbox" class="triggerbox" name="attr_EditConsequences" value="1" checked>
<div class="TrackEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="consequences">Consequences</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditConsequences" value="1" checked><span class="pencilbox"/></span>
</div>
<div>
<div class="fieldlabel" data-i18n="quick-add">Quick Add</div>
<select name="attr_addconsequence">
<option value="" selected data-i18n="consequence-choose">[Choose Consequence]</option>
<option value="mild" data-i18n="mild">Mild</option>
<option value="mod" data-i18n="moderate">Moderate</option>
<option value="sev" data-i18n="severe">Severe</option>
<option value="all" data-i18n="all3">All Three</option>
</select>
</div>
<fieldset class="repeating_consequences">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="label">Label</div>
<input name="attr_label" type="text">
<div class="fieldlabel">
<span data-i18n="con-val">Consequence Value</span>
<select name="attr_track" style="width: 20%"><option>1</option> <option selected>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option></select>
</div>
</div>
</fieldset>
</div> <!-- /TrackEdit -->
<div class="TrackDisplay">
<fieldset class="repeating_consequences">
<div class="track">
<div class="name">
<input type="checkbox" class="checkbox" name="attr_trackcheck" value="1"><span class="tracker" name="attr_track"></span>
<span name="attr_label"></span>
</div>
<input type="checkbox" class="triggerbox" name="attr_trackcheck" value="1">
<div>
<div class="specific">
<div class="align-right nowrap">
<input type="hidden" name="attr_label" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: @{label} ^{consequence}}} {{text=***@{aspect}***}}"></button>
<input type="checkbox" class="checkbox" name="attr_recovery" value="1"><span class="checkmark"></span>
</div>
<input type="text" name="attr_aspect" class="conspect">
</div>
<input type="checkbox" class="hidebox" name="attr_recovery" value="1">
<div class="recovery">
<div data-i18n="recovering" class="label align-right">Recovering</div>
</div>
</div>
</div>
</fieldset>
</div>
</div>
</div> <!-- End Consequences -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-Conditions" value="1">
<div class="TrackCell">
<div class="SectionHeader">
<span data-i18n="conditions">Conditions</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditConditions" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="TrackFrame">
<input type="checkbox" class="triggerbox" name="attr_EditConditions" value="1" checked>
<div class="TrackEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="conditions">Conditions</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditConditions" value="1" checked><span class="pencilbox"/></span>
</div>
<div>
<div class="fieldlabel" data-i18n="quick-add">Quick Add</div>
<select name="attr_addcondition">
<option value="" selected data-i18n="track-choose">[Choose Track Style]</option>
<option value="cust" data-i18n="custom-track">Custom Track (?-?-?)</option>
<option value="flat" data-i18n="flat-track">Flat Track (1-1-1)</option>
<option value="esc" data-i18n="escalating-track">Escalating Track (1-2-3)</option>
</select>
</div>
<fieldset class="repeating_conditions">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="label">Label</div>
<input name="attr_label" type="text">
<div class="fieldlabel">
<span data-i18n="track-length">Track Length</span>
<select name="attr_track" style="width: 20%"><option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option></select>
</div>
<div class="fieldlabel" data-i18n="box-values">Box Values</div>
<div>
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track1">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track2">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track3">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track4">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track5">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track6">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track7">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track8">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track9">
<input type="text" value="" maxlength="2" size="1" class="tracker" name="attr_track10">
</div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</fieldset>
</div> <!-- /TrackEdit -->
<div class="TrackDisplay">
<fieldset class="repeating_conditions">
<div class="track">
<div class="name">
<span name="attr_label"></span>
<span class="floatright">
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<input type="checkbox" name="attr_options" class="triggerbox" value="1">
<div class="OptionsBox">
<div class="OptionsEdit">
<div class="OptionsTitleBar">
<span><span name="attr_label"></span> <span name="options">Options</span></span>
<span>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<div>
<div class="nowrap">
<span class="fieldlabel" data-i18n="track-length">Track Length</span>
<select name="attr_track" style="width: 20%">
<option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option>
</select>
</div>
<div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</div>
</div>
</div>
<div class="notes">
<span name="attr_notes"></span>
</div>
<div class="boxes">
<span class="nowrap">
<input type="hidden" name="attr_track" value="1" class="hideAllBut">
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check1" value="1"><span class="tracker" name="attr_track1"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check2" value="1"><span class="tracker" name="attr_track2"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check3" value="1"><span class="tracker" name="attr_track3"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check4" value="1"><span class="tracker" name="attr_track4"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check5" value="1"><span class="tracker" name="attr_track5"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check6" value="1"><span class="tracker" name="attr_track6"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check7" value="1"><span class="tracker" name="attr_track7"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check8" value="1"><span class="tracker" name="attr_track8"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check9" value="1"><span class="tracker" name="attr_track9"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check10" value="1"><span class="tracker" name="attr_track10"></span></span>
</span>
</div>
</div>
</fieldset>
</div>
</div>
</div> <!-- End Conditions -->
<input type="checkbox" class="triggerbox" checked name="attr_Show-TempAspects" value="1">
<div class="TrackCell">
<div class="SectionHeader">
<span data-i18n="situation-aspects">Situation Aspects</span><span class="boxcorner"><input type="checkbox" class="checkbox" name="attr_EditTempAspects" value="1" checked><span class="pencilbox"/></span>
</div>
<div class="TrackFrame">
<input type="checkbox" class="triggerbox" name="attr_EditTempAspects" value="1" checked>
<div class="TrackEdit">
<div class="EditTitleBar">
<span><span data-i18n="edit">Edit</span> <span data-i18n="situation-aspects">Situation Aspects</span></span>
<span><input type="checkbox" class="checkbox" name="attr_EditTempAspects" value="1" checked><span class="pencilbox"/></span>
</div>
<fieldset class="repeating_tempaspects">
<div class="AspectSeparator">
<div class="fieldlabel" data-i18n="aspect">Aspect</div>
<input name="attr_aspect" type="text">
<div class="fieldlabel">
<span data-i18n="free-invokes">Free Invokes</span>
<select name="attr_invokes" style="width: 20%"><option>0</option> <option selected>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option></select>
</div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</fieldset>
</div> <!-- /TrackEdit -->
<div class="TrackDisplay">
<fieldset class="repeating_tempaspects">
<div class="track">
<div class="name">
<span name="attr_aspect"></span>
<span class="floatright nowrap">
<input type="hidden" name="attr_aspect" value="">
<button type="roll" class="share" value="&{template:share} {{theme=@{theme}}} {{name=@{character_name}: ^{situation-aspect}}} {{text=***@{aspect}*** @{notes} (@{invokes} ^{free-invokes})}}"></button>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<input type="checkbox" name="attr_options" class="triggerbox" value="1">
<div class="OptionsBox">
<div class="OptionsEdit">
<div class="OptionsTitleBar">
<span><span name="options">Options</span></span>
<span>
<input type="checkbox" class="checkbox" name="attr_options" value="1"><span class="optionsbox"></span>
</span>
</div>
<div>
<div class="nowrap">
<span class="fieldlabel" data-i18n="free-invokes">Free Invokes</span>
<select name="attr_invokes" style="width: 20%">
<option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option>
</select>
</div>
<div>
<div class="fieldlabel" data-i18n="notes">Notes</div>
<input name="attr_notes" type="text" style="width: 100%;">
</div>
</div>
</div>
</div>
<div class="notes">
<span name="attr_notes"></span>
</div>
<div class="boxes">
<span class="nowrap">
<input type="hidden" name="attr_invokes" value="1" class="hideAllBut">
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check1" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check2" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check3" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check4" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check5" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check6" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check7" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check8" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check9" value="1"><span class="tracker"></span></span>
<span class="trackContainer"><input type="checkbox" class="checkbox" name="attr_check10" value="1"><span class="tracker"></span></span>
</span>
</div>
</div>
</fieldset>
</div>
</div> <!-- /TrackFrame -->
</div> <!-- /TrackCell -->
</div> <!-- /SheetCol -->
</div> <!-- /SheetGrid -->
<hr/>
<div>
<i>This Fate sheet was created by Evil Hat Productions. Some portions of the text here are &copy; Evil Hat Productions, LLC. The Fate logo is &trade; Evil Hat Productions, LLC and may not be used elsewhere without permission.</i>
</div>
<div class="space-above">
<i>Problems, suggestions, other feedback? Reach out to us at feedback@evilhat.com or via the contact form on our website, https://www.evilhat.com/</i>
</div>
<div class="space-above">
<i>Need a core rules reference? Check out the Fate SRD site at https://www.fate-srd.com/</i>
</div>
</div> <!-- /Wrapper -->
<rolltemplate class="sheet-rolltemplate-share">
<div class="sheet-theme-{{theme}}">
{{#name}}
<div class="sheet-roll-name"><b>{{name}}</b></div>
{{/name}}
{{#text}}
<div class="sheet-text">{{text}}</div>
{{/text}}
{{#breaks}}
<div class="sheet-breaks">{{breaks}}</div>
{{/breaks}}
{{#allprops() name text theme breaks}}
<div class="sheet-space-above">**{{key}}:** {{value}} </div>
{{/allprops() name text theme breaks}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-fateroll">
<div class="sheet-theme-{{theme}}">
{{#name}}
<div class="sheet-roll-name"><b>{{name}}</b></div>
{{/name}}
{{#roll}}
<div class="sheet-roll">
{{roll}}
<div class="sheet-word">
{{#rollGreater() roll 16}}
<span data-i18n="beyond">Beyond</span>
<span data-i18n="rating-word8">Legendary</span>
{{/rollGreater() roll 16}}
{{#rollLess() roll -8}}
<span data-i18n="below">Below</span>
<span data-i18n="rating-word-4">Horrifying</span>
{{/rollLess() roll -8}}
{{#rollBetween() roll 16 16}}
<span data-i116n="rating-word16">Legendary+8</span>
{{/rollBetween() roll 16 16}}
{{#rollBetween() roll 15 15}}
<span data-i115n="rating-word15">Legendary+7</span>
{{/rollBetween() roll 15 15}}
{{#rollBetween() roll 14 14}}
<span data-i114n="rating-word14">Legendary+6</span>
{{/rollBetween() roll 14 14}}
{{#rollBetween() roll 13 13}}
<span data-i113n="rating-word13">Legendary+5</span>
{{/rollBetween() roll 13 13}}
{{#rollBetween() roll 12 12}}
<span data-i112n="rating-word12">Legendary+4</span>
{{/rollBetween() roll 12 12}}
{{#rollBetween() roll 11 11}}
<span data-i111n="rating-word11">Legendary+3</span>
{{/rollBetween() roll 11 11}}
{{#rollBetween() roll 10 10}}
<span data-i110n="rating-word10">Legendary+2</span>
{{/rollBetween() roll 10 10}}
{{#rollBetween() roll 9 9}}
<span data-i19n="rating-word9">Legendary+1</span>
{{/rollBetween() roll 9 9}}
{{#rollBetween() roll 8 8}}
<span data-i18n="rating-word8">Legendary</span>
{{/rollBetween() roll 8 8}}
{{#rollBetween() roll 7 7}}
<span data-i18n="rating-word7">Epic</span>
{{/rollBetween() roll 7 7}}
{{#rollBetween() roll 6 6}}
<span data-i18n="rating-word6">Fantastic</span>
{{/rollBetween() roll 6 6}}
{{#rollBetween() roll 5 5}}
<span data-i18n="rating-word5">Superb</span>
{{/rollBetween() roll 5 5}}
{{#rollBetween() roll 4 4}}
<span data-i18n="rating-word4">Great</span>
{{/rollBetween() roll 4 4}}
{{#rollBetween() roll 3 3}}
<span data-i18n="rating-word3">Good</span>
{{/rollBetween() roll 3 3}}
{{#rollBetween() roll 2 2}}
<span data-i18n="rating-word2">Fair</span>
{{/rollBetween() roll 2 2}}
{{#rollBetween() roll 1 1}}
<span data-i18n="rating-word1">Average</span>
{{/rollBetween() roll 1 1}}
{{#rollBetween() roll 0 0}}
<span data-i18n="rating-word0">Mediocre</span>
{{/rollBetween() roll 0 0}}
{{#rollBetween() roll -1 -1}}
<span data-i18n="rating-word-1">Poor</span>
{{/rollBetween() roll -1 -1}}
{{#rollBetween() roll -2 -2}}
<span data-i18n="rating-word-2">Terrible</span>
{{/rollBetween() roll -2 -2}}
{{#rollBetween() roll -3 -3}}
<span data-i18n="rating-word-3">Catastrophic</span>
{{/rollBetween() roll -3 -3}}
{{#rollBetween() roll -4 -4}}
<span data-i18n="rating-word-4">Horrifying</span>
{{/rollBetween() roll -4 -4}}
{{#rollBetween() roll -5 -5}}
<span data-i18n="rating-word-5">Horrifying-1</span>
{{/rollBetween() roll -5 -5}}
{{#rollBetween() roll -6 -6}}
<span data-i18n="rating-word-6">Horrifying-2</span>
{{/rollBetween() roll -6 -6}}
{{#rollBetween() roll -7 -7}}
<span data-i18n="rating-word-7">Horrifying-3</span>
{{/rollBetween() roll -7 -7}}
{{#rollBetween() roll -8 -8}}
<span data-i18n="rating-word-8">Horrifying-4</span>
{{/rollBetween() roll -8 -8}}
</div>
</div>
{{/roll}}
{{#note}}
<div>{{note}}</div>
{{/note}}
</div>
</rolltemplate>
<script type="text/worker">
// Change to text/worker for upload; text/javascript for highlighting support
/* For use when running through a validator -- placeholders for external functions
var setAttrs = function() { };
var getAttrs = function() { };
var generateRowID = function() { };
var getSectionIDs = function() { };
var getTranslationByKey = function() { };
var on = function() { };
*/
// Data
// These skills, aspect labels, and stress labels are translation keys, but if no translation is found it'll default to the key-as-given for the name.
var skillsets = {
ngen: [ "Athletics", "Contacts", "Deceive", "Empathy", "Fight", "Heart", "Humanity", "Investigate", "Kindness", "Notice", "Provoke", "Resources", "Shapeshift", "Stealth", "Strength", "Thieving", "Will", "Wisdom" ],
tachyon: [ "Athletics", "Discipline", "Empathy", "Fight", "Gunnery", "Investigate", "Notice", "Pilot", "Provoke", "Rapport", "Shoot", "Sneak", "Tactics", "Technology" ],
kaijuinc: [ "Ambition", "Combat", "Empathy", "Fitness", "Kaiju Studies", "Networking", "Operate", "Provoke", "Rapport", "Spin", "Technology", "Tradecraft" ],
robo: [ "Athletics", "Burglary", "Combat", "Contacts", "Deceive", "Empathy", "Notice", "Physique", "Provoke", "Rapport", "Stealth", "Vehicles", "Will" ],
m12: [ "Bureaucracy", "Tactics", "Teslology", "Transdimensional Tesliana", "Neuro-Electric Tesliana" ],
shotc: [ "Athletics", "Awareness", "Burglary", "Computers", "Contacts", "Drive", "Fight", "Gadgetry", "Insight", "Knowledge", "Persuade", "Provoke", "Resources", "Shoot", "Stealth", "Will" ],
dfa: [ "Flair", "Focus", "Force", "Guile", "Haste", "Intellect" ],
cats: [ "Athletics", "Burglary", "Deceive", "Empathy", "Fight", "Investigate", "Lore", "Naming", "Notice", "Physique", "Provoke", "Rapport", "Seeking", "Shaping", "Stealth", "Territory", "Warding", "Will" ],
fae: [ "Careful", "Clever", "Flashy", "Forceful", "Quick", "Sneaky" ],
fcon: [ "Academics", "Athletics", "Burglary", "Contacts", "Crafts", "Deceive", "Drive", "Empathy", "Fight", "Investigate", "Lore", "Notice", "Physique", "Provoke", "Rapport", "Resources", "Shoot", "Stealth", "Will" ],
fcore: [ "Athletics", "Burglary", "Contacts", "Crafts", "Deceive", "Drive", "Empathy", "Fight", "Investigate", "Lore", "Notice", "Physique", "Provoke", "Rapport", "Resources", "Shoot", "Stealth", "Will" ]
};
var gamesets = {
none: {
settings: {
}
},
custom: {
aspects: [],
addcondition: "list",
addconsequence: "list",
addskills: "list",
addstress: "list",
stresses: [],
consequences: [],
conditions: [],
skills: [],
combos: [[],[],[]],
combosnames: [],
settings: {}
},
ngen: {
addskills: "ngen",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
addswaps: [ "Immaterial", "Animal", "Plant", "Human" ],
aspects: [ "High Concept", "Weakness", "Immaterial Form", "Plant Form", "Animal Form", "Human Form", "Bond", "Free Aspect" ],
settings: {
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Skillswaps": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
fcore: {
addskills: "fcore",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Trouble", "Other", "Other", "Other" ],
settings: {
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
fcon: {
addskills: "fcon",
addstress: "flat",
stresskeys: ["physical","mental"],
stresslength: 3,
addconsequence: "all",
aspects: [ "High Concept", "Trouble", "Relationship", "Other", "Other" ],
settings: {
"SkillStyle": "list",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
fae: {
addskills: "fae",
addstress: "esc",
stresskeys: ["stress"],
stresslength: 3,
addconsequence: "all",
aspects: [ "High Concept", "Trouble", "Other" ],
settings: {
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
foc: {
addskills: "fcon",
addstress: "flat",
stresskeys: ["physical","mental"],
stresslength: 3,
addconsequence: "all",
aspects: [ "High Concept", "Trouble", "Relationship", "Other", "Other" ],
settings: {
"theme": "cthulhu",
"SkillStyle": "list",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 1,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
cats: {
addskills: "cats",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Trouble", "Burdens", "True Name", "Free" ],
settings: {
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
venture: {
addskills: "fcore",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Trouble" ],
settings: {
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 1,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
dfa: {
addskills: "dfa",
addstress: "flat",
stresskeys: ["stress"],
stresslength: 6,
addcondition: "mult",
conditions: [
{
labelkey: "inperil",
tracklength: 1,
tracktype: "cust",
values: [4]
},
{
labelkey: "doomed",
tracklength: 1,
tracktype: "cust",
values: [6]
},
{
labelkey: "indebted",
tracklength: 5,
tracktype: "cust",
values: []
},
],
aspects: [ "High Concept", "Trouble", "Other" ],
settings: {
"theme": "purple",
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 1,
"Show-Consequences": 0,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
shotc: {
addskills: "shotc",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Trouble" ],
settings: {
"theme": "shotc",
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Roles": 1,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
robo: {
addskills: "robo",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Omega" ],
settings: {
"SkillStyle": "list",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Modes": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Roles": 0,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
},
threerocketeers: {
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "Rocketeer", "Trouble", "Swordplay", "Family", "Open", "Open" ],
aspectvalues: [ 2, 1, 1, 1, 1, 1 ],
settings: {
"SkillStyle": "list",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-Extras": 1,
"Show-FP": 1,
"Show-Modes": 0,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Roles": 0,
"Show-Skills": 0,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-RollableAspects": 1,
"Show-TempAspects": 1
}
},
tachyon: {
addskills: "tachyon",
addstress: "flat",
stresskeys: ["stress"],
stresslength: 5,
addconsequence: "all",
aspects: [ "High Concept", "Decompression", "Relationship", "Relationship", "Other" ],
settings: {
"theme": "evilhat",
"addextra": "blackfish",
"SkillStyle": "pyramid",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-Extras": 1,
"Show-FP": 1,
"Show-Modes": 0,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Roles": 0,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-RollableAspects": 0,
"Show-TempAspects": 1
}
},
kaijuinc: {
addskills: "kaijuinc",
addstress: "esc",
stresskeys: ["physical","mental"],
stresslength: 2,
addconsequence: "all",
aspects: [ "High Concept", "Interview" ],
settings: {
"theme": "green",
"SkillStyle": "list",
"Show-Aspects": 1,
"Show-Conditions": 0,
"Show-Consequences": 1,
"Show-Corruption": 0,
"Show-FP": 1,
"Show-Modes": 1,
"Show-Notes": 1,
"Show-Powers": 0,
"Show-Refresh": 1,
"Show-Roles": 0,
"Show-Skills": 1,
"Show-Stress": 1,
"Show-Stunts": 1,
"Show-TempAspects": 1
}
}
};
var packages = {
"inmf": {
"inmf-alchemist": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmf-alchemist"),
"stunts": getTranslationByKey("inmf-alchemist-stunt")
},
"inmf-assassin": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-assassin"),
"stunts": getTranslationByKey("inmf-assassin-stunt")
},
"inmf-barbarian": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-barbarian"),
"stunts": getTranslationByKey("inmf-barbarian-stunt")
},
"inmf-burglar": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-burglar"),
"stunts": getTranslationByKey("inmf-burglar-stunt")
},
"inmf-conartist": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-conartist"),
"stunts": getTranslationByKey("inmf-conartist-stunt")
},
"inmf-cutpurse": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-cutpurse"),
"stunts": getTranslationByKey("inmf-cutpurse-stunt")
},
"inmf-diplomat": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-diplomat"),
"stunts": getTranslationByKey("inmf-diplomat-stunt")
},
"inmf-illusionist": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-illusionist"),
"stunts": getTranslationByKey("inmf-illusionist-stunt")
},
"inmf-merchant": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1",
"aspects": getTranslationByKey("inmf-merchant"),
"stunts": getTranslationByKey("inmf-merchant-stunt")
},
"inmf-performer": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-performer"),
"stunts": getTranslationByKey("inmf-performer-stunt")
},
"inmf-pirate": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-pirate"),
"stunts": getTranslationByKey("inmf-pirate-stunt")
},
"inmf-ranger": {
"skills": getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-ranger"),
"stunts": getTranslationByKey("inmf-ranger-stunt")
},
"inmf-scholar": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-scholar"),
"stunts": getTranslationByKey("inmf-scholar-stunt")
},
"inmf-sharpshooter": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-sharpshooter"),
"stunts": getTranslationByKey("inmf-sharpshooter-stunt")
},
"inmf-soldier": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-soldier"),
"stunts": getTranslationByKey("inmf-soldier-stunt")
},
"inmf-sorcerer": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmf-sorcerer"),
"stunts": getTranslationByKey("inmf-sorcerer-stunt")
},
"inmf-strategist": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmf-strategist"),
"stunts": getTranslationByKey("inmf-strategist-stunt")
},
"inmf-swashbuckler": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmf-swashbuckler"),
"stunts": getTranslationByKey("inmf-swashbuckler-stunt")
},
"inmf-warrior": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmf-warrior"),
"stunts": getTranslationByKey("inmf-warrior-stunt")
},
"inmf-wizard": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Flashy") + ":1",
"aspects": getTranslationByKey("inmf-wizard"),
"stunts": getTranslationByKey("inmf-wizard-stunt")
}
},
"inmfif": {
"inmfif-beastblooded": {
"skills": getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-beastblooded"),
"stunts": getTranslationByKey("inmfif-beastblooded-stunt")
},
"inmfif-centaur": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-centaur"),
"stunts": getTranslationByKey("inmfif-centaur-stunt")
},
"inmfif-clockwork": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmfif-clockwork"),
"stunts": getTranslationByKey("inmfif-clockwork-stunt")
},
"inmfif-demonspawn": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-demonspawn"),
"stunts": getTranslationByKey("inmfif-demonspawn-stunt")
},
"inmfif-doppelganger": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-doppelganger"),
"stunts": getTranslationByKey("inmfif-doppelganger-stunt")
},
"inmfif-dragonkin": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-dragonkin"),
"stunts": getTranslationByKey("inmfif-dragonkin-stunt")
},
"inmfif-dwarf": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-dwarf"),
"stunts": getTranslationByKey("inmfif-dwarf-stunt")
},
"inmfif-elemental": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1",
"aspects": getTranslationByKey("inmfif-elemental"),
"stunts": getTranslationByKey("inmfif-elemental-stunt")
},
"inmfif-elf": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-elf"),
"stunts": getTranslationByKey("inmfif-elf-stunt")
},
"inmfif-faerie": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-faerie"),
"stunts": getTranslationByKey("inmfif-faerie-stunt")
},
"inmfif-giant": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmfif-giant"),
"stunts": getTranslationByKey("inmfif-giant-stunt")
},
"inmfif-gnome": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-gnome"),
"stunts": getTranslationByKey("inmfif-gnome-stunt")
},
"inmfif-goblin": {
"skills": getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-goblin"),
"stunts": getTranslationByKey("inmfif-goblin-stunt")
},
"inmfif-halfling": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-halfling"),
"stunts": getTranslationByKey("inmfif-halfling-stunt")
},
"inmfif-merfolk": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-merfolk"),
"stunts": getTranslationByKey("inmfif-merfolk-stunt")
},
"inmfif-minotaur": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1",
"aspects": getTranslationByKey("inmfif-minotaur"),
"stunts": getTranslationByKey("inmfif-minotaur-stunt")
},
"inmfif-nephilim": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Quick") + ":1",
"aspects": getTranslationByKey("inmfif-nephilim"),
"stunts": getTranslationByKey("inmfif-nephilim-stunt")
},
"inmfif-orc": {
"skills": getTranslationByKey("Careful") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-orc"),
"stunts": getTranslationByKey("inmfif-orc-stunt")
},
"inmfif-vampire": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Forceful") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-vampire"),
"stunts": getTranslationByKey("inmfif-vampire-stunt")
},
"inmfif-zombie": {
"skills": getTranslationByKey("Clever") + ":1, " + getTranslationByKey("Flashy") + ":1, " + getTranslationByKey("Sneaky") + ":1",
"aspects": getTranslationByKey("inmfif-zombie"),
"stunts": getTranslationByKey("inmfif-zombie-stunt")
}
}
};
var roles = {
"brain": getTranslationByKey("Computers") + ", " + getTranslationByKey("Gadgetry") + ", " + getTranslationByKey("Insight") + ", " + getTranslationByKey("Knowledge"),
"brawler": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Fight") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Will"),
"cop": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Drive") + ", " + getTranslationByKey("Shoot") + ", " + getTranslationByKey("Will"),
"detective": getTranslationByKey("Awareness") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Insight") + ", " + getTranslationByKey("Persuade"),
"dilettante": getTranslationByKey("Computers") + ", " + getTranslationByKey("Drive") + ", " + getTranslationByKey("Persuade") + ", " + getTranslationByKey("Resources"),
"face": getTranslationByKey("Contacts") + ", " + getTranslationByKey("Insight") + ", " + getTranslationByKey("Persuade") + ", " + getTranslationByKey("Provoke"),
"hacker": getTranslationByKey("Burglary") + ", " + getTranslationByKey("Computers") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Gadgetry"),
"inventor": getTranslationByKey("Computers") + ", " + getTranslationByKey("Drive") + ", " + getTranslationByKey("Gadgetry") + ", " + getTranslationByKey("Knowledge"),
"leader": getTranslationByKey("Insight") + ", " + getTranslationByKey("Knowledge") + ", " + getTranslationByKey("Persuade") + ", " + getTranslationByKey("Resources"),
"ninja": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Awareness") + ", " + getTranslationByKey("Fight") + ", " + getTranslationByKey("Stealth"),
"saboteur": getTranslationByKey("Burglary") + ", " + getTranslationByKey("Gadgetry") + ", " + getTranslationByKey("Knowledge") + ", " + getTranslationByKey("Stealth"),
"soldier": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Fight") + ", " + getTranslationByKey("Shoot") + ", " + getTranslationByKey("Will"),
"spy": getTranslationByKey("Burglary") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Resources") + ", " + getTranslationByKey("Stealth"),
"thief": getTranslationByKey("Awareness") + ", " + getTranslationByKey("Burglary") + ", " + getTranslationByKey("Resources") + ", " + getTranslationByKey("Stealth"),
"warrior": getTranslationByKey("Fight") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Shoot") + ", " + getTranslationByKey("Will"),
"wheels": getTranslationByKey("Awareness") + ", " + getTranslationByKey("Drive") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Shoot")
};
var modes = {
"crisis": getTranslationByKey("Combat") + ", " + getTranslationByKey("Fitness") + ", " + getTranslationByKey("Tradecraft"),
"lab": getTranslationByKey("Kaiju Studies") + ", " + getTranslationByKey("Technology") + ", " + getTranslationByKey("Operate"),
"office": getTranslationByKey("Ambition") + ", " + getTranslationByKey("Networking") + ", " + getTranslationByKey("Rapport"),
"pr": getTranslationByKey("Empathy") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Spin"),
"soldier": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Combat") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Physique") + ", " + getTranslationByKey("Tactics") + ", " + getTranslationByKey("Vehicles") + ", " + getTranslationByKey("Will"),
"adf": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Physique") + ", " + getTranslationByKey("Will"),
"erd": getTranslationByKey("Contacts") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Teslology") + ", " + getTranslationByKey("Will"),
"sdu": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Combat") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Transdimensional Tesliana") + ", " + getTranslationByKey("Will"),
"feb": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Combat") + ", " + getTranslationByKey("Stealth") + ", " + getTranslationByKey("Vehicles") + ", " + getTranslationByKey("Will"),
"psi": getTranslationByKey("Contacts") + ", " + getTranslationByKey("Deceive") + ", " + getTranslationByKey("Empathy") + ", " + getTranslationByKey("Neuro-Electric Tesliana") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Rapport") + ", " + getTranslationByKey("Will"),
"oop": getTranslationByKey("Bureaucracy") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Empathy") + ", " + getTranslationByKey("Rapport"),
"battle": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Intimidation") + ", " + getTranslationByKey("Melee") + ", " + getTranslationByKey("Missile") + ", " + getTranslationByKey("Physique"),
"talk": getTranslationByKey("Contacts") + ", " + getTranslationByKey("Deceit") + ", " + getTranslationByKey("Empathy") + ", " + getTranslationByKey("Rapport") + ", " + getTranslationByKey("Will"),
"thievery": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Burglary") + ", " + getTranslationByKey("Deceit") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Stealth"),
"woodcraft": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Lore") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Stealth") + ", " + getTranslationByKey("Survival"),
"action": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Combat") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Physique") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Vehicles"),
"banter": getTranslationByKey("Contacts") + ", " + getTranslationByKey("Deceive") + ", " + getTranslationByKey("Empathy") + ", " + getTranslationByKey("Provoke") + ", " + getTranslationByKey("Rapport") + ", " + getTranslationByKey("Will"),
"intrigue": getTranslationByKey("Athletics") + ", " + getTranslationByKey("Burglary") + ", " + getTranslationByKey("Contacts") + ", " + getTranslationByKey("Deceive") + ", " + getTranslationByKey("Notice") + ", " + getTranslationByKey("Stealth"),
"science": getTranslationByKey("Notice") + ", " + getTranslationByKey("Will") + ", " + getTranslationByKey("science-bracket")
};
var extras = {
blackfish: [
{ element: "title", name: "SF-46D Blackfish" },
{ element: "aspect", text: "Old But Reliable" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 1 },
{ element: "rating",
name: "Quality", rating: 1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 2 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: 0, text: "+0 to Pilot rolls." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades (2)", text: "Weapon:1 (main gun), +1 Shields" },
{ element: "rating", name: "Weapon (main gun)", rating: 1 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "track", label: "Shields",
track: 3, track1: 1, track2: 1, track3: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Minimize 1 die on Technology actions", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Minimize 1 die on Tactics actions", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Life Support Damaged", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship00": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 0 },
{ element: "rating",
name: "Quality", rating: 0 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 0 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: 0, text: "+0 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", rollable: 1, skill: "Pilot", bonus: 1, text: "+1 to Pilot for Defend actions only." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "track", label: "Shields",
track: 2, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Minimize 1 die on Technology actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Minimize 1 die on Tactics actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship0-1": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 0 },
{ element: "rating",
name: "Quality", rating: -1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 0 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: -1, text: "-1 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: -1, text: "-1 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: -1, text: "-1 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -1, text: "-1 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", rollable: 1, skill: "Pilot", bonus: 0, text: "+1 to Pilot for Defend actions only." },
{ element: "stunt", label: "Systems",
name: "Upgrades (0)", text: "None" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "track", label: "Shields",
track: 1, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Minimize 1 die on Technology and Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Minimize 1 die on Tactics and Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit, Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship10": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 1 },
{ element: "rating",
name: "Quality", rating: 0 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 2 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: 0, text: "+0 to Pilot rolls." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "track", label: "Shields",
track: 2, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Minimize 1 die on Technology actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Minimize 1 die on Tactics actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship1-1": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 1 },
{ element: "rating",
name: "Quality", rating: -1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 2 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: -1, text: "-1 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: -1, text: "-1 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: -1, text: "-1 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -1, text: "-1 to Pilot rolls." },
{ element: "stunt", label: "Systems",
name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "track", label: "Shields",
track: 1, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Minimize 1 die on Technology and Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Minimize 1 die on Tactics and Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit, Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship20": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 2 },
{ element: "rating",
name: "Quality", rating: 0 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 3 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -1, text: "-1 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-1 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "track", label: "Shields",
track: 2, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship2-1": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 1 },
{ element: "rating",
name: "Quality", rating: -1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 3 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: -1, text: "-1 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: -1, text: "-1 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: -1, text: "-1 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -2, text: "-2 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-1 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "track", label: "Shields",
track: 1, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology and Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics and Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 1, track2: 2, track3: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit, Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship30": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 3 },
{ element: "rating",
name: "Quality", rating: 0 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 4 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -2, text: "-2 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-2 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "stunt", name: "Bay 4", text: "" },
{ element: "track", label: "Shields",
track: 2, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship3-1": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 3 },
{ element: "rating",
name: "Quality", rating: -1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 4 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: -1, text: "-1 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: -1, text: "-1 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: -1, text: "-1 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -3, text: "-3 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-2 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "stunt", name: "Bay 4", text: "" },
{ element: "track", label: "Shields",
track: 1, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology and Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics and Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit, Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship40": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 3 },
{ element: "rating",
name: "Quality", rating: 0 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 5 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: 0, text: "+0 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: 0, text: "+0 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: 0, text: "+0 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -3, text: "-3 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-3 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Automated Ejection System", text: "See Tachyon Squadron page 46" },
{ element: "stunt", name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "stunt", name: "Bay 4", text: "" },
{ element: "stunt", name: "Bay 5", text: "" },
{ element: "track", label: "Shields",
track: 2, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "blank",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics actions.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "minus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"ship4-1": [
{ element: "title", name: "Ship Name" },
{ element: "aspect", text: "Big Ship" },
{ element: "rating", label: "Stats",
name: "Scale", rating: 3 },
{ element: "rating",
name: "Quality", rating: -1 },
{ element: "rating",
name: "Modular Equipment Bays", rating: 5 },
{ element: "stunt", label: "Modifiers", name: "Technology (Detection)", rollable: 1, skill: "Technology", bonus: -1, text: "-1 to Technology rolls." },
{ element: "stunt", name: "Tactics (Maneuver)", rollable: 1, skill: "Tactics", bonus: -1, text: "-1 to Tactics rolls." },
{ element: "stunt", name: "Gunnery (Attack)", rollable: 1, skill: "Gunnery", bonus: -1, text: "-1 to Gunnery rolls." },
{ element: "stunt", name: "Pilot (Defend)", rollable: 1, skill: "Pilot", bonus: -4, text: "-4 to Pilot rolls." },
{ element: "stunt", name: "Scale Modifier", text: "-3 to all Pilot actions (included above)." },
{ element: "stunt", label: "Systems",
name: "Upgrades ( )", text: "" },
{ element: "rating", name: "Weapon", rating: 0 },
{ element: "rating", name: "Armor", rating: 0 },
{ element: "stunt", label: "Modular Equipment Bays",
name: "Bay 1", text: "" },
{ element: "stunt", name: "Bay 2", text: "" },
{ element: "stunt", name: "Bay 3", text: "" },
{ element: "stunt", name: "Bay 4", text: "" },
{ element: "stunt", name: "Bay 5", text: "" },
{ element: "track", label: "Shields",
track: 1, track1: 1, track2: 1, track3: 1, track4: 1, track5: 1 },
{ element: "track", label: "Computer System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Technology and Gunnery actions.", track: 1, track1: 2 },
{ element: "track", name: "Sensors and targeting systems offline: Minimize 1 die on Technology and Gunnery actions, Shots in the Dark.", track: 1, track1: 2 },
{ element: "track", name: "Flash fire! Punch out!", track: 1 },
{ element: "track", label: "Propulsion System Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Minimize 1 die on Tactics and Pilot actions.", track: 1, track1: 2 },
{ element: "track", name: "Critical damage to drives: Minimize 1 die on Tactics and Pilot actions, Drives Ready to Give Out.", track: 1, track1: 2 },
{ element: "track", name: "Catastrophic explosion! Punch out!", track: 1 },
{ element: "track", label: "Critical Systems Damage", icon: "plus",
name: "Cosmetic damage", track: 1, track1: 2, track2: 2, track3: 2 },
{ element: "track", name: "Cockpit hit, pilot sustains damage equal to the amount the ship sustained in this hit, Life Support Damaged.", track: 1, track1: 2 },
{ element: "track", name: "Structural disintegration! Punch out!", track: 1 }
],
"turretdamage": [
{ element: "track", label: "Turret System Damage (if targeted)",
name: "Turret is locked in its current position and can only attack in the direction on the maneuver chart (above, below, or lateral) it last fired.", track: 1, track1: 2 },
{ element: "track", name: "Minimize 1 die on all Gunnery rolls.", track: 1, track1: 2 },
{ element: "track", name: "Turret is inoperative and its gunner takes a mild consequence.", track: 1, track1: 2 },
],
swordplay: [
{ element: "title", name: "Swordplay" },
{ element: "stunt", name: "Appearance", text: "" },
{ element: "stunt", name: "Edge", text: "" },
{ element: "stunt", name: "Main Hand", text: "" },
{ element: "stunt", name: "Off Hand", text: "" }
],
template: [
{ element: "title", name: "Title" },
{ element: "permissions", text: "Permissions text" },
{ element: "cost", text: "Cost text" },
{ element: "aspect", text: "Aspect Phrase; Aspect Phrase" },
{ element: "skill", label: "Skills", skill: "Skill", rating: 0, word: getTranslationByKey("rating0") },
{ element: "stunt", label: "Stunts", name: "Stunt", text: "Stunt text" },
{ element: "track", label: "Tracks", name: "Track", track: 3, track1: 1, track2: 1, track3: 1 },
{ element: "rating", label: "Ratings", name: "Rating", rating: 1 },
{ element: "note", label: "Note", text: "Note text", rating: 1 }
]
};
var verbose = true;
var skillNameByID = {};
var skillRatingByNameID = {};
var skillRatingByName = {};
/* var skillGrid = {
"row8": [], "row7": [], "row6": [], "row5": [], "row4": [], "row3": [], "row2":[], "row1": [], "row0": [], "row-1": [], "row-2": [], "row-3": [], "row-4": []
}; */
var skillGrid = {};
// Functions
var log = function(value) {
// console.log('/====================\\');
if ( verbose ) { console.log(value); }
// console.log('\\====================/');
};
var skillKey = function(rowid) {
return "repeating_skills_" + rowid + "_skill";
};
var rateKey = function(rowid) {
return "repeating_skills_" + rowid + "_rating";
};
var bonusKey = function(rowid) {
return "repeating_skills_" + rowid + "_bonus";
};
var skillRowKey = function(rowid) {
return "repeating_skills_" + rowid;
};
// not addGame or setGame but I'm sure to search for it under those
var loadGame = function(key) {
if ( typeof gamesets[key] === "undefined" ) {
log("Unable to find gameset by this id: " + key);
log("Set is undefined, cannot load, removing initialization");
setAttrs({ uninitialized: "0" });
log(gamesets);
} else {
var set = gamesets[key];
if ( typeof set === "undefined" ) {
log("Set is undefined, cannot load, removing initialization");
setAttrs({ uninitialized: "0" });
} else {
log("Found gameset by id " + key);
log(set);
// Ah, but is it custom? If so we've got work to do.
if ( key === "custom" ) {
getAttrs(
[ "custom-aspects", "custom-consequences", "custom-skills", "custom-stress", "custom-conditions", "custom-combos" ],
function(c) {
var aspects = c["custom-aspects"].trim();
var skills = c["custom-skills"].trim();
var combos = c["custom-combos"].trim();
var consequences = c["custom-consequences"].trim();
var conditions = c["custom-conditions"].trim();
var stresses = c["custom-stress"].trim();
if ( aspects !== "" ) {
set.aspects = aspects.toString().split(/\s*,\s*/);
}
if ( skills !== "" ) {
set.skills = skills.toString().split(/\s*,\s*/);
set.settings["SkillStyle"] = "list"; // So it'll display something at all
}
if ( combos !== "" ) {
var tempsplit = [];
set.combos = combos.toString().split(/\s*;\s*/); // column groups are separated by semicolons
set.combosnames = ["","",""]; // ZOD
if ( typeof set.combos[0] !== "undefined" && set.combos[0] !== "" ) {
set.combos[0] = set.combos[0].toString().split(/\s*,\s*/); // split up the comma separated skills in the column, make it an array entry
}
if ( typeof set.combos[1] !== "undefined" && set.combos[1] !== "" ) {
set.combos[1] = set.combos[1].toString().split(/\s*,\s*/); // split up the comma separated skills in the column, make it an array entry
}
if ( typeof set.combos[2] !== "undefined" && set.combos[2] !== "" ) {
set.combos[2] = set.combos[2].toString().split(/\s*,\s*/); // split up the comma separated skills in the column, make it an array entry
}
tempsplit = set.combos[0][0].toString().split(/\s*:\s*/);
if(typeof tempsplit[1] !== "undefined" && tempsplit[1] !== "") {
log("got a column label: " + tempsplit[0]);
// Then we've got the column label in tempsplit[0] and the actual skill name in tempsplit[1]
set.combosnames[0] = tempsplit[0];
set.combos[0][0] = tempsplit[1];
}
tempsplit = set.combos[1][0].toString().split(/\s*:\s*/);
if(typeof tempsplit[1] !== "undefined" && tempsplit[1] !== "") {
log("got a column label: " + tempsplit[0]);
// Then we've got the column label in tempsplit[0] and the actual skill name in tempsplit[1]
set.combosnames[1] = tempsplit[0];
set.combos[1][0] = tempsplit[1];
}
tempsplit = set.combos[1][0].toString().split(/\s*:\s*/);
if(typeof tempsplit[1] !== "undefined" && tempsplit[1] !== "") {
log("got a column label: " + tempsplit[0]);
// Then we've got the column label in tempsplit[0] and the actual skill name in tempsplit[1]
set.combosnames[2] = tempsplit[0];
set.combos[2][0] = tempsplit[1];
}
}
if ( consequences !== "" ) {
var cons = consequences.toString().split(/\s*,\s*/);
set.consequences = [];
for(var i = 0; i < cons.length; i++) {
var cona = cons[i].toString().split(/\s*:\s*/);
var label = cona[0];
var val = cona[1];
set.consequences.push({ "label": label, "value": val });
}
}
if ( conditions !== "" ) {
var cons = conditions.toString().split(/\s*,\s*/);
set.conditions = [];
for(var i = 0; i < cons.length; i++) {
var cona = cons[i].toString().split(/\s*:\s*/);
var label = cona[0];
var vals = cona[1].toString().split(/\s+/);
var tl = vals[0];
vals.shift();
set.conditions.push({ "label": label, "tracklength": tl, "tracktype": "cust", "values": vals });
}
}
if ( stresses !== "" ) {
var cons = stresses.toString().split(/\s*,\s*/);
set.stresses = [];
for(var i = 0; i < cons.length; i++) {
var cona = cons[i].toString().split(/\s*:\s*/);
var label = cona[0];
var vals = cona[1].toString().split(/\s+/);
var tl = vals[0];
vals.shift();
set.stresses.push({ "label": label, "tracklength": tl, "tracktype": "cust", "values": vals });
}
}
log("Custom set check");
log(set);
loadGameProcess(set);
}
);
} else {
loadGameProcess(set);
}
setAttrs({ uninitialized: "0" });
}
}
};
// This is split out because I sometimes need it to operate on callback
var loadGameProcess = function(set) {
// Main sequence
if ( typeof set.settings !== "undefined" ) {
setAttrs(set.settings);
}
if ( typeof set.addskills !== "undefined" ) {
addSkills(set);
}
if ( typeof set.addstress !== "undefined" ) {
addStress(set);
}
if ( typeof set.addconsequence !== "undefined" ) {
addConsequence(set);
}
if ( typeof set.addcondition !== "undefined" ) {
addCondition(set);
}
if ( typeof set.aspects !== "undefined" ) {
addAspect(set);
}
if ( typeof set.addswaps !== "undefined" ) {
var attrs = {};
for ( var i = 0; i < set.addswaps.length; i++ ) {
var newid = generateActuallyUniqueRowID();
var lid = "repeating_swaps_" + newid + "_label";
var ltext = getTranslationByKey(set.addswaps[i]);
if ( ltext === false ) {
ltext = set.addswaps[i];
}
attrs[lid] = ltext;
}
setAttrs(attrs);
}
};
var loadSkills = function(caller) {
log("ENTER loadSkills() called by " + caller);
getSectionIDs("skills", function(list) {
// log("ENTER loadSkills() getSectionIDs()");
var fieldlist = [];
log(list);
for(var i=0; i < list.length; i++ ) {
fieldlist[i*3] = skillKey(list[i]);
fieldlist[i*3+1] = rateKey(list[i]);
fieldlist[i*3+2] = bonusKey(list[i]);
}
getAttrs(
fieldlist,
function(obj) {
// log("ENTER loadSkills() getAttrs");
skillGrid = { "row10": [], "row9": [], "row8": [], "row7": [], "row6": [], "row5": [], "row4": [], "row3": [], "row2":[], "row1": [], "row0": [], "row-1": [], "row-2": [], "row-3": [], "row-4": []};
var attrs = { skillcount: 0 };
for(var [id,value] of Object.entries(obj) ) {
let isSkill = /_skill$/.test(id);
let isRating = /_rating$/.test(id);
if (isSkill) {
skillNameByID[id] = value;
attrs.skillcount++;
} else if (isRating) { // Want to skip bonus, since we're getting it in here
var gridrow = "";
var skillid = id.replace(/_rating$/,"_skill");
var bonusid = id.replace(/_rating$/,"_bonus");
var bonus = 0;
if ( typeof obj[bonusid] !== "undefined" ) {
bonus = Number(obj[bonusid]);
}
value = Number(value) + bonus;
gridrow = "row" + value;
skillRatingByNameID[skillid] = value;
attrs["Skill-"+skillNameByID[skillid]] = value; // Externalize the skill rating in an attribute that can be addressed by macros
skillRatingByName[skillNameByID[skillid]] = value;
var wordid = id + "-word";
attrs[wordid] = "";
if(skillNameByID[skillid] !== "") {
var wordval = getTranslationByKey("rating"+value);
attrs[wordid] = wordval;
}
skillGrid[gridrow].push(skillNameByID[skillid]);
skillGrid[gridrow].sort();
}
}
for(var [id,skills] of Object.entries(skillGrid)) {
let attrnamelist = "skill-"+id;
let listform = "";
for(var i=0; i < skills.length ; i++ ) {
var attrname = "skill-"+id+"-"+i;
attrs[attrname] = skills[i];
listform = listform + " " + skills[i];
}
for(var i=skills.length; i < 20; i++ ) {
var attrname = "skill-"+id+"-"+i;
attrs[attrname] = "";
}
// log(attrnamelist + ": " + listform);
attrs[attrnamelist] = listform;
}
// log(attrs);
setAttrs(attrs,{silent:true}); // We don't need to trigger any cascades here, this contains modifications of some fields in repeating_skills but we're already processing the whole thing in here
// log("EXIT loadSkills() getAttrs");
// As a coda to this, we go and make sure that stunts with incorporated skills are recorded properly.
getSectionIDs("stunts", function(stunts) {
log("stunts"+" skill integration begins");
var sfields = [ "rolltally" ];
for(var i=0; i < stunts.length; i++ ) {
sfields[i+1] = "repeating_" + "stunts" + "_" + stunts[i] + "_skill";
}
// get the stunt's skill setting, check skillRatingByName to see if there's a match, if there is, set the skillvalue attribute of that row to the value of said skill.
getAttrs(sfields, function(sf) {
var sattrs = {};
for(var [id,value] of Object.entries(sf) ) {
if ( id !== "rolltally" && value !== "" ) {
// Then we have a named skill. It must match exactly.
var sval = "N/A";
if ( typeof skillRatingByName[value] !== "undefined" ) {
sval = skillRatingByName[value];
}
var sfkey = id + "value";
sattrs[sfkey] = sval;
} else if ( id !== "rolltally" ) { // This is for rollable aspects
// Then we default to the value of the aspects total.
var sfkey = id + "value";
sattrs[sfkey] = sf["rolltally"];
}
}
setAttrs(sattrs);
log(sattrs);
log("stunts"+" skill integration ends");
});
});
getSectionIDs("extras", function(stunts) {
log("extras"+" skill integration begins");
var sfields = [ "rolltally" ];
for(var i=0; i < stunts.length; i++ ) {
sfields[i+1] = "repeating_" + "extras" + "_" + stunts[i] + "_skill";
}
// get the stunt's skill setting, check skillRatingByName to see if there's a match, if there is, set the skillvalue attribute of that row to the value of said skill.
getAttrs(sfields, function(sf) {
var sattrs = {};
for(var [id,value] of Object.entries(sf) ) {
if ( id !== "rolltally" && value !== "" ) {
// Then we have a named skill. It must match exactly.
var sval = "N/A";
if ( typeof skillRatingByName[value] !== "undefined" ) {
sval = skillRatingByName[value];
}
var sfkey = id + "value";
sattrs[sfkey] = sval;
} else if ( id !== "rolltally" ) { // This is for rollable aspects
// Then we default to the value of the aspects total.
var sfkey = id + "value";
sattrs[sfkey] = sf["rolltally"];
}
}
setAttrs(sattrs);
log(sattrs);
log("extras"+" skill integration ends");
});
});
}
);
// log("EXIT loadSkills() getSectionIDs()");
});
// log("EXIT loadSkills()");
};
var addExtra = function(values) {
var extraname = values.addextra;
attrs = { "addextra": "" };
if ( typeof extras[extraname] !== "undefined" ) {
var ex = extras[extraname];
for( i = 0; i < ex.length; i++ ) {
var newid = generateActuallyUniqueRowID();
var element = ex[i];
for(var [key,value] of Object.entries(element) ) {
var elementid = "repeating_extras_" + newid + "_" + key;
attrs[elementid] = value;
}
}
log("Ready to add this extra");
log(attrs);
} else {
log("Did not find a preloaded extra by name " + extraname);
}
setAttrs(attrs);
};
var addPackages = function(values) {
var packagename = values.addpackage;
if ( typeof packages[packagename] !== "undefined" ) {
var packageset = packages[packagename];
log(packageset);
attrs = { "addpackage": "" };
for(var [pkgname,pkg] of Object.entries(packageset) ) {
var newid = generateActuallyUniqueRowID();
var packageid = "repeating_packages_" + newid + "_package";
var skillsid = "repeating_packages_" + newid + "_skills";
var aspectsid = "repeating_packages_" + newid + "_aspects";
var stuntsid = "repeating_packages_" + newid + "_stunts";
attrs[packageid] = getTranslationByKey(pkgname);
attrs[skillsid] = pkg.skills;
attrs[aspectsid] = pkg.aspects;
attrs[stuntsid] = pkg.stunts;
}
setAttrs(attrs);
} else {
log("package "+packagename+" not recognized");
}
};
on("clicked:repeating_packages:add", function(e) {
const rowprefix = (e.sourceAttribute).slice(0,-3); // Strips off the add
const skillsid = rowprefix + "skills";
const aspectsid = rowprefix + "aspects";
const stuntsid = rowprefix + "stunts";
getSectionIDs("skills", function(s) {
var fields = [skillsid,aspectsid,stuntsid];
for(var i=0; i < s.length; i++) {
fields[i*2+3] = "repeating_skills_" + s[i] + "_skill";
fields[i*2+4] = "repeating_skills_" + s[i] + "_rating";
}
getAttrs(fields, function(v) {
log(v);
var attrs = {};
var alist = v[aspectsid].toString().split(/\s*,\s*/);
var sklist = v[skillsid].toString().split(/\s*,\s*/);
var stlist = v[stuntsid].toString().split(/\s*\n\s*/);
log(alist);
for(var j=0; j < alist.length; j++ ) {
if ( typeof alist[j] !== "undefined" && alist[j] !== "" ) {
var newarowid = generateActuallyUniqueRowID();
var newaid = "repeating_aspects_" + newarowid + "_aspect";
attrs[newaid] = alist[j];
}
}
log(stlist);
for(var j=0; j < stlist.length; j++ ) {
if ( typeof stlist[j] !== "undefined" && stlist[j] !== "" ) {
var newstrowid = generateActuallyUniqueRowID();
var newstnameid = "repeating_stunts_" + newstrowid + "_name";
var newstdescid = "repeating_stunts_" + newstrowid + "_desc";
var stuntpart = stlist[j].toString().split(/\s*:\s*/);
attrs[newstnameid] = stuntpart[0];
attrs[newstdescid] = stuntpart[1];
}
}
log(sklist);
for(var j=0; j < sklist.length; j++ ) {
if ( typeof sklist[j] !== "undefined" && sklist[j] !== "" ) {
var skillpart = sklist[j].toString().split(/\s*:\s*/);
var skillname = skillpart[0];
var skillpoint = Number(skillpart[1]);
if ( skillpoint === Number.NaN ) {
continue; // No point in adding a non-numeric value; skip to next iteration in loop
}
// Now find the skill that matches the skill name
for(var i = 0; i < s.length; i++ ) {
var sid = "repeating_skills_" + s[i] + "_skill";
var rid = "repeating_skills_" + s[i] + "_rating";
// These values should already exist in v
var sname = v[sid];
var sval = Number(v[rid]);
if ( sval === Number.NaN ) { sval = 0; }
if ( sname === skillname ) {
// Then we have a match!
attrs[rid] = sval + skillpoint; // Make sure we're setting the skill's new value to its existing rating value plus the skill point allocation
v[rid] = attrs[rid]; // Make sure we're updating the current understanding of the skill's rating is in case we encounter another add to it later
break; // we can break out of this for loop as we've found our candidate skill
}
}
}
}
setAttrs(attrs);
log(attrs);
});
});
});
on("clicked:repeating_packages:subtract", function(e) { // this is to remove an already-added package; has some heavy lifting to do!
const rowprefix = (e.sourceAttribute).slice(0,-8); // Strips off the subtract
const skillsid = rowprefix + "skills";
const aspectsid = rowprefix + "aspects";
const stuntsid = rowprefix + "stunts";
getSectionIDs("skills", function(sk) { getSectionIDs("stunts", function(st) { getSectionIDs("aspects", function(asp) {
var fields = [skillsid,aspectsid,stuntsid];
var adder = fields.length;
for(var i=0; i < sk.length; i++) {
fields[i*2+adder] = "repeating_skills_" + sk[i] + "_skill";
fields[i*2+adder+1] = "repeating_skills_" + sk[i] + "_rating";
}
var adder = adder + sk.length*2;
for(var i=0; i < st.length; i++) {
fields[i*2+adder] = "repeating_stunts_" + st[i] + "_name";
fields[i*2+adder+1] = "repeating_stunts_" + st[i] + "_desc";
}
var adder = adder + st.length*2;
for(var i=0; i < asp.length; i++) {
fields[i*1+adder] = "repeating_aspects_" + asp[i] + "_aspect";
}
getAttrs(fields, function(v) {
log(v);
var attrs = {};
var alist = v[aspectsid].toString().split(/\s*,\s*/);
var sklist = v[skillsid].toString().split(/\s*,\s*/);
var stlist = v[stuntsid].toString().split(/\s*\n\s*/);
log(alist);
for(var j=0; j < alist.length; j++ ) {
if ( typeof alist[j] !== "undefined" && alist[j] !== "" ) {
for(var i = 0; i < asp.length; i++ ) {
var arowid = "repeating_aspects_" + asp[i];
var aid = arowid + "_aspect";
if ( alist[j] === v[aid] ) {
removeRepeatingRow(arowid);
break; // Only need to do this to the first one encountered
}
}
}
}
log(stlist);
for(var j=0; j < stlist.length; j++ ) {
if ( typeof stlist[j] !== "undefined" && stlist[j] !== "" ) {
for(var i = 0; i < st.length; i++ ) {
var strowid = "repeating_stunts_" + st[i];
var stnid = strowid + "_name";
var stdid = strowid + "_desc";
var stuntpart = stlist[j].toString().split(/\s*:\s*/);
log(v); log(stuntpart);
if ( stuntpart[0] === v[stnid] && stuntpart[1] === v[stdid] ) {
removeRepeatingRow(strowid);
break; // Only need to do this to the first one encountered
}
}
}
}
log(sklist);
for(var j=0; j < sklist.length; j++ ) {
if ( typeof sklist[j] !== "undefined" && sklist[j] !== "" ) {
var skillpart = sklist[j].toString().split(/\s*:\s*/);
var skillname = skillpart[0];
var skillpoint = Number(skillpart[1]);
if ( skillpoint === Number.NaN ) {
continue; // No point in subtracting a non-numeric value; skip to next iteration in loop
}
// Now find the skill that matches the skill name
for(var i = 0; i < sk.length; i++ ) {
var sid = "repeating_skills_" + sk[i] + "_skill";
var rid = "repeating_skills_" + sk[i] + "_rating";
// These values should already exist in v
var sname = v[sid];
var sval = Number(v[rid]);
if ( sval === Number.NaN ) { sval = 0; }
if ( sname === skillname ) {
// Then we have a match!
attrs[rid] = sval - skillpoint; // Make sure we're setting the skill's new value to its existing rating value MINUS the skill point allocation
v[rid] = attrs[rid]; // Make sure we're updating the current understanding of the skill's rating is in case we encounter another subtract from it later
break; // we can break out of this for loop as we've found our candidate skill
}
}
}
}
setAttrs(attrs);
log(attrs);
});
}); }); });
});
var addRole = function(values) {
var rolename = values.addrole;
if ( typeof roles[rolename] !== "undefined" ) {
var newid = generateActuallyUniqueRowID();
var roleid = "repeating_roles_" + newid + "_role";
var skillsid = "repeating_roles_" + newid + "_skills";
attrs = { "addrole": "" };
attrs[skillsid] = roles[rolename];
attrs[roleid] = getTranslationByKey(rolename);
setAttrs(attrs);
} else {
log("Role "+rolename+" not recognized");
}
};
var addMode = function(values) {
var modename = values.addmode;
if ( typeof modes[modename] !== "undefined" ) {
var newid = generateActuallyUniqueRowID();
var modeid = "repeating_modes_" + newid + "_mode";
var skillsid = "repeating_modes_" + newid + "_skills";
attrs = { "addmode": "" };
attrs[skillsid] = modes[modename];
attrs[modeid] = getTranslationByKey(modename);
setAttrs(attrs);
} else {
log("Mode "+modename+" not recognized");
}
};
// Code testing reveals that the generateRowID function does not generate a unique ID 100% of the time when adding many rows at once, so we've got to
var uniqueids = {};
var generateActuallyUniqueRowID = function() {
var generated = generateRowID();
while ( uniqueids[generated] === true ) {
log("generateActuallyUniqueRowID: " + generated + " is not a unique ID, trying again.");
generated = generateRowID();
}
// log("generateActuallyUniqueRowID: " + generated + " verified as unique, returning.");
uniqueids[generated] = true;
return generated;
}
// addSkills({ "addskills": "fae|core|fcon|[etc]" });
var addSkills = function(values) {
log("addSkills called");
log(values);
var newset;
if ( values.addskills == "list" ) {
newset = values.skills;
} else {
newset = skillsets[values.addskills];
}
var attrs = { addskills: "" };
if ( typeof values.combosnames === "object" ) {
// ZOD combocol1, 2, 3
for(var i=0; i < values.combosnames.length; i++) {
var colnum = i+1;
attrs["combocol"+colnum] = values.combosnames[i];
}
}
getSectionIDs("skills", function(currentskills) {
var skillFilter = {};
var fieldlist = [];
for(var i=0; i < currentskills.length; i++ ) {
fieldlist[i] = skillKey(currentskills[i]);
}
getAttrs(
fieldlist,
function(obj) {
for(var [fieldid,objname] of Object.entries(obj) ) {
skillFilter[objname] = true;
}
log("skillFilter established"); log(skillFilter);
for(var i=0; i < newset.length; i++) {
var skillname = false;
if ( values.addskills !== "list" ) { // No translation when it's a custom list
skillname = getTranslationByKey(newset[i]);
}
if ( skillname === false ) {
skillname = newset[i];
}
if ( ! skillFilter[skillname] ) {
var newid = generateActuallyUniqueRowID();
var skillid = "repeating_skills_" + newid + "_skill";
attrs[skillid] = skillname;
attrs["repeating_skills_" + newid + "_rating"] = 0;
attrs["repeating_skills_" + newid + "_column"] = 1; // ZOD ZOD ZOD ZOD ZOD ZOD ZOD ZOD
if ( typeof values.combos === "object" ) {
for(var x=0;x < values.combos.length;x++) {
var stopnow = false;
for(var y=0;y < values.combos[x].length;y++) {
if ( skillname === values.combos[x][y] ) {
attrs["repeating_skills_" + newid + "_column"] = x+1;
stopnow = true; break;
}
}
if (stopnow) { break; }
}
}
// loadSkills() does this work too, but this makes sure that it won't have weird gaps if the rating attribute is encountered before the skill
skillFilter[skillname] = true;
skillNameByID[skillid] = skillname;
log("INSERTED: " + skillid + skillname);
} else {
log("NOT INSERTED: I believe that " + skillname + " is already in the skill list, so, nope.");
}
}
setAttrs(attrs,{silent:true},function() { log("addSkills callback to loadSkills"); loadSkills("addSkills"); }); // doing loadSkills() as a callback so it'll happen after all the attrs are set
}
);
});
};
// addStress({ "addstress": "flat|esc|cust" });
// addStress({ "addstress": "flat|esc|cust", "stresskeys": ["physical","mental"], "stresslength": 2 });
// stresskeys should point to translation keys
var addStress = function(values) {
log("addStress called with"); log(values);
var attrs = { addstress: "" };
if ( values.addcondition == "list" ) {
// ({ "label": label, "tracklength": tl, "tracktype": "cust", "values": vals });
for(var j = 0; j < values.stresses.length; j++) {
var newid = generateActuallyUniqueRowID();
attrs["repeating_stress_" + newid + "_label"] = values.stresses[j].label;
attrs["repeating_stress_" + newid + "_track"] = values.stresses[j].tracklength;
for(var i=1; i < 10; i++) {
var entry = values.stresses[j].values[i-1];
if ( typeof entry === "undefined" ) {
attrs["repeating_stress_" + newid + "_track" + i] = "";
} else {
attrs["repeating_stress_" + newid + "_track" + i] = entry;
}
}
}
} else {
var labelkeys = [];
if ( typeof values.stresskeys === "object" ) {
labelkeys = values.stresskeys;
} else if ( typeof values.stresskeys === "string" ) {
labelkeys = [values.stresskeys];
} else {
labelkeys = ["stress"];
}
log("labelkeys"); log(labelkeys);
log(labelkeys.length);
var tracklength;
if ( typeof values.stresslength === "undefined" ) {
tracklength = 2;
} else if ( typeof values.stresslength === "string" ) {
tracklength = Number(values.stresslength);
} else if ( typeof values.stresslength === "number" ) {
tracklength = values.stresslength;
} else {
tracklength = 2;
}
log("tracklength " + tracklength);
for(var j=0; j < labelkeys.length; j++ ) {
var newid = generateActuallyUniqueRowID();
var label = "";
if ( labelkeys[j] !== "" ) {
label = getTranslationByKey(labelkeys[j]);
if ( label === false ) {
label = getTranslationByKey("stress");
}
}
attrs["repeating_stress_" + newid + "_label"] = label;
attrs["repeating_stress_" + newid + "_track"] = tracklength;
for(var i=1; i < 10; i++) {
if ( values.addstress == "flat" ) {
attrs["repeating_stress_" + newid + "_track" + i] = "1";
} else if ( values.addstress == "esc" ) {
attrs["repeating_stress_" + newid + "_track" + i] = i;
} else {
attrs["repeating_stress_" + newid + "_track" + i] = "";
}
}
}
}
setAttrs(attrs);
};
// addCondition({ addcondition: "flat|esc|cust" }); // Simple version called by event handler
// addCondition({ addcondition: "mult", conditions: [ { labelkey: "[translation key]", tracklength: 2, tracktype: "flat|esc|cust", values: [1,1,1,1,1,1,1,1,1,1] } ] });
var addCondition = function(values) {
var attrs = { addcondition: "" };
if ( values.addcondition == "list" ) {
// ({ "label": label, "tracklength": tl, "tracktype": "cust", "values": vals });
for(var j = 0; j < values.conditions.length; j++) {
var newid = generateActuallyUniqueRowID();
attrs["repeating_conditions_" + newid + "_label"] = values.conditions[j].label;
attrs["repeating_conditions_" + newid + "_track"] = values.conditions[j].tracklength;
for(var i=1; i < 10; i++) {
var entry = values.conditions[j].values[i-1];
if ( typeof entry === "undefined" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = "";
} else {
attrs["repeating_conditions_" + newid + "_track" + i] = entry;
}
}
}
} else if ( values.addcondition == "mult" ) {
for(var j=0; j < values.conditions.length; j++) {
var labelkey = values.conditions[j].labelkey;
var tracklength = values.conditions[j].tracklength;
var tracktype = values.conditions[j].tracktype;
var newid = generateActuallyUniqueRowID();
var label = getTranslationByKey(labelkey);
if ( label === false ) {
label = getTranslationByKey("condition");
}
if ( typeof tracklength === "undefined" ) {
tracklength = 2;
}
attrs["repeating_conditions_" + newid + "_label"] = label;
attrs["repeating_conditions_" + newid + "_track"] = tracklength;
for(var i=1; i < 10; i++) {
if ( tracktype == "flat" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = "1";
} else if ( tracktype == "esc" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = i;
} else if ( tracktype == "cust" ) {
var entry = values.conditions[j].values[i-1];
if ( typeof entry === "undefined" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = "";
} else {
attrs["repeating_conditions_" + newid + "_track" + i] = entry;
}
} else {
attrs["repeating_conditions_" + newid + "_track" + i] = "";
}
}
}
} else {
var newid = generateActuallyUniqueRowID();
attrs["repeating_conditions_" + newid + "_label"] = getTranslationByKey("condition");
attrs["repeating_conditions_" + newid + "_track"] = 2;
for(var i=1; i < 10; i++) {
if ( values.addcondition == "flat" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = "1";
} else if ( values.addcondition == "esc" ) {
attrs["repeating_conditions_" + newid + "_track" + i] = i;
} else {
attrs["repeating_conditions_" + newid + "_track" + i] = "";
}
}
}
setAttrs(attrs);
};
// addAspect({ aspects: [ "list","of","labels" ] });
var addAspect = function(values) {
var list = values.aspects;
var rv = [];
if ( typeof values.aspectvalues !== "undefined" ) {
rv = values.aspectvalues;
}
var attrs = {};
for (i=0; i < list.length; i++) {
var newid = generateActuallyUniqueRowID();
var label = getTranslationByKey(list[i]);
if ( label === false ) {
label = list[i];
}
attrs["repeating_aspects_" + newid + "_label"] = label;
if ( typeof rv[i] !== "undefined" ) {
attrs["repeating_aspects_" + newid + "_rollvalue"] = rv[i];
}
}
setAttrs(attrs);
}
// addConsequence({ addconsequence: "mild|mod|sev|all" });
var addConsequence = function(values) {
var attrs = { addconsequence: "" };
var created = false;
if ( values.addconsequence == "mild" || values.addconsequence == "all" ) {
var newid = generateActuallyUniqueRowID(); created = true;
attrs["repeating_consequences_" + newid + "_label"] = getTranslationByKey("mild");
attrs["repeating_consequences_" + newid + "_track"] = "2";
}
if ( values.addconsequence == "mod" || values.addconsequence == "all" ) {
var newid = generateActuallyUniqueRowID(); created = true;
attrs["repeating_consequences_" + newid + "_label"] = getTranslationByKey("moderate");
attrs["repeating_consequences_" + newid + "_track"] = "4";
}
if ( values.addconsequence == "sev" || values.addconsequence == "all" ) {
var newid = generateActuallyUniqueRowID(); created = true;
attrs["repeating_consequences_" + newid + "_label"] = getTranslationByKey("severe");
attrs["repeating_consequences_" + newid + "_track"] = "6";
}
if ( values.addconsequence == "list" ) {
// { "label": label, "value": val }
created = true;
for(var i = 0; i < values.consequences.length; i++) {
var newid = generateActuallyUniqueRowID();
attrs["repeating_consequences_" + newid + "_label"] = values.consequences[i].label;
attrs["repeating_consequences_" + newid + "_track"] = values.consequences[i].value;
}
}
if (! created ) {
var newid = generateActuallyUniqueRowID(); created = true;
attrs["repeating_consequences_" + newid + "_label"] = getTranslationByKey("consequence");
attrs["repeating_consequences_" + newid + "_track"] = "";
}
setAttrs(attrs);
};
// Event Handlers
on("sheet:opened", function() {
log("Event: Sheet Opened");
loadSkills("sheet:opened");
});
on("change:addextra", function() {
log("Event: addextra change");
getAttrs(["addextra"], function(values) {
if ( values.addextra !== "" ) {
log("addextra: non null extra set detected");
addExtra(values);
}
});
});
on("change:repeating_roles remove:repeating_roles sheet:opened", function() {
getAttrs(["Show-Roles"], function(values) {
if ( values["Show-Roles"] == "1" ) {
getSectionIDs("roles", function(roles) {
var fieldlist = [];
for(var i=0; i < roles.length; i++ ) {
fieldlist[i] = "repeating_roles_" + roles[i] + "_skills";
}
log(fieldlist);
getAttrs(fieldlist, function(skills) {
log("skills:"); log(skills);
var skbonus = {};
for(var [id,text] of Object.entries(skills) ) {
log(text);
var sklist = text.toString().split(/\s*,\s*/);
log("sklist"); log(sklist);
for(var j=0; j < sklist.length; j++ ) {
if ( typeof skbonus[sklist[j]] === "undefined" ) {
skbonus[sklist[j]] = 1;
} else {
skbonus[sklist[j]]++;
}
}
}
log("skbonus: "); log(skbonus);
getSectionIDs("skills", function(skillrows) {
var skillfields = [];
for(var k=0; k < skillrows.length; k++ ) {
skillfields[k] = "repeating_skills_" + skillrows[k] + "_skill";
}
log(skillfields);
getAttrs(skillfields, function(realskills) {
var attrs = {};
for(var [skid,skname] of Object.entries(realskills) ) {
var bonusid = skid.replace(/_skill$/,"_bonus");
if ( typeof skbonus[skname] === "undefined" ) {
attrs[bonusid] = 0;
} else {
attrs[bonusid] = skbonus[skname];
}
}
log("Attrs ready to set:");
log(attrs);
setAttrs(attrs,{silent:true},function() { loadSkills("change:repeating_roles remove:repeating_roles sheet:opened"); });
});
});
});
});
}
});
});
on("change:repeating_modes remove:repeating_modes sheet:opened", function() {
getAttrs(["Show-Modes"], function(values) {
if ( values["Show-Modes"] == "1" ) {
getSectionIDs("modes", function(modes) {
var fieldlist = [];
for(var i=0; i < modes.length; i++ ) {
fieldlist[i*2] = "repeating_modes_" + modes[i] + "_skills";
fieldlist[i*2+1] = "repeating_modes_" + modes[i] + "_rating";
}
log(fieldlist);
getAttrs(fieldlist, function(skills) {
log("skills:"); log(skills);
var skbonus = {};
var ratebonus = {};
var attrs = { "focused": "", "specialized": "" }; // Defining it out here because it will also carry some modifications to the repeating modes
for(var [id,text] of Object.entries(skills) ) {
let isSkills = /_skills$/.test(id);
if ( isSkills ) {
var rateid = id.replace(/_skills$/,"_rating");
var wordid = id.replace(/_skills$/,"_word");
attrs[wordid] = getTranslationByKey("rating" + skills[rateid]);
log(text);
var sklist = text.toString().split(/\s*,\s*/);
log("sklist"); log(sklist);
for(var j=0; j < sklist.length; j++ ) {
if ( typeof skbonus[sklist[j]] === "undefined" ) {
skbonus[sklist[j]] = 0;
ratebonus[sklist[j]] = Number(skills[rateid]);
} else {
skbonus[sklist[j]]++;
if ( ratebonus[sklist[j]] < Number(skills[rateid]) ) {
ratebonus[sklist[j]] = Number(skills[rateid]);
}
}
}
}
}
log("skbonus: "); log(skbonus);
getSectionIDs("skills", function(skillrows) {
var skillfields = [];
for(var k=0; k < skillrows.length; k++ ) {
skillfields[k] = "repeating_skills_" + skillrows[k] + "_skill";
}
log(skillfields);
getAttrs(skillfields, function(realskills) {
for(var [skid,skname] of Object.entries(realskills) ) {
var bonusid = skid.replace(/_skill$/,"_bonus");
if ( typeof skbonus[skname] === "undefined" ) {
attrs[bonusid] = 0;
} else {
attrs[bonusid] = skbonus[skname] + ratebonus[skname];
if ( skbonus[skname] == 1 ) {
if ( attrs["focused"] !== "" ) {
attrs["focused"] = attrs["focused"] + ", ";
}
attrs["focused"] = attrs["focused"] + skname + " (+" + skbonus[skname] + ")";
} else if ( skbonus[skname] > 1 ) {
if ( attrs["specialized"] !== "" ) {
attrs["specialized"] = attrs["specialized"] + ", ";
}
attrs["specialized"] = attrs["specialized"] + skname + " (+" + skbonus[skname] + ")";
}
}
}
log("Attrs ready to set:");
log(attrs);
setAttrs(attrs,{silent:true},function() { loadSkills("change:repeating_modes remove:repeating_modes sheet:opened"); });
});
});
});
});
}
});
});
on("sheet:opened change:repeating_aspects remove:repeating_aspects", function() {
getSectionIDs("aspects", function(list) {
log("Parsing aspect list");
var gets = [];
for( var i = 0; i < list.length; i++ ) {
gets[i*4] = "repeating_aspects_" + list[i] + "_aspect";
gets[i*4+1] = "repeating_aspects_" + list[i] + "_label";
gets[i*4+2] = "repeating_aspects_" + list[i] + "_flags";
gets[i*4+3] = "repeating_aspects_" + list[i] + "_notes";
}
getAttrs(gets, function(a) {
var atext = "";
var lcount = {};
var attrs = {}
for( var i = 0; i < list.length; i++ ) {
var lmod = "Unlabeled";
var aspect = a["repeating_aspects_" + list[i] + "_aspect"];
var label = a["repeating_aspects_" + list[i] + "_label"];
var flags = a["repeating_aspects_" + list[i] + "_flags"];
var notes = a["repeating_aspects_" + list[i] + "_notes"];
if ( atext !== "" ) {
atext = atext + "\n\n";
}
if ( typeof label !== "undefined" && label !== "" ) {
atext = atext + "**" + label;
if ( typeof flags !== "undefined" && flags !== "" ) {
atext = atext + " (" + flags + ")";
}
atext = atext + ":**\n";
lmod = label.replace(/\s+/g,"");
}
atext = atext + "***" + aspect + "***";
if ( typeof notes !== "undefined" && notes !== "" ) {
atext = atext + "\n"+ notes ;
}
if ( typeof lcount[lmod] === "undefined" ) {
lcount[lmod] = 0;
}
lcount[lmod]++;
var lkey = lmod + lcount[lmod];
if ( lcount[lmod] == 1 ) {
lkey = lmod;
}
lkey = "Aspect-" + lkey;
attrs[lkey] = aspect;
}
attrs["aspectlist"] = atext;
log("Done parsing aspect list"); log(attrs);
setAttrs(attrs);
});
});
});
on("change:repeating_skills:skill change:repeating_skills:rating change:repeating_skills:bonus remove:repeating_skills change:skillstyle change:repeating_stunts:skill change:repeating_extras:skill change:rolltally", function() {
loadSkills("change:repeating_skills:skill change:repeating_skills:rating change:repeating_skills:bonus remove:repeating_skills change:skillstyle change:repeating_stunts:skill change:repeating_extras:skill change:rolltally");
});
on("sheet:opened change:repeating_stunts remove:repeating_stunts", function() {
log("Event: Stunts change");
getSectionIDs("stunts", function(list) {
log("parsing stunt list");
var attrs = { stuntcount: list.length };
var slist = [];
for ( var i = 0; i < list.length; i++ ) {
slist[i*2] = "repeating_stunts_" + list[i] + "_name";
slist[i*2+1] = "repeating_stunts_" + list[i] + "_desc";
}
getAttrs(slist,function(stunts) {
for ( var i = 0; i < list.length; i++ ) {
var stuntkey = "repeating_stunts_" + list[i] + "_name";
var desckey = "repeating_stunts_" + list[i] + "_desc";
var snum = i + 1;
var atstunt = "Stunt-Name-" + snum;
var atstuntd = "Stunt-Desc-" + snum;
var atstuntf = "Stunt-" + snum;
attrs[atstunt] = stunts[stuntkey];
attrs[atstuntd] = stunts[desckey];
attrs[atstuntf] = stunts[stuntkey] + ": " + stunts[desckey];
}
setAttrs(attrs);
log("stunt list parsed"); log(attrs);
});
});
});
on("sheet:opened change:repeating_consequences remove:repeating_consequences", function() {
log("Event: Consequences change");
getSectionIDs("consequences", function(list) {
log("parsing consequence list");
var attrs = {};
var slist = [];
for ( var i = 0; i < list.length; i++ ) {
slist[i*4] = "repeating_consequences_" + list[i] + "_label";
slist[i*4+1] = "repeating_consequences_" + list[i] + "_track";
slist[i*4+2] = "repeating_consequences_" + list[i] + "_trackcheck";
slist[i*4+3] = "repeating_consequences_" + list[i] + "_aspect";
}
getAttrs(slist,function(c) {
var lcheck = {};
for ( var i = 0; i < list.length; i++ ) {
var ckey = "repeating_consequences_" + list[i] + "_label";
var tkey = "repeating_consequences_" + list[i] + "_track";
var akey = "repeating_consequences_" + list[i] + "_aspect";
var tckey = "repeating_consequences_" + list[i] + "_trackcheck";
var checked = false;
if ( c[tckey] == "1" ) {
checked = true;
}
var aspect = c[akey];
var value = Number(c[tkey]);
var remaining = value;
if ( checked ) { remaining = 0; }
var label = c[ckey];
label = label.replace(/[^A-Za-z0-9]/g,"");
if ( typeof lcheck[label] === "undefined" ) {
lcheck[label] = 0;
}
lcheck[label]++;
if ( lcheck[label] > 1 ) {
label = label + lcheck[label];
}
label = "Consequence-" + label;
attrs[label] = aspect;
attrs[label+"-Total"] = value;
attrs[label+"-Remaining"] = remaining;
attrs[label+"-Marked"] = checked;
}
setAttrs(attrs);
log("consequence list parsed"); log(attrs);
});
});
});
on("sheet:opened change:repeating_stress remove:repeating_stress", function() {
log("Event: Stress change");
getSectionIDs("stress", function(list) {
log("parsing stress list");
var attrs = {};
var slist = [];
for ( var i = 0; i < list.length; i++ ) {
slist[i*20] = "repeating_stress_" + list[i] + "_label";
slist[i*20+1] = "repeating_stress_" + list[i] + "_track";
for ( var j = 1; j < 10; j++ ) {
slist[i*20+j*2] = "repeating_stress_" + list[i] + "_track" + j;
slist[i*20+j*2+1] = "repeating_stress_" + list[i] + "_check" + j;
}
}
getAttrs(slist,function(c) {
var lcheck = {};
for ( var i = 0; i < list.length; i++ ) {
var lkey = "repeating_stress_" + list[i] + "_label";
var tkey = "repeating_stress_" + list[i] + "_track";
var tally = 0; var remaining = 0;
for ( var j = 1; j <= Number(c[tkey]); j++ ) {
var vakey = "repeating_stress_" + list[i] + "_track" + j;
var chkey = "repeating_stress_" + list[i] + "_check" + j;
var value = Number(c[vakey]);
if ( isNaN(value) || value == 0 ) {
value = 1;
}
var count = 1;
if ( c[chkey] == "1" ) {
count = 0;
}
tally += value;
remaining += value*count;
}
var label = c[lkey];
label = label.replace(/[^A-Za-z0-9]/g,"");
if ( label == "" ) { label = "Track"; }
if ( typeof lcheck[label] === "undefined" ) {
lcheck[label] = 0;
}
lcheck[label]++;
if ( lcheck[label] > 1 ) {
label = label + lcheck[label];
}
label = "Stress-" + label;
attrs[label+"-Total"] = tally;
attrs[label+"-Remaining"] = remaining;
attrs[label+"-Used"] = tally - remaining;
attrs[label+"-Length"] = c[tkey];
}
setAttrs(attrs);
log("stress list parsed"); log(attrs);
});
});
});
on("sheet:opened change:repeating_conditions remove:repeating_conditions", function() {
log("Event: Condition change");
getSectionIDs("conditions", function(list) {
log("parsing conditions list");
var attrs = {};
var slist = [];
for ( var i = 0; i < list.length; i++ ) {
slist[i*20] = "repeating_conditions_" + list[i] + "_label";
slist[i*20+1] = "repeating_conditions_" + list[i] + "_track";
for ( var j = 1; j < 10; j++ ) {
slist[i*20+j*2] = "repeating_conditions_" + list[i] + "_track" + j;
slist[i*20+j*2+1] = "repeating_conditions_" + list[i] + "_check" + j;
}
}
getAttrs(slist,function(c) {
var lcheck = {};
for ( var i = 0; i < list.length; i++ ) {
var lkey = "repeating_conditions_" + list[i] + "_label";
var tkey = "repeating_conditions_" + list[i] + "_track";
var tally = 0; var remaining = 0;
for ( var j = 1; j <= Number(c[tkey]); j++ ) {
var vakey = "repeating_conditions_" + list[i] + "_track" + j;
var chkey = "repeating_conditions_" + list[i] + "_check" + j;
var value = Number(c[vakey]);
if ( isNaN(value) || value == 0 ) {
value = 1;
}
var count = 1;
if ( c[chkey] == "1" ) {
count = 0;
}
tally += value;
remaining += value*count;
}
var label = c[lkey];
label = label.replace(/[^A-Za-z0-9]/g,"");
if ( label == "" ) { label = "Track"; }
if ( typeof lcheck[label] === "undefined" ) {
lcheck[label] = 0;
}
lcheck[label]++;
if ( lcheck[label] > 1 ) {
label = label + lcheck[label];
}
label = "Condition-" + label;
attrs[label+"-Total"] = tally;
attrs[label+"-Remaining"] = remaining;
attrs[label+"-Used"] = tally - remaining;
attrs[label+"-Length"] = c[tkey];
}
setAttrs(attrs);
log("conditions list parsed"); log(attrs);
});
});
});
on("change:addskills", function() {
log("Event: addskills change");
getAttrs(["addskills"], function(values) {
if ( values.addskills !== "" ) {
log("addskills: non null skill set detected");
addSkills(values);
}
});
});
on("change:addrole", function() {
log("Event: addrole change");
getAttrs(["addrole"], function(values) {
if ( values.addrole !== "" ) {
log("addrole: non null role detected");
addRole(values);
}
});
});
on("change:addpackage", function() {
log("Event: addpackage change");
getAttrs(["addpackage"], function(values) {
if ( values.addpackage !== "" ) {
log("addpackage: non null package detected");
addPackages(values);
}
});
});
on("change:addmode", function() {
log("Event: addmode change");
getAttrs(["addmode"], function(values) {
if ( values.addmode !== "" ) {
log("addmode: non null mode detected");
addMode(values);
}
});
});
on("change:addstress", function() {
log("Event: addstress change");
getAttrs(["addstress"], function(values) {
if ( values.addstress !== "" ) {
log("addstress: non null stress detected");
addStress(values);
}
});
});
on("change:addcondition", function() {
log("Event: addcondition change");
getAttrs(["addcondition"], function(values) {
if ( values.addcondition !== "" ) {
log("addcondition: non null condition detected");
addCondition(values);
}
});
});
on("change:addconsequence", function() {
log("Event: addconsequence change");
getAttrs(["addconsequence"], function(values) {
if ( values.addconsequence !== "" ) {
log("addconsequence: non null consequence detected");
addConsequence(values);
}
});
});
on("change:setgame sheet:opened", function() {
log("Event: setgame change");
getAttrs(["setgame","uninitialized","importsheetdata"], function(values) {
if ( values.setgame !== "" ) {
log("setgame: non null setgame detected");
if ( values.importsheetdata !== "" ) {
log("setgame: sheet has non-null importsheetdata, and as such shouldn't load any presets");
} else if ( values.uninitialized == "1" ) {
log("setgame: sheet has not been initialized");
loadGame(values.setgame);
} else {
log("setgame: sheet already initialized");
}
} else {
log("setgame: setgame is empty");
}
});
});
/* {
sourceAttribute: "repeating_powers_-masp7kp27-3lpaymwxw_sfxmenu",
sourceType: "player",
triggerName: "repeating_powers_-masp7kp27-3lpaymwxw_sfxmenu",
newValue: "fx1"
} */
on("change:repeating_powers:sfxmenu", function(e) {
if ( typeof e.newValue !== "undefined" && e.newValue !== "" ) {
log("repeating_powers:sfxmenu non null choice detected " + e.newValue);
var attrs = {};
attrs[e.sourceAttribute] = ""; // Make sure to reset the addfx menu
var fxid = e.sourceAttribute.replace(/_sfxmenu$/,"_sfx");
var text = getTranslationByKey(e.newValue);
if ( text !== false ) { // I shouldn't need to do this check, but of course things are still getting to this point despite the check to make sure e.newValue isn't null.
getAttrs([fxid], function(v) {
var newtext = v[fxid];
if ( newtext !== "" ) {
newtext = newtext + " ";
}
newtext = newtext + text + " ";
attrs[fxid] = newtext;
setAttrs(attrs,{silent:true}); // Silent because we don't need to trigger a second run through this same handler
});
}
}
});
on("change:repeating_extras:rating", function(e) {
if ( typeof e.newValue !== "undefined" && e.newValue !== "" ) {
log("repeating_extras:rating non null choice detected " + e.newValue);
var attrs = {};
var wordid = e.sourceAttribute.replace(/_rating$/,"_word");
var word = getTranslationByKey("rating"+e.newValue);
if ( word === false ) {
word = e.newValue;
}
attrs[wordid] = word;
setAttrs(attrs);
}
});
on("change:repeating_skills:rollthis change:combomulti", function(e) {
log("rollthis or combomulti marked in repeating_skills - skill combo feature");
log(e);
getSectionIDs("skills", function(list) {
var fieldlist = ["combomulti"];
for(var i=0; i < list.length; i++) {
fieldlist[i*5+1] = "repeating_skills_" + list[i] + "_skill"; // Name of skill
fieldlist[i*5+2] = "repeating_skills_" + list[i] + "_rating"; // skill's base rating
fieldlist[i*5+3] = "repeating_skills_" + list[i] + "_bonus"; // skill's bonus from externals
fieldlist[i*5+4] = "repeating_skills_" + list[i] + "_rollthis"; // indicates if selected
fieldlist[i*5+5] = "repeating_skills_" + list[i] + "_column"; // indicates which column skill is in
}
getAttrs(fieldlist, function(v) {
var attrs = {};
attrs["combotally"] = 0;
attrs["combotext"] = "";
var colused = [false,false,false,false]; // The 0 position is n/a, but I don't care, convenient this way
var multi = v["combomulti"];
if ( e.sourceAttribute !== "combomulti" && multi !== "1" && e.newValue == "1" ) {
log("we have a situation where the triggering attribute is not combomulti, and combomulti is disabled (meaning multiple selections from the same column are disallowed), and the triggering attribute was toggled on; therefore we must make sure only the triggering attribute is counted for that column");
var columnid = e.sourceAttribute.replace(/_rollthis$/,"_column");
var mycol = v[columnid];
for(var i=0; i < list.length; i++ ) {
var rtname = "repeating_skills_" + list[i] + "_rollthis";
var thiscolid = "repeating_skills_" + list[i] + "_column";
var thiscol = v[thiscolid];
if ( rtname !== e.sourceAttribute && v[rtname] == "1" && thiscol == mycol ) {
v[rtname] = "0"; // Overwrite the current value as loaded, so it's treated right in the coming for loop
attrs[rtname] = "0"; // Ensure the current value for this non-matching entity is set to 'don't roll it'
}
}
}
for(var i=0; i < list.length; i++ ) {
var skill = v["repeating_skills_" + list[i] + "_skill"];
var rating = v["repeating_skills_" + list[i] + "_rating"];
var bonus = v["repeating_skills_" + list[i] + "_bonus"];
var include = v["repeating_skills_" + list[i] + "_rollthis"];
var column = v["repeating_skills_" + list[i] + "_column"];
if( include == "1" ) {
if ( multi !== "1" && colused[Number(column)] == true ) {
if ( e.sourceAttribute === "combomulti" && e.newValue === "0" ) {
log("combomulti attribute toggled off this time, need to clear up this extra entry in the column");
attrs["repeating_skills_" + list[i] + "_rollthis"] = "0";
}
continue; // Skip this iteration, as you've already got one element from the given column
}
colused[Number(column)] = true;
attrs["combotally"] = attrs["combotally"] + Number(bonus) + Number(rating);
if ( attrs["combotext"] !== "" ) {
attrs["combotext"] = attrs["combotext"] + " + ";
}
attrs["combotext"] = attrs["combotext"] + skill;
}
}
setAttrs(attrs);
});
});
});
on("change:repeating_aspects:rollthis", function(e) {
log("rollthis marked in repeating_aspects");
getSectionIDs("aspects", function(list) {
var fieldlist = [];
for(var i=0; i < list.length; i++ ) {
fieldlist[i*3] = "repeating_aspects_" + list[i] + "_rollthis";
fieldlist[i*3+1] = "repeating_aspects_" + list[i] + "_rollvalue";
fieldlist[i*3+2] = "repeating_aspects_" + list[i] + "_aspect";
}
getAttrs(fieldlist, function(v) {
var attrs = {};
log(v);
attrs["rolltally"] = 0;
attrs["rolllist"] = "";
for(var i=0; i < list.length; i++ ) {
var include = v["repeating_aspects_" + list[i] + "_rollthis"];
var bonus = v["repeating_aspects_" + list[i] + "_rollvalue"];
var aspect = v["repeating_aspects_" + list[i] + "_aspect"];
log("include: " + include);
log("bonus: " + bonus);
log("aspect: " + aspect);
if ( include == "1" ) {
attrs["rolltally"] = attrs["rolltally"] + Number(bonus);
if ( attrs["rolllist"] === "" ) {
attrs["rolllist"] = aspect + "(+" + bonus + ")";
} else {
attrs["rolllist"] = attrs["rolllist"] + "; " + aspect + "(+" + bonus + ")";
}
}
}
setAttrs(attrs);
});
});
});
on("clicked:repeating_swaps:importswap", function(e) {
const rowprefix = (e.sourceAttribute).slice(0,-10); // Strips off the importswap
const skillsid = rowprefix + "skills";
getSectionIDs("skills", function(s) {
var fields = [];
for(var i=0; i < s.length; i++) {
fields[i*2] = "repeating_skills_" + s[i] + "_skill";
fields[i*2+1] = "repeating_skills_" + s[i] + "_rating";
}
getAttrs(fields, function(v) {
var attrs = {};
attrs[skillsid] = "";
for(var i=0; i < s.length; i++) {
const sid = "repeating_skills_" + s[i] + "_skill";
const rid = "repeating_skills_" + s[i] + "_rating";
if ( i > 0 ) {
attrs[skillsid] += ", ";
}
attrs[skillsid] += v[sid] + ":" + v[rid];
}
setAttrs(attrs);
});
});
});
on("change:repeating_swaps:skills", function(e) {
log("change:repeating_swaps:skills");
log(e);
const skillsid = e.sourceAttribute;
getAttrs([skillsid], function(s) {
var stext = s[skillsid];
stext = stext.replace(/\n/g," ");
stext = stext.replace(/ */g," ");
stext = stext.replace(/^ */,"");
stext = stext.replace(/ *$/,"");
var attrs = {};
attrs[skillsid] = stext;
setAttrs(attrs,{silent:true});
});
})
on("clicked:repeating_swaps:loadswap", function(e) {
const rowprefix = (e.sourceAttribute).slice(0,-8); // Strips off the loadswap
const skillsid = rowprefix + "skills";
getAttrs([skillsid], function(l) {
var list = l[skillsid].toString().split(/\s*,\s*/);
var rates = {};
for(var i = 0; i < list.length; i++) {
var parts = list[i].toString().split(/\s*:\s*/);
rates[parts[0]] = Number(parts[1]);
}
getSectionIDs("skills", function(s) {
const lid = rowprefix + "label";
var fields = [ lid ];
for(var i=0; i < s.length; i++) {
fields[1+i*2] = "repeating_skills_" + s[i] + "_skill";
fields[1+i*2+1] = "repeating_skills_" + s[i] + "_rating";
}
getAttrs(fields, function(v) {
var attrs = { "lastswapped": "(" + v[lid] + ")" };
for(var i=0; i < s.length; i++) {
const sid = "repeating_skills_" + s[i] + "_skill";
const rid = "repeating_skills_" + s[i] + "_rating";
const skill = v[sid];
const rating = Number(v[rid]);
if ( typeof rates[skill] !== "undefined") {
// Then we have a skill that matches one of the loadable's skills
if ( rating != rates[skill] ) {
attrs[rid] = rates[skill];
log("Changing "+skill+" rating to "+rates[skill]);
}
}
}
setAttrs(attrs,{silent:true},function() { loadSkills("clicked:repeating_swaps:loadswap") });
});
});
});
});
//
// COMPENDIUM EXPORT/IMPORT SUPPORT AREA
//
// a bunch of skill-rowX-Y attributes exist, but those
// should be created as skill list gets populated and/or
// sheet gets opened
//
// Similarly there are a few action-triggering attributes
// like "addskills", etc, which aren't a part of this as
// their at-rest state is empty anyway.
const attributes = [
"character_name", "uninitialized", "SheetOptions", "Show-Aspects", "Show-Combinable", "Show-Conditions", "Show-Consequences", "Show-Corruption", "Show-Diceprompts", "Show-Extras", "Show-FP", "Show-Logo", "Show-Modes", "Show-Notes", "Show-Packages", "Show-Powers", "Show-Refresh", "Show-Roles", "Show-RollableAspects", "Show-Skills", "Show-Skillswaps", "Show-Stress", "Show-Stunts", "Show-TempAspects", "EditAspects", "EditCombos", "EditConditions", "EditConsequences", "EditExtras", "EditModes", "EditNotes", "EditPackages", "EditPowers", "EditRoles", "EditSkills", "EditStress", "EditStunts", "EditSwaps", "EditTempAspects", "aspectlist", "combomulti", "combotally", "combotext", "combocol1", "combocol2", "combocol3", "corruption", "custom-aspects", "custom-combos", "custom-conditions", "custom-consequences", "custom-skills", "custom-stress", "focused", "fp", "lastswapped", "pronouns", "refresh", "rolllist", "rolltally", "setgame", "skillcount", "SkillStyle", "specialized", "stuntcount", "theme"
];
const fieldsets = {
aspects: [
"category","label","aspect","flags","invokes",
"rollvalue","notes","rollthis","options",
"check1","check2","check3","check4","check5",
"check6","check7","check8","check9","check10"
],
skills: [
"skill","rating","bonus","column","rating-word",
"rollthis"
],
stunts: [
"name","desc","skill","skillvalue","bonus","rollable"
],
stress: [
"label","track","notes","options",
"track1","track2","track3","track4","track5",
"track6","track7","track8","track9","track10",
"check1","check2","check3","check4","check5",
"check6","check7","check8","check9","check10"
],
consequences: [
"label","track","trackcheck","recovery","aspect"
],
conditions: [
"label","track","notes","options",
"track1","track2","track3","track4","track5",
"track6","track7","track8","track9","track10",
"check1","check2","check3","check4","check5",
"check6","check7","check8","check9","check10"
],
tempaspects: [
"aspect","invokes","notes","options",
"check1","check2","check3","check4","check5",
"check6","check7","check8","check9","check10"
],
modes: [
"mode","rating","word","skills"
],
roles: [
"role","skills"
],
swaps: [
"label","skills"
],
packages: [
"package","aspects","skills","stunts",
],
powers: [
"name","desc","breakdown","sfx","sfxmenu",
"drawbacks","collateral","cost"
],
extras: [
"element","name","label","icon","icon2","icon3",
"skill","rating","word","rollable","bonus",
"skillvalue","text","track",
"track1","track2","track3","track4","track5",
"track6","track7","track8","track9","track10",
"check1","check2","check3","check4","check5",
"check6","check7","check8","check9","check10"
],
notes: [
"name","desc"
]
};
// Deadly button: click it, and all your fieldset data goes bye-bye.
on("clicked:clearsheet", function(e) {
log("clear sheet clicked");
for(const [id,value] of Object.entries(fieldsets) ) {
log("working "+id);
getSectionIDs(id, function(clearme) {
log(clearme);
for(var i=0; i < clearme.length; i++) {
var rowid = "repeating_"+id+"_"+clearme[i];
removeRepeatingRow(rowid);
}
});
}
});
// This is the importer. Hopefully works clean!
// ZOD
on("change:importsheetdata sheet:opened", function() {
log("Event: importsheetdata change or sheet open");
getAttrs(["importsheetdata"], function(values) {
if ( values.importsheetdata !== "" ) { // Then it's gonna get processed.
log("importsheetdata: non null importablesheetdata detected");
var impsheet = JSON.parse(values.importsheetdata); // Hope this works!
var attrs = impsheet.attr; // this should get us the "flat attributes" that are just gonna get overwritten, as our starter object
var fsets = impsheet.fieldset; // An array of objects each representing a row in one of the many fieldsets this sheet uses
attrs["importsheetdata"] = ""; // Initialize the import field now that we've read it in.
for(var i=0; i < fsets.length; i++) {
var row = fsets[i]; // This is an object
var fs = row["_fieldset"]; // This is the name of the fieldset the row's content goes into
var newid = generateActuallyUniqueRowID(); // This gets us an actual unique row ID for the new entry
var rowprefix = "repeating_" + fs + "_" + newid + "_";
for(const [rowfield,rowcontent] of Object.entries(row) ) {
if ( rowfield !== "_fieldset" ) {
var rfname = rowprefix + rowfield;
attrs[rfname] = rowcontent;
}
}
}
log("Committing changes for importsheetdata")
setAttrs(attrs);
loadSkills("importsheetdata",{silent:false},function() { log("importsheetdata callback to loadSkills"); loadSkills("addSkills"); });
}
});
});
// all the fieldsets so far:
// aspects, skills, stunts, stress, consequences, conditions, tempaspects, modes, roles, swaps, packages, powers, extras, notes
// ZOD
on("clicked:exportsheet", function(e) {
var exsheet = { "attr": {}, "fieldset": [] };
var fields = [];
fields = fields.concat(attributes); // grab the list of flat non-fieldset attributes into the master fields list
getSectionIDs("aspects", function(aspectsList) {
var flist = fieldsets["aspects"];
var fnames = [];
for(var i=0; i < aspectsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_aspects_" + aspectsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("skills", function(skillsList) {
var flist = fieldsets["skills"];
var fnames = [];
for(var i=0; i < skillsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_skills_" + skillsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("stunts", function(stuntsList) {
var flist = fieldsets["stunts"];
var fnames = [];
for(var i=0; i < stuntsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_stunts_" + stuntsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("stress", function(stressList) {
var flist = fieldsets["stress"];
var fnames = [];
for(var i=0; i < stressList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_stress_" + stressList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("consequences", function(consequencesList) {
var flist = fieldsets["consequences"];
var fnames = [];
for(var i=0; i < consequencesList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_consequences_" + consequencesList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("conditions", function(conditionsList) {
var flist = fieldsets["conditions"];
var fnames = [];
for(var i=0; i < conditionsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_conditions_" + conditionsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("tempaspects", function(tempaspectsList) {
var flist = fieldsets["tempaspects"];
var fnames = [];
for(var i=0; i < tempaspectsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_tempaspects_" + tempaspectsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("modes", function(modesList) {
var flist = fieldsets["modes"];
var fnames = [];
for(var i=0; i < modesList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_modes_" + modesList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("roles", function(rolesList) {
var flist = fieldsets["roles"];
var fnames = [];
for(var i=0; i < rolesList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_roles_" + rolesList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("swaps", function(swapsList) {
var flist = fieldsets["swaps"];
var fnames = [];
for(var i=0; i < swapsList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_swaps_" + swapsList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("packages", function(packagesList) {
var flist = fieldsets["packages"];
var fnames = [];
for(var i=0; i < packagesList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_packages_" + packagesList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("powers", function(powersList) {
var flist = fieldsets["powers"];
var fnames = [];
for(var i=0; i < powersList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_powers_" + powersList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("extras", function(extrasList) {
var flist = fieldsets["extras"];
var fnames = [];
for(var i=0; i < extrasList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_extras_" + extrasList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
getSectionIDs("notes", function(notesList) {
var flist = fieldsets["notes"];
var fnames = [];
for(var i=0; i < notesList.length; i++) {
for(var j=0; j < flist.length; j++) {
fnames[i*flist.length+j] = "repeating_notes_" + notesList[i] + "_" + flist[j];
}
}
fields = fields.concat(fnames);
// We actually get ALL the data now
getAttrs(fields, function(v) {
log(v);
for(var i = 0; i < attributes.length; i++) {
var fname = attributes[i];
exsheet["attr"][fname] = v[fname];
}
for(var i=0; i < aspectsList.length; i++) {
var thisrow = { "_fieldset": "aspects" };
for(var j=0; j < fieldsets["aspects"].length; j++) {
thisrow[fieldsets["aspects"][j]] = v["repeating_aspects_" + aspectsList[i] + "_" + fieldsets["aspects"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < skillsList.length; i++) {
var thisrow = { "_fieldset": "skills" };
for(var j=0; j < fieldsets["skills"].length; j++) {
thisrow[fieldsets["skills"][j]] = v["repeating_skills_" + skillsList[i] + "_" + fieldsets["skills"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < stuntsList.length; i++) {
var thisrow = { "_fieldset": "stunts" };
for(var j=0; j < fieldsets["stunts"].length; j++) {
thisrow[fieldsets["stunts"][j]] = v["repeating_stunts_" + stuntsList[i] + "_" + fieldsets["stunts"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < stressList.length; i++) {
var thisrow = { "_fieldset": "stress" };
for(var j=0; j < fieldsets["stress"].length; j++) {
thisrow[fieldsets["stress"][j]] = v["repeating_stress_" + stressList[i] + "_" + fieldsets["stress"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < consequencesList.length; i++) {
var thisrow = { "_fieldset": "consequences" };
for(var j=0; j < fieldsets["consequences"].length; j++) {
thisrow[fieldsets["consequences"][j]] = v["repeating_consequences_" + consequencesList[i] + "_" + fieldsets["consequences"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < conditionsList.length; i++) {
var thisrow = { "_fieldset": "conditions" };
for(var j=0; j < fieldsets["conditions"].length; j++) {
thisrow[fieldsets["conditions"][j]] = v["repeating_conditions_" + conditionsList[i] + "_" + fieldsets["conditions"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < tempaspectsList.length; i++) {
var thisrow = { "_fieldset": "tempaspects" };
for(var j=0; j < fieldsets["tempaspects"].length; j++) {
thisrow[fieldsets["tempaspects"][j]] = v["repeating_tempaspects_" + tempaspectsList[i] + "_" + fieldsets["tempaspects"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < modesList.length; i++) {
var thisrow = { "_fieldset": "modes" };
for(var j=0; j < fieldsets["modes"].length; j++) {
thisrow[fieldsets["modes"][j]] = v["repeating_modes_" + modesList[i] + "_" + fieldsets["modes"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < rolesList.length; i++) {
var thisrow = { "_fieldset": "roles" };
for(var j=0; j < fieldsets["roles"].length; j++) {
thisrow[fieldsets["roles"][j]] = v["repeating_roles_" + rolesList[i] + "_" + fieldsets["roles"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < swapsList.length; i++) {
var thisrow = { "_fieldset": "swaps" };
for(var j=0; j < fieldsets["swaps"].length; j++) {
thisrow[fieldsets["swaps"][j]] = v["repeating_swaps_" + swapsList[i] + "_" + fieldsets["swaps"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < packagesList.length; i++) {
var thisrow = { "_fieldset": "packages" };
for(var j=0; j < fieldsets["packages"].length; j++) {
thisrow[fieldsets["packages"][j]] = v["repeating_packages_" + packagesList[i] + "_" + fieldsets["packages"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < powersList.length; i++) {
var thisrow = { "_fieldset": "powers" };
for(var j=0; j < fieldsets["powers"].length; j++) {
thisrow[fieldsets["powers"][j]] = v["repeating_powers_" + powersList[i] + "_" + fieldsets["powers"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < extrasList.length; i++) {
var thisrow = { "_fieldset": "extras" };
for(var j=0; j < fieldsets["extras"].length; j++) {
thisrow[fieldsets["extras"][j]] = v["repeating_extras_" + extrasList[i] + "_" + fieldsets["extras"][j]];
}
exsheet["fieldset"].push(thisrow);
}
for(var i=0; i < notesList.length; i++) {
var thisrow = { "_fieldset": "notes" };
for(var j=0; j < fieldsets["notes"].length; j++) {
thisrow[fieldsets["notes"][j]] = v["repeating_notes_" + notesList[i] + "_" + fieldsets["notes"][j]];
}
exsheet["fieldset"].push(thisrow);
}
// And finally, we stringify the object and set the export field value
setAttrs({ "exportsheetdata": JSON.stringify(exsheet) });
});
}); // notes
}); // extras
}); // powers
}); // packages
}); // swaps
}); // roles
}); // modes
}); // tempaspects
}); // conditions
}); // consequences
}); // stress
}); // stunts
}); // skills
}); // aspects
});
</script>