mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
- Small darkmode adjustment to sheet input background-color to help differentiate the inputs from other sections. Roll template background-color bumped a shade lighter from pure black.
6724 lines
409 KiB
HTML
6724 lines
409 KiB
HTML
<!--set sheet version manually using currentVersion in sheetworkers-->
|
|
<input type="hidden" name="attr_version" value="0" />
|
|
<!-- ADDED recalc checkbox to force sheet worker events. temporarily reveal for testing purposes-->
|
|
<input class="hidden" name="attr_recalc1" type="checkbox" value="1"/>
|
|
<!--the_dice_local_macro: value used for local rolls (roll_the_dice_local). Set by sheetworker-->
|
|
<input type="checkbox" class="hidden" name="attr_the_dice_local_macro" value="1" />
|
|
<input type="checkbox" class="hidden display-mount" name="attr_display_mount_flag" value="1" checked />
|
|
<input type="checkbox" class="hidden display-cart" name="attr_display_cart_flag" value="1" />
|
|
<input type="checkbox" class="hidden display-beasts" name="attr_display_beasts_flag" value="1" />
|
|
<input type="checkbox" class="hidden display-spells" name="attr_display_spells_flag" value="1"checked />
|
|
<button class="hidden" type="action" name="act_push"></button>
|
|
<!--background image/color-->
|
|
<!--none-->
|
|
<input type="checkbox" class="hidden background-selected" name="attr_background" value="1" checked />
|
|
<!--parchment-->
|
|
<input type="checkbox" class="hidden background-selected" name="attr_background" value="2" />
|
|
<!--lilly white-->
|
|
<input type="checkbox" class="hidden background-selected" name="attr_background" value="3" />
|
|
<!--medium grey-->
|
|
<input type="checkbox" class="hidden background-selected" name="attr_background" value="4" />
|
|
|
|
<!--tabs-->
|
|
<input class="tab character" name="attr_tab" data-i18n-title="character" title="Character" type="radio" value="1" checked />
|
|
<input class="tab stronghold" name="attr_tab" data-i18n-title="stronghold" title="Stronghold" type="radio" value="2" />
|
|
<input class="tab monster_only" name="attr_tab" data-i18n-title="monster" title="Monster" type="radio" value="3" />
|
|
<input class="tab settings" name="attr_tab" data-i18n-title="settings" title="Settings" type="radio" value="4" />
|
|
|
|
<div class="logo" title="FORBIDDEN LANDS" data-i18n-title="logo-forbidden-lands">
|
|
<span class="logo-image"></span>
|
|
</div>
|
|
|
|
<div class="wrapper">
|
|
<div class="tab-contents character">
|
|
<!--announcements/updates-->
|
|
<input type="checkbox" class="announcements-show toggle-monster-only" name="attr_show_announcements" value="1" data-i18n-title="version-announcements" title="Sheet version and announcements">
|
|
<span class="announcements-show toggle-monster-only" name="attr_version"> </span>
|
|
<div class="announcements toggle-monster-only">
|
|
<input type="checkbox" class="announcements-show" name="attr_show_announcements" value="1" data-i18n-title="close-announcements" title="Close Announcements" />
|
|
<span class="announcements-exit" data-i18n-title="close">*</span><br>
|
|
<h3 data-i18n="latest-announcements">Latest Announcements</h3>
|
|
<span class="footer">3/11/26</span>
|
|
<ul>
|
|
<strong>v1.92</strong>
|
|
<li>Fixed artifact dice clickable area and mis-alignment.</li>
|
|
<li>Small darkmode adjustment to sheet input background-color to help differentiate the inputs from other sections. Roll template background-color bumped a shade lighter from pure black.</li>
|
|
<strong>~~~</strong>
|
|
<li>Added a validation check to the character name field. Character names that include ')', ']', '}', or '|' will be flagged with an error. These are reserved characters that can cause problems with roll macros and sheetworker processing. Simply omit these problematic characters and/or substitute with a non-special character. Close and reopen the sheet to ensure the name has been set.</li>
|
|
<li>Minor adjustments; Willpower/Experience layout. Fixed alignment and hover state for the Artifact dice pool images. Changed the background for the roll template header and the left-aligned the dice type labels.</li>
|
|
<strong>v1.91</strong>
|
|
<li>Note about character names; Including non-alpha-numeric characters 'may' break sheet rolls/macros. Specifically ')', ']', '}', or '|'. Underscores, dashes, and apostrophes should be fine.</li>
|
|
<li>Changed the artifact dice checkboxes to a drop-down selector.</li>
|
|
<li>Minor adjustments for translations.</li>
|
|
<li>Fixed a bug introduced in the last update (major apologies!) that could cause Strength to keep resetting to 0 unless set on the monster tab first. Collaterally, the other abilities were capped according to strength. The sheet logic should now be fixed to properly handle PC strength and Monster strength when switching tabs.</li>
|
|
<li>Small cosmetic change to the Willpower checkboxes and Ability background image.</li>
|
|
<li>Fixed a bug where PC Strength could get switched to '7' when moving between the PC and Monster tab.</li>
|
|
<li>Push your rolls without the API! The sheet's rolls have been updated with CRP(custom roll parsing). You can now roll your dice pool and push them directly from the chat window without having to manually adjust the pool and re-rolling. (thank you Richard for letting me mangle your MYZ CRP code for this.)</li>
|
|
<li>Consumable rolls will now auto-decrement the resource's die size on failed rolls.</li>
|
|
<li>The roll template now displays the dice pool results horizontally.</li>
|
|
</ul>
|
|
<br />
|
|
<span class="announcements-older-text" data-i18n="older-announcements" data-i18n-title="old-announcements">Older</span>
|
|
<input type="checkbox" class="announcements-older-show" name="attr_show_announcements_old" value="1" data-i18n-title="old-announcements" />
|
|
<span data-i18n-title="old-announcements"> </span>
|
|
<!--OLD ANNOUNCEMENTS-->
|
|
<span class="announcements-older-show">
|
|
<ul>
|
|
<strong>v1.856</strong>
|
|
<li>Barely perceptible border-radius aberration fix.</li>
|
|
<li>Small positional adjustment to header/footer/nav tabs.</li>
|
|
<li>Extended the Attribute range indicators(clickable skulls) to 7 to account for artifacts or...? that might raise a score above 6.</li>
|
|
<li>Added datalist for Kin and Profession fields.</li>
|
|
<li>Added an "Action" field to attacks. You can setup different actions of the same weapon. Currently, the action field only attaches a label to the attack. You should manually adjust the attack in accordance to the action chosen.</li>
|
|
<li>Removed the "Parry" roll from attacks.</li>
|
|
<li>Added Grip to the roll template for weapon-based attacks.</li>
|
|
<li>Added consumable images to consumable rolls.</li>
|
|
<li>Small adjustments to the roll template.</li>
|
|
<li>Updated Spell output appearance.</li>
|
|
<li>Added D66 roll to Spell output.</li>
|
|
<li>Added a Cart/Wagon repeating inventory section. Use the "Max Items" field to enter the amount of items that the cart/wagon can hold. This section can be toggled on/off from the sheet settings. It is hidden by default.</li>
|
|
<li>Moved Willpower and Experience to the top section of the sheet.</li>
|
|
<li>Added second row to repeating spells.</li>
|
|
<strong>v1.854</strong>
|
|
<li>Enabled the Monster strength-based skill notes.</li>
|
|
<li>Misc. code clean-up.</li>
|
|
<li>Added an option to Show/Hide Mount, Beasts, and Spells to the sheet settings.</li>
|
|
<li>Added rolls to Talents.</li>
|
|
<li>Fixed a bug where spell subtitle2 text could be included with subsequent rolls from the dice pool unless the pool was manually cleared.</li>
|
|
<li>Reputation total(age+mod) is now seen on the sheet button.</li>
|
|
<li>Updated the Artifact dice images in the dice pool.</li>
|
|
<li>Artifact dice rolled will now show the actual # rolled, superimposed over the # of successes. Prior to this change, Artifact dice results would show the # rolled up to the first success(ie 6+), then only show the #of success. This could be a confusing.</li>
|
|
<strong>v1.853</strong>
|
|
<li>Added a couple Sheet Background options in settings. note: Darkmode overrides this option.</li>
|
|
<strong>v1.852</strong>
|
|
<li>Updated the Spell section to include rolls for 'Safe' Casting ie <code>WP-(Talent Rank-(Spell Rank-1 if using Grimoire/Scroll))</code> or 'Over'charged Casting ie <code>WP only</code>. Toggling the 'Grim'oire option will adjust the dice pool accordingly. Toggling 'Ingr'edients will adjust the Base Power Level accordingly as seen in the chat output. The sheet will also adjust the dice pool for Chance Casting ie <code>Spell Rank > Talent Rank</code> Note: to remove only a portion of the mishap dice, use the 'Over'charged button to pre-load the dice pool, then remove any unwanted dice before making the roll.</li>
|
|
<li>Changed Consumable rolls to match the appropriate polyhedral image.</li>
|
|
<li>Only show the Consumable reminder "footnote" when a Bane (1 or 2) has been rolled.</li>
|
|
<li>Consumables have now been given it's own sub-section.</li>
|
|
<li>Fixed hidden checkbox for the expand/collapse buttons.</li>
|
|
<li>Minor darkmode adjustments.</li>
|
|
<strong>v1.851</strong>
|
|
<li>Swap imgur images for polyhedral dice to github.</li>
|
|
<li>Further adjustments to try and get the Swedish logo to display properly. It appears this is still a roll20 bug.</li>
|
|
<strong>v1.85</strong>
|
|
<li>Changed the Artifact dice to polyhedral images to help differentiate them from the other six-sided dice.</li>
|
|
<li>Fixed code to swap logo to the Swedish version if the account language detected is Swedish.</li>
|
|
<strong>v1.84</strong>
|
|
<li>Added additional spell fields (ie caster rank, Ingredients and Grimoire checkboxes) and improved the spell output to chat.</li>
|
|
<li>Added an expand/collapse button to Talents, Gear, and Gear on Mount. Look for the "+" or "_" symbol in upper right corner of the section header.</li>
|
|
<li>Small adjustments made to the roll template output for information displayed below the dice pool.</li>
|
|
<li>Added a few roll template keys that adjust chat layout. ie Center dice for Pride and Consumables. Removed the dice labels in the footer for Reputation rolls.</li>
|
|
<strong>v1.83</strong>
|
|
<li>Reduced the size of the Conditions section and added a notes field next to each condition to help track duration.</li>
|
|
<li>Changed the Reputation field to a number and opened up the dice pool to roll skill, attribute, and gear combined for higher reputation rolls up to 34.</li>
|
|
<li>Added Talent rank and Skill level totals to the options page. May help to verify that xp calculations are correct.</li>
|
|
<li>Fixed a bug that prevented more than one repeating note from being added to Stronghold repeating notes. Updated attribute naming convention is now "@{repeating_stronghold-notes_$X_stronghold_notes}"</li>
|
|
<strong>1.82</strong>
|
|
<li>Fixed a bug where the localized "Roll" button popover could prevent pre-loading the dice pool.</li>
|
|
<li>Fixed a bug with Negative Dice where negative dice would not be included in the roll unless they were the last dice selected in the pool.</li>
|
|
<li>Expanded the Talent and Spell ranks selector up to 6. Should allow more flexibility for homebrew/expansion rules.</li>
|
|
<li>Added repeating rows to Stronghold notes.</li>
|
|
<li>Added repeating custom items to the Stronghold's Stockpile section.</li>
|
|
<li>Extended the Talents and Gear column and added a scrollbar to each sub-section to help contain the sheet's layout.</li>
|
|
<strong>1.81</strong>
|
|
<li>Roll template: Added {{subtitle2}} ie Subtitle without quotes.
|
|
<li>Roll template: Added {{free-text-center}} and {{free-text-right}} ie Should allow a little more flexibility for macros.</li>
|
|
<li>Removed an errant extra space that was pushing the last Misc+/- modifier to a new line in the roll template.</li>
|
|
<strong>v1.80</strong>
|
|
<li>More dark mode attention.</li>
|
|
<li>Updated sheet images in preparation for supporting dark mode.</li>
|
|
<strong>v1.79</strong>
|
|
<li>Fixed title text for the repeating_mount attributes. (thanks JohanR)</li>
|
|
<li>Fixed Skill sorting for non-english translations.(tnx Spat)</li>
|
|
<li>Logo was missing after the CSE changes... Nothing to see here.</li>
|
|
<strong>v1.77</strong>
|
|
<li>Updated the sheet to be compatible with the latest CSE update.</li>
|
|
<li>Consumables have moved into the Gear section and are now included in weight calculations. d6-d12 is one 'normal' item. NOTE: if you have tracked consumable weight as gear, you should remove them to avoid duplicate encumbrance calculations.</li>
|
|
<li>Added a red dashed border to encumbrance when overburdened.</li>
|
|
<li>Added 'localized' roll buttons. Selecting a sheet button that 'pre-loads' the dice pool (most buttons on the sheet), exposes a small "Roll" button that can be used to make the roll directly instead of navigating to the Dice Pool. NOTE: if you need to make adjustments to your dice pool after 'pre-loading' from a sheet button, you can simply ignore the local "Roll" button and adjust the pool as before.</li>
|
|
<li>Small layout adjustment to the roll template for the quotes used in the {{subtitle}} key. Quotes now appear at the beginning and end of multi-line subtitle text.</li>
|
|
<li>Fixed Monster strength bug where values over 25 would display one less skull/damage than the total.</li>
|
|
<li>Improved visibility of dice selections in the dice pool panel.</li>
|
|
<strong>v1.76</strong>
|
|
<li>Fixed the dice pool's roll button indicator when selecting Strength-based skill selections.</li>
|
|
<strong>v1.75</strong>
|
|
<li>Fixed a translation error that caused the dice pool to show "false" when the Melee skill was selected.</li>
|
|
<strong>v1.74</strong>
|
|
<li>Updated the sheet with the an "official" FBL logo. The english logo will be used unless a translation has been completed which also has an official logo in the same language. The swedish translation will use the "svärdets sång" logo.</li>
|
|
<strong>v1.73</strong>
|
|
<li>Brazilian Portuguese translation added.(thank you Teuri)</li>
|
|
<strong>v1.72</strong>
|
|
<li>Updated the language files to include the latest changes to the translation.json</li>
|
|
<strong>v1.71</strong>
|
|
<li>Updated version checking(sheetworker). Thank you GiGs.</li>
|
|
<li>Added two additional rows of armor. Use button under 2nd row to show/hide additional rows as needed. Armor Rating dice are included for all <b>donned</b> armor. Armor weight is included toward encumbrance if the armor is <b>carried</b>.</li>
|
|
<li>Updated roll template for the additional rows of armor. Details about the armor are only included in the roll if the armor is donned and includes a name.</li>
|
|
<li>Updated armor artifact dice. A single artifact die will be included for a given column (mighty, mighty 2, epic, and legendary) even if multiple rows have been selected. This is necessary due to the limits of the roll template.</li>
|
|
<li>Corrected a few misspelled attributes. Converted automatically using version checking routine.</li>
|
|
<strong>v1.70</strong>
|
|
<li>Expanded item weight beyond Heavy.</li>
|
|
<strong>v1.69</strong>
|
|
<li>updated the Consumable reminder footnote; 'be sure to manually reduce the consumable die on the sheet if you roll bane of 1 or 2.'</li>
|
|
<strong>v1.68</strong>
|
|
<li>Default sheet settings have been added. Make default changes from the campaign Settings page. These defaults will apply to all new sheets. To apply these changes to all existing sheets as well, you must also use the "Apply Default Settings" button found at the bottom of the sidebar's "My Settings" page.</li>
|
|
<li>Option added to Settings; group Skills by their primary attribute. Disabled by default to match existing sheet.</li>
|
|
<li>Option added to Settings; sort Stockpile resources alphabetically. Enabled by default to match existing sheet.</li>
|
|
<strong>v1.67</strong>
|
|
<li>Updated the Consumables resource dice reminder used for the Swedish translation.</li>
|
|
<strong>v1.66</strong>
|
|
<li>Increased the range of each d66 dice to allow for custom rolls 0-100(normally, each d6 allows 1-6). While this does not effect the d66 roll on the sheet, it does allow more flexibility for custom macros if desired.
|
|
<br /><b>d100 Roll macro example;</b> <br /><textarea style="height: auto;"> @{selected|whisper_option} &{template:forbiddenlands} {{character_name=@{selected|character_name}}} {{character_id=@{selected|character_id}}} {{name=D100 Roll}} {{d66-die-one=[[ 1 ]]}} {{d66-roll-one=[[ 1d10-1 ]]}} {{d66-die-two=[[ 1 ]]}} {{d66-roll-two=[[ 1d10-1 ]]}}</textarea></li>
|
|
<li>Fixed the translation list ordering for Skills and Stockpile.</li>
|
|
<strong>v1.65</strong>
|
|
<li>Added Misc Gear modifier to Skills.</li>
|
|
<li>All Attributes are now "rollable".</li>
|
|
<li>Fixed missing whisper option for notes rolls.</li>
|
|
<li>Replaced the repeating row text "+Add" and "Modify" with simple icons.</li>
|
|
<li>Swedish translations have been added. Thank you Magnus M.</li>
|
|
<strong>v1.64</strong>
|
|
<li>Bug fix: shield shove/parry rolls were erroneously including strength as gear dice.</li>
|
|
<li>Optimized the css that reduces the opacity of damage skulls above the attribute's max value. Purely cosmetic.</li>
|
|
<strong>v1.63</strong>
|
|
<li>Added a toggle-able 2nd row to each skill.</li>
|
|
<li>Added Artifact dice, Misc Skill modifier, and Notes to each skill.</li>
|
|
<li>Updated the roll template for skill rolls.</li>
|
|
<li>Added Misc Skill modifier to strength-based monster skills.</li>
|
|
<li>Visual enhancement; reduced the opacity of damage skulls that are beyond the character's max value.</li>
|
|
<strong>v1.62</strong>
|
|
<li>Added the 'IM Fell English' webfont to better match Forbidden Lands style.</li>
|
|
<li>Updated all image links to point to the images located on roll20's github repo.</li>
|
|
<li>Updated Armor and Shield Misc modifier to adjust Skill dice, not Gear dice.</li>
|
|
<li>Fixed negative skill dice bug.</li>
|
|
<li>Updated shield shove/parry roll template.</li>
|
|
<strong>v1.61</strong>
|
|
<li>fixed strength bug that reset strength to "0" for previously created characters.</li>
|
|
<li>fixed encumbrance calculation bug introduced in last update.</li>
|
|
<li>added event listener to repeating weapons to recalc attributes when added/changed.</li>
|
|
<li>refinements to the roll template.</li>
|
|
<li>coming soon; 1. Change armor/shield Misc modifier to adjust Skill dice instead of Gear dice. 2. Skills will
|
|
get a Misc field and artifact dice.</li>
|
|
<strong>v1.60</strong>
|
|
<li>added an attribute for 'willpower_max'. Now you track willpower using a linked token bar.</li>
|
|
<li>small updates to roll templates; removed whitespace for empty elements, adjusted the show/hide logic to better work with custom macros.</li>
|
|
<li>updated the Reputation roll to use Age + Reputation.</li>
|
|
<li>spells now roll Base dice(was rolling Gear dice) and Total WP is now displayed in the roll template.</li>
|
|
<li>fixed monster strength vs pc/npc strength incompatibilities.(Thank you GiGs!)</li>
|
|
<li>added columns for misc attack and damage bonuses, skill total, attack total, and damage total.</li>
|
|
<li>added artifact dice (d8, d8, d10, d12) to weapons, armor, and shield that add artifact dice to the dice pool.</li>
|
|
<li>added an expandable 2nd row to weapons, armor, and shield to show/hide additional attributes.</li>
|
|
</ul>
|
|
</span>
|
|
<input type="checkbox" class="announcements-show" name="attr_show_announcements" value="1" data-i18n-title="close-announcements" title="Close Announcements" />
|
|
<span class="announcements-exit" data-i18n-title="close">*</span>
|
|
</div>
|
|
<div class="character-grid">
|
|
<div class="box character-attributes">
|
|
<!--Monster Stats-->
|
|
<div class="monster monster-stat1">
|
|
<div class="header-top monster-stats-box1">
|
|
<input type="checkbox" name="attr_character_name_error" class="hidden error" value="1" />
|
|
<label>
|
|
<input class="input-number header-h1" type="text" name="attr_character_name" value="" data-i18n-placeholder="monster-name" placeholder="Monster's Name/Type" />
|
|
<span class="custom-tooltip" data-i18n="character-name"></span>
|
|
</label>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box2">
|
|
<span data-i18n="move">Move</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box3">
|
|
<span data-i18n="move-type">Move Type</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box4"></div>
|
|
<div class="column-header-bottom monster-stats-box5">
|
|
<span data-i18n="armor-rating-abbr">AR</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box6">
|
|
<span data-i18n="max-abbr">Max</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box7">
|
|
<span data-i18n="armor-type">Armor Type</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box8">
|
|
<span data-i18n="misc-abbr">Misc</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box9">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="column-header-bottom monster-stats-box10"></div>
|
|
|
|
<span class="monster-stats-box11">
|
|
<input class="input-number" type="text" name="attr_movement" value="1" title="@{movement}" />
|
|
</span>
|
|
<span class="monster-stats-box12">
|
|
<input class="input" type="text" name="attr_movement_type" data-i18n-placeholder="type" placeholder="type" title="@{movement_type}" />
|
|
</span>
|
|
<span class="monster-stats-box13"></span>
|
|
<span class="monster-stats-box14">
|
|
<input class="input-number" type="number" name="attr_armor1_bonus" value="0" min="0" title="@{armor1_bonus}" />
|
|
</span>
|
|
<span class="monster-stats-box15">
|
|
<input class="input-number" type="number" name="attr_armor1_bonus_max" value="0" min="0" title="@{armor1_bonus_max}" />
|
|
</span>
|
|
<span class="monster-stats-box16">
|
|
<input class="input" type="text" name="attr_armor1_name" data-i18n-placeholder="type" placeholder="type" title="@{armor1_name}" />
|
|
</span>
|
|
<span class="monster-stats-box17">
|
|
<select class="input" name="attr_armor1_damage" data-i18n-title="armor1-bonus-misc" title="Miscellaneous bonus modifier (adjusts SKILL dice). @{armor1_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
</span>
|
|
<span class="monster-stats-box18">
|
|
<span class="input-span" name="attr_ar" value="0" data-i18n-title="armor-rating-total" title="Total GEAR dice included for armor1 + armor2 + armor3 + armor4. @{ar}"></span>
|
|
</span>
|
|
<span class="monster-stats-box19">
|
|
<button type="action" name="act_armor-roll" class="roll-button-textonly" data-i18n-title="update-dice-pool" data-i18n="armor">
|
|
Armor
|
|
</button>
|
|
<button class="rollme-relative" style="margin: -2.25em 0.75em 0 -4.25em;" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</span>
|
|
</div>
|
|
<div class="attributes-grid">
|
|
<!-- Broken Indicators -->
|
|
<input class="broken-str" type="hidden" name="attr_strength_total" value="0" />
|
|
<input class="broken-agi" type="hidden" name="attr_agility_total" value="0" />
|
|
<input class="broken-wit" type="hidden" name="attr_wits_total" value="0" />
|
|
<input class="broken-emp" type="hidden" name="attr_empathy_total" value="0" />
|
|
<!-- Monster Extra Damage Toggle-->
|
|
<input class="hidden monster extra-damage-show" type="checkbox" name="attr_show_more_damage" value="1"/>
|
|
|
|
<div class="attributes-box1 toggle-monster-only">
|
|
<div class="toggle-monster-only header-top">
|
|
<h1 data-i18n="attribute-u">ATTRIBUTES</h1>
|
|
</div>
|
|
</div>
|
|
<div class="attributes-box2">
|
|
<button type="action" class="toggle-monster-only" name="act_strength-roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-str" data-i18n="strength">Strength</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<button type="action" class="monster" style="pointer-events:none;">
|
|
<span class="label broken-str" data-i18n="strength">Strength</span>
|
|
</button>
|
|
</div>
|
|
<div class="attributes-box3">
|
|
<!-- PC or Monster Strength attr_strength updates pc/monster str depending on sheet tab-->
|
|
<input class="broken-str" type="hidden" name="attr_strength" value="0" />
|
|
<input class="input-number broken-str monster" type="number" name="attr_strength_monster" value="0" min="0" max="48" title="@{strength_monster}" />
|
|
<input class="input-number broken-str toggle-monster-only" type="number" name="attr_strength_pc" value="0" min="0" max="7" title="@{strength_pc}" />
|
|
</div>
|
|
<div class="attributes-box4">
|
|
<input class="broken-str" type="hidden" name="attr_strength" />
|
|
<input type="radio" name="attr_damage" value="0" style="margin: 3px 6px 3px 3px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull" type="radio" name="attr_damage" value="1" title="1 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="2" title="2 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="3" title="3 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="4" title="4 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="5" title="5 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="6" title="6 @{damage}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_damage" value="7" title="7 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="8" title="8 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="9" title="9 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="10" title="10 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="11" title="11 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="12" title="12 @{damage}" /><span></span>
|
|
<!--force line break for 2nd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<div class="monster" style="width: 21px;"></div>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="13" title="13 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="14" title="14 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="15" title="15 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="16" title="16 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="17" title="17 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="18" title="18 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="19" title="19 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="20" title="20 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="21" title="21 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="22" title="22 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="23" title="23 @{damage}" /><span></span>
|
|
<input class="skull monster" type="radio" name="attr_damage" value="24" title="24 @{damage}" /><span></span>
|
|
<!--force line break for 3rd row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<div class="monster" style="width: 21px;"></div>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="25" title="25 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="26" title="26 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="27" title="27 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="28" title="28 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="29" title="29 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="30" title="30 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="31" title="31 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="32" title="32 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="33" title="33 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="34" title="34 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="35" title="35 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="36" title="36 @{damage}" /><span></span>
|
|
<!--force line break for 4th row of skulls-->
|
|
<div class="monster" style="width: 102%; height: 3px;"> </div>
|
|
<div class="monster" style="width: 21px;"></div>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="37" title="37 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="38" title="38 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="39" title="39 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="40" title="40 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="41" title="41 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="42" title="42 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="43" title="43 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="44" title="44 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="45" title="45 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="46" title="46 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="47" title="47 @{damage}" /><span></span>
|
|
<input class="skull monster extra-damage-show" type="radio" name="attr_damage" value="48" title="48 @{damage}" /><span></span>
|
|
</div>
|
|
<div class="attributes-box5">
|
|
<input class="monster extra-damage-show" type="checkbox" name="attr_show_more_damage" value="1" data-i18n-title="extra-damage" title="Toggle extra damage tracking (25-48)" style="padding-top: 6px;" />
|
|
<input type="hidden" name="attr_strength_total_max" value="0" />
|
|
<span class="input-span broken-str" name="attr_strength_total" value="0" title="@{strength_total}">0</span>
|
|
</div>
|
|
<div class="attributes-box6">
|
|
<button type="action" name="act_agility-roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-agi" data-i18n="agility">Agility</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</div>
|
|
<div class="attributes-box7">
|
|
<input class="input-number broken-agi" type="number" name="attr_agility" value="0" min="0" max="7" title="@{agility}" />
|
|
</div>
|
|
<div class="attributes-box8">
|
|
<input class="broken-agi" type="hidden" name="attr_agility" />
|
|
<input type="radio" name="attr_fatigue" value="0" style="margin: 3px 6px 3px 3px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull" type="radio" name="attr_fatigue" value="1" title="1 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="2" title="2 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="3" title="3 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="4" title="4 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="5" title="5 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="6" title="6 @{fatigue}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_fatigue" value="7" title="7 @{fatigue}" /><span></span>
|
|
</div>
|
|
<div class="attributes-box9">
|
|
<span class="input-span broken-agi" name="attr_agility_total" value="0" title="@{agility_total}">0</span>
|
|
<input type="hidden" name="attr_agility_total_max" value="0" />
|
|
</div>
|
|
<div class="attributes-box10">
|
|
<button type="action" name="act_wits-roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-wit" data-i18n="wits">Wits</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</div>
|
|
<div class="attributes-box11">
|
|
<input class="input-number broken-wit" type="number" name="attr_wits" value="0" min="0" max="7" title="@{wits}" />
|
|
</div>
|
|
<div class="attributes-box12">
|
|
<input class="broken-wit" type="hidden" name="attr_wits" />
|
|
<input type="radio" name="attr_confusion" value="0" style="margin: 3px 6px 3px 3px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull" type="radio" name="attr_confusion" value="1" title="1 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="2" title="2 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="3" title="3 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="4" title="4 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="5" title="5 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="6" title="6 @{confusion}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_confusion" value="7" title="7 @{confusion}" /><span></span>
|
|
</div>
|
|
<div class="attributes-box13">
|
|
<span class="input-span broken-wit" name="attr_wits_total" value="0" title="@{wits_total}">0</span>
|
|
<input type="hidden" name="attr_wits_total_max" value="0" />
|
|
</div>
|
|
<div class="attributes-box14">
|
|
<button type="action" name="act_empathy-roll" value="" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="label broken-emp" data-i18n="empathy">Empathy</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</div>
|
|
<div class="attributes-box15">
|
|
<input class="input-number broken-emp" type="number" name="attr_empathy" value="0" min="0" max="7" title="@{empathy}" />
|
|
</div>
|
|
<div class="attributes-box16">
|
|
<input class="broken-emp" type="hidden" name="attr_empathy" />
|
|
<input type="radio" name="attr_doubt" value="0" style="margin: 3px 6px 3px 3px;" data-i18n-title="no-damage" title="No Damage" checked />
|
|
<input class="skull" type="radio" name="attr_doubt" value="1" title="1 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="2" title="2 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="3" title="3 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="4" title="4 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="5" title="5 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="6" title="6 @{doubt}" /><span></span>
|
|
<input class="skull" type="radio" name="attr_doubt" value="7" title="7 @{doubt}" /><span></span>
|
|
</div>
|
|
<div class="attributes-box17">
|
|
<span class="input-span broken-emp" name="attr_empathy_total" value="0" title="@{empathy_total}">0</span>
|
|
<input type="hidden" name="attr_empathy_total_max" value="0" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--monster attacks-->
|
|
<div class="box monster monster-attacks">
|
|
<div class="monster-attacks-grid">
|
|
<div class="monster-attacks-box header-top">
|
|
<h1 data-i18n="monster-attacks-u">MONSTER ATTACKS</h1>
|
|
</div>
|
|
<div class="monster-attacks-box3 column-header-bottom">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="monster-attacks-box4 column-header-bottom">
|
|
<span data-i18n="base">Base</span>
|
|
</div>
|
|
<div class="monster-attacks-box5 column-header-bottom">
|
|
<span data-i18n="damage-abbr">Dmg</span>
|
|
</div>
|
|
<div class="monster-attacks-box6 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="monster-attacks-box7 column-header-bottom">
|
|
<span data-i18n="range">Range</span>
|
|
</div>
|
|
<div class="monster-attacks-box8 repeating-fields">
|
|
<fieldset class="repeating_monster">
|
|
<div class="monster-attacks-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<input class="monster-attacks-box1 counted hidden" type="checkbox" name="attr_rep_counter" value="1" checked /><span></span>
|
|
<button class="monster-attacks-box2 roll-button" type="action" name="act_monster-attack-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="monster-attacks-box3 input" type="text" name="attr_attack_name" value="" title="@{repeating_monster_$X_attack_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<input class="monster-attacks-box4 input-number" type="text" name="attr_attack_dice" value="0" title="@{repeating_monster_$X_attack_dice}" />
|
|
<input class="monster-attacks-box5 input-number" type="text" name="attr_attack_damage" value="0" title="@{repeating_monster_$X_attack_damage}" />
|
|
<input class="monster-attacks-box6 input" type="text" name="attr_attack_features" value="" title="@{repeating_monster_$X_attack_features}" />
|
|
<select class="monster-attacks-box7 input" name="attr_attack_range" title="@{repeating_monster_$X_attack_range}">
|
|
<option value="n/a" data-i18n="not-applicable-abbr">n/a</option>
|
|
<option value="Arm" data-i18n="arms-length" selected>Arm's Length</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Long" data-i18n="long">Long</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select>
|
|
<textarea class="monster-attacks-box8 input-textarea" name="attr_attack_description" title="@{repeating_monster_$X_attack_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-heading">
|
|
<div class="heading-grid">
|
|
<div class="heading-box1">
|
|
<span class="label" data-i18n="kin">Kin</span>
|
|
</div>
|
|
<div class="heading-box2">
|
|
<input type="checkbox" name="attr_character_name_error" class="hidden error" value="1" />
|
|
<label>
|
|
<input class="input" type="text" name="attr_character_name" value="" />
|
|
<span class="custom-tooltip" data-i18n="character-name"></span>
|
|
</label>
|
|
</div>
|
|
<div class="heading-box3">
|
|
<span class="label" data-i18n="profession">Profession</span>
|
|
</div>
|
|
<div class="heading-box4">
|
|
<input class="input" type="text" list="kin_list" name="attr_kin" title="@{kin}" />
|
|
<datalist id="kin_list">
|
|
<option data-i18n="kin-dwarf">Dwarf</option>
|
|
<option data-i18n="kin-elf">Elf</option>
|
|
<option data-i18n="kin-goblin">Goblin</option>
|
|
<option data-i18n="kin-half-elf">Half-elf</option>
|
|
<option data-i18n="kin-halfling">Halfling</option>
|
|
<option data-i18n="kin-human">Human</option>
|
|
<option data-i18n="kin-orc">Orc</option>
|
|
<option data-i18n="kin-wolfkin">Wolfkin</option>
|
|
</datalist>
|
|
</div>
|
|
<div class="heading-box5">
|
|
<span class="label" data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="heading-box6">
|
|
<input class="input" type="text" list="profession_list" name="attr_profession" title="@{profession}" />
|
|
<datalist id="profession_list">
|
|
<option data-i18n="profession-druid">Druid</option>
|
|
<option data-i18n="profession-fighter">Fighter</option>
|
|
<option data-i18n="profession-hunter">Hunter</option>
|
|
<option data-i18n="profession-minstrel">Minstrel</option>
|
|
<option data-i18n="profession-peddler">Peddler</option>
|
|
<option data-i18n="profession-rider">Rider</option>
|
|
<option data-i18n="profession-rogue">Rogue</option>
|
|
<option data-i18n="profession-sorcerer">Sorcerer</option>
|
|
</datalist>
|
|
</div>
|
|
<div class="heading-box7">
|
|
<div class="raven-image"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-details">
|
|
<div class="details-grid">
|
|
<div class="details-box1">
|
|
<button class="roll-button-textonly font-color-initial" type="roll" name="roll_pride" title="%{roll_pride}" value="@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{pride-roll}}} {{subtitle=“@{pride}”}} {{artifact-die-twelve=[[ 1 ]]}} {{artifact-roll-twelve=[[ 1d12 ]]}} {{pride-flag=1}}">
|
|
<span data-i18n="pride">Pride</span>
|
|
</button>
|
|
</div>
|
|
<div class="details-box2">
|
|
<textarea class="input-textarea medium" name="attr_pride" title="@{pride}"></textarea>
|
|
</div>
|
|
<div class="details-box3">
|
|
<span class="label" data-i18n="dark-secret">Dark Secret</span>
|
|
</div>
|
|
<div class="details-box4">
|
|
<textarea class="input-textarea medium" name="attr_dark_secret" title="@{dark_secret}"></textarea>
|
|
</div>
|
|
<div class="span-all">
|
|
<div class="details-box5">
|
|
<span class="label" data-i18n="age">Age</span>
|
|
</div>
|
|
<div class="details-box6">
|
|
<select name="attr_age" class="input" title="@{age}">
|
|
<option value="young" data-i18n="young-1" selected>Young</option>
|
|
<option value="adult" data-i18n="adult-2">Adult+1</option>
|
|
<option value="old" data-i18n="old-3">Old+2</option>
|
|
</select>
|
|
</div>
|
|
<span>+</span>
|
|
<div class="details-box7">
|
|
<input type="text" class="input-number" name="attr_reputation" value="0" data-i18n-title="reputation-bonus" title="How well known are you? (note: dice pool caps at 34) @{reputation}" />
|
|
<input type="hidden" name="attr_reputation_total" value="" />
|
|
</div>
|
|
<span>=</span>
|
|
<span name="attr_reputation_total" class="hidden" value="0"></span>
|
|
<div class="details-box8">
|
|
<button type="action" name="act_reputation-roll" class="roll-button-textonly font-color-initial" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span class="readonly" name="attr_reputation_total"></span>
|
|
<span data-i18n="reputation">Reputation</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-appearance">
|
|
<div class="appearance-grid">
|
|
<div class="appearance-box1 header-top">
|
|
<h1 data-i18n="appearance-u">APPEARANCE</h1>
|
|
</div>
|
|
<div class="appearance-box2">
|
|
<span class="label" data-i18n="face">Face</span>
|
|
</div>
|
|
<div class="appearance-box3">
|
|
<textarea class="input-textarea medium" name="attr_face" title="@{face}"></textarea>
|
|
</div>
|
|
<div class="appearance-box4">
|
|
<span class="label" data-i18n="body">Body</span>
|
|
</div>
|
|
<div class="appearance-box5">
|
|
<textarea class="input-textarea medium" name="attr_body" title="@{body}"></textarea>
|
|
</div>
|
|
<div class="appearance-box6">
|
|
<span class="label" data-i18n="clothing">Clothing</span>
|
|
</div>
|
|
<div class="appearance-box7">
|
|
<textarea class="input-textarea medium" name="attr_clothing" title="@{clothing}"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-conditions">
|
|
<div class="conditions-grid">
|
|
<div class="conditions-box1 header-top">
|
|
<h1 data-i18n="condition-u">CONDITIONS</h1>
|
|
</div>
|
|
<div class="conditions-box2">
|
|
<div class="skull-image"></div>
|
|
</div>
|
|
<div class="conditions-box3"><input class="input xbox conditions-hungry" type="checkbox" name="attr_hungry" value="1" data-i18n-title="condition-hungry" title="You must eat a ration of food at least once every day. After a day without food, you become HUNGRY. @{hungry}"><span></span></div>
|
|
<div class="conditions-box4"><span class="header-h1 conditions-hungry" data-i18n="hungry">Hungry</span></div>
|
|
<span class="conditions-box5"><input type="text" class="input" name="attr_hungry_note" placeholder="notes" data-i18n-placeholder="notes" title="@{hungry_note}"/></span>
|
|
<div class="conditions-box6"><input class="input xbox conditions-sleepy" type="checkbox" name="attr_sleepy" value="1" data-i18n-title="condition-sleepy" title="You need to sleep for at least one Quarter Day of each day. After one day without sleep, you become SLEEPY. @{sleepy}"><span></span></div>
|
|
<div class="conditions-box7"><span class="header-h1 conditions-sleepy" data-i18n="sleepy">Sleepy</span></div>
|
|
<span class="conditions-box8"><input type="text" class="input" name="attr_sleepy_note" placeholder="notes" data-i18n-placeholder="notes" title="@{sleepy_note}"/></span>
|
|
<div class="conditions-box9"><input class="input xbox conditions-thirsty" type="checkbox" name="attr_thirsty" value="1" data-i18n-title="condition-thirsty" title="You must drink a ration of water at least once per day. After a day without water, you become THIRSTY. @{thirsty}"><span></span></div>
|
|
<div class="conditions-box10"><span class="header-h1 conditions-thirsty" data-i18n="thirsty">Thirsty</span></div>
|
|
<span class="conditions-box11"><input type="text" class="input" name="attr_thirsty_note" placeholder="notes" data-i18n-placeholder="notes" title="@{thirsty_note}"/></span>
|
|
<div class="conditions-box12"><input class="input xbox conditions-cold" type="checkbox" name="attr_cold" value="1" data-i18n-title="condition-cold" title="When the cold is bitter and you don't have enough shelter, you have to roll ENDURANCE regularly. @{cold}"><span></span></div>
|
|
<div class="conditions-box13"><span class="header-h1 conditions-cold" data-i18n="cold">Cold</span></div>
|
|
<span class="conditions-box14"><input type="text" class="input" name="attr_cold_note" placeholder="notes" data-i18n-placeholder="notes" title="@{cold_note}"/></span>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-injuries">
|
|
<div class="injuries-grid">
|
|
<div class="injuries-box1 header-top">
|
|
<h1 data-i18n="critical-u">CRITICAL INJURIES</h1>
|
|
</div>
|
|
<div class="injuries-box2 column-header-bottom">
|
|
<span data-i18n="injury">Injury</span>
|
|
</div>
|
|
<div class="injuries-box3 column-header-bottom">
|
|
<span data-i18n="lethal">Lethal</span>
|
|
</div>
|
|
<div class="injuries-box4 column-header-bottom">
|
|
<span data-i18n="time-limit" style="margin-right:-2.5em">Time Limit</span>
|
|
</div>
|
|
<div class="injuries-box5 column-header-bottom">
|
|
<span data-i18n="effects">Effects</span>
|
|
</div>
|
|
<div class="injuries-box6 column-header-bottom">
|
|
<span data-i18n="healing-time" style="margin-left:-4.4em;">Healing Time</span>
|
|
</div>
|
|
<div class="injuries-box7">
|
|
<fieldset class="repeating_injuries">
|
|
<div class="injuries-grid">
|
|
<input type="text" class="injuries-box8 input" name="attr_injury_name" value="" title="@{repeating_injuries_$X_injury_name}" />
|
|
<select class="injuries-box9 input" name="attr_injury_lethal" title="@{repeating_injuries_$X_injury_lethal}">
|
|
<option value="no" data-i18n="no" selected>No</option>
|
|
<option value="yes" data-i18n="yes">Yes</option>
|
|
<option value="yes -1" data-i18n="yes-1">Yes,-1</option>
|
|
<option value="n/a" data-i18n="not-applicable-abbr">n/a</option>
|
|
</select>
|
|
<input type="text" class="injuries-box10 input" name="attr_injury_time_limit" value="n/a" title="@{repeating_injuries_$X_injury_time_limit}" />
|
|
<input type="text" class="injuries-box11 input" name="attr_injury_effects" value="" title="@{repeating_injuries_$X_injury_effects}" />
|
|
<input type="text" class="injuries-box12 input" name="attr_injury_healing_time" value="n/a" title="@{repeating_injuries_$X_injury_healing_time}" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box toggle-monster-only character-weapons">
|
|
<div class="weapons-grid">
|
|
<div class="weapons-box header-top">
|
|
<h1 data-i18n="weapon-u">WEAPONS</h1>
|
|
</div>
|
|
<div class="weapons-box1 column-header-bottom">
|
|
<!-- <span class="rotate-45" data-i18n="attack-abbr">Attk</span> -->
|
|
</div>
|
|
<!-- <div class="weapons-box2 column-header-bottom">
|
|
<span class="rotate-45" data-i18n="parry">Parry</span>
|
|
</div> -->
|
|
<div class="weapons-box2 column-header-bottom">
|
|
<span data-i18n="action">Action</span>
|
|
</div>
|
|
<div class="weapons-box3 column-header-bottom">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="weapons-box4 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="weapons-box5 column-header-bottom">
|
|
<span data-i18n="base">Base</span>
|
|
</div>
|
|
<div class="weapons-box6 column-header-bottom">
|
|
<span data-i18n="skill">Skill</span>
|
|
</div>
|
|
<div class="weapons-box7 column-header-bottom">
|
|
<span data-i18n="misc-skill-abbr">Misc Skill</span>
|
|
</div>
|
|
<div class="weapons-box8 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="weapons-box10 column-header-bottom">
|
|
<span data-i18n="bonus-abbr">Bonus</span>
|
|
</div>
|
|
<div class="weapons-box11 column-header-bottom">
|
|
<span data-i18n="max-abbr">Max</span>
|
|
</div>
|
|
<div class="weapons-box12 column-header-bottom">
|
|
<span data-i18n="misc-gear-abbr">Misc Gear</span>
|
|
</div>
|
|
<div class="weapons-box13 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="weapons-box15 column-header-bottom" data-i18n-title="artifact-bonus">
|
|
<span data-i18n="artifact">Artifact Dice</span>
|
|
</div>
|
|
<div class="weapons-box20 column-header-bottom">
|
|
<span data-i18n="dmg-abbr">Dmg</span>
|
|
</div>
|
|
<div class="weapons-box21 column-header-bottom">
|
|
<span data-i18n="misc-abbr">Misc</span>
|
|
</div>
|
|
<div class="weapons-box22 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="weapons-box23">
|
|
<fieldset class="repeating_weapons">
|
|
<div class="weapons-grid">
|
|
<button class="weapons-box24 roll-button" type="action" name="act_attack-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<!-- <button class="weapons-box25 roll-button" type="action" name="act_attack-parry-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button> -->
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="weapons-box25 input" type="text" list="weapon_actions" name="attr_weapon_action" data-i18n-placeholder="not-applicable-abbr" placeholder="n/a" title="@{repeating_weapons_$X_weapon_action}" />
|
|
<datalist id="weapon_actions">
|
|
<option data-i18n="action-disarm">Disarm</option>
|
|
<option data-i18n="action-parry">Parry</option>
|
|
<option data-i18n="action-shoot">Shoot</option>
|
|
<option data-i18n="action-shove">Shove</option>
|
|
<option data-i18n="action-slash">Slash</option>
|
|
<option data-i18n="action-stab">Stab</option>
|
|
</datalist>
|
|
<input class="weapons-box26 input" type="text" name="attr_weapon_name" value="" title="@{repeating_weapons_$X_weapon_name}" />
|
|
<select class="weapons-box27 input" name="attr_weapon_skill" title="@{repeating_weapons_$X_weapon_skill}">
|
|
<option value="0" data-i18n="melee-as-distance" selected>Melee</option>
|
|
<option value="1" data-i18n="ranged">Ranged</option>
|
|
</select>
|
|
<span class="weapons-box28 readonly" name="attr_weapon_base_total" value="0" data-i18n-title="weapon-type-base" title="BASE dice as per weapon/skill type. @{repeating_weapons_$X_weapon_base_total}">0</span>
|
|
<span class="weapons-box29 readonly" name="attr_weapon_skill_value" value="0" data-i18n-title="weapon-type-skill" title="SKILL dice as per weapon/skill type. @{repeating_weapons_$X_weapon_skill_value}">0</span>
|
|
<select class="weapons-box30 input" name="attr_weapon_skill_misc" data-i18n-title="weapon-skill-misc" title="Miscellaneous attack modifier (adjusts SKILL dice). @{repeating_weapons_$X_weapon_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="weapons-box31 readonly" name="attr_weapon_skill_total" value="0" data-i18n-title="weapon-skill-total" title="Total Skill dice included with the attack. @{repeating_weapons_$X_weapon_skill_total}">0</span>
|
|
|
|
<div class="weapons-box32"></div>
|
|
|
|
<select class="weapons-box33 input" name="attr_weapon_bonus" data-i18n-title="weapon-bonus" title="Record the weapon's CURRENT bonus up to MAX (adjusts Gear dice). @{repeating_weapons_$X_weapon_bonus}">
|
|
<option value="0" selected>+0</option>
|
|
<option value="1">+1</option>
|
|
<option value="2">+2</option>
|
|
<option value="3">+3</option>
|
|
<option value="4">+4</option>
|
|
<option value="5">+5</option>
|
|
<option value="6">+6</option>
|
|
<option value="7">+7</option>
|
|
<option value="8">+8</option>
|
|
<option value="9">+9</option>
|
|
<option value="10">+10</option>
|
|
<option value="11">+11</option>
|
|
<option value="12">+12</option>
|
|
</select>
|
|
<select class="weapons-box34 input" name="attr_weapon_bonus_max" data-i18n-title="weapon-bonus-max" title="Record the weapon's UNDAMAGED bonus. @{repeating_weapons_$X_weapon_bonus_max}">
|
|
<option value="0">0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12" selected>12</option>
|
|
</select>
|
|
<select class="weapons-box35 input" name="attr_weapon_bonus_misc" data-i18n-title="weapon-bonus-misc" title="Miscellaneous bonus modifier (adjusts Gear dice). @{repeating_weapons_$X_weapon_bonus_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="weapons-box36 readonly" name="attr_weapon_bonus_total" value="0" data-i18n-title="weapon-bonus-total" title="Total GEAR dice included with the attack. @{repeating_weapons_$X_weapon_bonus_total}">0</span>
|
|
<div class="weapons-box37"></div>
|
|
<details class="weapons-box38">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty @{repeating_weapons_$X_weapon_artifact_die_ocho}"><input class="input" type="checkbox" name="attr_weapon_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty @{repeating_weapons_$X_weapon_artifact_die_eight}"><input class="input" type="checkbox" name="attr_weapon_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic @{repeating_weapons_$X_artifact_weapon_die_ten}"><input class="input" type="checkbox" name="attr_weapon_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary @{repeating_weapons_$X_weapon_artifact_die_twelve}"><input class="input" type="checkbox" name="attr_weapon_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<div class="weapons-box42"></div>
|
|
<select class="weapons-box43 input" name="attr_weapon_damage" data-i18n-title="weapon-damage" title="Damage as per weapon tables. @{repeating_weapons_$X_weapon_damage}">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="weapons-box44 input" name="attr_weapon_damage_misc" data-i18n-title="weapon-damage-misc" title="Miscellaneous damage modifier. @{repeating_weapons_$X_weapon_damage_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="weapons-box45 readonly" name="attr_weapon_damage_total" value="0" data-i18n-title="weapon-damage-total" title="Total damage included with the attack. @{repeating_weapons_$X_weapon_damage_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="weapons-subgrid">
|
|
<div class="weapons-box46">
|
|
<span class="label" data-i18n="grip">Grip</span>
|
|
</div>
|
|
<select class="weapons-box47 input" name="attr_weapon_grip" title="@{repeating_weapons_$X_weapon_grip}" title="@{repeating_weapons_$X_weapon_grip}">
|
|
<option data-i18n="not-applicable-abbr" value="">n/a</option>
|
|
<option data-i18n="one-hand-abbr" value="1H" selected>1H</option>
|
|
<option data-i18n="two-hand-abbr" value="2H">2H</option>
|
|
</select>
|
|
<div class="weapons-box48">
|
|
<span class="label" data-i18n="range">Range</span>
|
|
</div>
|
|
<select class="weapons-box49 input" name="attr_weapon_range" title="@{repeating_weapons_$X_weapon_range}">
|
|
<option value="Arm" selected data-i18n="arms-length">Arm's Length</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Long" data-i18n="long">Long</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select>
|
|
<div class="weapons-box54">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="weapons-box55 input" type="text" name="attr_weapon_features" value="" title="@{repeating_weapons_$X_weapon_features}" />
|
|
<div class="weapons-box50">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="weapons-box51 input" name="attr_weapon_carried" title="@{repeating_weapons_$X_weapon_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="weapons-box52">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="weapons-box53 input" name="attr_weapon_weight" title="@{repeating_weapons_$X_weapon_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box character-skill-dice-box">
|
|
<!--hidden skill attributes to be used as placeholder for currently selected skill-->
|
|
<input type="hidden" name="attr_skill_attribute_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_bonus_misc_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_bonus_misc_gear_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_only_selected" value="" readonly />
|
|
<input type="hidden" name="attr_skill_notes_selected" value="" readonly />
|
|
<!-- Skills -->
|
|
<div class="box character-skills">
|
|
<input type="checkbox" class="skill-order-group hidden" name="attr_skill_order_group" value="1" />
|
|
<div class="skills-grid" data-i18n-list="skills-list">
|
|
<span class="skills-header">
|
|
<div class="skills-box0 header-top">
|
|
<h1 data-i18n="skill-u">SKILLS</h1>
|
|
</div>
|
|
<div class="skills-box1 column-header-bottom">
|
|
<span data-i18n="attr-abbr">Attr</span>
|
|
</div>
|
|
<div class="skills-box2 column-header-bottom">
|
|
<span data-i18n="lvl-abbr">Lvl</span>
|
|
</div>
|
|
<div class="skills-box3 column-header-bottom">
|
|
<span data-i18n="misc-skill-abbr">Misc Skill</span>
|
|
</div>
|
|
<div class="skills-box4 column-header-bottom">
|
|
<span data-i18n="misc-gear-abbr">Misc Gear</span>
|
|
</div>
|
|
<div class="skills-box5 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-animal" data-i18n-list-item="animal-handling">
|
|
<button type="action" name="act_dice-pool-animal-handling" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="animal-handling">Animal Handling</span><span name="attr_empathy_total"></span><span class="small-caps" data-i18n="empathy-abbr">Emp</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_animal_handling" value="0" min="0" title="@{animal_handling}" />
|
|
<select class="input" name="attr_animal_handling_skill_misc" title="@{animal_handling_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_animal_handling_gear_misc" title="@{animal_handling_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_animal_handling_total" value="0" title="@{animal_handling_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_animal_handling" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="animal-handling-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_animal_handling_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{animal_handling_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_animal_handling_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_animal_handling_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_animal_handling_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_animal_handling_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
<!-- 2nd row -->
|
|
</span>
|
|
<span class="skills-row skill-crafting" data-i18n-list-item="crafting">
|
|
<button type="action" name="act_dice-pool-crafting" class="toggle-monster-only" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="crafting">Crafting</span><span name="attr_strength_total"></span><span class="small-caps" data-i18n="strength-abbr">Str</span>
|
|
</button>
|
|
<button type="action" name="act_dice-pool-crafting-monster" class="monster" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice."><span data-i18n="crafting">Crafting</span><span data-i18n="monster">Monster</span></button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number toggle-monster-only" type="number" name="attr_crafting" value="0" min="0" title="@{crafting}" />
|
|
<select class="input toggle-monster-only" name="attr_crafting_skill_misc" title="@{crafting_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input toggle-monster-only" name="attr_crafting_gear_misc" title="@{crafting_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly toggle-monster-only" name="attr_crafting_total" value="0" title="@{crafting_total}">0</span>
|
|
<!-- monster stats -->
|
|
<select class="input monster" name="attr_crafting_monster" title="@{crafting_monster}">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="input monster" name="attr_crafting_skill_misc_monster" title="@{crafting_skill_misc_monster}">
|
|
<option value="10">+10</option>
|
|
<option value="9">+9</option>
|
|
<option value="8">+8</option>
|
|
<option value="7">+7</option>
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
</select>
|
|
<select class="input monster" name="attr_crafting_gear_misc_monster" title="@{crafting_gear_misc_monster}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly monster" name="attr_crafting_monster_total" value="0" title="@{crafting_monster_total}">0</span>
|
|
<!-- end monster stats -->
|
|
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_crafting" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="crafting-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_crafting_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{crafting_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_crafting_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_crafting_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_crafting_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_crafting_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-endurance" data-i18n-list-item="endurance">
|
|
<button type="action" name="act_dice-pool-endurance" class="toggle-monster-only" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="endurance">Endurance</span><span name="attr_strength_total"></span><span class="small-caps" data-i18n="strength-abbr">Str</span>
|
|
</button>
|
|
<button type="action" name="act_dice-pool-endurance-monster" class="monster" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice."><span data-i18n="endurance">Endurance</span><span data-i18n="monster">Monster</span></button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number toggle-monster-only" type="number" name="attr_endurance" value="0" min="0" title="@{endurance}" />
|
|
<select class="input toggle-monster-only" name="attr_endurance_skill_misc" title="@{endurance_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input toggle-monster-only" name="attr_endurance_gear_misc" title="@{endurance_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly toggle-monster-only" name="attr_endurance_total" value="0" title="@{endurance_total}">0</span>
|
|
<!-- monster stats -->
|
|
<select class="input monster" name="attr_endurance_monster" title="@{endurance_monster}" style="width: 3em; margin: 0;">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="input monster" name="attr_endurance_skill_misc_monster" title="@{endurance_skill_misc_monster}">
|
|
<option value="10">+10</option>
|
|
<option value="9">+9</option>
|
|
<option value="8">+8</option>
|
|
<option value="7">+7</option>
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
</select>
|
|
<select class="input monster" name="attr_endurance_gear_misc_monster" title="@{endurance_gear_misc_monster}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly monster" name="attr_endurance_monster_total" value="0" title="@{endurance_monster_total}">0</span>
|
|
<!-- end monster stats -->
|
|
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_endurance" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="endurance-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_endurance_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{endurance_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_endurance_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_endurance_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_endurance_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_endurance_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-healing" data-i18n-list-item="healing">
|
|
<button type="action" name="act_dice-pool-healing" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="healing">Healing</span><span name="attr_empathy_total"></span><span class="small-caps" data-i18n="empathy-abbr">Emp</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_healing" value="0" min="0" title="@{healing}" />
|
|
<select class="input" name="attr_healing_skill_misc" title="@{healing_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_healing_gear_misc" title="@{healing_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_healing_total" value="0" title="@{healing_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_healing" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="healing-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_healing_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{healing_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_healing_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_healing_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_healing_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_healing_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-insight" data-i18n-list-item="insight">
|
|
<button type="action" name="act_dice-pool-insight" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="insight">Insight</span><span name="attr_wits_total"></span><span class="small-caps" data-i18n="wits-abbr">Wit</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_insight" value="0" min="0" title="@{insight}" />
|
|
<select class="input" name="attr_insight_skill_misc" title="@{insight_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_insight_gear_misc" title="@{insight_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_insight_total" value="0" title="@{insight_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_insight" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="insight-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_insight_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{insight_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_insight_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_insight_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_insight_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_insight_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-lore" data-i18n-list-item="lore">
|
|
<button type="action" name="act_dice-pool-lore" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="lore">lore</span><span name="attr_wits_total"></span><span class="small-caps" data-i18n="wits-abbr">Wit</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_lore" value="0" min="0" title="@{lore}" />
|
|
<select class="input" name="attr_lore_skill_misc" title="@{lore_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_lore_gear_misc" title="@{lore_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_lore_total" value="0" title="@{lore_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_lore" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="lore-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_lore_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{lore_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_lore_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_lore_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_lore_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_lore_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-manipulation" data-i18n-list-item="manipulation">
|
|
<button type="action" name="act_dice-pool-manipulation" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="manipulation">Manipulation</span><span name="attr_empathy_total"></span><span class="small-caps" data-i18n="empathy-abbr">Emp</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_manipulation" value="0" min="0" title="@{manipulation}" />
|
|
<select class="input" name="attr_manipulation_skill_misc" title="@{manipulation_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_manipulation_gear_misc" title="@{manipulation_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_manipulation_total" value="0" title="@{manipulation_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_manipulation" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="manipulation-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_manipulation_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{manipulation_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_manipulation_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_manipulation_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_manipulation_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_manipulation_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-marksmanship" data-i18n-list-item="marksmanship">
|
|
<button type="action" name="act_dice-pool-marksmanship" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="marksmanship">Marksmanship</span><span name="attr_agility_total"></span><span class="small-caps" data-i18n="agility-abbr">Agi</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_marksmanship" value="0" min="0" title="@{marksmanship}" />
|
|
<select class="input" name="attr_marksmanship_skill_misc" title="@{marksmanship_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_marksmanship_gear_misc" title="@{marksmanship_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_marksmanship_total" value="0" title="@{marksmanship_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_marksmanship" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="marksmanship-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_marksmanship_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{marksmanship_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_marksmanship_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_marksmanship_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_marksmanship_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_marksmanship_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-melee" data-i18n-list-item="melee">
|
|
<button type="action" name="act_dice-pool-melee" class="toggle-monster-only" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="melee-as-skill">Melee</span><span name="attr_strength_total"></span><span class="small-caps" data-i18n="strength-abbr">Str</span>
|
|
</button>
|
|
<button type="action" name="act_dice-pool-melee-monster" class="monster" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice."><span data-i18n="melee-as-skill">Melee</span><span data-i18n="monster">Monster</span></button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number toggle-monster-only" type="number" name="attr_melee" value="0" min="0" title="@{melee}" />
|
|
<select class="input toggle-monster-only" name="attr_melee_skill_misc" title="@{melee_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input toggle-monster-only" name="attr_melee_gear_misc" title="@{melee_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly toggle-monster-only" name="attr_melee_total" value="0" title="@{melee_total}">0</span>
|
|
<!-- monster stats -->
|
|
<select class="input monster" name="attr_melee_monster" title="@{melee_monster}" style="width: 3em; margin: 0;">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="input monster" name="attr_melee_skill_misc_monster" title="@{melee_skill_misc_monster}">
|
|
<option value="10">+10</option>
|
|
<option value="9">+9</option>
|
|
<option value="8">+8</option>
|
|
<option value="7">+7</option>
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
</select>
|
|
<select class="input monster" name="attr_melee_gear_misc_monster" title="@{melee_gear_misc_monster}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly monster" name="attr_melee_monster_total" value="0" title="@{melee_monster_total}">0</span>
|
|
<!-- end monster stats -->
|
|
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_melee" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="melee-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_melee_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{melee_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_melee_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_melee_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_melee_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_melee_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-might" data-i18n-list-item="might">
|
|
<button type="action" name="act_dice-pool-might" class="toggle-monster-only" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="might">Might</span><span name="attr_strength_total"></span><span class="small-caps" data-i18n="strength-abbr">Str</span>
|
|
</button>
|
|
<button type="action" name="act_dice-pool-might-monster" class="monster" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice."><span data-i18n="might">Might</span><span data-i18n="monster">Monster</span></button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number toggle-monster-only" type="number" name="attr_might" value="0" min="0" title="@{might}" />
|
|
<select class="input toggle-monster-only" name="attr_might_skill_misc" title="@{might_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input toggle-monster-only" name="attr_might_gear_misc" title="@{might_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly toggle-monster-only" name="attr_might_total" value="0" title="@{might_total}">0</span>
|
|
<!-- monster stats -->
|
|
<select class="input monster" name="attr_might_monster" title="@{might_monster}" style="width: 3em; margin: 0;">
|
|
<option value="0" selected>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
</select>
|
|
<select class="input monster" name="attr_might_skill_misc_monster" title="@{might_skill_misc_monster}">
|
|
<option value="10">+10</option>
|
|
<option value="9">+9</option>
|
|
<option value="8">+8</option>
|
|
<option value="7">+7</option>
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
</select>
|
|
<select class="input monster" name="attr_might_gear_misc_monster" title="@{might_gear_misc_monster}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly monster" name="attr_might_monster_total" value="0" title="@{might_monster_total}">0</span>
|
|
<!-- end monster stats -->
|
|
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_might" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="might-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_might_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{might_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_might_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_might_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_might_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_might_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-move" data-i18n-list-item="move">
|
|
<button type="action" name="act_dice-pool-move" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="move">move</span><span name="attr_agility_total"></span><span class="small-caps" data-i18n="agility-abbr">Agi</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_move" value="0" min="0" title="@{move}" />
|
|
<select class="input" name="attr_move_skill_misc" title="@{move_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_move_gear_misc" title="@{move_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_move_total" value="0" title="@{move_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_move" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="move-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_move_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{move_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_move_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_move_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_move_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_move_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-performance" data-i18n-list-item="performance">
|
|
<button type="action" name="act_dice-pool-performance" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="performance">Performance</span><span name="attr_empathy_total"></span><span class="small-caps" data-i18n="empathy-abbr">Emp</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_performance" value="0" min="0" title="@{performance}" />
|
|
<select class="input" name="attr_performance_skill_misc" title="@{performance_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_performance_gear_misc" title="@{performance_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_performance_total" value="0" title="@{performance_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_performance" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="performance-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_performance_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{performance_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="performance-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_performance_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_performance_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_performance_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_performance_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-scouting" data-i18n-list-item="scouting">
|
|
<button type="action" name="act_dice-pool-scouting" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="scouting">Scouting</span><span name="attr_wits_total"></span><span class="small-caps" data-i18n="wits-abbr">Wit</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_scouting" value="0" min="0" title="@{scouting}" />
|
|
<select class="input" name="attr_scouting_skill_misc" title="@{scouting_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_scouting_gear_misc" title="@{scouting_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_scouting_total" value="0" title="@{scouting_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_scouting" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="scouting-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_scouting_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{scouting_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="scouting-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_scouting_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_scouting_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_scouting_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_scouting_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-sleight" data-i18n-list-item="sleight-of-hand">
|
|
<button type="action" name="act_dice-pool-sleight-of-hand" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="sleight-of-hand">Sleight of hand</span><span name="attr_agility_total"></span><span class="small-caps" data-i18n="agility-abbr">Agi</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_sleight_of_hand" value="0" min="0" title="@{sleight_of_hand}" />
|
|
<select class="input" name="attr_sleight_of_hand_skill_misc" title="@{sleight_of_hand_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_sleight_of_hand_gear_misc" title="@{sleight_of_hand_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_sleight_of_hand_total" value="0" title="@{sleight_of_hand_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_sleight_of_hand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="sleight-of-hand-row2 skills-row2">
|
|
<div class="skills-row2-header">
|
|
<div class="skills-box7 column-header-bottom" data-i18n-title="artifact-bonus">
|
|
<span data-i18n="artifact">Artifact Dice</span>
|
|
</div>
|
|
</div>
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_sleight_of_hand_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{sleight_of_hand_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="scouting-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_sleight_of_hand_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_sleight_of_hand_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_sleight_of_hand_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_sleight_of_hand_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-stealth" data-i18n-list-item="stealth">
|
|
<button type="action" name="act_dice-pool-stealth" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="stealth">Stealth</span><span name="attr_agility_total"></span><span class="small-caps" data-i18n="agility-abbr">Agi</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_stealth" value="0" min="0" title="@{stealth}" />
|
|
<select class="input" name="attr_stealth_skill_misc" title="@{stealth_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_stealth_gear_misc" title="@{stealth_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_stealth_total" value="0" title="@{stealth_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_stealth" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="stealth-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_stealth_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{stealth_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="scouting-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_stealth_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_stealth_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_stealth_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_stealth_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
<span class="skills-row skill-survival" data-i18n-list-item="survival">
|
|
<button type="action" name="act_dice-pool-survival" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="survival">survival</span><span name="attr_wits_total"></span><span class="small-caps" data-i18n="wits-abbr">Wit</span>
|
|
</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="input-number" type="number" name="attr_survival" value="0" min="0" title="@{survival}" />
|
|
<select class="input" name="attr_survival_skill_misc" title="@{survival_skill_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<select class="input" name="attr_survival_gear_misc" title="@{survival_gear_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
</select>
|
|
<span class="readonly" name="attr_survival_total" value="0" title="@{survival_total}">0</span>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_survival" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<div class="survival-row2 skills-row2">
|
|
<div class="skills-row2-body">
|
|
<textarea class="skills-box6 input-textarea" name="attr_survival_notes" data-i18n-placeholder="notes-text" placeholder="notes..." title="@{survival_notes}"></textarea>
|
|
<details class="skills-box7">
|
|
<summary data-i18n-title="scouting-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_survival_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_survival_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_survival_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_survival_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<!-- DICE POOL GRID-->
|
|
<div class="box character-dice_pool">
|
|
<div class="dice_pool-grid">
|
|
<div class="dice-header dice_pool-box1 header-top">
|
|
<h1 data-i18n="dice-pool-u">DICE POOL</h1>
|
|
</div>
|
|
<div class="dice-base">
|
|
<div class="dice-base-header">
|
|
<span class="label" data-i18n-title="base-attribute-dice" data-i18n="base">Base</span>
|
|
</div>
|
|
<input type="hidden" name="attr_attribute_die_twelve" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_eleven" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_ten" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_nine" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_eight" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_seven" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_six" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_five" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_four" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_three" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_two" value="1" />
|
|
<input type="hidden" name="attr_attribute_die_one" value="1" />
|
|
<div class="dice-base-col1">
|
|
<input type="radio" name="attr_attribute" value="6" class="dice-selection attribute" /><span title="6"></span>
|
|
<input type="radio" name="attr_attribute" value="5" class="dice-selection attribute" /><span title="5"></span>
|
|
<input type="radio" name="attr_attribute" value="4" class="dice-selection attribute" /><span title="4"></span>
|
|
<input type="radio" name="attr_attribute" value="3" class="dice-selection attribute" /><span title="3"></span>
|
|
<input type="radio" name="attr_attribute" value="2" class="dice-selection attribute" /><span title="2"></span>
|
|
<input type="radio" name="attr_attribute" value="1" class="dice-selection attribute" /><span title="1"></span>
|
|
<input type="radio" name="attr_attribute" value="0" class="dice-selection attribute" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-base-col2">
|
|
<input type="radio" name="attr_attribute" value="7" class="dice-selection attribute" /><span title="7"></span>
|
|
<input type="radio" name="attr_attribute" value="8" class="dice-selection attribute" /><span title="8"></span>
|
|
<input type="radio" name="attr_attribute" value="9" class="dice-selection attribute" /><span title="9"></span>
|
|
<input type="radio" name="attr_attribute" value="10" class="dice-selection attribute" /><span title="10"></span>
|
|
<input type="radio" name="attr_attribute" value="11" class="dice-selection attribute" /><span title="11"></span>
|
|
<input type="radio" name="attr_attribute" value="12" class="dice-selection attribute" /><span title="12"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-skill">
|
|
<div class="dice-skill-header">
|
|
<span class="label" data-i18n-title="skill-level" data-i18n="skill">Skill</span>
|
|
</div>
|
|
<input type="hidden" name="attr_negative_die_one" value="1" />
|
|
<input type="hidden" name="attr_negative_die_two" value="1" />
|
|
<input type="hidden" name="attr_negative_die_three" value="1" />
|
|
<input type="hidden" name="attr_skill_die_ten" value="1" />
|
|
<input type="hidden" name="attr_skill_die_nine" value="1" />
|
|
<input type="hidden" name="attr_skill_die_eight" value="1" />
|
|
<input type="hidden" name="attr_skill_die_seven" value="1" />
|
|
<input type="hidden" name="attr_skill_die_six" value="1" />
|
|
<input type="hidden" name="attr_skill_die_five" value="1" />
|
|
<input type="hidden" name="attr_skill_die_four" value="1" />
|
|
<input type="hidden" name="attr_skill_die_three" value="1" />
|
|
<input type="hidden" name="attr_skill_die_two" value="1" />
|
|
<input type="hidden" name="attr_skill_die_one" value="1" />
|
|
<div class="dice-skill-col1">
|
|
<input type="radio" name="attr_skill" value="6" class="dice-selection skill" /><span title="6"></span>
|
|
<input type="radio" name="attr_skill" value="5" class="dice-selection skill" /><span title="5"></span>
|
|
<input type="radio" name="attr_skill" value="4" class="dice-selection skill" /><span title="4"></span>
|
|
<input type="radio" name="attr_skill" value="3" class="dice-selection skill" /><span title="3"></span>
|
|
<input type="radio" name="attr_skill" value="2" class="dice-selection skill" /><span title="2"></span>
|
|
<input type="radio" name="attr_skill" value="1" class="dice-selection skill" /><span title="1"></span>
|
|
<input type="radio" name="attr_skill" value="0" class="dice-selection skill" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-skill-col2">
|
|
<input type="radio" name="attr_skill" value="7" class="dice-selection skill" /><span title="7"></span>
|
|
<input type="radio" name="attr_skill" value="8" class="dice-selection skill" /><span title="8"></span>
|
|
<input type="radio" name="attr_skill" value="9" class="dice-selection skill" /><span title="9"></span>
|
|
<input type="radio" name="attr_skill" value="10" class="dice-selection skill" /><span title="10"></span>
|
|
<input type="radio" name="attr_skill" value="-1" class="dice-selection negative" /><span title="-1"></span> <input type="radio" name="attr_skill" value="-2" class="dice-selection negative" /><span title="-2"></span>
|
|
<input type="radio" name="attr_skill" value="-3" class="dice-selection negative" /><span title="-3"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-gear">
|
|
<div class="dice-gear-header">
|
|
<span class="label" data-i18n-title="gear-bonus" data-i18n="gear">Gear</span>
|
|
</div>
|
|
<input type="hidden" name="attr_gear_die_twelve" value="1" />
|
|
<input type="hidden" name="attr_gear_die_eleven" value="1" />
|
|
<input type="hidden" name="attr_gear_die_ten" value="1" />
|
|
<input type="hidden" name="attr_gear_die_nine" value="1" />
|
|
<input type="hidden" name="attr_gear_die_eight" value="1" />
|
|
<input type="hidden" name="attr_gear_die_seven" value="1" />
|
|
<input type="hidden" name="attr_gear_die_six" value="1" />
|
|
<input type="hidden" name="attr_gear_die_five" value="1" />
|
|
<input type="hidden" name="attr_gear_die_four" value="1" />
|
|
<input type="hidden" name="attr_gear_die_three" value="1" />
|
|
<input type="hidden" name="attr_gear_die_two" value="1" />
|
|
<input type="hidden" name="attr_gear_die_one" value="1" />
|
|
<div class="dice-gear-col1">
|
|
<input type="radio" name="attr_gear" value="6" class="dice-selection gear" /><span title="6"></span>
|
|
<input type="radio" name="attr_gear" value="5" class="dice-selection gear" /><span title="5"></span>
|
|
<input type="radio" name="attr_gear" value="4" class="dice-selection gear" /><span title="4"></span>
|
|
<input type="radio" name="attr_gear" value="3" class="dice-selection gear" /><span title="3"></span>
|
|
<input type="radio" name="attr_gear" value="2" class="dice-selection gear" /><span title="2"></span>
|
|
<input type="radio" name="attr_gear" value="1" class="dice-selection gear" /><span title="1"></span>
|
|
<input type="radio" name="attr_gear" value="0" class="dice-selection gear" checked /><span title="0"></span>
|
|
</div>
|
|
<div class="dice-gear-col2">
|
|
<input type="radio" name="attr_gear" value="7" class="dice-selection gear" /><span title="7"></span>
|
|
<input type="radio" name="attr_gear" value="8" class="dice-selection gear" /><span title="8"></span>
|
|
<input type="radio" name="attr_gear" value="9" class="dice-selection gear" /><span title="9"></span>
|
|
<input type="radio" name="attr_gear" value="10" class="dice-selection gear" /><span title="10"></span>
|
|
<input type="radio" name="attr_gear" value="11" class="dice-selection gear" /><span title="11"></span>
|
|
<input type="radio" name="attr_gear" value="12" class="dice-selection gear" /><span title="12"></span>
|
|
</div>
|
|
</div>
|
|
<div class="dice-artifact">
|
|
<div class="dice-artifact-header">
|
|
<span class="label" data-i18n-title="artifact-bonus" data-i18n="artifact">Artifact Dice</span>
|
|
</div>
|
|
<div class="dice-artifact-rolls">
|
|
|
|
<span>
|
|
<input type="checkbox" name="attr_artifact_die_ocho" value="1" class="dice-selection mighty" data-i18n-title="mighty" title="Mighty" />
|
|
<span class="mighty"></span>
|
|
<span class="artifact-die mighty font-color-initial" data-i18n-title="die-8"></span>
|
|
</span>
|
|
<span>
|
|
<input type="checkbox" name="attr_artifact_die_eight" value="1" class="dice-selection mighty2" data-i18n-title="mighty" title="Mighty" />
|
|
<span class="mighty2"></span>
|
|
<span class="artifact-die mighty2 font-color-initial" data-i18n-title="die-8"></span>
|
|
</span>
|
|
<span>
|
|
<input type="checkbox" name="attr_artifact_die_ten" value="1" class="dice-selection epic" data-i18n-title="epic" title="Epic" />
|
|
<span class="epic"></span>
|
|
<span class="artifact-die epic font-color-initial" data-i18n-title="die-10"></span>
|
|
</span>
|
|
<span>
|
|
<input type="checkbox" name="attr_artifact_die_twelve" value="1" class="dice-selection legendary" data-i18n-title="legendary" title="Legendary" />
|
|
<span class="legendary"></span>
|
|
<span class="artifact-die legendary" data-i18n-title="die-12"></span>
|
|
</span>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="dice-rolls">
|
|
<input class="hidden api-toggle-show" type="checkbox" name="attr_api_toggle" value="1" />
|
|
<input class="hidden" type="number" name="attr_pushable" value="1" />
|
|
<input class="hidden" type="text" name="attr_push_latest" value="" />
|
|
<input class="hidden" name="attr_api_dice_command" value="@{whisper_option_api} [[(@{skill})d6]] [[(@{attribute})d6]] [[(@{gear})d6]] [[(@{artifact_die_eight})d8+(@{artifact_die_ocho})d8+(@{artifact_die_ten})d10+(@{artifact_die_twelve})d12]] --Character|@{character_name} --Roll|@{current_preset}" readonly />
|
|
|
|
<div class="template-roll dice-rolls-roll">
|
|
<button class="dice-pool" type="action" name="act_roll_the_dice" data-i18n-title="roll-dice" title="Roll the Dice!">
|
|
<span data-i18n="roll">Roll</span>
|
|
</button>
|
|
<!--
|
|
<button class="hidden dice-pool" type="roll" name="roll_the_dice" value="@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{dice-pool}}} {{subtitle=@{current_preset}}} {{subtitle2=@{subtitle2}}} {{free-text}} {{footer}} {{attribute-die-one=[[ @{attribute_die_one} ]]}} {{attribute-roll-one=[[ 1d6 ]]}} {{attribute-die-two=[[ @{attribute_die_two} ]]}} {{attribute-roll-two=[[ 1d6 ]]}} {{attribute-die-three=[[ @{attribute_die_three} ]]}} {{attribute-roll-three=[[ 1d6 ]]}} {{attribute-die-four=[[ @{attribute_die_four} ]]}} {{attribute-roll-four=[[ 1d6 ]]}} {{attribute-die-five=[[ @{attribute_die_five} ]]}} {{attribute-roll-five=[[ 1d6 ]]}} {{attribute-die-six=[[ @{attribute_die_six} ]]}} {{attribute-roll-six=[[ 1d6 ]]}} {{attribute-die-seven=[[ @{attribute_die_seven} ]]}} {{attribute-roll-seven=[[ 1d6 ]]}} {{attribute-die-eight=[[ @{attribute_die_eight} ]]}} {{attribute-roll-eight=[[ 1d6 ]]}} {{attribute-die-nine=[[ @{attribute_die_nine} ]]}} {{attribute-roll-nine=[[ 1d6 ]]}} {{attribute-die-ten=[[ @{attribute_die_ten} ]]}} {{attribute-roll-ten=[[ 1d6 ]]}} {{attribute-die-eleven=[[ @{attribute_die_eleven} ]]}} {{attribute-roll-eleven=[[ 1d6 ]]}} {{attribute-die-twelve=[[ @{attribute_die_twelve} ]]}} {{attribute-roll-twelve=[[ 1d6 ]]}} {{skill-die-one=[[ @{skill_die_one} ]]}} {{skill-roll-one=[[ 1d6 ]]}} {{skill-die-two=[[ @{skill_die_two} ]]}} {{skill-roll-two=[[ 1d6 ]]}} {{skill-die-three=[[ @{skill_die_three} ]]}} {{skill-roll-three=[[ 1d6 ]]}} {{skill-die-four=[[ @{skill_die_four} ]]}} {{skill-roll-four=[[ 1d6 ]]}} {{skill-die-five=[[ @{skill_die_five} ]]}} {{skill-roll-five=[[ 1d6 ]]}} {{skill-die-six=[[ @{skill_die_six} ]]}} {{skill-roll-six=[[ 1d6 ]]}} {{skill-die-seven=[[ @{skill_die_seven} ]]}} {{skill-roll-seven=[[ 1d6 ]]}} {{skill-die-eight=[[ @{skill_die_eight} ]]}} {{skill-roll-eight=[[ 1d6 ]]}} {{skill-die-nine=[[ @{skill_die_nine} ]]}} {{skill-roll-nine=[[ 1d6 ]]}} {{skill-die-ten=[[ @{skill_die_ten} ]]}} {{skill-roll-ten=[[ 1d6 ]]}} {{negative-die-one=[[ @{negative_die_one} ]]}} {{negative-roll-one=[[ 1d6 ]]}} {{negative-die-two=[[ @{negative_die_two} ]]}} {{negative-roll-two=[[ 1d6 ]]}} {{negative-die-three=[[ @{negative_die_three} ]]}} {{negative-roll-three=[[ 1d6 ]]}} {{gear-die-one=[[ @{gear_die_one} ]]}} {{gear-roll-one=[[ 1d6 ]]}} {{gear-die-two=[[ @{gear_die_two} ]]}} {{gear-roll-two=[[ 1d6 ]]}} {{gear-die-three=[[ @{gear_die_three} ]]}} {{gear-roll-three=[[ 1d6 ]]}} {{gear-die-four=[[ @{gear_die_four} ]]}} {{gear-roll-four=[[ 1d6 ]]}} {{gear-die-five=[[ @{gear_die_five} ]]}} {{gear-roll-five=[[ 1d6 ]]}} {{gear-die-six=[[ @{gear_die_six} ]]}} {{gear-roll-six=[[ 1d6 ]]}} {{gear-die-seven=[[ @{gear_die_seven} ]]}} {{gear-roll-seven=[[ 1d6 ]]}} {{gear-die-eight=[[ @{gear_die_eight} ]]}} {{gear-roll-eight=[[ 1d6 ]]}} {{gear-die-nine=[[ @{gear_die_nine} ]]}} {{gear-roll-nine=[[ 1d6 ]]}} {{gear-die-ten=[[ @{gear_die_ten} ]]}} {{gear-roll-ten=[[ 1d6 ]]}} {{gear-die-eleven=[[ @{gear_die_eleven} ]]}} {{gear-roll-eleven=[[ 1d6 ]]}} {{gear-die-twelve=[[ @{gear_die_twelve} ]]}} {{gear-roll-twelve=[[ 1d6 ]]}} {{artifact-die-eight=[[ @{artifact_die_eight} ]]}} {{artifact-roll-eight=[[ 1d8 ]]}} {{artifact-die-ocho=[[ @{artifact_die_ocho} ]]}} {{artifact-roll-ocho=[[ 1d8 ]]}} {{artifact-die-ten=[[ @{artifact_die_ten} ]]}} {{artifact-roll-ten=[[ 1d10 ]]}} {{artifact-die-twelve=[[ @{artifact_die_twelve} ]]}} {{artifact-roll-twelve=[[ 1d12 ]]}} @{include_with_roll}" data-i18n-title="roll-dice" title="Roll the Dice!"></button>
|
|
-->
|
|
</div>
|
|
<div class="grid-item api-roll">
|
|
<button class="dice-pool" type="roll" name="roll_the_dice_api" value="@{whisper_option_api} [[(@{skill})d6]] [[(@{attribute})d6]] [[(@{gear})d6]] [[(@{artifact_die_eight})d8+(@{artifact_die_ocho})d8+(@{artifact_die_ten})d10+(@{artifact_die_twelve})d12]] --Character|@{character_name} --Roll|@{current_preset}" data-i18n-title="roll-dice-api" title="Roll API Dice!">
|
|
<span data-i18n="roll">Roll</span>
|
|
</button>
|
|
</div>
|
|
<div class="dice-rolls-d66">
|
|
<button class="dice-pool font-color-initial" type="roll" name="roll_d66" value="@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{d66-roll}}} {{subtitle}} {{free-text}} {{d66-die-one=[[ 1 ]]}} {{d66-roll-one=[[ 1d6 ]]}} {{d66-die-two=[[ 1 ]]}} {{d66-roll-two=[[ 1d6 ]]}} {{footer}}" data-i18n-title="roll-dice-66" title="Roll d66!">
|
|
<span class="small-caps" data-i18n="die-66-u">D66</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="dice-preset">
|
|
<input type="hidden" class="input" name="attr_current_preset" value="" readonly />
|
|
<input type="hidden" class="input" name="attr_subtitle2" value="" readonly />
|
|
<input type="hidden" name="attr_include_with_roll" value="" readonly />
|
|
<span class="label dice-preset-header" data-i18n="current-preset">Current Preset</span>
|
|
<span class="header-h1 dice-preset-preset" data-i18n-title="type-of-roll" name="attr_current_preset"></span>
|
|
</div>
|
|
<div class="dice-footer">
|
|
<button type="action" name="act_dice-pool-clear" class="small-caps dice-footer-clear" data-i18n-title="reset-dice" title="Reset dice pool.">
|
|
<span data-i18n="clear-dice-pool">Clear Dice Pool</span>
|
|
</button>
|
|
<button type="action" name="act_api_dice_toggle" class="api-button small-caps dice-footer-api" data-i18n-title="api-dice-title" title="Use API Dice Roller. (API is a Pro feature) 'Forbidden Lands Year-Zero Die Roller' script must be installed.">
|
|
<span data-i18n="api-dice">api dice</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box toggle-monster-only character-column3">
|
|
<!-- Talents -->
|
|
<section class="talents">
|
|
<div class="talents-grid">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_talents" value="1" checked />
|
|
<div class="talents-box header-top">
|
|
<h1 data-i18n="talent-u">TALENTS</h1>
|
|
</div>
|
|
<div class="talents-box2 column-header-bottom">
|
|
<input type="checkbox" class="section-toggle-checkbox" name="attr_toggle_talents" value="1" title="more/less" data-i18n-title="show-more-or-less" checked />
|
|
<span class="expand-section-nav"></span>
|
|
<span data-i18n="rank">Rank</span>
|
|
</div>
|
|
<div class="talents-box3 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="talents-box4">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_talents" value="1" checked />
|
|
<fieldset class="repeating_talents">
|
|
<div class="talents-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<button class="talents-box0 roll-button" type="roll" name="attr_talent_roll" title="%{repeating_talents_$X_talent_roll}" value="@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=character_id}}} {{name=^{@{talent_type}} ^{talent}}} {{subtitle2=@{talent_name} - ^{rank} @{talent_rank}}} {{free-text=@{talent_description}}}"></button>
|
|
<input class="talents-box1 input" type="text" name="attr_talent_name" value="" title="@{repeating_talents_$X_talent_name}" data-i18n-placeholder="name" placeholder="Name" />
|
|
<select class="talents-box2 input" name="attr_talent_rank" title="@{repeating_talents_$X_talent_rank}">
|
|
<option value="0" select>0</option>
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
</select>
|
|
<select class="talents-box3 input" name="attr_talent_type" title="@{repeating_talents_$X_talent_type}">
|
|
<option value="kin" data-i18n="kin">Kin</option>
|
|
<option value="general" data-i18n="general-abbr" selected>Gen</option>
|
|
<option value="profession" data-i18n="profession-abbr">Prof</option>
|
|
</select>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="talents-box4 input-textarea" name="attr_talent_description" title="@{repeating_talents_$X_talent_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Gear -->
|
|
<section class="gear">
|
|
<div class="gear-grid">
|
|
<div class="gear-box5">
|
|
<!--Consumable Encumbrance-->
|
|
<div class="consumables-grid">
|
|
<div class="gear-box header-top">
|
|
<h1 data-i18n="consumable-u">CONSUMABLES</h1>
|
|
</div>
|
|
<div class="gear-box2 column-header-bottom">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="gear-box3 column-header-bottom">
|
|
<span data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<div class="gear-box4 column-header-bottom">
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<button class="roll-button-textonly header-h1 food" type="action" name="act_food">
|
|
<span data-i18n="food">Food</span>
|
|
</button>
|
|
<select class="input" name="attr_food" title="@{food}">
|
|
<option value="0" selected>0</option>
|
|
<option value="6" data-i18n="die-6">d6</option>
|
|
<option value="8" data-i18n="die-8">d8</option>
|
|
<option value="10" data-i18n="die-10">d10</option>
|
|
<option value="12" data-i18n="die-12">d12</option>
|
|
</select>
|
|
<input type="hidden" name="attr_food_macro" value="0" />
|
|
<input class="input" type="checkbox" name="attr_food_carried" value="1" title="@{food_carried}" checked />
|
|
<input type="hidden" name="attr_food_weight" value="0" />
|
|
<select class="input" name="attr_food_weight" title="@{food_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected disabled>T</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1" disabled>N</option>
|
|
</select>
|
|
<button class="roll-button-textonly header-h1 water" type="action" name="act_water">
|
|
<span data-i18n="water">Water</span>
|
|
</button>
|
|
<select class="input" name="attr_water" title="@{water}">
|
|
<option value="0" selected>0</option>
|
|
<option value="6" data-i18n="die-6">d6</option>
|
|
<option value="8" data-i18n="die-8">d8</option>
|
|
<option value="10" data-i18n="die-10">d10</option>
|
|
<option value="12" data-i18n="die-12">d12</option>
|
|
</select>
|
|
<input type="hidden" name="attr_water_macro" value="0" />
|
|
<input class="input" type="checkbox" name="attr_water_carried" value="1" title="@{water_carried}" checked />
|
|
<input type="hidden" name="attr_water_weight" value="0" />
|
|
<select class="input" name="attr_water_weight" title="@{water_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected disabled>T</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1" disabled>N</option>
|
|
</select>
|
|
<button class="roll-button-textonly header-h1 arrows" type="action" name="act_arrows">
|
|
<span data-i18n="arrows">Arrows</span>
|
|
</button>
|
|
<select class="input" name="attr_arrows" title="@{arrows}">
|
|
<option value="0" selected>0</option>
|
|
<option value="6" data-i18n="die-6">d6</option>
|
|
<option value="8" data-i18n="die-8">d8</option>
|
|
<option value="10" data-i18n="die-10">d10</option>
|
|
<option value="12" data-i18n="die-12">d12</option>
|
|
</select>
|
|
<input type="hidden" name="attr_arrows_macro" value="0" />
|
|
<input class="input" type="checkbox" name="attr_arrows_carried" value="1" title="@{arrows_carried}" checked />
|
|
<input type="hidden" name="attr_arrows_weight" value="0" />
|
|
<select class="input" name="attr_arrows_weight" title="@{arrows_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected disabled>T</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1" disabled>N</option>
|
|
</select>
|
|
<button class="roll-button-textonly header-h1 torches" type="action" name="act_torches">
|
|
<span data-i18n="torches">Torches</span>
|
|
</button>
|
|
<select class="input" name="attr_torches" title="@{torches}">
|
|
<option value="0" selected>0</option>
|
|
<option value="6" data-i18n="die-6">d6</option>
|
|
<option value="8" data-i18n="die-8">d8</option>
|
|
<option value="10" data-i18n="die-10">d10</option>
|
|
<option value="12" data-i18n="die-12">d12</option>
|
|
</select>
|
|
<input type="hidden" name="attr_torches_macro" value="0" />
|
|
<input class="input" type="checkbox" name="attr_torches_carried" value="1" title="@{torches_carried}" checked />
|
|
<input type="hidden" name="attr_torches_weight" value="0" />
|
|
<select class="input" name="attr_torches_weight" title="@{torches_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected disabled>T</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1" disabled>N</option>
|
|
</select>
|
|
</div>
|
|
<!-- Repeating Gear -->
|
|
<div class="gear-grid">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_gear" value="1" checked />
|
|
<div class="gear-box header-top">
|
|
<h1 data-i18n="gea-u">GEAR</h1>
|
|
</div>
|
|
<div class="gear-box2 column-header-bottom">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="gear-box3 column-header-bottom">
|
|
<span data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<div class="gear-box4 column-header-bottom">
|
|
<input type="checkbox" class="section-toggle-checkbox" name="attr_toggle_gear" value="1" title="more/less" data-i18n-title="show-more-or-less" checked />
|
|
<span class="expand-section-nav"></span>
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
</div>
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_gear" value="1" checked />
|
|
<fieldset class="repeating_gear">
|
|
<div class="gear-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="gear-box1 input" type="text" name="attr_gear_name" value="" title="@{repeating_gear_$X_gear_name}" data-i18n-placeholder="item" placeholder="item" />
|
|
<input class="gear-box2 input-number" type="number" name="attr_gear_qty" value="1" min="0" title="@{repeating_gear_$X_gear_qty}" />
|
|
<input class="gear-box3 input" type="checkbox" name="attr_gear_carried" value="1" title="@{repeating_gear_$X_gear_carried}" checked />
|
|
<select class="gear-box4 input" name="attr_gear_weight" title="@{repeating_gear_$X_gear_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<!-- expand 2nd row -->
|
|
<textarea class="gear-box5 input-textarea" name="attr_gear_description" title="@{repeating_talents_$X_gear_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<!-- Weight -->
|
|
<div class="gear-weight">
|
|
<span class="label" data-i18n="gear-consumables">Gear & Consumables</span>
|
|
<input class="input-number" type="text" name="attr_character_gear_and_consumables_encumbrance" value="0" title="@{character_gear_and_consumables_encumbrance}" readonly />
|
|
<span class="label" data-i18n="weapons">Weapons</span>
|
|
<input class="input-number" type="text" name="attr_weapons_encumbrance" value="0" title="@{weapons_encumbrance}" readonly />
|
|
<span class="label" data-i18n="armor">Armor</span>
|
|
<input class="input-number" type="text" name="attr_armor_shield_encumbrance" value="0" title="@{armor_shield_encumbrance}" readonly />
|
|
<span class="label" data-i18n="coins-carried">Coins Carried</span>
|
|
<input class="input-number" type="text" name="attr_coins_carried" value="0" title="@{coins_carried}" readonly />
|
|
</div>
|
|
<!-- Encumbrance -->
|
|
<div class="gear-box6 header-top">
|
|
<span class="label" data-i18n="carry">Carry</span>
|
|
<input class="input-number" type="text" name="attr_carry" value="0" title="@{carry} = 2 x @{strength} + @{pack_rat}" readonly />
|
|
<span class="label over-encumbered" data-i18n="encumbrance">Encumbrance</span>
|
|
<input class="hidden warning" type="checkbox" name="attr_encumbered_flag" value="1" />
|
|
<input class="input-number over-encumbered" type="text" name="attr_character_encumbrance" value="0" title="@{character_encumbrance}" readonly />
|
|
</div>
|
|
<!-- Misc -->
|
|
<div class="gear-box7">
|
|
<span class="label" data-i18n-title="pack-rat-title" data-i18n="pack-rat">Pack Rat Talent?</span>
|
|
<select class="input" name="attr_pack_rat">
|
|
<option value="0" data-i18n="no" selected>No</option>
|
|
<option value="2" data-i18n="rank-1-pack-rat">Rank 1 (+2)</option>
|
|
<option value="5" data-i18n="rank-2-pack-rat">Rank 2 (+5)</option>
|
|
<option value="10" data-i18n="rank-3-pack-rat">Rank 3 (+10)</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Mount -->
|
|
<section class="mount">
|
|
<div class="mount-grid">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_mount_gear" value="1" checked />
|
|
<div class="mount-box1 header-top"><h1 data-i18n="moun-u">MOUNT</h1></div>
|
|
<div class="mount_gear-box4 column-header-bottom">
|
|
<input type="checkbox" class="section-toggle-checkbox" name="attr_toggle_mount_gear" value="1" title="more/less" data-i18n-title="show-more-or-less" checked />
|
|
<span class="expand-section-nav"></span>
|
|
</div>
|
|
<input class="expand" type="checkbox" name="attr_expand_mount1" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="mount-box2 input" type="text" name="attr_mount_name" value="" title="@{mount_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<span class="mount-box3 label" data-i18n="strength-abbr-u">STR</span>
|
|
<input class="mount-box4 input-number" type="number" name="attr_mount_strength" value="1" title="@{mount_strength}" />
|
|
<span class="mount-box5 label" data-i18n="agility-abbr-u">AGI</span>
|
|
<input class="mount-box6 input-number" type="number" name="attr_mount_agility" value="1" title="@{mount_agility}" />
|
|
<!-- expand 2nd row -->
|
|
<textarea class="mount-box7 mount-row2 input-textarea" name="attr_mount_description" title="@{mount_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
<div class="mount_gear-grid">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_mount_gear" value="1" checked />
|
|
<div class="mount_gear-box header-top" style="min-height:1.5em;">
|
|
</div>
|
|
<div class="mount_gear-box2 column-header-bottom">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="mount_gear-box3 column-header-bottom">
|
|
<span data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<div class="mount_gear-box4 column-header-bottom">
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<div class="mount_gear-box5">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_mount_gear" value="1" checked />
|
|
<fieldset class="repeating_mount">
|
|
<div class="mount_gear-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="mount_gear-box1 input" type="text" name="attr_mount_gear_name" value="" title="@{repeating_mount_$X_mount_gear_name}" data-i18n-placeholder="item" placeholder="item" />
|
|
<input class="mount_gear-box2 input-number" type="number" name="attr_mount_gear_qty" value="1" title="Quantity @{repeating_mount_$X_mount_gear_qty}" />
|
|
<input class="mount_gear-box3 input" type="checkbox" name="attr_mount_gear_carried" value="1" title="@{repeating_mount_$X_mount_gear_carried}" checked />
|
|
<select class="mount_gear-box4 input" name="attr_mount_gear_weight" title="@{repeating_mount_$X_mount_gear_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<textarea class="mount_gear-box5 input-textarea" name="attr_mount_gear_description" title="@{repeating_mount_$X_mount_gear_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="gear-weight gear-weight2">
|
|
<span class="label" data-i18n="gear">Gear</span>
|
|
<input class="input-number" type="text" name="attr_mount_gear_encumbrance" value="0" title="@{mount_gear_encumbrance}" readonly />
|
|
<span class="label" data-i18n="coins-carried">Coins Carried</span>
|
|
<input class="input-number" type="text" name="attr_coins_carried_mount" value="0" title="@{coins_carried_mount}" readonly />
|
|
</div>
|
|
<div class="mount_gear-box6 header-top">
|
|
<span class="label" data-i18n="carry">Carry</span>
|
|
<input class="input-number" type="text" name="attr_mount_carry" value="0" title="@{mount_carry} = mount_strength x2, unmounted x4" readonly />
|
|
<span class="label" data-i18n="encumbrance">Encumbrance</span>
|
|
<input class="hidden warning" type="checkbox" name="attr_mount_encumbered_flag" value="1" />
|
|
<input class="input-number over-encumbered" type="text" name="attr_mount_encumbrance" value="0" title="@{mount_encumbrance}" readonly />
|
|
</div>
|
|
<div class="mount_gear-box7">
|
|
<input class="input" title="@{mounted}" type="checkbox" name="attr_mounted" value="1" />
|
|
<span class="label" data-i18n="mounted" style="margin: 0;">Mounted</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- Cart -->
|
|
<section class="cart">
|
|
<div class="cart_gear-grid">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_cart_gear" value="1" checked />
|
|
<div class="cart_gear-box header-top">
|
|
<h1 data-i18n="cart-wagon-other">Cart/Wagon/Other</h1>
|
|
</div>
|
|
<div class="cart_gear-box2 column-header-bottom">
|
|
<span data-i18n="quantity-abbr">Qty</span>
|
|
</div>
|
|
<div class="cart_gear-box3 column-header-bottom">
|
|
<span data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<div class="cart_gear-box4 column-header-bottom">
|
|
<input type="checkbox" class="section-toggle-checkbox" name="attr_toggle_cart_gear" value="1" title="more/less" data-i18n-title="show-more-or-less" checked />
|
|
<span class="expand-section-nav"></span>
|
|
<span data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<div class="cart_gear-box5">
|
|
<input type="checkbox" class="hidden section-toggle-checkbox" name="attr_toggle_cart_gear" value="1" checked />
|
|
<fieldset class="repeating_cart">
|
|
<div class="cart_gear-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" /><span></span>
|
|
<input class="cart_gear-box1 input" type="text" name="attr_cart_gear_name" value="" title="@{repeating_cart_$X_cart_gear_name}" data-i18n-placeholder="item" placeholder="item" />
|
|
<input class="cart_gear-box2 input-number" type="number" name="attr_cart_gear_qty" value="1" title="Quantity @{repeating_cart_$X_cart_gear_qty}" />
|
|
<input class="cart_gear-box3 input" type="checkbox" name="attr_cart_gear_carried" value="1" title="@{repeating_cart_$X_cart_gear_carried}" checked />
|
|
<select class="cart_gear-box4 input" name="attr_cart_gear_weight" title="@{repeating_cart_$X_cart_gear_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
<textarea class="cart_gear-box5 input-textarea" name="attr_cart_gear_description" title="@{repeating_cart_$X_cart_gear_description}" data-i18n-placeholder="description" placeholder="description"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="gear-weight gear-weight2">
|
|
<span class="label" data-i18n="gear">Gear</span>
|
|
<input class="input-number" type="text" name="attr_cart_gear_encumbrance" value="0" title="@{cart_gear_encumbrance}" readonly />
|
|
<span class="label" data-i18n="coins-carried">Coins Carried</span>
|
|
<input class="input-number" type="text" name="attr_coins_carried_cart" value="0" title="@{coins_carried_cart}" readonly />
|
|
</div>
|
|
<div class="cart_gear-box6 header-top">
|
|
<span class="label" data-i18n="max-items-abbr">Max Items</span>
|
|
<input class="input-number" type="text" name="attr_cart_carry" value="0" title="@{cart_carry}" />
|
|
<span class="label" data-i18n="encumbrance">Encumbrance</span>
|
|
<input class="hidden warning" type="checkbox" name="attr_cart_encumbered_flag" value="1" />
|
|
<input class="input-number over-encumbered" type="text" name="attr_cart_encumbrance" value="0" title="@{cart_encumbrance}" readonly />
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<!-- Armor -->
|
|
<div class="box toggle-monster-only character-armor">
|
|
<div class="armor-container">
|
|
<div class="armor-grid">
|
|
<div class="armor-box header-top">
|
|
<h1 data-i18n="armor-helmet">ARMOR/HELMET</h1>
|
|
</div>
|
|
<div class="armor-box1 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="armor-box2 column-header-bottom">
|
|
<span data-i18n="armor-rating-abbr">AR</span>
|
|
</div>
|
|
<div class="armor-box3 column-header-bottom">
|
|
<span data-i18n="max-abbr">Max</span>
|
|
</div>
|
|
<div class="armor-box4 column-header-bottom">
|
|
<span data-i18n="misc-skill-abbr">Misc Skill</span>
|
|
</div>
|
|
<div class="armor-box5 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="armor-box6 column-header-bottom" data-i18n-title="artifact-bonus">
|
|
<span data-i18n="artifact">Artifact Dice</span>
|
|
</div>
|
|
<div class="armor-box10 armor-grid">
|
|
<input class="armor-box1 input" type="text" name="attr_armor1_name" value="" title="@{armor1_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<input class="armor-box2 input-number" type="number" name="attr_armor1_bonus" value="0" min="0" data-i18n-title="armor1-bonus" title="Record the armor's CURRENT bonus up to MAX (adjusts GEAR dice). @{armor1_bonus}" />
|
|
<input class="armor-box3 input-number" type="number" name="attr_armor1_bonus_max" value="0" min="0" data-i18n-title="armor1-bonus-max" title="Record the armor's UNDAMAGED bonus. @{armor1_bonus_max}" />
|
|
<select class="armor-box4 input" name="attr_armor1_damage" data-i18n-title="armor1-bonus-misc" title="Miscellaneous bonus modifier (adjusts GEAR dice). @{armor1_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="armor-box5 readonly" name="attr_armor1_ar" value="0" data-i18n-title="armor1-bonus-total" title="Total GEAR and SKILL dice included for armor1. @{armor1_ar}">0</span>
|
|
<details class="armor-box6">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor1_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor1_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_armor1_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_armor1_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_armor1" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="armor-row2">
|
|
<div class="armor-box15"><span class="label" data-i18n="don">Don</span></div>
|
|
<input class="armor-box16 input" type="checkbox" name="attr_armor1_equipped" value="1" title="@{armor1_equipped}" checked />
|
|
<div class="armor-box17">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="armor-box18 input" type="text" name="attr_armor1_features" value="" title="@{armor1_features}" />
|
|
<div class="armor-box11">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="armor-box12 input" name="attr_armor1_carried" title="@{armor1_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="armor-box13">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="armor-box14 input" name="attr_armor1_weight" title="@{armor1_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="armor-box10-2 armor-grid">
|
|
<input class="armor-box1 input" type="text" name="attr_armor2_name" value="" title="@{armor2_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<input class="armor-box2 input-number" type="number" name="attr_armor2_bonus" value="0" min="0" data-i18n-title="armor2-bonus" title="Record the armor's CURRENT bonus up to MAX (adjusts GEAR dice). @{armor2_bonus" />
|
|
<input class="armor-box3 input-number" type="number" name="attr_armor2_bonus_max" value="0" min="0" data-i18n-title="armor2-bonus-max" title="Record the armor's UNDAMAGED bonus. @{armor2_bonus_max}" />
|
|
<select class="armor-box4 input" name="attr_armor2_damage" data-i18n-title="armor2-bonus-misc" title="Miscellaneous bonus modifier (adjusts GEAR dice). @{armor2_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="armor-box5 readonly" name="attr_armor2_ar" value="0" data-i18n-title="armor2-bonus-total" title="Total GEAR and SKILL dice included for armor2. @{armor2_ar}">0</span>
|
|
<details class="armor-box6">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor2_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor2_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_armor2_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_armor2_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_armor2" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="armor-row2">
|
|
<div class="armor-box15"><span class="label" data-i18n="don">Don</span></div>
|
|
<input class="armor-box16 input" type="checkbox" name="attr_armor2_equipped" value="1" title="@{armor2_equipped}" checked />
|
|
<div class="armor-box17">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="armor-box18 input" type="text" name="attr_armor2_features" value="" title="@{armor2_features}" />
|
|
<div class="armor-box11">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="armor-box12 input" name="attr_armor2_carried" title="@{armor2_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="armor-box13">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="armor-box14 input" name="attr_armor2_weight" title="@{armor2_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<!--expanded armor-->
|
|
<div class="armor-box10-3">
|
|
<input type="checkbox" class="armor-show-more" name="attr_armor_show_more" value="1" data-i18n-title="show-more-or-less" />
|
|
<span style="float: left;" data-i18n-title="show-more-or-less"> </span>
|
|
</div>
|
|
<input type="checkbox" class="hidden armor-show-more" name="attr_armor_show_more" value="1" />
|
|
<div class="armor-box10-4 armor-grid armor-show-more">
|
|
<input class="armor-box1 input" type="text" name="attr_armor3_name" value="" title="@{armor3_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<input class="armor-box2 input-number" type="number" name="attr_armor3_bonus" value="0" min="0" data-i18n-title="armor3-bonus" title="Record the armor's CURRENT bonus up to MAX (adjusts GEAR dice). @{armor3_bonus" />
|
|
<input class="armor-box3 input-number" type="number" name="attr_armor3_bonus_max" value="0" min="0" data-i18n-title="armor3-bonus-max" title="Record the armor's UNDAMAGED bonus. @{armor3_bonus_max}" />
|
|
<select class="armor-box4 input" name="attr_armor3_damage" data-i18n-title="armor3-bonus-misc" title="Miscellaneous bonus modifier (adjusts GEAR dice). @{armor3_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="armor-box5 readonly" name="attr_armor3_ar" value="0" data-i18n-title="armor3-bonus-total" title="Total GEAR and SKILL dice included for armor3. @{armor3_ar}">0</span>
|
|
<details class="armor-box6">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor3_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor3_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_armor3_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_armor3_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_armor3" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="armor-row2">
|
|
<div class="armor-box15"><span class="label" data-i18n="don">Don</span></div>
|
|
<input class="armor-box16 input" type="checkbox" name="attr_armor3_equipped" value="1" title="@{armor3_equipped}" checked />
|
|
<div class="armor-box17">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="armor-box18 input" type="text" name="attr_armor3_features" value="" title="@{armor3_features}" />
|
|
<div class="armor-box11">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="armor-box12 input" name="attr_armor3_carried" title="@{armor3_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="armor-box13">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="armor-box14 input" name="attr_armor3_weight" title="@{armor3_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="armor-box10-5 armor-grid armor-show-more">
|
|
<input class="armor-box1 input" type="text" name="attr_armor4_name" value="" title="@{armor4_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<input class="armor-box2 input-number" type="number" name="attr_armor4_bonus" value="0" min="0" data-i18n-title="armor4-bonus" title="Record the armor's CURRENT bonus up to MAX (adjusts GEAR dice). @{armor4_bonus" />
|
|
<input class="armor-box3 input-number" type="number" name="attr_armor4_bonus_max" value="0" min="0" data-i18n-title="armor4-bonus-max" title="Record the armor's UNDAMAGED bonus. @{armor4_bonus_max}" />
|
|
<select class="armor-box4 input" name="attr_armor4_damage" data-i18n-title="armor4-bonus-misc" title="Miscellaneous bonus modifier (adjusts GEAR dice). @{armor4_damage}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="armor-box5 readonly" name="attr_armor4_ar" value="0" data-i18n-title="armor4-bonus-total" title="Total GEAR and SKILL dice included for armor4. @{armor4_ar}">0</span>
|
|
<details class="armor-box6">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor4_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_armor4_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_armor4_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_armor4_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_armor4" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="armor-row2">
|
|
<div class="armor-box15"><span class="label" data-i18n="don">Don</span></div>
|
|
<input class="armor-box16 input" type="checkbox" name="attr_armor4_equipped" value="1" title="@{armor4_equipped}" checked />
|
|
<div class="armor-box17">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="armor-box18 input" type="text" name="attr_armor4_features" value="" title="@{armor4_features}" />
|
|
<div class="armor-box11">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="armor-box12 input" name="attr_armor4_carried" title="@{armor4_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="armor-box13">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="armor-box14 input" name="attr_armor4_weight" title="@{armor4_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="armor-ar">
|
|
<div class="armor-subgrid">
|
|
<div class="armor-box3 header-top">
|
|
<h1 data-i18n="armor-rating-u" style="margin: 0;">
|
|
ARMOR RATING
|
|
</h1>
|
|
</div>
|
|
<span class="armor-box4 input-span" name="attr_ar" value="0" data-i18n-title="armor-rating-total" title="Total GEAR dice included for armor1 + armor2. @{ar}"></span>
|
|
<span class="armor-box5">
|
|
<button type="action" name="act_armor-roll" class="roll-button-textonly" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">
|
|
<span data-i18n="armor">Armor</span>
|
|
</button>
|
|
<button class="rollme-relative" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
</span>
|
|
<!-- only show if any artifact dice have been selected from above -->
|
|
<span class="armor-box6 armor-artifact-totals label">
|
|
<input class="hidden" type="checkbox" name="attr_armor_artifact_die_ocho" value="1" readonly />
|
|
<span data-i18n="die-8-u" data-i18n-title="mighty" title="Mighty">D8</span>
|
|
<input class="hidden" type="checkbox" name="attr_armor_artifact_die_eight" value="1" readonly />
|
|
<span data-i18n="die-8-u" data-i18n-title="mighty" title="Mighty">D8</span>
|
|
<input class="hidden" type="checkbox" name="attr_armor_artifact_die_ten" value="1" readonly />
|
|
<span data-i18n="die-10-u" data-i18n-title="epic" title="Epic">D10</span>
|
|
<input class="hidden" type="checkbox" name="attr_armor_artifact_die_twelve" value="1" readonly />
|
|
<span data-i18n="die-12-u" data-i18n-title="legendary" title="Legendary">D12</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="shield-grid">
|
|
<div class="shield-box header-top">
|
|
<h1 data-i18n="shield-u">SHIELD</h1>
|
|
</div>
|
|
<div class="shield-box1 column-header-bottom">
|
|
<span class="rotate-45" data-i18n="shove">Shove</span>
|
|
</div>
|
|
<div class="shield-box2 column-header-bottom">
|
|
<span class="rotate-45" data-i18n="parry">Parry</span>
|
|
</div>
|
|
<div class="shield-box3 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="shield-box4 column-header-bottom">
|
|
<span data-i18n="attr-abbr">Attr</span>
|
|
</div>
|
|
<div class="shield-box5 column-header-bottom">
|
|
<span data-i18n="skill">Skill</span>
|
|
</div>
|
|
<div class="shield-box6 column-header-bottom">
|
|
<span data-i18n="bonus-abbr">Bon</span>
|
|
</div>
|
|
<div class="shield-box7 column-header-bottom">
|
|
<span data-i18n="max-abbr">Max</span>
|
|
</div>
|
|
<div class="shield-box8 column-header-bottom">
|
|
<span data-i18n="misc-skill-abbr">Misc Skill</span>
|
|
</div>
|
|
<div class="shield-box9 column-header-bottom">
|
|
<span data-i18n="total-abbr">Tot</span>
|
|
</div>
|
|
<div class="shield-box10 column-header-bottom" data-i18n-title="artifact-bonus">
|
|
<span data-i18n="artifact">Artifact Dice</span>
|
|
</div>
|
|
<div class="shield-box14 shield-grid">
|
|
<button class="shield-box1 roll-button" type="action" name="act_shield-shove-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<button class="shield-box2 roll-button" type="action" name="act_shield-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="shield-box3 input" type="text" name="attr_shield1_name" value="" title="@{shield1_name}" data-i18n-placeholder="name" placeholder="name" />
|
|
<span class="shield-box4 readonly" name="attr_strength_total" value="0" title="@{strength_total}">0</span>
|
|
<span class="shield-box5 readonly" name="attr_melee" value="0" title="@{melee}">0</span>
|
|
<input class="shield-box6 input-number" type="number" name="attr_shield1_bonus" value="0" min="0" data-i18n-title="shield-bonus" title="Record the shield's CURRENT bonus up to MAX (adjusts GEAR dice) @{shield1_bonus}" />
|
|
<input class="shield-box7 input-number" type="number" name="attr_shield1_bonus_max" value="0" min="0" data-i18n-title="shield-bonus-max" title="Record the shield's UNDAMAGED bonus. @{shield1_bonus_max}" />
|
|
<select class="shield-box8 input" name="attr_shield1_bonus_misc" data-i18n-title="shield-bonus-misc" title="Miscellaneous bonus modifier (adjusts SKILL dice). @{shield1_bonus_misc}">
|
|
<option value="6">+6</option>
|
|
<option value="5">+5</option>
|
|
<option value="4">+4</option>
|
|
<option value="3">+3</option>
|
|
<option value="2">+2</option>
|
|
<option value="1">+1</option>
|
|
<option value="0" selected>+0</option>
|
|
<option value="-1">-1</option>
|
|
<option value="-2">-2</option>
|
|
<option value="-3">-3</option>
|
|
<option value="-4">-4</option>
|
|
<option value="-5">-5</option>
|
|
<option value="-6">-6</option>
|
|
</select>
|
|
<span class="shield-box9 readonly" name="attr_shield1_bonus_total" value="0" data-i18n-title="shield-bonus-total" title="Total BASE, GEAR, and SKILL dice included for Parry|Shove. @{shield1_bonus_total}">0</span>
|
|
<details class="shield-box10">
|
|
<summary data-i18n-title="artifact-bonus">D..</summary>
|
|
<span class="fake-selector">
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_shield1_artifact_die_ocho" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="mighty" title="Mighty"><input class="input" type="checkbox" name="attr_shield1_artifact_die_eight" value="1" /><span class="label" data-i18n="die-8-u">D8</span></label>
|
|
<label data-i18n-title="epic" title="Epic"><input class="input" type="checkbox" name="attr_shield1_artifact_die_ten" value="1" /><span class="label" data-i18n="die-10-u">D10</span></label>
|
|
<label data-i18n-title="legendary" title="Legendary"><input class="input" type="checkbox" name="attr_shield1_artifact_die_twelve" value="1" /><span class="label" data-i18n="die-12-u">D12</span></label>
|
|
</span>
|
|
</details>
|
|
<!-- expand 2nd row -->
|
|
<input class="expand" type="checkbox" name="attr_expand_shield1" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<!-- 2nd row -->
|
|
<div class="shield-row2">
|
|
<div class="shield-box19"><span class="label" data-i18n="don">Don</span></div>
|
|
<input class="shield-box20 input" type="checkbox" name="attr_shield1_equipped" value="1" title="@{shield1_equipped}" checked />
|
|
<div class="shield-box21">
|
|
<span class="label" data-i18n="features">Features</span>
|
|
</div>
|
|
<input class="shield-box22 input" type="text" name="attr_shield1_features" value="" title="@{shield1_features}" />
|
|
<div class="shield-box15">
|
|
<span class="label" data-i18n="carried-abbr">Carr</span>
|
|
</div>
|
|
<select class="shield-box16 input" name="attr_shield1_carried" title="@{shield1_carried}">
|
|
<option data-i18n="yes" value="1" selected>Yes</option>
|
|
<option data-i18n="no" value="0">No</option>
|
|
<option data-i18n="mount" value="0">Mount</option>
|
|
<option data-i18n="cart" value="0">Cart</option>
|
|
</select>
|
|
<div class="shield-box17">
|
|
<span class="label" data-i18n="weight-abbr">Wt</span>
|
|
</div>
|
|
<select class="shield-box18 input" name="attr_shield1_weight" title="@{shield1_weight}">
|
|
<option data-i18n="tiny-abbr" data-i18n-title="weight-tiny" value="0" selected>T</option>
|
|
<option data-i18n="light-abbr" data-i18n-title="weight-light" value="0.5">L</option>
|
|
<option data-i18n="normal-abbr" data-i18n-title="weight-normal" value="1">N</option>
|
|
<option data-i18n="heavy-abbr" data-i18n-title="weight-heavy" value="2">H</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Coins -->
|
|
<div class="box toggle-monster-only character-coins">
|
|
<div class="coins-grid">
|
|
<div class="coins-box header-top">
|
|
<h1 data-i18n="coins-u">COINS</h1>
|
|
</div>
|
|
<div class="coins-box1 column-header-bottom"></div>
|
|
<div class="coins-box2 column-header-bottom">
|
|
<span data-i18n="gold">Gold</span>
|
|
</div>
|
|
<div class="coins-box3 column-header-bottom">
|
|
<span data-i18n="silver">Silver</span>
|
|
</div>
|
|
<div class="coins-box4 column-header-bottom">
|
|
<span data-i18n="copper">Copper</span>
|
|
</div>
|
|
|
|
<span class="label" data-i18n="carried">Carried</span>
|
|
<input class="input-number" type="text" name="attr_gold" value="0" title="@{gold}" />
|
|
<input class="input-number" type="text" name="attr_silver" value="0" title="@{silver}" />
|
|
<input class="input-number" type="text" name="attr_copper" value="0" title="@{copper}" />
|
|
|
|
<span class="label" data-i18n="mount">Mount</span>
|
|
<input class="input-number" type="text" name="attr_gold_mount" value="0" title="@{gold_mount}" />
|
|
<input class="input-number" type="text" name="attr_silver_mount" value="0" title="@{silver_mount}" />
|
|
<input class="input-number" type="text" name="attr_copper_mount" value="0" title="@{copper_mount}" />
|
|
|
|
<span class="label cart-wagon-label" data-i18n="cart-wagon-other">Cart/Wagon/Other</span>
|
|
<input class="input-number" type="text" name="attr_gold_cart" value="0" title="@{gold_cart}" />
|
|
<input class="input-number" type="text" name="attr_silver_cart" value="0" title="@{silver_cart}" />
|
|
<input class="input-number" type="text" name="attr_copper_cart" value="0" title="@{copper_cart}" />
|
|
|
|
<span class="label" data-i18n="other">Other</span>
|
|
<input class="input-number" type="text" name="attr_gold_other" value="0" title="@{gold_other}" />
|
|
<input class="input-number" type="text" name="attr_silver_other" value="0" title="@{silver_other}" />
|
|
<input class="input-number" type="text" name="attr_copper_other" value="0" title="@{copper_other}" />
|
|
<input type="hidden" name="attr_coins_other_total" value="0" />
|
|
|
|
<span class="label" data-i18n="total">Total</span>
|
|
<input class="input-number" type="text" name="attr_gold_total" value="0" title="@{gold_total}" readonly />
|
|
<input class="input-number" type="text" name="attr_silver_total" value="0" title="@{silver_total}" readonly />
|
|
<input class="input-number" type="text" name="attr_copper_total" value="0" title="@{copper_total}" readonly />
|
|
</div>
|
|
</div>
|
|
<!-- Willpower/XP -->
|
|
<div class="box toggle-monster-only character-willpower">
|
|
<div class="willpower-grid">
|
|
<div class="willpower-box1 header-top">
|
|
<h1 data-i18n="willpower-u">WILLPOWER</h1>
|
|
</div>
|
|
<div class="willpower-box2">
|
|
<button class="reset" type="action" name="act_reset" data-i18n-title="no-willpower" title="No Willpower"></button><span></span>
|
|
<input class="hidden" type="checkbox" name="attr_willpower" value="0" checked />
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="1" title="1 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="2" title="2 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="3" title="3 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="4" title="4 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="5" title="5 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="6" title="6 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="7" title="7 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="8" title="8 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="9" title="9 @{willpower}" /><span></span>
|
|
<input class="xbox" type="checkbox" name="attr_willpower" value="10" title="10 @{willpower}" /><span></span>
|
|
<input type="hidden" name="attr_willpower_max" value="10" />
|
|
</div>
|
|
<span class="willpower-box3">=</span>
|
|
<div class="willpower-box4">
|
|
<span class="input-span" name="attr_willpower" title="@{willpower}"></span>
|
|
</div>
|
|
</div>
|
|
<div></div>
|
|
<div class="experience-grid">
|
|
<div class="experience-box1 header-top">
|
|
<h1 data-i18n="experience-u">EXPERIENCE</h1>
|
|
</div>
|
|
<div class="experience-box2">
|
|
<input class="input-number small-width" type="number" name="attr_experience" value="0" min="0" title="@{experience}" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Beasts -->
|
|
<div class="box toggle-monster-only character-beasts">
|
|
<div class="beasts-grid">
|
|
<div class="beasts-box header-top">
|
|
<h1 data-i18n="beasts-u">BEASTS</h1>
|
|
</div>
|
|
<div class="beasts-box1 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="beasts-box2 column-header-bottom">
|
|
<span data-i18n="strength-abbr-u">STR</span>
|
|
</div>
|
|
<div class="beasts-box3 column-header-bottom">
|
|
<span data-i18n="agility-abbr-u">AGI</span>
|
|
</div>
|
|
<div class="beasts-box4 column-header-bottom">
|
|
<span data-i18n="mounted">Mounted</span>
|
|
</div>
|
|
<div class="beasts-box5 column-header-bottom">
|
|
<span data-i18n="carry">Carry</span>
|
|
</div>
|
|
<div class="beasts-box6 column-header-bottom">
|
|
<span data-i18n="encumbrance-current-abbr">Current Encum</span>
|
|
</div>
|
|
<div class="beasts-box7 column-header-bottom">
|
|
<span data-i18n="notes">Notes</span>
|
|
</div>
|
|
<div class="beasts-box8">
|
|
<fieldset class="repeating_beasts">
|
|
<div class="beasts-grid">
|
|
<input class="beasts-box1 input" type="text" name="attr_beast_type" value="" data-i18n-placeholder="type-name" placeholder="Type/Name" title="@{repeating_beasts_$X_beast_type}" />
|
|
<input class="beasts-box2 input-number" type="number" name="attr_beast_strength" value="0" min="0" title="@{repeating_beasts_$X_beast_strength}" />
|
|
<input class="beasts-box3 input-number" type="number" name="attr_beast_agility" value="0" min="0" title="@{repeating_beasts_$X_beast_agility}" />
|
|
<input class="beasts-box4 input" type="checkbox" name="attr_beast_mounted" value="1" title="@{repeating_beasts_$X_beast_mounted}" />
|
|
<span class="beasts-box5 readonly" name="attr_beast_carry" value="0" title="@{repeating_beasts_$X_beast_carry} = mount_strength x2, unmounted x4">0</span>
|
|
<input class="beasts-box6 input input-number-center" type="number" name="attr_beast_encumbrance" title="@{repeating_beasts_$X_beast_encumbrance}" value="0" min="0" step="0.5" />
|
|
<textarea class="beasts-box7 input-textarea" name="attr_beast_notes" data-i18n-placeholder="gear-notes" placeholder="Gear/Notes" title="@{repeating_beasts_$X_beast_notes}"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Relationships -->
|
|
<div class="box toggle-monster-only character-relationships">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box1 header-top">
|
|
<h1 data-i18n="relationships-u">RELATIONSHIPS</h1>
|
|
</div>
|
|
<div class="relationships-box2">
|
|
<fieldset class="repeating_relationships">
|
|
<div class="relationships-grid">
|
|
<div class="relationships-box3">
|
|
<input class="input" type="text" name="attr_pc_name" value="" title="@{repeating_relationships_$X_pc_name}" data-i18n-placeholder="pc-name" placeholder="PC's name" />
|
|
</div>
|
|
<div class="relationships-box4">
|
|
<textarea class="input-textarea medium" name="attr_pc_description" title="@{repeating_relationships_$X_pc_description}" data-i18n-placeholder="relationship-description" placeholder="Describe the relationship."></textarea>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Spells -->
|
|
<div class="box toggle-monster-only character-spells">
|
|
<div class="spells-grid">
|
|
<div class="spells-box header-top">
|
|
<h1 data-i18n="spell-u">SPELLS</h1>
|
|
</div>
|
|
<div class="spells-box0 column-header-bottom"><span class="rotate-45" data-i18n-title="roll-safe-casting" data-i18n="safe-casting">Safe</span></div>
|
|
<div class="spells-box1 column-header-bottom"><span class="rotate-45" data-i18n-title="roll-overcharged" data-i18n="overcharging-abbr">Over</span></div>
|
|
<div class="spells-box2 column-header-bottom">
|
|
<span data-i18n="willpower-abbr" data-i18n-title="include-willpower">WP</span>
|
|
</div>
|
|
<div class="spells-box3 column-header-bottom">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="spells-box4 column-header-bottom">
|
|
<span data-i18n="talent-rank">Talent Rank</span>
|
|
</div>
|
|
<div class="spells-box5 column-header-bottom">
|
|
<span data-i18n="rank-spell">Spell Rank</span>
|
|
</div>
|
|
<div class="spells-box6 column-header-bottom">
|
|
<span data-i18n="type">Type</span>
|
|
</div>
|
|
<div class="spells-box7 column-header-bottom">
|
|
<span data-i18n="use-ingredients-abbr" data-i18n-title="include-ingredients">Use Ingr</span>
|
|
</div>
|
|
<div class="spells-box8 column-header-bottom">
|
|
<span data-i18n="use-grimoire-abbr" data-i18n-title="include-grimoire">Use Grim</span>
|
|
</div>
|
|
<div class="spells-box9">
|
|
<fieldset class="repeating_spells">
|
|
<div class="spells-grid">
|
|
<input class="expand" type="checkbox" name="attr_expand" value="1" data-i18n-title="show-hide" title="show/hide" checked /><span></span>
|
|
<button class="spells-box0 roll-button" type="action" name="act_spell-roll" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<button class="spells-box1 roll-button" type="action" name="act_spell-rollovercharge" data-i18n-title="update-dice-pool" title="Update the dice pool. Use the 'Roll' button to roll the dice.">t</button>
|
|
<button class="rollme" type="roll" name="roll_the_dice_local" data-i18n-title="roll-dice" title="Roll the Dice!" value="@{the_dice_local_macro}"> <span data-i18n="roll">Roll</span> </button>
|
|
<input class="spells-box2 input small-width" type="number" name="attr_spell_willpower" value="1" min="1" title="@{repeating_spells_$X_spell_willpower}" />
|
|
<input class="spells-box3 input" type="text" name="attr_spell_name" value="" title="@{repeating_spells_$X_spell_name}" data-i18n-placeholder="spell-name" placeholder="Spell's name" />
|
|
<select class="spells-box4 input small-width" name="attr_spell_caster_rank" title="@{repeating_spells_$X_spell_caster_rank}">
|
|
<option value="1" selected>1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
</select>
|
|
<select class="spells-box5 input small-width" name="attr_spell_rank" title="@{repeating_spells_$X_spell_rank}">
|
|
<option value="1" selected>1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
</select>
|
|
<select class="spells-box6 input" name="attr_spell_type" title="@{repeating_spells_$X_spell_type}">
|
|
<option value="spell" data-i18n="spell" selected>Spell</option>
|
|
<option value="powerword" data-i18n="power-word">Power Word</option>
|
|
<option value="ritual" data-i18n="ritual">Ritual</option>
|
|
</select>
|
|
<input class="spells-box7 input" type="checkbox" name="attr_spell_ingredients_included" value="1" title="@{repeating_spells_$X_spell_ingredients_included}" />
|
|
<input class="spells-box8 input" type="checkbox" name="attr_spell_grimoire" value="1" title="@{repeating_spells_$X_spell_grimoire}" />
|
|
<!-- 2nd Row -->
|
|
<div class="spells-row2">
|
|
<span class="label" data-i18n="range">Range</span>
|
|
<select class="input" name="attr_spell_range" title="@{repeating_spells_$X_spell_range}">
|
|
<option value="Personal" selected data-i18n="personal">Personal</option>
|
|
<option value="Arm's L." data-i18n="arms-length">Arm's Length</option>
|
|
<option value="Short" data-i18n="short">Short</option>
|
|
<option value="Near" data-i18n="near">Near</option>
|
|
<option value="Distant" data-i18n="distant">Distant</option>
|
|
</select>
|
|
<span class="label" data-i18n="duration">Duration</span>
|
|
<input class="input" type="text" name="attr_spell_duration" value="" title="@{repeating_spells_$X_spell_duration}" />
|
|
<span class="label" data-i18n="ingredients">Ingredients</span>
|
|
<input class="input" type="text" name="attr_spell_ingredients" value="" title="@{repeating_spells_$X_spell_ingredients}" />
|
|
<textarea class="spells-box9 input-textarea tall" name="attr_spell_description" title="@{repeating_spells_$X_spell_description}" data-i18n-placeholder="description" placeholder="Description."></textarea>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Notes -->
|
|
<div class="box character-notes">
|
|
<div class="notes-grid">
|
|
<div class="notes-box1 header-top">
|
|
<h1 data-i18n="notes-u">NOTES</h1>
|
|
</div>
|
|
<div class="notes-box2">
|
|
<fieldset class="repeating_notes">
|
|
<div class="notes-grid">
|
|
<div class="notes-box3">
|
|
<button class="roll-button" type="roll" name="roll_notes" title="%{repeating_notes_$X_notes}" value="@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{notes}}} {{subtitle=@{note_name}}} {{free-text=@{note_description}}}"></button>
|
|
</div>
|
|
<div class="notes-box4">
|
|
<input class="input" type="text" name="attr_note_name" value="" title="@{repeating_notes_$X_note_name}" data-i18n-placeholder="note-name" placeholder="Note's name" />
|
|
</div>
|
|
<div class="notes-box5">
|
|
<textarea class="input-textarea" name="attr_note_description" title="@{repeating_notes_$X_note_description}" data-i18n-placeholder="note-description" placeholder="Note's description."></textarea>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Stronghold -->
|
|
<div class="tab-contents stronghold">
|
|
<div class="stronghold-grid">
|
|
<div class="box stronghold-details">
|
|
<div class="stronghold-details-grid">
|
|
<div class="stronghold-details-box1">
|
|
<h1 data-i18n="stronghold-u" style="margin-top: 10px;">
|
|
STRONGHOLD
|
|
</h1>
|
|
</div>
|
|
<div class="stronghold-details-box2">
|
|
<span class="label" data-i18n="location">Location</span>
|
|
</div>
|
|
<div class="stronghold-details-box3">
|
|
<input class="input" type="text" name="attr_stronghold_location" value="" title="@{stronghold_location}" style="width: 65%;" />
|
|
</div>
|
|
|
|
<div class="stronghold-details-box4">
|
|
<span class="label" data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="stronghold-details-box5">
|
|
<input class="input" type="text" name="attr_stronghold_name" value="" title="@{stronghold_name}" style="width: 85%;" />
|
|
</div>
|
|
|
|
<div class="stronghold-details-box6">
|
|
<span class="label" data-i18n="defense-rating">Defense Rating</span>
|
|
</div>
|
|
<div class="stronghold-details-box7">
|
|
<input class="input-number" type="number" name="attr_stronghold_dr" value="0" title="@{stronghold_dr}" style="width: 25%;" />
|
|
</div>
|
|
|
|
<div class="stronghold-details-box8">
|
|
<span class="label" data-i18n="description">Description</span>
|
|
<textarea class="input-textarea" name="attr_stronghold_description" title="@{stronghold_description}"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box stronghold-functions">
|
|
<div class="stronghold-functions-grid">
|
|
<div class="stronghold-functions-box header-top">
|
|
<h1 data-i18n="function-u">FUNCTIONS</h1>
|
|
</div>
|
|
<div class="stronghold-functions-box1 column-header-bottom">
|
|
<span data-i18n="name">Name</span>
|
|
</div>
|
|
<div class="stronghold-functions-box2 column-header-bottom">
|
|
<span data-i18n="number-abbr">Num</span>
|
|
</div>
|
|
<div class="stronghold-functions-box3 column-header-bottom">
|
|
<span data-i18n="production-outcome">Production/Outcome</span>
|
|
</div>
|
|
<div class="stronghold-functions-box4">
|
|
<fieldset class="repeating_functions">
|
|
<div class="stronghold-functions-grid">
|
|
<input class="stronghold-functions-box1 input" type="text" name="attr_function_name" value="" title="@repeating_functions_$X_function_name}" />
|
|
<input class="stronghold-functions-box2 input-number" type="text" name="attr_function_number" value="" title="@{repeating_functions_$X_function_number}" />
|
|
<textarea class="stronghold-functions-box3 input-textarea" name="attr_function_production" title="@{repeating_functions_$X_function_production}"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box stronghold-hirelings">
|
|
<div class="stronghold-hirelings-grid">
|
|
<div class="stronghold-hirelings-box header-top">
|
|
<h1 data-i18n="hirelings-u">HIRELINGS</h1>
|
|
</div>
|
|
<div class="stronghold-hirelings-box1 column-header-bottom">
|
|
<span data-i18n="profession">Profession</span>
|
|
</div>
|
|
<div class="stronghold-hirelings-box2 column-header-bottom">
|
|
<span data-i18n="number-abbr">Num</span>
|
|
</div>
|
|
<div class="stronghold-hirelings-box3 column-header-bottom">
|
|
<span data-i18n="salary">Salary copper/day</span>
|
|
</div>
|
|
<div class="stronghold-hirelings-box4">
|
|
<fieldset class="repeating_hirelings">
|
|
<div class="stronghold-hirelings-grid">
|
|
<input class="stronghold-hirelings-box1 input" type="text" name="attr_hireling_name" value="" title="@{repeating_hirelings_$X_hireling_name}" />
|
|
<input class="stronghold-hirelings-box2 input-number" type="number" name="attr_hireling_number" value="1" step="1" min="0" title="@{repeating_hirelings_$X_hireling_number}" />
|
|
<input class="stronghold-hirelings-box3 input-number" type="number" name="attr_hireling_salary" value="0" step="1" min="0" title="@{repeating_hirelings_$X_hireling_salary}" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="stronghold-hirelings-box5">
|
|
<div class="stronghold-hirelings-grid">
|
|
<span class="stronghold-hirelings-box2 label" data-i18n="total">Total</span>
|
|
<span class="stronghold-hirelings-box3 center readonly" name="attr_hirelings_cost" value="0" title="@{hirelings_cost}">0</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="box stronghold-stockpile">
|
|
<input type="checkbox" class="stockpile-order-group hidden" name="attr_stockpile_order_group" value="1" checked />
|
|
<div class="stronghold-stockpile-grid" data-i18n-list="stockpile-list">
|
|
<div class="stronghold-stockpile-box1 header-top">
|
|
<h1 data-i18n="stockpile-u">STOCKPILE</h1>
|
|
</div>
|
|
<div class="stronghold-stockpile-box2 column-header-bottom">
|
|
<span data-i18n="units">Units</span>
|
|
</div>
|
|
<div class="stronghold-stockpile-box3 column-header-bottom">
|
|
<span data-i18n="units">Units</span>
|
|
</div>
|
|
<div class="stronghold-stockpile-box4 column-header-bottom">
|
|
<span data-i18n="units">Units</span>
|
|
</div>
|
|
<span class="stockpile-row" data-i18n-list-item="iron-ore"><span data-i18n="iron-ore" class="label">Iron Ore</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_iron_ore" value="0" min="0" title="@{stockpile_iron_ore}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="fur"><span data-i18n="fur" class="label">Fur</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_fur" value="0" min="0" title="@{stockpile_fur}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="flour"><span data-i18n="flour" class="label">Flour</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_flour" value="0" min="0" title="@{stockpile_flour}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="iron"><span data-i18n="iron" class="label">Iron</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_iron" value="0" min="0" title="@{stockpile_iron}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="leather"><span data-i18n="leather" class="label">Leather</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_leather" value="0" min="0" title="@{stockpile_leather}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="grain"><span data-i18n="grain" class="label">Grain</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_grain" value="0" min="0" title="@{stockpile_grain}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="silver"><span data-i18n="silver" class="label">Silver</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_silver" value="0" min="0" title="@{stockpile_silver}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="cloth"><span data-i18n="cloth" class="label">Cloth</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_cloth" value="0" min="0" title="@{stockpile_cloth}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="meat"><span data-i18n="meat" class="label">Meat</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_meat" value="0" min="0" title="@{stockpile_meat}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="gold"><span data-i18n="gold" class="label">Gold</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_gold" value="0" min="0" title="@{stockpile_gold}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="wool"><span data-i18n="wool" class="label">Wool</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_wool" value="0" min="0" title="@{stockpile_wool}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="fish"><span data-i18n="fish" class="label">Fish</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_fish" value="0" min="0" title="@{stockpile_fish}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="stone"><span data-i18n="stone" class="label">Stone</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_stone" value="0" min="0" title="@{stockpile_stone}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="food"><span data-i18n="food" class="label">Food</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_food" value="0" min="0" title="@{stockpile_food}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="vegetables"><span data-i18n="vegetables" class="label">Vegetables</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_vegetables" value="0" min="0" title="@{stockpile_vegetables}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="glass"><span data-i18n="glass" class="label">Glass</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_glass" value="0" min="0" title="@{stockpile_glass}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="bread"><span data-i18n="bread" class="label">Bread</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_bread" value="0" min="0" title="@{stockpile_bread}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="tallow"><span data-i18n="tallow" class="label">Tallow</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_tallow" value="0" min="0" title="@{stockpile_tallow}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="wood"><span data-i18n="wood" class="label">Wood</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_wood" value="0" min="0" title="@{stockpile_wood}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="water"><span data-i18n="water" class="label">Water</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_water" value="0" min="0" title="@{stockpile_water}" /></span>
|
|
<span class="stockpile-row" data-i18n-list-item="herbs"><span data-i18n="herbs" class="label">Herbs</span>
|
|
<input class="input-number" type="number" name="attr_stockpile_herbs" value="0" min="0" title="@{stockpile_herbs}" /></span>
|
|
</div>
|
|
<div class="stronghold-stockpile-grid">
|
|
<fieldset class="repeating_stronghold-stockpile">
|
|
<span class="stockpile-row">
|
|
<input class="input" type="text" name="attr_stockpile_custom" value="" title="@{repeating_stronghold-stockpile_$X_stockpile_custom}" data-i18n-placeholder="custom" placeholder="Custom"/>
|
|
<input class="input-number" type="number" name="attr_stockpile_custom_amount" value="0" min="0" title="@{repeating_stronghold-stockpile_$X_stockpile_custom_amount}" />
|
|
</span>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="box stronghold-notes">
|
|
<div class="stronghold-notes-grid">
|
|
<div class="stronghold-notes-box1 header-top">
|
|
<h1 data-i18n="stronghold-notes-u">STRONGHOLD NOTES</h1>
|
|
</div>
|
|
<textarea class="stronghold-notes-box2 input-textarea" name="attr_stronghold_notes" title="@{stronghold_notes}"></textarea>
|
|
</div>
|
|
<fieldset class="repeating_stronghold-notes">
|
|
<div class="stronghold-notes-grid">
|
|
<textarea class="stronghold-notes-box2 input-textarea" name="attr_stronghold_notes" title="@{repeating_stronghold-notes_$X_stronghold_notes}"></textarea>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sheet Settings -->
|
|
<div class="tab-contents settings">
|
|
<div class="settings-options">
|
|
<div>
|
|
<span data-i18n="show-hide-label">Show/Hide:</span>
|
|
<span class="inline-label"><span data-i18n="mount">Mount</span> <input type="checkbox" class="display-mount" name="attr_display_mount_flag" value="1" checked /></span>
|
|
<span class="inline-label"><span data-i18n="cart-wagon-other">Cart/Wagon/Other</span> <input type="checkbox" class="display-cart" name="attr_display_cart_flag" value="1" /></span>
|
|
<span class="inline-label"><span data-i18n="beasts">Beasts</span> <input type="checkbox" class="display-beasts" name="attr_display_beasts_flag" value="1" /></span>
|
|
<span class="inline-label"><span data-i18n="spells">Spells</span> <input type="checkbox" class="display-spells" name="attr_display_spells_flag" value="1" checked /></span>
|
|
</div>
|
|
<input type="hidden" name="attr_translation_whisper_query" value="whisper-query" />
|
|
<input type="hidden" name="attr_translation_whisper_api_query" value="whisper_api-query" />
|
|
<div>
|
|
<span data-i18n="whisper-options">Whisper Options:</span>
|
|
<select name="attr_whisper_option" title="@{whisper_option}">
|
|
<option value="" data-i18n="whisper-nothing" selected>Do not whisper rolls(default).</option>
|
|
<option value="/w gm" data-i18n="whisper-rolls">Whisper all rolls to the GM.</option>
|
|
<option value="@{translation_whisper_macro_query}" data-i18n="whisper-query">Use a query.</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<span data-i18n="whisper-options-api">API Whisper Options:</span>
|
|
<select name="attr_whisper_option_api" title="@{whisper_option_api}">
|
|
<option value="!forl" data-i18n="whisper-nothing" selected>Do not whisper rolls(default).</option>
|
|
<option value="!wforl" data-i18n="whisper-rolls">Whisper all rolls to the GM.</option>
|
|
<option value="@{translation_whisper_api_macro_query}" data-i18n="whisper-query">Use a query.</option>
|
|
</select>
|
|
</div>
|
|
<!-- used by sheetworker to translate query -->
|
|
<span class="hidden" name="attr_translation_whisper_macro_query" value=""></span>
|
|
<span class="hidden" name="attr_translation_whisper_api_macro_query" value=""></span>
|
|
<span class="hidden" data-i18n="whisper-query">Whisper roll?</span>
|
|
<span class="hidden" data-i18n="yes">yes</span>
|
|
<span class="hidden" data-i18n="no">no</span>
|
|
<div>
|
|
<span class="inline-label">
|
|
<span data-i18n="sort-skills">Sort Skills by Attribute:</span>
|
|
<input type="checkbox" name="attr_skill_order_group" value="1" title="@{skill_order_group}" />
|
|
</span>
|
|
</div>
|
|
<div>
|
|
<span class="inline-label">
|
|
<span data-i18n="sort-stockpile">Sort Stockpile resources alphabetically:</span>
|
|
<input type="checkbox" name="attr_stockpile_order_group" value="1" title="@{stockpile_order_group}" checked />
|
|
</span>
|
|
</div>
|
|
<!-- Talent and Skill totals to help track integrity -->
|
|
<div class="rank-totals-grid">
|
|
<details>
|
|
<summary class="nav-after">
|
|
<span data-i18n="rank-level-totals">Rank & Level Totals</span>
|
|
</summary>
|
|
<div class="talent-ranks expanded-area">
|
|
<span class="label" data-i18n="rank">Rank</span>
|
|
<span>1</span>
|
|
<span>2</span>
|
|
<span>3</span>
|
|
<span>4</span>
|
|
<span>5</span>
|
|
<span>6</span>
|
|
<span></span>
|
|
<span class="label" data-i18n="level">Level</span>
|
|
<span>1st</span>
|
|
<span>2nd</span>
|
|
<span>3rd</span>
|
|
<span>4th</span>
|
|
<span>5th</span>
|
|
<span>6th</span>
|
|
<!-- Talents Row-->
|
|
<span class="label" data-i18n="talents">Talents</span>
|
|
<span><input type="text" name="attr_talent_rank1_total" value="0" title="@{talent_rank1_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_talent_rank2_total" value="0" title="@{talent_rank2_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_talent_rank3_total" value="0" title="@{talent_rank3_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_talent_rank4_total" value="0" title="@{talent_rank4_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_talent_rank5_total" value="0" title="@{talent_rank5_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_talent_rank6_total" value="0" title="@{talent_rank6_total}" readonly=""></span>
|
|
<span></span>
|
|
<!-- Skills Row-->
|
|
<span class="label" data-i18n="skills">Skills</span>
|
|
<span><input type="text" name="attr_skill_level1_total" value="0" title="@{skill_level1_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_skill_level2_total" value="0" title="@{skill_level2_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_skill_level3_total" value="0" title="@{skill_level3_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_skill_level4_total" value="0" title="@{skill_level4_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_skill_level5_total" value="0" title="@{skill_level5_total}" readonly=""></span>
|
|
<span><input type="text" name="attr_skill_level6_total" value="0" title="@{skill_level6_total}" readonly=""></span>
|
|
</div>
|
|
</details>
|
|
</div>
|
|
<!-- Background -->
|
|
<div>
|
|
<span data-i18n="sheet-background">Sheet Background</span>
|
|
<select name="attr_background" title="@{background}" style="width:8em;">
|
|
<option value="1" data-i18n="nothing">Nothing</option>
|
|
<option value="2" data-i18n="background-parchment">Parchment</option>
|
|
<option value="3" data-i18n="background-floral-white">Floral White</option>
|
|
<option value="4" data-i18n="background-light-gray">Light Gray</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ROLL TEMPLATES -->
|
|
<rolltemplate class="sheet-rolltemplate-forbiddenlands">
|
|
<div class="template-wrap">
|
|
<!-- TOP HEADER -->
|
|
<div class="template-grid">
|
|
<!-- center rolls -->
|
|
{{#pride-flag}}
|
|
<div class="template-grid-item template-span-six pride-flag"></div>
|
|
{{/pride-flag}}
|
|
{{#consumable-flag}}
|
|
<div class="template-grid-item template-span-six consumable-flag"></div>
|
|
{{/consumable-flag}}
|
|
<!-- hide dice rows below-->
|
|
{{#dice-label-flag}}
|
|
<div class="template-grid-item template-span-six dice-label-flag"></div>
|
|
{{/dice-label-flag}}
|
|
|
|
<div class="template-grid-item template-span-six template-header">
|
|
{{#character_name}}
|
|
<div class="template-grid-item">
|
|
{{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}}
|
|
{{^character_id}}{{character_name}}{{/character_id}}
|
|
</div>
|
|
<div class="template-grid-item template-capstone">
|
|
◇
|
|
</div>
|
|
{{/character_name}}
|
|
{{#name}}
|
|
<div class="template-grid-item">
|
|
{{#rollGreater() pushroll 0}}
|
|
<span>
|
|
<span data-i18n="pushed">Pushed</span>
|
|
{{#rollGreater() pushroll 1}}<span class="results push-total">{{pushroll}}</span>{{/rollGreater() pushroll 1}}
|
|
</span>
|
|
{{/rollGreater() pushroll 0}}
|
|
{{#name_link}}<span>[{{name}}]({{name_link}})</span>{{/name_link}}{{^name_link}}<span>{{name}}</span>{{/name_link}}
|
|
</div>
|
|
{{/name}}
|
|
</div>
|
|
|
|
{{#subtitle}}
|
|
<div class="template-grid-item template-span-six template-subtitle">
|
|
<span>{{subtitle}}</span>
|
|
</div>
|
|
{{/subtitle}}
|
|
{{#subtitle2}}
|
|
<div class="template-grid-item template-span-six template-subtitle">
|
|
<span>{{subtitle2}}</span>
|
|
</div>
|
|
{{/subtitle2}}
|
|
|
|
<!-- image insert -->
|
|
{{#imageInsert}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span>{{imageInsert}}</span>
|
|
</div>
|
|
{{/imageInsert}}
|
|
|
|
</div>
|
|
<!--- DICE POOL -->
|
|
|
|
<!--- BASE DICE --->
|
|
<div class="template-grid">
|
|
{{#attribute-die-one}}
|
|
<div class="template-grid-item template-span-left">
|
|
<span class="template-stacked-text small-caps" data-i18n="base-dice">Base Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-one 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-one 1}} {{#rollBetween() attribute-roll-one 2 5}} {{attribute-roll-one}}
|
|
{{/rollBetween() attribute-roll-one 2 5}}
|
|
{{#rollTotal() attribute-roll-one 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-one 6}}
|
|
</div>
|
|
{{/attribute-die-one}}
|
|
{{#rollTotal() attribute-die-two 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-two 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-two 1}}
|
|
{{#rollBetween() attribute-roll-two 2 5}} {{attribute-roll-two}}
|
|
{{/rollBetween() attribute-roll-two 2 5}}
|
|
{{#rollTotal() attribute-roll-two 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-two 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-two 1}}
|
|
{{#rollTotal() attribute-die-three 1}}
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-three 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-three 1}}
|
|
{{#rollBetween() attribute-roll-three 2 5}} {{attribute-roll-three}} {{/rollBetween() attribute-roll-three 2 5}}
|
|
{{#rollTotal() attribute-roll-three 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-three 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-three 1}}
|
|
{{#rollTotal() attribute-die-four 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-four 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-four 1}}
|
|
{{#rollBetween() attribute-roll-four 2 5}} {{attribute-roll-four}} {{/rollBetween() attribute-roll-four 2 5}}
|
|
{{#rollTotal() attribute-roll-four 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-four 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-four 1}}
|
|
{{#rollTotal() attribute-die-five 1}}
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-five 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-five 1}}
|
|
{{#rollBetween() attribute-roll-five 2 5}} {{attribute-roll-five}} {{/rollBetween() attribute-roll-five 2 5}}
|
|
{{#rollTotal() attribute-roll-five 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-five 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-five 1}}
|
|
{{#rollTotal() attribute-die-six 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-six 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-six 1}}
|
|
{{#rollBetween() attribute-roll-six 2 5}} {{attribute-roll-six}} {{/rollBetween() attribute-roll-six 2 5}}
|
|
{{#rollTotal() attribute-roll-six 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-six 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-six 1}}
|
|
{{#rollTotal() attribute-die-seven 1}}
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-seven 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-seven 1}}
|
|
{{#rollBetween() attribute-roll-seven 2 5}} {{attribute-roll-seven}} {{/rollBetween() attribute-roll-seven 2 5}}
|
|
{{#rollTotal() attribute-roll-seven 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-seven 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-seven 1}}
|
|
{{#rollTotal() attribute-die-eight 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-eight 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-eight 1}}
|
|
{{#rollBetween() attribute-roll-eight 2 5}} {{attribute-roll-eight}}
|
|
{{/rollBetween() attribute-roll-eight 2 5}}
|
|
{{#rollTotal() attribute-roll-eight 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-eight 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-eight 1}}
|
|
{{#rollTotal() attribute-die-nine 1}}
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-nine 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-nine 1}}
|
|
{{#rollBetween() attribute-roll-nine 2 5}} {{attribute-roll-nine}}
|
|
{{/rollBetween() attribute-roll-nine 2 5}}
|
|
{{#rollTotal() attribute-roll-nine 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-nine 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-nine 1}}
|
|
{{#rollTotal() attribute-die-ten 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-ten 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-ten 1}}
|
|
{{#rollBetween() attribute-roll-ten 2 5}} {{attribute-roll-ten}}
|
|
{{/rollBetween() attribute-roll-ten 2 5}}
|
|
{{#rollTotal() attribute-roll-ten 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-ten 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-ten 1}}
|
|
{{#rollTotal() attribute-die-eleven 1}}
|
|
<div class="template-grid-item template-span-one template-white-dice">
|
|
{{#rollTotal() attribute-roll-eleven 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-eleven 1}}
|
|
{{#rollBetween() attribute-roll-eleven 2 5}}
|
|
{{attribute-roll-eleven}} {{/rollBetween() attribute-roll-eleven 2 5}}
|
|
{{#rollTotal() attribute-roll-eleven 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-eleven 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-eleven 1}}
|
|
{{#rollTotal() attribute-die-twelve 1}}
|
|
<div class="template-grid-item template-span-two template-white-dice">
|
|
{{#rollTotal() attribute-roll-twelve 1}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_black.png" alt="Bane" class="template-bane" />
|
|
{{/rollTotal() attribute-roll-twelve 1}}
|
|
{{#rollBetween() attribute-roll-twelve 2 5}}
|
|
{{attribute-roll-twelve}} {{/rollBetween() attribute-roll-twelve 2 5}}
|
|
{{#rollTotal() attribute-roll-twelve 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_black.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() attribute-roll-twelve 6}}
|
|
</div>
|
|
{{/rollTotal() attribute-die-twelve 1}}
|
|
</div>
|
|
|
|
<!--- BEGIN SKILL DICE --->
|
|
<div class="template-grid">
|
|
{{#rollTotal() skill-die-one 1}}
|
|
<div class="template-grid-item template-span-center">
|
|
<span class="template-stacked-text small-caps" data-i18n="skill-dice">Skill Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-three template-maroon-dice">
|
|
{{#rollBetween() skill-roll-one 1 5}} {{skill-roll-one}} {{/rollBetween() skill-roll-one 1 5}}
|
|
{{#rollTotal() skill-roll-one 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-one 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-one 1}}
|
|
{{#rollTotal() skill-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-maroon-dice">
|
|
{{#rollBetween() skill-roll-two 1 5}} {{skill-roll-two}} {{/rollBetween() skill-roll-two 1 5}}
|
|
{{#rollTotal() skill-roll-two 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-two 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-two 1}}
|
|
{{#rollTotal() negative-die-one 1}}
|
|
<div class="template-grid-item template-span-center">
|
|
<span class="template-stacked-text small-caps" data-i18n="negative-dice">Negative Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-three template-purple-dice">
|
|
{{#rollBetween() negative-roll-one 1 5}} {{negative-roll-one}} {{/rollBetween() negative-roll-one 1 5}}
|
|
{{#rollTotal() negative-roll-one 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() negative-roll-one 6}}
|
|
</div>
|
|
{{/rollTotal() negative-die-one 1}}
|
|
{{#rollTotal() negative-die-two 1}}
|
|
<div class="template-grid-item template-span-four template-purple-dice">
|
|
{{#rollBetween() negative-roll-two 1 5}} {{negative-roll-two}} {{/rollBetween() negative-roll-two 1 5}}
|
|
{{#rollTotal() negative-roll-two 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() negative-roll-two 6}}
|
|
</div>
|
|
{{/rollTotal() negative-die-two 1}}
|
|
{{#rollTotal() skill-die-three 1}}
|
|
<div class="template-grid-item template-span-three template-maroon-dice">
|
|
{{#rollBetween() skill-roll-three 1 5}} {{skill-roll-three}} {{/rollBetween() skill-roll-three 1 5}}
|
|
{{#rollTotal() skill-roll-three 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-three 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-three 1}}
|
|
{{#rollTotal() skill-die-four 1}}
|
|
<div class="template-grid-item template-span-four template-maroon-dice">
|
|
{{#rollBetween() skill-roll-four 1 5}} {{skill-roll-four}} {{/rollBetween() skill-roll-four 1 5}}
|
|
{{#rollTotal() skill-roll-four 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-four 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-four 1}}
|
|
{{#rollTotal() negative-die-three 1}}
|
|
<div class="template-grid-item template-span-three template-purple-dice">
|
|
{{#rollBetween() negative-roll-three 1 5}} {{negative-roll-three}} {{/rollBetween() negative-roll-three 1 5}}
|
|
{{#rollTotal() negative-roll-three 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() negative-roll-three 6}}
|
|
</div>
|
|
{{/rollTotal() negative-die-three 1}}
|
|
{{#rollTotal() skill-die-five 1}}
|
|
<div class="template-grid-item template-span-three template-maroon-dice">
|
|
{{#rollBetween() skill-roll-five 1 5}} {{skill-roll-five}} {{/rollBetween() skill-roll-five 1 5}}
|
|
{{#rollTotal() skill-roll-five 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-five 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-five 1}}
|
|
{{#rollTotal() skill-die-six 1}}
|
|
<div class="template-grid-item template-span-four template-maroon-dice">
|
|
{{#rollBetween() skill-roll-six 1 5}} {{skill-roll-six}} {{/rollBetween() skill-roll-six 1 5}}
|
|
{{#rollTotal() skill-roll-six 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-six 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-six 1}}
|
|
{{#rollTotal() skill-die-seven 1}}
|
|
<div class="template-grid-item template-span-three template-maroon-dice">
|
|
{{#rollBetween() skill-roll-seven 1 5}} {{skill-roll-seven}} {{/rollBetween() skill-roll-seven 1 5}}
|
|
{{#rollTotal() skill-roll-seven 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-seven 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-seven 1}} {{#rollTotal() skill-die-eight 1}}
|
|
<div class="template-grid-item template-span-four template-maroon-dice">
|
|
{{#rollBetween() skill-roll-eight 1 5}} {{skill-roll-eight}} {{/rollBetween() skill-roll-eight 1 5}}
|
|
{{#rollTotal() skill-roll-eight 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-eight 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-eight 1}}
|
|
{{#rollTotal() skill-die-nine 1}}
|
|
<div class="template-grid-item template-span-three template-maroon-dice">
|
|
{{#rollBetween() skill-roll-nine 1 5}} {{skill-roll-nine}} {{/rollBetween() skill-roll-nine 1 5}}
|
|
{{#rollTotal() skill-roll-nine 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-nine 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-nine 1}} {{#rollTotal() skill-die-ten 1}}
|
|
<div class="template-grid-item template-span-four template-maroon-dice">
|
|
{{#rollBetween() skill-roll-ten 1 5}} {{skill-roll-ten}} {{/rollBetween() skill-roll-ten 1 5}}
|
|
{{#rollTotal() skill-roll-ten 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() skill-roll-ten 6}}
|
|
</div>
|
|
{{/rollTotal() skill-die-ten 1}}
|
|
</div>
|
|
|
|
<!--- BEGIN GEAR DICE --->
|
|
<div class="template-grid">
|
|
{{#rollTotal() gear-die-one 1}}
|
|
<div class="template-grid-item template-span-right">
|
|
<span class="template-stacked-text small-caps" data-i18n="gear-dice">Gear Dice</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-one 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-one 1}}
|
|
{{#rollBetween() gear-roll-one 2 5}} {{gear-roll-one}} {{/rollBetween() gear-roll-one 2 5}}
|
|
{{#rollTotal() gear-roll-one 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-one 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-one 1}}
|
|
{{#rollTotal() gear-die-two 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-two 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-two 1}}
|
|
{{#rollBetween() gear-roll-two 2 5}} {{gear-roll-two}} {{/rollBetween() gear-roll-two 2 5}}
|
|
{{#rollTotal() gear-roll-two 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-two 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-two 1}}
|
|
{{#rollTotal() gear-die-three 1}}
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-three 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-three 1}}
|
|
{{#rollBetween() gear-roll-three 2 5}} {{gear-roll-three}} {{/rollBetween() gear-roll-three 2 5}}
|
|
{{#rollTotal() gear-roll-three 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-three 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-three 1}}
|
|
{{#rollTotal() gear-die-four 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-four 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-four 1}} {{#rollBetween() gear-roll-four 2 5}} {{gear-roll-four}} {{/rollBetween() gear-roll-four 2 5}}
|
|
{{#rollTotal() gear-roll-four 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-four 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-four 1}}
|
|
{{#rollTotal() gear-die-five 1}}
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-five 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-five 1}}
|
|
{{#rollBetween() gear-roll-five 2 5}} {{gear-roll-five}} {{/rollBetween() gear-roll-five 2 5}}
|
|
{{#rollTotal() gear-roll-five 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-five 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-five 1}}
|
|
{{#rollTotal() gear-die-six 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-six 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-six 1}}
|
|
{{#rollBetween() gear-roll-six 2 5}} {{gear-roll-six}} {{/rollBetween() gear-roll-six 2 5}}
|
|
{{#rollTotal() gear-roll-six 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-six 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-six 1}}
|
|
{{#rollTotal() gear-die-seven 1}}
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-seven 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-seven 1}}
|
|
{{#rollBetween() gear-roll-seven 2 5}} {{gear-roll-seven}}
|
|
{{/rollBetween() gear-roll-seven 2 5}}
|
|
{{#rollTotal() gear-roll-seven 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-seven 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-seven 1}}
|
|
{{#rollTotal() gear-die-eight 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-eight 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-eight 1}} {{#rollBetween() gear-roll-eight 2 5}} {{gear-roll-eight}}
|
|
{{/rollBetween() gear-roll-eight 2 5}}
|
|
{{#rollTotal() gear-roll-eight 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-eight 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-eight 1}}
|
|
{{#rollTotal() gear-die-nine 1}}
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-nine 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-nine 1}}
|
|
{{#rollBetween() gear-roll-nine 2 5}} {{gear-roll-nine}}
|
|
{{/rollBetween() gear-roll-nine 2 5}}
|
|
{{#rollTotal() gear-roll-nine 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-nine 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-nine 1}}
|
|
{{#rollTotal() gear-die-ten 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-ten 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-ten 1}}
|
|
{{#rollBetween() gear-roll-ten 2 5}} {{gear-roll-ten}}
|
|
{{/rollBetween() gear-roll-ten 2 5}}
|
|
{{#rollTotal() gear-roll-ten 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-ten 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-ten 1}}
|
|
{{#rollTotal() gear-die-eleven 1}}
|
|
<div class="template-grid-item template-span-five template-black-dice">
|
|
{{#rollTotal() gear-roll-eleven 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-eleven 1}}
|
|
{{#rollBetween() gear-roll-eleven 2 5}} {{gear-roll-eleven}}
|
|
{{/rollBetween() gear-roll-eleven 2 5}}
|
|
{{#rollTotal() gear-roll-eleven 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-eleven 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-eleven 1}}
|
|
{{#rollTotal() gear-die-twelve 1}}
|
|
<div class="template-grid-item template-span-shix template-black-dice">
|
|
{{#rollTotal() gear-roll-twelve 1}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollTotal() gear-roll-twelve 1}}
|
|
{{#rollBetween() gear-roll-twelve 2 5}} {{gear-roll-twelve}}
|
|
{{/rollBetween() gear-roll-twelve 2 5}}
|
|
{{#rollTotal() gear-roll-twelve 6}}
|
|
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/success_swords_white.png" alt="Success" class="template-success" />
|
|
{{/rollTotal() gear-roll-twelve 6}}
|
|
</div>
|
|
{{/rollTotal() gear-die-twelve 1}}
|
|
</div>
|
|
|
|
<!-- ARTIFACT DICE -->
|
|
<div class="template-grid">
|
|
{{#rollTotal() artifact-die-eight 1}}
|
|
<div class="template-grid-item template-span-five template-green-dice">
|
|
{{#rollBetween() artifact-roll-eight 1 5}} {{artifact-roll-eight}} {{/rollBetween() artifact-roll-eight 1 5}}
|
|
{{#rollBetween() artifact-roll-eight 6 7}}
|
|
<div class="template-artifact-1">
|
|
<span class="template-inline" data-i18n-title="success-1" title="1 Success">{{artifact-roll-eight}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-eight 6 7}}
|
|
{{#rollTotal() artifact-roll-eight 8}}
|
|
<div class="template-artifact-2">
|
|
<span class="template-inline" data-i18n-title="success-2" title="2 Successes">{{artifact-roll-eight}}</span>
|
|
</div>
|
|
{{/rollTotal() artifact-roll-eight 8}}
|
|
</div>
|
|
{{/rollTotal() artifact-die-eight 1}}
|
|
|
|
{{#rollTotal() artifact-die-ocho 1}}
|
|
<div class="template-grid-item template-span-five template-green-dice">
|
|
{{#rollBetween() artifact-roll-ocho 1 5}} {{artifact-roll-ocho}} {{/rollBetween() artifact-roll-ocho 1 5}}
|
|
{{#rollBetween() artifact-roll-ocho 6 7}}
|
|
<div class="template-artifact-1">
|
|
<span class="template-inline" data-i18n-title="success-1" title="1 Success">{{artifact-roll-ocho}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-ocho 6 7}}
|
|
{{#rollTotal() artifact-roll-ocho 8}}
|
|
<div class="template-artifact-2">
|
|
<span class="template-inline" data-i18n-title="success-2" title="2 Successes">{{artifact-roll-ocho}}</span>
|
|
</div>
|
|
{{/rollTotal() artifact-roll-ocho 8}}
|
|
</div>
|
|
{{/rollTotal() artifact-die-ocho 1}}
|
|
|
|
{{#rollTotal() artifact-die-ten 1}}
|
|
<div class="template-grid-item template-span-five template-blue-dice">
|
|
{{#rollBetween() artifact-roll-ten 1 5}} {{artifact-roll-ten}} {{/rollBetween() artifact-roll-ten 1 5}}
|
|
{{#rollBetween() artifact-roll-ten 6 7}}
|
|
<div class="template-artifact-1">
|
|
<span class="template-inline" data-i18n-title="success-1" title="1 Success">{{artifact-roll-ten}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-ten 6 7}}
|
|
{{#rollBetween() artifact-roll-ten 8 9}}
|
|
<div class="template-artifact-2">
|
|
<span class="template-inline" data-i18n-title="success-2" title="2 Success">{{artifact-roll-ten}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-ten 8 9}}
|
|
{{#rollTotal() artifact-roll-ten 10}}
|
|
<div class="template-artifact-3">
|
|
<span class="template-inline" data-i18n-title="success-3" title="3 Successes">{{artifact-roll-ten}}</span>
|
|
</div>
|
|
{{/rollTotal() artifact-roll-ten 10}}
|
|
</div>
|
|
{{/rollTotal() artifact-die-ten 1}}
|
|
|
|
{{#rollTotal() artifact-die-twelve 1}}
|
|
<div class="template-grid-item template-span-five template-orange-dice">
|
|
{{#rollBetween() artifact-roll-twelve 1 5}} {{artifact-roll-twelve}} {{/rollBetween() artifact-roll-twelve 1 5}}
|
|
{{#rollBetween() artifact-roll-twelve 6 7}}
|
|
<div class="template-artifact-1">
|
|
<span class="template-inline" data-i18n-title="success-1" title="1 Success">{{artifact-roll-twelve}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-twelve 6 7}}
|
|
|
|
{{#rollBetween() artifact-roll-twelve 8 9}}
|
|
<div class="template-artifact-2">
|
|
<span class="template-inline" data-i18n-title="success-2" title="2 Success">{{artifact-roll-twelve}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-twelve 8 9}}
|
|
{{#rollBetween() artifact-roll-twelve 10 11}}
|
|
<div class="template-artifact-3">
|
|
<span class="template-inline" data-i18n-title="success-3" title="3 Successes">{{artifact-roll-twelve}}</span>
|
|
</div>
|
|
{{/rollBetween() artifact-roll-twelve 10 11}}
|
|
{{#rollTotal() artifact-roll-twelve 12}}
|
|
<div class="template-artifact-4">
|
|
<span class="template-inline" data-i18n-title="success-4" title="4 Successes">{{artifact-roll-twelve}}</span>
|
|
</div>
|
|
{{/rollTotal() artifact-roll-twelve 12}}
|
|
</div>
|
|
{{/rollTotal() artifact-die-twelve 1}}
|
|
</div>
|
|
|
|
<!-- PUSH RESULTS -->
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-push-results">
|
|
{{#rollGreater() computed::successes -1}}<span data-i18n="successes">Successes</span>:<span class="results">{{computed::successes}}</span>{{/rollGreater() computed::successes -1}}
|
|
{{#rollGreater() computed::failures 0}}<span data-i18n="fails">Fails</span>:<span class="results">{{computed::failures}}</span>{{/rollGreater() computed::failures 0}}
|
|
{{#rollGreater() computed::gearfails 0}}<span data-i18n="gear-fails">Gear Fails</span>:<span class="results">{{computed::gearfails}}</span>{{/rollGreater() computed::gearfails 0}}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- PUSH BUTTON -->
|
|
{{#rollGreater() computed::push 0}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six push-option">
|
|
[<span data-i18n="push-the-roll">Push the Roll</span>](~{{character_name}}|push||{{computed::pushroll}})
|
|
</div>
|
|
</div>
|
|
{{/rollGreater() computed::push 0}}
|
|
|
|
<!--- CONSUMABLES -->
|
|
<!--- 0d0 -->
|
|
{{#rollTotal() consumable-die-zero 1}}
|
|
{{#rollTotal() consumable-roll-zero 0}}
|
|
<div class="template-grid">
|
|
{{#imageInsertFood}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-food-image">{{imageInsertFood}}</span>
|
|
</div>
|
|
{{/imageInsertFood}}
|
|
{{#imageInsertWater}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-water-image">{{imageInsertWater}}</span>
|
|
</div>
|
|
{{/imageInsertWater}}
|
|
{{#imageInsertArrows}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-arrows-image">{{imageInsertArrows}}</span>
|
|
</div>
|
|
{{/imageInsertArrows}}
|
|
{{#imageInsertTorches}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-torches-image">{{imageInsertTorches}}</span>
|
|
</div>
|
|
{{/imageInsertTorches}}
|
|
</div>
|
|
{{/rollTotal() consumable-roll-zero 0}}
|
|
{{/rollTotal() consumable-die-zero 1}}
|
|
<!--- d6 -->
|
|
{{#rollTotal() consumable-die-six 1}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-center-die template-purple-dice">
|
|
{{#rollBetween() consumable-roll-six 1 2}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollBetween() consumable-roll-six 1 2}}
|
|
{{#rollBetween() consumable-roll-six 3 6}}
|
|
{{consumable-roll-six}}
|
|
{{/rollBetween() consumable-roll-six 3 6}}
|
|
</div>
|
|
{{#imageInsertFood}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-food-image">{{imageInsertFood}}</span>
|
|
</div>
|
|
{{/imageInsertFood}}
|
|
{{#imageInsertWater}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-water-image">{{imageInsertWater}}</span>
|
|
</div>
|
|
{{/imageInsertWater}}
|
|
{{#imageInsertArrows}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-arrows-image">{{imageInsertArrows}}</span>
|
|
</div>
|
|
{{/imageInsertArrows}}
|
|
{{#imageInsertTorches}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-torches-image">{{imageInsertTorches}}</span>
|
|
</div>
|
|
{{/imageInsertTorches}}
|
|
</div>
|
|
{{#rollBetween() consumable-roll-six 1 2}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-footer"><span data-i18n="consumable-note"></span></div>
|
|
</div>
|
|
{{/rollBetween() consumable-roll-six 1 2}}
|
|
{{/rollTotal() consumable-die-six 1}}
|
|
<!--- d8 -->
|
|
{{#rollTotal() consumable-die-eight 1}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-center-die template-green-dice">
|
|
{{#rollBetween() consumable-roll-eight 1 2}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollBetween() consumable-roll-eight 1 2}}
|
|
{{#rollBetween() consumable-roll-eight 3 8}}
|
|
{{consumable-roll-eight}}
|
|
{{/rollBetween() consumable-roll-eight 3 8}}
|
|
</div>
|
|
{{#imageInsertFood}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-food-image">{{imageInsertFood}}</span>
|
|
</div>
|
|
{{/imageInsertFood}}
|
|
{{#imageInsertWater}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-water-image">{{imageInsertWater}}</span>
|
|
</div>
|
|
{{/imageInsertWater}}
|
|
{{#imageInsertArrows}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-arrows-image">{{imageInsertArrows}}</span>
|
|
</div>
|
|
{{/imageInsertArrows}}
|
|
{{#imageInsertTorches}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-torches-image">{{imageInsertTorches}}</span>
|
|
</div>
|
|
{{/imageInsertTorches}}
|
|
</div>
|
|
{{#rollBetween() consumable-roll-eight 1 2}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-footer"><span data-i18n="consumable-note"></span></div>
|
|
</div>
|
|
{{/rollBetween() consumable-roll-eight 1 2}}
|
|
{{/rollTotal() consumable-die-eight 1}}
|
|
<!--- d10 -->
|
|
{{#rollTotal() consumable-die-ten 1}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-center-die template-blue-dice">
|
|
{{#rollBetween() consumable-roll-ten 1 2}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollBetween() consumable-roll-ten 1 2}}
|
|
{{#rollBetween() consumable-roll-ten 3 10}}
|
|
{{consumable-roll-ten}}
|
|
{{/rollBetween() consumable-roll-ten 3 10}}
|
|
</div>
|
|
{{#imageInsertFood}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-food-image">{{imageInsertFood}}</span>
|
|
</div>
|
|
{{/imageInsertFood}}
|
|
{{#imageInsertWater}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-water-image">{{imageInsertWater}}</span>
|
|
</div>
|
|
{{/imageInsertWater}}
|
|
{{#imageInsertArrows}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-arrows-image">{{imageInsertArrows}}</span>
|
|
</div>
|
|
{{/imageInsertArrows}}
|
|
{{#imageInsertTorches}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-torches-image">{{imageInsertTorches}}</span>
|
|
</div>
|
|
{{/imageInsertTorches}}
|
|
</div>
|
|
{{#rollBetween() consumable-roll-ten 1 2}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-footer"><span data-i18n="consumable-note"></span></div>
|
|
</div>
|
|
{{/rollBetween() consumable-roll-ten 1 2}}
|
|
{{/rollTotal() consumable-die-ten 1}}
|
|
<!--- d12 -->
|
|
{{#rollTotal() consumable-die-twelve 1}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-center-die template-orange-dice">
|
|
{{#rollBetween() consumable-roll-twelve 1 2}}
|
|
<span data-i18n-title="bane" title="Bane"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Forbidden_Lands/images/bane_skull_white.png" alt="Bane" class="template-bane" /></span>
|
|
{{/rollBetween() consumable-roll-twelve 1 2}}
|
|
{{#rollBetween() consumable-roll-twelve 3 12}}
|
|
{{consumable-roll-twelve}}
|
|
{{/rollBetween() consumable-roll-twelve 3 12}}
|
|
</div>
|
|
{{#imageInsertFood}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-food-image">{{imageInsertFood}}</span>
|
|
</div>
|
|
{{/imageInsertFood}}
|
|
{{#imageInsertWater}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-water-image">{{imageInsertWater}}</span>
|
|
</div>
|
|
{{/imageInsertWater}}
|
|
{{#imageInsertArrows}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-arrows-image">{{imageInsertArrows}}</span>
|
|
</div>
|
|
{{/imageInsertArrows}}
|
|
{{#imageInsertTorches}}
|
|
<div class="template-grid-item template-span-center-die template-image-insert">
|
|
<span class="template-torches-image">{{imageInsertTorches}}</span>
|
|
</div>
|
|
{{/imageInsertTorches}}
|
|
</div>
|
|
{{#rollBetween() consumable-roll-twelve 1 2}}
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six template-footer"><span data-i18n="consumable-note"></span></div>
|
|
</div>
|
|
{{/rollBetween() consumable-roll-twelve 1 2}}
|
|
{{/rollTotal() consumable-die-twelve 1}}
|
|
|
|
<!--- d66 -->
|
|
<div class="template-grid">
|
|
<!-- increased range of each d66 dice to allow for custom rolls 0-100-->
|
|
{{#rollTotal() d66-die-one 1}}
|
|
<div class="template-grid-item template-span-center-die template-maroon-dice">
|
|
{{#rollBetween() d66-roll-one 0 100}} {{d66-roll-one}} {{/rollBetween() d66-roll-one 0 100}}
|
|
</div>
|
|
{{/rollTotal() d66-die-one 1}} {{#rollTotal() d66-die-two 1}}
|
|
<div class="template-grid-item template-span-center-die template-maroon-dice">
|
|
{{#rollBetween() d66-roll-two 0 100}} {{d66-roll-two}} {{/rollBetween() d66-roll-two 0 100}}
|
|
</div>
|
|
{{/rollTotal() d66-die-two 1}}
|
|
</div>
|
|
<!--- ATTACK -->
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#weapon-bonus}}
|
|
<span class="label"><span data-i18n="gear-bonus">Gear Bonus</span>:<span class="results">{{weapon-bonus}}{{/weapon-bonus}}{{#weapon-bonus-max}}</span>/<span class="results">{{weapon-bonus-max}}</span></span>{{/weapon-bonus-max}}
|
|
{{#weapon-bonus-misc}}
|
|
±<span class="label"><span data-i18n="misc-abbr">Misc</span>:<span class="results">{{weapon-bonus-misc}}</span></span><br>
|
|
{{/weapon-bonus-misc}}
|
|
{{#weapon-damage}}
|
|
<span class="label"><span data-i18n="damage">Damage</span>:<span class="results">{{weapon-damage}}</span></span>
|
|
{{/weapon-damage}}
|
|
{{#weapon-damage-misc}}±<span class="label"><span data-i18n="misc-abbr">Misc</span>:<span class="results">{{weapon-damage-misc}}</span></span>
|
|
{{/weapon-damage-misc}}
|
|
{{#attack-features}}
|
|
<br><span>( {{attack-features}} )</span>
|
|
{{/attack-features}}
|
|
{{#weapon-grip}}
|
|
<br><span class="label " data-i18n="grip">Grip</span>: {{weapon-grip}}
|
|
{{/weapon-grip}}
|
|
{{#weapon-range}}
|
|
<br><span class="label "data-i18n="range">Range</span>: {{weapon-range}}
|
|
{{/weapon-range}}
|
|
{{#weapon-features}}
|
|
<br><span class="label" data-i18n="features">Features</span>: {{weapon-features}}
|
|
{{/weapon-features}}
|
|
{{#attack-description}}
|
|
<hr class="template-span-six">
|
|
<div class="template-grid-item template-span-six scroll-text">
|
|
{{attack-description}}
|
|
</div>
|
|
{{/attack-description}}
|
|
</div>
|
|
</div>
|
|
<!--- ARMOR/SHIELD -->
|
|
<div class="template-grid">
|
|
{{#rollTotal() armor1-equipped 1}}
|
|
{{#armor1-name}}
|
|
<div class="template-grid-item template-span-six left">
|
|
<span class="label">{{armor1-name}}</span>
|
|
{{#armor1-rating-total}}<span class="label"><span class="results">{{armor1-rating-total}}</span></span>{{/armor1-rating-total}}
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#armor1-rating}}<span data-i18n="armor-rating-abbr">AR</span>:<span class="results">{{armor1-rating}}</span>{{/armor1-rating}}{{#armor1-rating-max}}/<span class="results">{{armor1-rating-max}}</span>{{/armor1-rating-max}}
|
|
{{#armor1-rating-misc}}±<span data-i18n="misc-abbr">Misc</span>:<span class="results">{{armor1-rating-misc}}</span>{{/armor1-rating-misc}}
|
|
</div>
|
|
{{/armor1-name}}
|
|
{{/rollTotal() armor1-equipped 1}}
|
|
|
|
{{#rollTotal() armor2-equipped 1}}
|
|
{{#armor2-name}}
|
|
<div class="template-grid-item template-span-six left">
|
|
<span class="label">{{armor2-name}}</span>
|
|
{{#armor2-rating-total}}<span class="label"><span class="results">{{armor2-rating-total}}</span></span>{{/armor2-rating-total}}
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#armor2-rating}}<span data-i18n="armor-rating-abbr">AR</span>:<span class="results">{{armor2-rating}}</span>{{/armor2-rating}}{{#armor2-rating-max}}/<span class="results">{{armor2-rating-max}}</span>{{/armor2-rating-max}}
|
|
{{#armor2-rating-misc}}±<span data-i18n="misc-abbr">Misc</span>:<span class="results">{{armor2-rating-misc}}</span>{{/armor2-rating-misc}}
|
|
</div>
|
|
{{/armor2-name}}
|
|
{{/rollTotal() armor2-equipped 1}}
|
|
|
|
{{#rollTotal() armor3-equipped 1}}
|
|
{{#armor3-name}}
|
|
<div class="template-grid-item template-span-six left">
|
|
<span class="label">{{armor3-name}}</span>
|
|
{{#armor3-rating-total}}<span class="label"><span class="results">{{armor3-rating-total}}</span></span>{{/armor3-rating-total}}
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#armor3-rating}}<span data-i18n="armor-rating-abbr">AR</span>:<span class="results">{{armor3-rating}}</span>{{/armor3-rating}}{{#armor3-rating-max}}/<span class="results">{{armor3-rating-max}}</span>{{/armor3-rating-max}}
|
|
{{#armor3-rating-misc}}±<span data-i18n="misc-abbr">Misc</span>:<span class="results">{{armor3-rating-misc}}</span>{{/armor3-rating-misc}}
|
|
</div>
|
|
{{/armor3-name}}
|
|
{{/rollTotal() armor3-equipped 1}}
|
|
|
|
{{#rollTotal() armor4-equipped 1}}
|
|
{{#armor4-name}}
|
|
<div class="template-grid-item template-span-six left">
|
|
<span class="label">{{armor4-name}}</span>
|
|
{{#armor4-rating-total}}<span class="label"><span class="results">{{armor4-rating-total}}</span></span>{{/armor4-rating-total}}
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#armor4-rating}}<span data-i18n="armor-rating-abbr">AR</span>:<span class="results">{{armor4-rating}}</span>{{/armor4-rating}}{{#armor4-rating-max}}/<span class="results">{{armor4-rating-max}}</span>{{/armor4-rating-max}}
|
|
{{#armor4-rating-misc}}±<span data-i18n="misc-abbr">Misc</span>:<span class="results">{{armor4-rating-misc}}</span>{{/armor4-rating-misc}}
|
|
</div>
|
|
{{/armor4-name}}
|
|
{{/rollTotal() armor4-equipped 1}}
|
|
|
|
{{#shield1-name}}
|
|
<div class="template-grid-item template-span-six left">
|
|
<span class="label">{{shield1-name}}</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#shield1-base}}
|
|
<span data-i18n="attr-abbr">ATTR</span>:<span class="results">{{shield1-base}}</span>
|
|
{{/shield1-base}}
|
|
{{#shield1-skill}}
|
|
<span data-i18n="skill">Skill</span>:<span class="results">{{shield1-skill}}</span>
|
|
{{/shield1-skill}}
|
|
{{#shield1-bonus}}<span data-i18n="bonus-abbr">BON</span>:<span class="results">{{shield1-bonus}}</span>{{/shield1-bonus}}/{{#shield1-bonus-max}}<span class="results">{{shield1-bonus-max}}</span>{{/shield1-bonus-max}}
|
|
{{#shield1-bonus-misc}}±<span data-i18n="misc-abbr">Misc</span>:<span class="results">{{shield1-bonus-misc}}</span>
|
|
{{/shield1-bonus-misc}}
|
|
</div>
|
|
{{/shield1-name}}
|
|
</div>
|
|
<!--- SPELLS -->
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#caster-rank}}
|
|
<span class="label"><span data-i18n="talent-rank">Talent</span>:<span class="results">{{caster-rank}}</span></span>
|
|
{{/caster-rank}}
|
|
{{#current-willpower}}
|
|
<span class="label"><span data-i18n="willpower-current-abbr">Current WP</span>:<span class="results">{{current-willpower}}</span></span>
|
|
<span class="mishap-roll" data-i18n-title="roll-dice-66">[D66](~selected|d66)</span>
|
|
{{/current-willpower}}
|
|
{{#spell-willpower}}
|
|
{{#basePL}}
|
|
<br><span class="label"><span data-i18n="base-power-level-abbr">Base PL</span><span class="results">{{basePL}}</span></span>
|
|
{{/basePL}}
|
|
{{^spell-ingredients-included}}
|
|
<span>
|
|
(
|
|
<span class="results">{{spell-willpower}}</span>
|
|
<span data-i18n="willpower-abbr">WP</span>
|
|
)
|
|
</span>
|
|
{{/spell-ingredients-included}}
|
|
{{#spell-ingredients-included}}
|
|
<span>
|
|
(
|
|
<span class="results">{{spell-willpower}}</span>
|
|
<span data-i18n="willpower-abbr">WP</span>
|
|
+<span class="results">1</span>
|
|
<span data-i18n="for">for</span>
|
|
<span data-i18n="ingredients">{{spell-ingredients-included}}</span>
|
|
)
|
|
</span>
|
|
{{/spell-ingredients-included}}
|
|
{{/spell-willpower}}
|
|
{{#spell-rank}}
|
|
<br><span>
|
|
<span class="label">
|
|
<span data-i18n="rank">Rank</span>:
|
|
<span class="results">{{spell-rank}}</span>
|
|
{{/spell-rank}}
|
|
{{#spell-grimoire}}
|
|
- <span class="results">1</span>
|
|
</span>
|
|
<span>
|
|
<span data-i18n="for">for</span>
|
|
<span data-i18n="grimoire">{{spell-grimoire}}</span>
|
|
</span>
|
|
</span>
|
|
{{/spell-grimoire}}
|
|
{{#spell-range}}<br><span class="label" data-i18n="range">Range</span>: {{spell-range}} {{/spell-range}}
|
|
{{#spell-duration}}<br><span class="label" data-i18n="duration">Duration</span>: {{spell-duration}}{{/spell-duration}}
|
|
{{#spell-ingredients-included}}
|
|
{{#spell-ingredients}}<br><span class="label" data-i18n="ingredients">{{spell-ingredients-included}}</span>: <span>{{spell-ingredients}}</span>{{/spell-ingredients}}
|
|
{{/spell-ingredients-included}}
|
|
</div>
|
|
</div>
|
|
<!-- DESCRIPTION -->
|
|
<div class="template-grid">
|
|
{{#spell-description}}
|
|
<hr class="template-span-six">
|
|
<div class="template-grid-item template-span-six scroll-text">{{spell-description}}</div>
|
|
{{/spell-description}}
|
|
</div>
|
|
<!-- SKILLS -->
|
|
<div class="template-grid">
|
|
<div class="template-grid-item template-span-six condensed left">
|
|
{{#skill-base}}<span data-i18n="attr-abbr">Attr</span>:<span class="sheet-results">{{skill-base}}</span>{{/skill-base}}
|
|
{{#skill-skill}}<span data-i18n="skill">Skill</span>:<span class="sheet-results">{{skill-skill}}</span>{{/skill-skill}}
|
|
{{#skill-bonus-misc-skill}}±<span data-i18n="misc-abbr">Misc</span>:<span class="sheet-results">{{skill-bonus-misc-skill}}</span>{{/skill-bonus-misc-skill}}{{#skill-bonus-misc-gear}}±<span data-i18n="misc-abbr">Misc</span>:<span class="sheet-results">{{skill-bonus-misc-gear}}</span>{{/skill-bonus-misc-gear}}
|
|
{{#skill-notes}}
|
|
<hr class="template-span-six">
|
|
<div class="template-grid-item template-span-six scroll-text"><span>{{skill-notes}}</span></div>
|
|
{{/skill-notes}}
|
|
</div>
|
|
</div>
|
|
<!-- FREE-TEXT -->
|
|
<div class="template-grid">
|
|
{{#free-text}}
|
|
<div class="template-grid-item template-span-six free-text scroll-text"><span>{{free-text}}</span></div>
|
|
{{/free-text}}
|
|
{{#free-text-center}}
|
|
<div class="template-grid-item template-span-six free-text-center scroll-text"><span>{{free-text-center}}</span></div>
|
|
{{/free-text-center}}
|
|
{{#free-text-right}}
|
|
<div class="template-grid-item template-span-six free-text-right scroll-text"><span>{{free-text-right}}</span></div>
|
|
{{/free-text-right}}
|
|
</div>
|
|
<!-- FOOTER -->
|
|
<div class="template-grid">
|
|
{{#footer}}
|
|
<div class="template-grid-item template-span-six template-footer">{{footer}}</div>
|
|
{{/footer}}
|
|
</div>
|
|
<!-- ALLPROPS-->
|
|
<div class="template-grid">
|
|
{{#allprops() character_name name character_id name_link subtitle subtitle2 imageInsert imageInsertFood imageInsertWater imageInsertArrows imageInsertTorches free-text free-text-center free-text-right footer attribute-die-one attribute-die-two attribute-die-three attribute-die-four attribute-die-five attribute-die-six attribute-die-seven attribute-die-eight attribute-die-nine attribute-die-ten attribute-die-eleven attribute-die-twelve skill-die-one skill-die-two skill-die-three skill-die-four skill-die-five skill-die-six skill-die-seven skill-die-eight skill-die-nine skill-die-ten negative-die-one negative-die-two negative-die-three gear-die-one gear-die-two gear-die-three gear-die-four gear-die-five gear-die-six gear-die-seven gear-die-eight gear-die-nine gear-die-ten gear-die-eleven gear-die-twelve artifact-die-eight artifact-die-ocho artifact-die-ten artifact-die-twelve attribute-roll-one attribute-roll-two attribute-roll-three attribute-roll-four attribute-roll-five attribute-roll-six attribute-roll-seven attribute-roll-eight attribute-roll-nine attribute-roll-ten attribute-roll-eleven attribute-roll-twelve skill-roll-one skill-roll-two skill-roll-three skill-roll-four skill-roll-five skill-roll-six skill-roll-seven skill-roll-eight skill-roll-nine skill-roll-ten negative-roll-one negative-roll-two negative-roll-three gear-roll-one gear-roll-two gear-roll-three gear-roll-four gear-roll-five gear-roll-six gear-roll-seven gear-roll-eight gear-roll-nine gear-roll-ten gear-roll-eleven gear-roll-twelve artifact-roll-eight artifact-roll-ocho artifact-roll-ten artifact-roll-twelve consumable-die-zero consumable-die-six consumable-die-eight d66-die-one d66-roll-one d66-die-two d66-roll-two consumable-die-ten consumable-die-twelve consumable-roll-zero consumable-roll-six consumable-roll-eight consumable-roll-ten consumable-roll-twelve weapon-bonus weapon-bonus-max weapon-bonus-misc weapon-damage weapon-damage-misc attack-features weapon-grip weapon-range weapon-features attack-description spell-rank caster-rank spell-willpower spell-range spell-duration spell-ingredients spell-ingredients-included spell-grimoire spell-description current-willpower basePL armor1-equipped armor1-name armor1-rating armor1-rating-max armor1-rating-total armor1-rating-misc armor2-equipped armor2-name armor2-rating armor2-rating-max armor2-rating-misc armor2-rating-total armor3-equipped armor3-name armor3-rating armor3-rating-max armor3-rating-misc armor3-rating-total armor4-equipped armor4-name armor4-rating armor4-rating-max armor4-rating-misc armor4-rating-total shield1-name shield1-base shield1-skill shield1-bonus shield1-bonus-max shield1-bonus-misc skill-base skill-skill skill-bonus-misc-skill skill-bonus-misc-gear skill-notes dice-label-flag pride-flag consumable-flag push pushroll successes failures gearfails}}
|
|
<div class="template-grid-item template-span-half">
|
|
<span>**{{key}}**:</span>
|
|
</div>
|
|
<div class="template-grid-item template-span-2nd-half">
|
|
<span>{{value}}</span>
|
|
</div>
|
|
{{/allprops() character_name name character_id name_link subtitle subtitle2 imageInsert imageInsertFood imageInsertWater imageInsertArrows imageInsertTorches free-text free-text-center free-text-right footer attribute-die-one attribute-die-two attribute-die-three attribute-die-four attribute-die-five attribute-die-six attribute-die-seven attribute-die-eight attribute-die-nine attribute-die-ten attribute-die-eleven attribute-die-twelve skill-die-one skill-die-two skill-die-three skill-die-four skill-die-five skill-die-six skill-die-seven skill-die-eight skill-die-nine skill-die-ten negative-die-one negative-die-two negative-die-three gear-die-one gear-die-two gear-die-three gear-die-four gear-die-five gear-die-six gear-die-seven gear-die-eight gear-die-nine gear-die-ten gear-die-eleven gear-die-twelve artifact-die-eight artifact-die-ocho artifact-die-ten artifact-die-twelve attribute-roll-one attribute-roll-two attribute-roll-three attribute-roll-four attribute-roll-five attribute-roll-six attribute-roll-seven attribute-roll-eight attribute-roll-nine attribute-roll-ten attribute-roll-eleven attribute-roll-twelve skill-roll-one skill-roll-two skill-roll-three skill-roll-four skill-roll-five skill-roll-six skill-roll-seven skill-roll-eight skill-roll-nine skill-roll-ten negative-roll-one negative-roll-two negative-roll-three gear-roll-one gear-roll-two gear-roll-three gear-roll-four gear-roll-five gear-roll-six gear-roll-seven gear-roll-eight gear-roll-nine gear-roll-ten gear-roll-eleven gear-roll-twelve artifact-roll-eight artifact-roll-ocho artifact-roll-ten artifact-roll-twelve consumable-die-zero consumable-die-six consumable-die-eight d66-die-one d66-roll-one d66-die-two d66-roll-two consumable-die-ten consumable-die-twelve consumable-roll-zero consumable-roll-six consumable-roll-eight consumable-roll-ten consumable-roll-twelve weapon-bonus weapon-bonus-max weapon-bonus-misc weapon-damage weapon-damage-misc attack-features weapon-grip weapon-range weapon-features attack-description spell-rank caster-rank spell-willpower spell-range spell-duration spell-ingredients spell-ingredients-included spell-grimoire spell-description current-willpower basePL armor1-equipped armor1-name armor1-rating armor1-rating-max armor1-rating-total armor1-rating-misc armor2-equipped armor2-name armor2-rating armor2-rating-max armor2-rating-misc armor2-rating-total armor3-equipped armor3-name armor3-rating armor3-rating-max armor3-rating-misc armor3-rating-total armor4-equipped armor4-name armor4-rating armor4-rating-max armor4-rating-misc armor4-rating-total shield1-name shield1-base shield1-skill shield1-bonus shield1-bonus-max shield1-bonus-misc skill-base skill-skill skill-bonus-misc-skill skill-bonus-misc-gear skill-notes dice-label-flag pride-flag consumable-flag push pushroll successes failures gearfails}}
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<script type="text/worker">
|
|
'use strict';
|
|
|
|
/* GLOBALS */
|
|
|
|
// custom logs
|
|
const clog = (text, title = '', color = 'green', style = 'font-size:12px; font-weight:normal;', headerstyle = 'font-size:13px; font-weight:bold;') => {
|
|
const titleStyle = `color:${color}; ${headerstyle} text-decoration:underline;`;
|
|
const textStyle = `color:${color}; ${style}`;
|
|
let output = `%c${title} %c${text}`;
|
|
if (title) {
|
|
console.log(output, titleStyle, textStyle);
|
|
} else {
|
|
output = `%c${text}`;
|
|
console.log(output, textStyle);
|
|
}
|
|
};
|
|
|
|
// common number handling
|
|
const int = (score, on_error = 0) => parseInt(score) || on_error;
|
|
const float = (score, on_error = 0) => parseFloat(score) || on_error;
|
|
|
|
// adds to primary and returns updated/incremented primary
|
|
const incrementWith = (primary, secondary) => {
|
|
if (typeof primary !== 'number' || typeof secondary !== 'number') {
|
|
throw new Error('Both inputs must be numbers.');
|
|
}
|
|
return primary + secondary;
|
|
};
|
|
|
|
const capitalizeFirstLetter = (string) => {
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
};
|
|
|
|
// map numbers to the literal numbers, e.g. 1 to "one", 2 to "two" by using litnum[1] and litnum[2] respectively
|
|
const litnum = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'];
|
|
|
|
const stats = ['strength', 'agility', 'wits', 'empathy'];
|
|
|
|
// Character Name Validation
|
|
const isAlphaNumericWithSpaces = (attr) => {
|
|
// Check for alpha-numeric characters and spaces
|
|
if (/^[a-zA-Z0-9\s]+$/.test(attr)) {
|
|
return true;
|
|
}
|
|
// Check for specific characters that can break a macro
|
|
// can we substitute with an html special?
|
|
if (/[)|\}\|\]]/.test(attr)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
// Validate character name for illegal characters
|
|
const nameChanged = (name, attr) => {
|
|
const output = {};
|
|
// validate input
|
|
const isText = isAlphaNumericWithSpaces(attr);
|
|
// clog(`Valid Input?: ${isText}`);
|
|
// write to a hidden checkbox in html ie 'X_error', CSS to style
|
|
output[`${name}_error`] = isText === true ? 0 : 1;
|
|
setAttrs(output, {silent: true});
|
|
};
|
|
|
|
/* version tracking */
|
|
const newAnnouncement = (old_version, new_version, show_announcement) => {
|
|
const setter = {};
|
|
clog(`Current sheet data version: ${old_version}, Sheet code version: ${new_version}`);
|
|
|
|
if (new_version > old_version) {
|
|
setter.version = new_version;
|
|
if (show_announcement) {
|
|
clog(`New Announcements: v${new_version}`);
|
|
setter.show_announcements = 1;
|
|
}
|
|
}
|
|
// if (show_announcement) {
|
|
// clog(`New Announcements: v${new_version}`);
|
|
// setter.show_announcements = 1;
|
|
// }
|
|
if (setter) {
|
|
setAttrs(setter, {silent: true});
|
|
}
|
|
};
|
|
|
|
const versionator = (old_version) => {
|
|
// set the sheet version you are upgrading sheet to,
|
|
// and set show_announcement to 1 if you want to force an announcement to be shown.
|
|
// don't set a code_version; we use the switch below for that.
|
|
const new_version = 1.92;
|
|
const show_announcement = 0;
|
|
if (!old_version) old_version = 0;
|
|
switch (true) {
|
|
// add checks for updates here
|
|
case old_version < 1.71:
|
|
clog('Updating to version 1.71');
|
|
update_to_1_71(old_version);
|
|
break;
|
|
case old_version >= 1.71 && old_version < 1.77:
|
|
clog('Updating to version 1.77');
|
|
update_to_1_77(old_version);
|
|
break;
|
|
case old_version >= 1.77 && old_version < 1.92:
|
|
clog('Updating to version 1.92');
|
|
update_to_1_92(old_version);
|
|
break;
|
|
default:
|
|
// all codeversion upgrades are complete
|
|
// can run your recalculate function to show announcements
|
|
newAnnouncement(old_version, new_version, show_announcement);
|
|
}
|
|
};
|
|
// add updates here
|
|
|
|
// rename misspelled attributes
|
|
const update_to_1_71 = (old_version) => {
|
|
getAttrs(['armor1_equiped', 'armor2_equiped', 'shield1_equiped', 'stockpile_vegatables'], (v) => {
|
|
const setter = {};
|
|
const statswaps = {
|
|
armor1_equiped: 'armor1_equipped',
|
|
armor2_equiped: 'armor2_equipped',
|
|
shield1_equiped: 'shield1_equipped',
|
|
stockpile_vegatables: 'stockpile_vegetables',
|
|
};
|
|
Object.entries(statswaps).forEach(([key, value]) => {
|
|
if (v[key]) setter[key] = v[value];
|
|
});
|
|
|
|
// set the version
|
|
const current_version = 1.71;
|
|
setter.version = current_version;
|
|
setAttrs(setter, {silent: true}, versionator(current_version));
|
|
clog('Updating misspelled attributes.');
|
|
});
|
|
};
|
|
|
|
// localized rolls added
|
|
const update_to_1_77 = (old_version) => {
|
|
const setter = {};
|
|
localRollMacro();
|
|
// set the version
|
|
const current_version = 1.77;
|
|
setter.version = current_version;
|
|
setAttrs(setter, {silent: true}, versionator(current_version));
|
|
clog('Updating localized rolls to match the dice pool roller.');
|
|
};
|
|
|
|
// character_name validation check
|
|
const update_to_1_92 = (old_version) => {
|
|
const setter = {};
|
|
nameChanged();
|
|
// set the version
|
|
const current_version = 1.92;
|
|
setter.version = current_version;
|
|
setAttrs(setter, {silent: true}, versionator(current_version));
|
|
clog('Checking character_name for invalid characters.');
|
|
};
|
|
|
|
on('sheet:opened', () => {
|
|
getAttrs(['version'], (v) => {
|
|
versionator(float(v.version));
|
|
});
|
|
});
|
|
|
|
/* ===== PARAMETERS ==========
|
|
GiGs 'Super Simple Summarizer'
|
|
destinations = the name of the attribute that stores the total quantity
|
|
can be a single attribute, or an array: ['total_cost', 'total_weight']
|
|
If more than one, the matching fields must be in the same order.
|
|
section = name of repeating fieldset, without the repeating_
|
|
fields = the name of the attribute field to be summed
|
|
destination and fields both can be a single attribute: 'weight'
|
|
or an array of attributes: ['weight','number','equipped']
|
|
*/
|
|
const repeatingSum = (destination, section, fields, multiplier = 1) => {
|
|
// if (!Array.isArray(fields)) fields = [fields];
|
|
const normalizedFields = Array.isArray(fields) ? fields : [fields];
|
|
getSectionIDs(`repeating_${section}`, (idArray) => {
|
|
const attrArray = idArray.reduce((m, id) => [...m, ...normalizedFields.map((field) => `repeating_${section}_${id}_${field}`)], []);
|
|
getAttrs(attrArray, (v) => {
|
|
clog(`values of v: ${JSON.stringify(v)}`);
|
|
// getValue: if not a number, returns 1 if it is 'on' (checkbox), otherwise returns 0..
|
|
const getValue = (section, id, field) => float(v[`repeating_${section}_${id}_${field}`]) || (v[`repeating_${section}_${id}_${field}`] === 'on' ? 1 : 0);
|
|
const sumTotal = idArray.reduce((total, id) => total + normalizedFields.reduce((subtotal, field) => subtotal * getValue(section, id, field), 1), 0);
|
|
setAttrs({
|
|
[destination]: sumTotal * multiplier,
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
/* hireling cost */
|
|
on('change:repeating_hirelings remove:repeating_hirelings', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
repeatingSum('hirelings_cost', 'hirelings', ['hireling_number', 'hireling_salary']);
|
|
});
|
|
|
|
/* character encumbrance */
|
|
on('change:repeating_gear remove:repeating_gear', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
repeatingSum('character_gear_encumbrance', 'gear', ['gear_weight', 'gear_qty', 'gear_carried']);
|
|
});
|
|
|
|
on('change:character_gear_encumbrance change:consumables_encumbrance', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['character_gear_encumbrance', 'consumables_encumbrance'], function (values) {
|
|
const character_gear_encumbrance = float(values.character_gear_encumbrance);
|
|
const consumables_encumbrance = float(values.consumables_encumbrance);
|
|
const totalWeight = character_gear_encumbrance + consumables_encumbrance;
|
|
setAttrs({
|
|
character_gear_and_consumables_encumbrance: totalWeight,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* mount encumbrance */
|
|
on('change:repeating_mount remove:repeating_mount', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
repeatingSum('mount_gear_encumbrance', 'mount', ['mount_gear_weight', 'mount_gear_qty', 'mount_gear_carried']);
|
|
});
|
|
|
|
/* cart encumbrance */
|
|
on('change:repeating_cart remove:repeating_cart', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
repeatingSum('cart_gear_encumbrance', 'cart', ['cart_gear_weight', 'cart_gear_qty', 'cart_gear_carried']);
|
|
});
|
|
|
|
/* weapons encumbrance */
|
|
on('change:repeating_weapons remove:repeating_weapons', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
repeatingSum('weapons_encumbrance', 'weapons', ['weapon_weight', 'weapon_carried']);
|
|
});
|
|
|
|
/* armor/helmet weight */
|
|
on(
|
|
'change:armor1_carried change:armor2_carried change:armor3_carried change:armor4_carried change:armor1_weight change:armor2_weight change:armor3_weight change:armor4_weight',
|
|
function (eventInfo) {
|
|
getAttrs(['armor1_carried', 'armor2_carried', 'armor3_carried', 'armor4_carried', 'armor1_weight', 'armor2_weight', 'armor3_weight', 'armor4_weight'], function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const armor1_carried = int(values.armor1_carried);
|
|
const armor2_carried = int(values.armor2_carried);
|
|
const armor3_carried = int(values.armor3_carried);
|
|
const armor4_carried = int(values.armor4_carried);
|
|
const armor1_weight = float(values.armor1_weight);
|
|
const armor2_weight = float(values.armor2_weight);
|
|
const armor3_weight = float(values.armor3_weight);
|
|
const armor4_weight = float(values.armor4_weight);
|
|
const temp_armor1_carried = armor1_carried * armor1_weight;
|
|
const temp_armor2_carried = armor2_carried * armor2_weight;
|
|
const temp_armor3_carried = armor3_carried * armor3_weight;
|
|
const temp_armor4_carried = armor4_carried * armor4_weight;
|
|
const armor_carried = (temp_armor1_carried + temp_armor2_carried + temp_armor3_carried + temp_armor4_carried).toFixed(1);
|
|
// clog(`Armor/Helmet Weight: ${armor_carried}`);
|
|
setAttrs({
|
|
armor_encumbrance: armor_carried,
|
|
});
|
|
});
|
|
},
|
|
);
|
|
|
|
/* shield weight */
|
|
on('change:shield1_carried change:shield1_weight', function (eventInfo) {
|
|
getAttrs(['shield1_carried', 'shield1_weight'], function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const shield1_carried = int(values.shield1_carried);
|
|
const shield1_weight = float(values.shield1_weight);
|
|
const temp_shield1_carried = shield1_carried * shield1_weight;
|
|
const shield_carried = temp_shield1_carried.toFixed(1);
|
|
|
|
// clog(`Shield Weight: ${shield1_carried}`);
|
|
|
|
setAttrs({
|
|
shield_encumbrance: shield_carried,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* coin weight */
|
|
on(
|
|
'change:gold change:silver change:copper change:gold_mount change:silver_mount change:copper_mount change:gold_cart change:silver_cart change:copper_cart',
|
|
function (eventInfo) {
|
|
getAttrs(['gold', 'silver', 'copper', 'gold_mount', 'silver_mount', 'copper_mount', 'gold_cart', 'silver_cart', 'copper_cart'], function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const gold = int(values.gold);
|
|
const silver = int(values.silver);
|
|
const copper = int(values.copper);
|
|
const temp_carried = Math.floor((gold + silver + copper) / 100) * 100;
|
|
const output_carried = (temp_carried * 0.005).toFixed(1);
|
|
const gold_mount = int(values.gold_mount);
|
|
const silver_mount = int(values.silver_mount);
|
|
const copper_mount = int(values.copper_mount);
|
|
const temp_mount = Math.floor((gold_mount + silver_mount + copper_mount) / 100) * 100;
|
|
const output_mount = (temp_mount * 0.005).toFixed(1);
|
|
const gold_cart = int(values.gold_cart);
|
|
const silver_cart = int(values.silver_cart);
|
|
const copper_cart = int(values.copper_cart);
|
|
const temp_cart = Math.floor((gold_cart + silver_cart + copper_cart) / 100) * 100;
|
|
const output_cart = (temp_cart * 0.005).toFixed(1);
|
|
setAttrs({
|
|
coins_carried: output_carried,
|
|
coins_carried_mount: output_mount,
|
|
coins_carried_cart: output_cart,
|
|
});
|
|
});
|
|
},
|
|
);
|
|
|
|
/* consumables weight */
|
|
on(
|
|
'sheet:opened change:food change:water change:arrows change:torches change:food_carried change:water_carried change:arrows_carried change:torches_carried',
|
|
function (eventInfo) {
|
|
getAttrs(
|
|
[
|
|
'food',
|
|
'water',
|
|
'arrows',
|
|
'torches',
|
|
'food_carried',
|
|
'water_carried',
|
|
'arrows_carried',
|
|
'torches_carried',
|
|
'food_weight',
|
|
'water_weight',
|
|
'arrows_weight',
|
|
'torches_weight',
|
|
'consumables_encumbrance',
|
|
],
|
|
function (values) {
|
|
const output = {};
|
|
const food_carried = +values.food_carried;
|
|
const water_carried = +values.water_carried;
|
|
const arrows_carried = +values.arrows_carried;
|
|
const torches_carried = +values.torches_carried;
|
|
let food_weight = +values.food_weight;
|
|
let water_weight = +values.water_weight;
|
|
let arrows_weight = +values.arrows_weight;
|
|
let torches_weight = +values.torches_weight;
|
|
let consumables_weight = float(values.consumables_encumbrance);
|
|
|
|
values.food >= 1 ? (food_weight = 1 * food_carried) : (food_weight = 0);
|
|
values.water >= 1 ? (water_weight = 1 * water_carried) : (water_weight = 0);
|
|
values.arrows >= 1 ? (arrows_weight = 1 * arrows_carried) : (arrows_weight = 0);
|
|
values.torches >= 1 ? (torches_weight = 1 * torches_carried) : (torches_weight = 0);
|
|
consumables_weight = food_weight + water_weight + arrows_weight + torches_weight;
|
|
|
|
output.food_weight = food_weight;
|
|
output.water_weight = water_weight;
|
|
output.arrows_weight = arrows_weight;
|
|
output.torches_weight = torches_weight;
|
|
output.consumables_encumbrance = consumables_weight;
|
|
|
|
setAttrs(output);
|
|
},
|
|
);
|
|
},
|
|
);
|
|
|
|
/* total encumbrance */
|
|
on(
|
|
'sheet:opened change:character_gear_encumbrance change:mount_gear_encumbrance change:cart_gear_encumbrance change:coins_carried change:coins_carried_mount change:weapons_encumbrance change:armor_encumbrance change:shield_encumbrance change:consumables_encumbrance change:carry change:strength change:pack_rat change:mount_carry change:cart_carry change:mount_strength',
|
|
function (eventInfo) {
|
|
getAttrs(
|
|
[
|
|
'character_gear_encumbrance',
|
|
'mount_gear_encumbrance',
|
|
'cart_gear_encumbrance',
|
|
'coins_carried',
|
|
'coins_carried_mount',
|
|
'coins_carried_cart',
|
|
'weapons_encumbrance',
|
|
'armor_encumbrance',
|
|
'shield_encumbrance',
|
|
'armor_shield_encumbrance',
|
|
'consumables_encumbrance',
|
|
'character_gear_and_consumables_encumbrance',
|
|
'carry',
|
|
'strength',
|
|
'pack_rat',
|
|
'encumbered_flag',
|
|
'mount_carry',
|
|
'cart_carry',
|
|
'mount_encumbered_flag',
|
|
'cart_encumbered_flag',
|
|
],
|
|
function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const character_gear_encumbrance = float(values.character_gear_encumbrance);
|
|
const mount_gear_encumbrance = float(values.mount_gear_encumbrance);
|
|
const cart_gear_encumbrance = float(values.cart_gear_encumbrance);
|
|
const weapons_encumbrance = float(values.weapons_encumbrance);
|
|
const armor_encumbrance = float(values.armor_encumbrance);
|
|
const shield_encumbrance = float(values.shield_encumbrance);
|
|
const armor_shield_encumbrance = armor_encumbrance + shield_encumbrance;
|
|
const coins_carried = float(values.coins_carried);
|
|
const coins_carried_mount = float(values.coins_carried_mount);
|
|
const coins_carried_cart = float(values.coins_carried_cart);
|
|
const consumables_encumbrance = float(values.consumables_encumbrance);
|
|
// const character_gear_and_consumables_encumbrance = float(values.character_gear_and_consumables_encumbrance);
|
|
const gear_and_consumables = character_gear_encumbrance + consumables_encumbrance;
|
|
const strength = int(values.strength);
|
|
const pack_rat = int(values.pack_rat);
|
|
const carry = 2 * strength + pack_rat;
|
|
const mount_carry = float(values.mount_carry);
|
|
const cart_carry = float(values.cart_carry);
|
|
const sum_character_weight = weapons_encumbrance + armor_encumbrance + shield_encumbrance + coins_carried + gear_and_consumables;
|
|
const sum_mount_weight = mount_gear_encumbrance + coins_carried_mount;
|
|
const sum_cart_weight = cart_gear_encumbrance + coins_carried_cart;
|
|
// sets warning if overburdened
|
|
let encumbered_flag_chk = 0;
|
|
let mount_encumbered_flag_chk = 0;
|
|
let cart_encumbered_flag_chk = 0;
|
|
sum_character_weight > carry ? (encumbered_flag_chk = 1) : (encumbered_flag_chk = 0);
|
|
sum_mount_weight > mount_carry ? (mount_encumbered_flag_chk = 1) : (mount_encumbered_flag_chk = 0);
|
|
sum_cart_weight > cart_carry ? (cart_encumbered_flag_chk = 1) : (cart_encumbered_flag_chk = 0);
|
|
|
|
setAttrs({
|
|
armor_shield_encumbrance,
|
|
character_encumbrance: sum_character_weight,
|
|
mount_encumbrance: sum_mount_weight,
|
|
cart_encumbrance: sum_cart_weight,
|
|
carry,
|
|
encumbered_flag: encumbered_flag_chk,
|
|
mount_encumbered_flag: mount_encumbered_flag_chk,
|
|
cart_encumbered_flag: cart_encumbered_flag_chk,
|
|
});
|
|
},
|
|
);
|
|
},
|
|
);
|
|
|
|
/* coin total */
|
|
on(
|
|
'change:gold change:silver change:copper change:gold_mount change:silver_mount change:copper_mount change:gold_other change:silver_other change:copper_other',
|
|
function (eventInfo) {
|
|
getAttrs(['gold', 'silver', 'copper', 'gold_mount', 'silver_mount', 'copper_mount', 'gold_other', 'silver_other', 'copper_other'], function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const gold = int(values.gold);
|
|
const silver = int(values.silver);
|
|
const copper = int(values.copper);
|
|
const gold_mount = int(values.gold_mount);
|
|
const silver_mount = int(values.silver_mount);
|
|
const copper_mount = int(values.copper_mount);
|
|
const gold_other = int(values.gold_other);
|
|
const silver_other = int(values.silver_other);
|
|
const copper_other = int(values.copper_other);
|
|
const sum_gold = gold + gold_mount + gold_other;
|
|
const sum_silver = silver + silver_mount + silver_other;
|
|
const sum_copper = copper + copper_mount + copper_other;
|
|
setAttrs({
|
|
gold_total: sum_gold,
|
|
silver_total: sum_silver,
|
|
copper_total: sum_copper,
|
|
});
|
|
});
|
|
},
|
|
);
|
|
|
|
/* Monster or PC Strength handling. updates attr_strength depending on sheet tab */
|
|
on('change:tab change:strength_pc change:strength_monster sheet:opened', (eventInfo) => {
|
|
getAttrs(['tab', 'strength', 'strength_pc', 'strength_monster'], (v) => {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const output = {};
|
|
const tab = int(v.tab, 1); // sets tab to 1 if not recognized - so goes to pc tab;
|
|
const str = int(v.strength);
|
|
let pc = int(v.strength_pc);
|
|
let monster = int(v.strength_monster);
|
|
let forceupdate = 0;
|
|
// clog(`MONSTER/PC STRENGTH SWAP --- tab:${tab} str:${str} pc:${pc} monster:${monster}`);
|
|
// check if character existed before strength_pc or _monster stats were introduced.
|
|
if (str > 0) {
|
|
if (pc === 0 || monster === 0) forceupdate = 1;
|
|
if (pc === 0) {
|
|
pc = str;
|
|
output.strength_pc = str;
|
|
}
|
|
if (monster === 0) {
|
|
monster = str;
|
|
output.strength_monster = str;
|
|
}
|
|
}
|
|
// if tab is not pc or monster, end the function and leave strength unchanged
|
|
if (tab !== 1 && tab !== 3 && !forceupdate) return;
|
|
|
|
// if tab = 1 or 3, set strength to the appropriate value
|
|
output.strength = tab === 3 ? monster : pc;
|
|
setAttrs(output);
|
|
});
|
|
});
|
|
|
|
/* ability damage calcs */
|
|
const damages = {
|
|
// an Object Literal: damages['strength'] returns 'damage', damages['empathy'] returns 'doubt', etc
|
|
strength: 'damage',
|
|
agility: 'fatigue',
|
|
wits: 'confusion',
|
|
empathy: 'doubt',
|
|
};
|
|
Object.keys(damages).forEach((stat) => {
|
|
// creates a sheet worker for each stat in damages - first stat = 'strength', then stat = 'agility', etc
|
|
// in each worker, stat = the stat (strength, agility, etc) and damages[stat] = the associated damage ('damage'. 'fatigue', etc)
|
|
on(`change:${stat} change:${damages[stat]}`, function () {
|
|
clog(`${stat} or ${damages[stat]} has changed.`);
|
|
getAttrs([stat, damages[stat]], (values) => {
|
|
const stat_score = int(values[stat]);
|
|
const damage_score = int(values[damages[stat]]);
|
|
setAttrs({
|
|
[`${stat}_total`]: Math.max(0, stat_score - damage_score),
|
|
// Math.max returns the highest value from a comma separated list - it's just like roll20's kh1 dice function.
|
|
// so you don't need the if( value > 0) test. With math.max, if the value is below 0, it becomes 0.
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* skill total calcs */
|
|
const attributes = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding attribute
|
|
'Animal Handling': 'empathy_total',
|
|
Crafting: 'strength_total',
|
|
Endurance: 'strength_total',
|
|
Healing: 'empathy_total',
|
|
Insight: 'wits_total',
|
|
Lore: 'wits_total',
|
|
Manipulation: 'empathy_total',
|
|
Marksmanship: 'agility_total',
|
|
Melee: 'strength_total',
|
|
Might: 'strength_total',
|
|
Move: 'agility_total',
|
|
Performance: 'empathy_total',
|
|
Scouting: 'wits_total',
|
|
'Sleight of Hand': 'agility_total',
|
|
Stealth: 'agility_total',
|
|
Survival: 'wits_total',
|
|
};
|
|
const misc = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding attribute
|
|
'Animal Handling': 'animal_handling_skill_misc',
|
|
Crafting: 'crafting_skill_misc',
|
|
Endurance: 'endurance_skill_misc',
|
|
Healing: 'healing_skill_misc',
|
|
Insight: 'insight_skill_misc',
|
|
Lore: 'lore_skill_misc',
|
|
Manipulation: 'manipulation_skill_misc',
|
|
Marksmanship: 'marksmanship_skill_misc',
|
|
Melee: 'melee_skill_misc',
|
|
Might: 'might_skill_misc',
|
|
Move: 'move_skill_misc',
|
|
Performance: 'performance_skill_misc',
|
|
Scouting: 'scouting_skill_misc',
|
|
'Sleight of Hand': 'sleight_of_hand_skill_misc',
|
|
Stealth: 'stealth_skill_misc',
|
|
Survival: 'survival_skill_misc',
|
|
};
|
|
const miscGear = {
|
|
// a javascript Object Literal, containing each skill, and its corresponding attribute
|
|
'Animal Handling': 'animal_handling_gear_misc',
|
|
Crafting: 'crafting_gear_misc',
|
|
Endurance: 'endurance_gear_misc',
|
|
Healing: 'healing_gear_misc',
|
|
Insight: 'insight_gear_misc',
|
|
Lore: 'lore_gear_misc',
|
|
Manipulation: 'manipulation_gear_misc',
|
|
Marksmanship: 'marksmanship_gear_misc',
|
|
Melee: 'melee_gear_misc',
|
|
Might: 'might_gear_misc',
|
|
Move: 'move_gear_misc',
|
|
Performance: 'performance_gear_misc',
|
|
Scouting: 'scouting_gear_misc',
|
|
'Sleight of Hand': 'sleight_of_hand_gear_misc',
|
|
Stealth: 'stealth_gear_misc',
|
|
Survival: 'survival_gear_misc',
|
|
};
|
|
const getSkill = (label) => label.split(' ').join('_').toLowerCase();
|
|
// a function to change (for example) "Animal Handling" to "animal_handling"
|
|
// needed for a couple of functions below
|
|
|
|
const getSkillKey = (label) => label.split(' ').join('-').toLowerCase();
|
|
// a function to change (for example) "Animal Handling" to "animal-handling"
|
|
// needed for a couple of functions below
|
|
|
|
Object.keys(attributes).forEach((skill_name) => {
|
|
// creates a sheet worker for each skill in attributes - first skill = 'strength', then stat = 'agility', etc
|
|
// in each worker, stat = the stat (strength, agility, etc) and damages[stat] = the associated damage ('damage'. 'fatigue', etc)
|
|
const skill = getSkill(skill_name);
|
|
on(`change:${skill} change:${attributes[skill_name]} change:${misc[skill_name]} change:${miscGear[skill_name]}`, function () {
|
|
// clog(`${skill} or ${attributes[skill_name]} or ${misc[skill_name]} or ${miscGear[skill_name]} has changed.`);
|
|
getAttrs([skill, attributes[skill_name], misc[skill_name], miscGear[skill_name]], function (values) {
|
|
const stat_score = int(values[attributes[skill_name]]);
|
|
const miscSkill_score = int(values[misc[skill_name]]);
|
|
const miscGear_score = int(values[miscGear[skill_name]]);
|
|
const skillRank_score = int(values[skill]);
|
|
setAttrs({
|
|
[`${skill}_total`]: stat_score + skillRank_score + miscSkill_score + miscGear_score,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set weapon base_total and skill_total */
|
|
on('change:repeating_weapons:weapon_name change:repeating_weapons:weapon_skill change:repeating_weapons:weapon_skill_misc', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(
|
|
[
|
|
'repeating_weapons_weapon_skill',
|
|
'repeating_weapons_weapon_skill_value',
|
|
'repeating_weapons_weapon_skill_misc',
|
|
'repeating_weapons_weapon_skill_total',
|
|
'repeating_weapons_weapon_base_total',
|
|
'strength_total',
|
|
'agility_total',
|
|
'marksmanship',
|
|
'melee',
|
|
],
|
|
function (values) {
|
|
const strength = int(values.strength_total);
|
|
const agility = int(values.agility_total);
|
|
const melee = int(values.melee);
|
|
const marksmanship = int(values.marksmanship);
|
|
const weapon_skill = int(values.repeating_weapons_weapon_skill);
|
|
const weapon_skill_misc = int(values.repeating_weapons_weapon_skill_misc);
|
|
// separate out the basic values read from the sheet from those calculated within the worker. for clarity
|
|
const attribute = weapon_skill === 0 ? strength : agility;
|
|
const skill = weapon_skill === 0 ? melee : marksmanship;
|
|
const weapon_base_total = attribute;
|
|
const weapon_skill_value = skill;
|
|
const weapon_skill_total = skill + weapon_skill_misc;
|
|
setAttrs({
|
|
repeating_weapons_weapon_base_total: weapon_base_total,
|
|
repeating_weapons_weapon_skill_value: weapon_skill_value,
|
|
repeating_weapons_weapon_skill_total: weapon_skill_total,
|
|
});
|
|
// clog(`weapon_base_total: ${weapon_base_total}`);
|
|
// clog(`weapon_skill_value: ${weapon_skill_value}`);
|
|
// clog(`weapon_skill_total: ${weapon_skill_total}`);
|
|
},
|
|
);
|
|
});
|
|
|
|
/* set weapon bonus_total */
|
|
on(
|
|
'repeating_weapons:weapon_name change:repeating_weapons:weapon_bonus change:repeating_weapons:weapon_bonus_misc change:repeating_weapons:weapon_bonus_max',
|
|
function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
// clog('Change Detected: Weapon Attacks - recalculating Bonus totals');
|
|
// made the change event specific, so its only fired when needed, and likewise reduced the getAttrs to those only needed
|
|
getAttrs(['repeating_weapons_weapon_bonus', 'repeating_weapons_weapon_bonus_misc', 'repeating_weapons_weapon_bonus_max'], function (values) {
|
|
const weapon_bonus_misc = int(values.repeating_weapons_weapon_bonus_misc);
|
|
const weapon_bonus = int(values.repeating_weapons_weapon_bonus);
|
|
const weapon_bonus_max = int(values.repeating_weapons_weapon_bonus_max);
|
|
// separate out the basic values read from the sheet from those calculated within the worker
|
|
const weapon_bonus_total = Math.min(weapon_bonus, weapon_bonus_max) + weapon_bonus_misc;
|
|
setAttrs({
|
|
repeating_weapons_weapon_bonus_total: weapon_bonus_total,
|
|
});
|
|
// clog(`weapon_bonus_total: ${weapon_bonus_total}`);
|
|
});
|
|
},
|
|
);
|
|
|
|
/* set weapon damage totals */
|
|
on('change:repeating_weapons:weapon_damage change:repeating_weapons:weapon_damage_misc', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
// clog('Change Detected: Weapon Damage - recalculating totals');
|
|
getAttrs(['repeating_weapons_weapon_damage', 'repeating_weapons_weapon_damage_misc'], function (values) {
|
|
const weapon_damage = int(values.repeating_weapons_weapon_damage);
|
|
const weapon_damage_misc = int(values.repeating_weapons_weapon_damage_misc);
|
|
const damage = Math.max(weapon_damage + weapon_damage_misc, 0);
|
|
setAttrs({
|
|
repeating_weapons_weapon_damage_total: damage,
|
|
});
|
|
// clog(`>>>> weapon_damage_total: ${damage}`);
|
|
});
|
|
});
|
|
|
|
/* re-calculate repeating_weapons when outside attributes change */
|
|
on('change:strength_total change:agility_total change:melee change:marksmanship', function (eventInfo) {
|
|
getSectionIDs('repeating_weapons', function (ids) {
|
|
const fieldnames = [];
|
|
ids.forEach((id) => {
|
|
fieldnames.push(
|
|
`repeating_weapons_${id}_weapon_skill`,
|
|
`repeating_weapons_${id}_weapon_skill_misc`,
|
|
`repeating_weapons_${id}_weapon_skill_value`,
|
|
`repeating_weapons_${id}_weapon_bonus`,
|
|
`repeating_weapons_${id}_weapon_bonus_max`,
|
|
`repeating_weapons_${id}_weapon_bonus_misc`,
|
|
);
|
|
});
|
|
getAttrs(['strength_total', 'agility_total', 'melee', 'marksmanship', ...fieldnames], function (values) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const settings = {};
|
|
const strength = int(values.strength_total);
|
|
const agility = int(values.agility_total);
|
|
const melee = int(values.melee);
|
|
const marksmanship = int(values.marksmanship);
|
|
|
|
ids.forEach((id) => {
|
|
const weapon_skill = int(values[`repeating_weapons_${id}_weapon_skill`]);
|
|
// calculate attribute total
|
|
const attribute = weapon_skill === 0 ? strength : agility;
|
|
const weapon_base_total = attribute;
|
|
// calculate skill total
|
|
const weapon_skill_misc = int(values[`repeating_weapons_${id}_weapon_skill_misc`]);
|
|
const skill = weapon_skill === 0 ? melee : marksmanship;
|
|
const weapon_skill_total = skill + weapon_skill_misc;
|
|
// calculate bonus total
|
|
const weapon_bonus = int(values[`repeating_weapons_${id}_weapon_bonus`]);
|
|
const weapon_bonus_max = int(values[`repeating_weapons_${id}_weapon_bonus_max`]);
|
|
const weapon_bonus_misc = int(values[`repeating_weapons_${id}_weapon_bonus_misc`]);
|
|
const weapon_bonus_total = Math.min(weapon_bonus, weapon_bonus_max) + weapon_bonus_misc;
|
|
// no need to calculate damage total, its not affected by external factors
|
|
settings[`repeating_weapons_${id}_weapon_base_total`] = weapon_base_total;
|
|
settings[`repeating_weapons_${id}_weapon_skill_value`] = skill;
|
|
settings[`repeating_weapons_${id}_weapon_skill_total`] = weapon_skill_total;
|
|
settings[`repeating_weapons_${id}_weapon_bonus_total`] = weapon_bonus_total;
|
|
});
|
|
setAttrs(settings, {silent: true});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Monster strength-based skill total calcs */
|
|
const monster_attributes = {
|
|
'crafting monster': 'crafting_monster',
|
|
'endurance monster': 'endurance_monster',
|
|
'melee monster': 'melee_monster',
|
|
'might monster': 'might_monster',
|
|
};
|
|
const monster_misc = {
|
|
'crafting monster': 'crafting_skill_misc_monster',
|
|
'endurance monster': 'endurance_skill_misc_monster',
|
|
'melee monster': 'melee_skill_misc_monster',
|
|
'might monster': 'might_skill_misc_monster',
|
|
};
|
|
const monster_miscGear = {
|
|
'crafting monster': 'crafting_gear_misc_monster',
|
|
'endurance monster': 'endurance_gear_misc_monster',
|
|
'melee monster': 'melee_gear_misc_monster',
|
|
'might monster': 'might_gear_misc_monster',
|
|
};
|
|
|
|
Object.keys(monster_attributes).forEach((skill_name) => {
|
|
const monster_skill = getSkill(skill_name);
|
|
on(`change:${monster_skill} change:${monster_attributes[skill_name]} change:${monster_misc[skill_name]} change:${monster_miscGear[skill_name]}`, function () {
|
|
clog(`${monster_skill} or ${monster_attributes[skill_name]} or ${monster_misc[skill_name]} or ${monster_miscGear[skill_name]} has changed.`);
|
|
getAttrs([monster_skill, monster_attributes[skill_name], monster_misc[skill_name], monster_miscGear[skill_name]], function (values) {
|
|
const stat_score = int(values[monster_attributes[skill_name]]);
|
|
const miscSkill_score = int(values[monster_misc[skill_name]]);
|
|
const miscGear_score = int(values[monster_miscGear[skill_name]]);
|
|
setAttrs({
|
|
[`${monster_skill}_total`]: stat_score + miscSkill_score + miscGear_score,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Wes's Dice Pool */
|
|
// need to know the max pool size for each type, and whether negative dice should be in the pool.
|
|
const pools = {
|
|
attribute: {
|
|
max: 12,
|
|
negative: 0,
|
|
},
|
|
skill: {
|
|
max: 10,
|
|
negative: 3,
|
|
},
|
|
gear: {
|
|
max: 12,
|
|
negative: 0,
|
|
},
|
|
};
|
|
|
|
Object.keys(pools).forEach((which) => {
|
|
on(`change:${which}`, function () {
|
|
getAttrs([which, 'skill'], function (values) {
|
|
const score = Math.min(pools[which].max, int(values[which]));
|
|
const negativeDice = values.skill < 0 ? values.skill : 0;
|
|
const settings = {};
|
|
// loop through numbers from 1 to the pool's max, and enter a value of 1 if less < pool value, or 0 otherwise.
|
|
for (let d = 1; d <= pools[which].max; d++) {
|
|
// pools[which].max gets the max value from the pools object.
|
|
settings[`${which}_die_${litnum[d]}`] = d <= score ? 1 : 0;
|
|
// `${which}_die_${litnum[d]}` creates a name like 'gear_die_three'
|
|
// (d <= score) ? 1 : 0; checks current index and assigns value of 1 if less than equal to pool score
|
|
// settings[attribute] = value stores the appropriate attribute names and values
|
|
}
|
|
// need to check negative dice, and compare score
|
|
// negative dice are set to zero. They are set to 1 only if pools.negative > 0, score is below zero, and absolute value of score is below 1-3.
|
|
for (let n = 1; n <= 3; n++) {
|
|
// settings[`negative_die_${litnum[n]}`] = pools[which].negative && score < 0 && n <= Math.abs(score) ? 1 : 0;
|
|
settings[`negative_die_${litnum[n]}`] = negativeDice && n <= Math.abs(negativeDice) ? 1 : 0;
|
|
// clog(`Negative dice are being evaluated. |pools.negative value=${pools[which].negative} |Skill score=${score} |n=${n} |abs of score=${Math.abs(score)} |include negative die=${settings[`negative_die_${litnum[n]}`]}`);
|
|
}
|
|
setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
|
|
const dicePoolButtons = (which) => {
|
|
// clog(`Change Detected: Dice Pool ${which} - button clicked`);
|
|
getAttrs(
|
|
[
|
|
attributes[which],
|
|
misc[which],
|
|
miscGear[which],
|
|
getSkill(which),
|
|
getSkillKey(which),
|
|
`${getSkill(which)}_artifact_die_eight`,
|
|
`${getSkill(which)}_artifact_die_ocho`,
|
|
`${getSkill(which)}_artifact_die_ten`,
|
|
`${getSkill(which)}_artifact_die_twelve`,
|
|
`${getSkill(which)}_notes`,
|
|
],
|
|
function (values) {
|
|
// attributes[which] returns the attribute; e.g attributes['Stealth'] gives 'agility_total'
|
|
// getSkill(which) converts the skill name to a valid attribute string: getSkill('Animal Handling') gives 'animal_handling'
|
|
const stat = int(values[attributes[which]]);
|
|
const miscSkill_score = Math.max(int(values[misc[which]]), -3);
|
|
const miscGear_score = int(values[miscGear[which]]);
|
|
// stat here first gets attributes['Stealth'] which will be, say, 'agility_total' and
|
|
// then values['ability_total'] gives you the score from the character sheet.
|
|
const artifact_die_eight = int(values[`${getSkill(which)}_artifact_die_eight`]);
|
|
const artifact_die_ocho = int(values[`${getSkill(which)}_artifact_die_ocho`]);
|
|
const artifact_die_ten = int(values[`${getSkill(which)}_artifact_die_ten`]);
|
|
const artifact_die_twelve = int(values[`${getSkill(which)}_artifact_die_twelve`]);
|
|
const skill_attribute_selected = stat > 0 ? stat : 0;
|
|
const skill_bonus_misc_selected = miscSkill_score;
|
|
const skill_bonus_misc_gear_selected = miscGear_score;
|
|
const skill_only_selected = int(values[getSkill(which)]);
|
|
const skill_notes_selected = values[`${getSkill(which)}_notes`];
|
|
// used to set the proper translation key
|
|
const whichKey = getTranslationByKey(getSkillKey(which));
|
|
|
|
setAttrs({
|
|
attribute: stat > 0 ? stat : 0,
|
|
gear: miscGear_score,
|
|
skill: int(values[getSkill(which)]) + miscSkill_score,
|
|
artifact_die_eight,
|
|
artifact_die_ocho,
|
|
artifact_die_ten,
|
|
artifact_die_twelve,
|
|
skill_attribute_selected,
|
|
skill_bonus_misc_selected,
|
|
skill_bonus_misc_gear_selected,
|
|
skill_only_selected,
|
|
skill_notes_selected,
|
|
current_preset: whichKey,
|
|
subtitle2: '',
|
|
include_with_roll: `{{skill-base=${skill_attribute_selected}}} {{skill-skill=${skill_only_selected}}} {{skill-bonus-misc-skill=${skill_bonus_misc_selected}}} {{skill-bonus-misc-gear=${skill_bonus_misc_gear_selected}}} {{skill-notes=${skill_notes_selected}}}`,
|
|
});
|
|
},
|
|
);
|
|
};
|
|
|
|
Object.keys(attributes).forEach((skill) => {
|
|
on(`clicked:dice-pool-${getSkill(skill)}`, () => dicePoolButtons(skill));
|
|
// action button names should not use "_". getSkillKey will use "-" instead to match button names.
|
|
on(`clicked:dice-pool-${getSkillKey(skill)}`, () => dicePoolButtons(skill));
|
|
});
|
|
|
|
/* Monster strength-based skill dice pool */
|
|
const monster_dicePoolButtons = (which) => {
|
|
clog(`Change Detected: Dice Pool:${which}|`);
|
|
// use regex to remove the " monster" from which
|
|
// in order to grab the non-Monster X_notes
|
|
const regex = /\s*monster\b/g;
|
|
const whichNonMonster = which.replace(regex, '');
|
|
getAttrs(
|
|
[
|
|
monster_attributes[which],
|
|
monster_misc[which],
|
|
monster_miscGear[which],
|
|
getSkill(which),
|
|
getSkillKey(which),
|
|
`${whichNonMonster}_artifact_die_eight`,
|
|
`${whichNonMonster}_artifact_die_ocho`,
|
|
`${whichNonMonster}_artifact_die_ten`,
|
|
`${whichNonMonster}_artifact_die_twelve`,
|
|
`${whichNonMonster}_notes`,
|
|
],
|
|
function (values) {
|
|
const stat = int(values[monster_attributes[which]]);
|
|
const miscSkill_score = Math.max(int(values[monster_misc[which]]), -3);
|
|
const miscGear_score = int(values[monster_miscGear[which]]);
|
|
const artifact_die_eight = int(values[`${whichNonMonster}_artifact_die_eight`]);
|
|
const artifact_die_ocho = int(values[`${whichNonMonster}_artifact_die_ocho`]);
|
|
const artifact_die_ten = int(values[`${whichNonMonster}_artifact_die_ten`]);
|
|
const artifact_die_twelve = int(values[`${whichNonMonster}_artifact_die_twelve`]);
|
|
const skill_notes_selected = values[`${whichNonMonster}_notes`];
|
|
const whichKey = getTranslationByKey(getSkillKey(which));
|
|
setAttrs({
|
|
attribute: stat > 0 ? stat : 0,
|
|
gear: miscGear_score,
|
|
skill: miscSkill_score,
|
|
artifact_die_eight,
|
|
artifact_die_ocho,
|
|
artifact_die_ten,
|
|
artifact_die_twelve,
|
|
skill_notes_selected,
|
|
current_preset: whichKey,
|
|
subtitle2: '',
|
|
include_with_roll: `{{skill-notes=${skill_notes_selected}}}`,
|
|
});
|
|
},
|
|
);
|
|
};
|
|
|
|
Object.keys(monster_attributes).forEach((monster_skill) => {
|
|
on(`clicked:dice-pool-${getSkill(monster_skill)}`, () => monster_dicePoolButtons(monster_skill));
|
|
// action button names should not use "_". getSkillKey will use "-" instead to match button names.
|
|
on(`clicked:dice-pool-${getSkillKey(monster_skill)}`, () => monster_dicePoolButtons(monster_skill));
|
|
});
|
|
|
|
/* Sets the 'localized roll' macro to roll from the sheet or api */
|
|
function localRollMacro() {
|
|
getAttrs(['api_toggle', 'the_dice_local_macro', 'character_name'], function (values) {
|
|
const api_toggle = int(values.api_toggle);
|
|
const charName = values.character_name;
|
|
// const {the_dice_local_macro} = values;
|
|
// const sheetRoll = `%\{${charName}|the_dice\}`;
|
|
const sheetRoll = `%\{${charName}|roll_the_dice\}`;
|
|
const apiRoll = `%\{${charName}|roll_the_dice_api\}`;
|
|
const localDice = api_toggle ? apiRoll : sheetRoll;
|
|
setAttrs({
|
|
the_dice_local_macro: localDice,
|
|
});
|
|
// clog(`Change Detected: api_toggle: ${api_toggle}`);
|
|
// clog(`Change Detected: the_dice_local_macro: ${the_dice_local_macro}`);
|
|
});
|
|
}
|
|
|
|
on('sheet:opened clicked:dice-pool-clear', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
// clog('Change Detected: Clear Dice Pool');
|
|
setAttrs({
|
|
attribute: 0,
|
|
skill: 0,
|
|
gear: 0,
|
|
attribute_die_twelve: 0,
|
|
attribute_die_eleven: 0,
|
|
attribute_die_ten: 0,
|
|
attribute_die_nine: 0,
|
|
attribute_die_eight: 0,
|
|
attribute_die_seven: 0,
|
|
attribute_die_six: 0,
|
|
attribute_die_five: 0,
|
|
attribute_die_four: 0,
|
|
attribute_die_three: 0,
|
|
attribute_die_two: 0,
|
|
attribute_die_one: 0,
|
|
negative_die_one: 0,
|
|
negative_die_two: 0,
|
|
negative_die_three: 0,
|
|
skill_die_ten: 0,
|
|
skill_die_nine: 0,
|
|
skill_die_eight: 0,
|
|
skill_die_seven: 0,
|
|
skill_die_six: 0,
|
|
skill_die_five: 0,
|
|
skill_die_four: 0,
|
|
skill_die_three: 0,
|
|
skill_die_two: 0,
|
|
skill_die_one: 0,
|
|
gear_die_twelve: 0,
|
|
gear_die_eleven: 0,
|
|
gear_die_ten: 0,
|
|
gear_die_nine: 0,
|
|
gear_die_eight: 0,
|
|
gear_die_seven: 0,
|
|
gear_die_six: 0,
|
|
gear_die_five: 0,
|
|
gear_die_four: 0,
|
|
gear_die_three: 0,
|
|
gear_die_two: 0,
|
|
gear_die_one: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`custom-roll`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: '',
|
|
pushable: 1,
|
|
push_latest: '',
|
|
});
|
|
});
|
|
|
|
/* api dice toggle */
|
|
on('clicked:api_dice_toggle', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['api_toggle'], function (values) {
|
|
const api_toggle = int(values.api_toggle);
|
|
let buttonState = api_toggle;
|
|
|
|
if (buttonState !== 0) {
|
|
buttonState = 0;
|
|
} else {
|
|
buttonState = 1;
|
|
}
|
|
setAttrs({
|
|
api_toggle: buttonState,
|
|
});
|
|
});
|
|
});
|
|
|
|
on('sheet:opened change:api_toggle', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
localRollMacro();
|
|
});
|
|
|
|
/* CRP HANDLING OF DICE POOL */
|
|
const rollEscape = {
|
|
chars: {
|
|
'"': '%quot;',
|
|
',': '%comma;',
|
|
':': '%colon;',
|
|
'}': '%rcub;',
|
|
'{': '%lcub;',
|
|
},
|
|
escape(input) {
|
|
const str = typeof input === 'object' ? JSON.stringify(input) : typeof input === 'string' ? input : null;
|
|
return str ? `${str}`.replace(new RegExp(`[${Object.keys(this.chars)}]`, 'g'), (r) => this.chars[r]) : null;
|
|
},
|
|
unescape(input) {
|
|
const str = `${input}`.replace(new RegExp(`(${Object.values(this.chars).join('|')})`, 'g'), (r) => Object.entries(this.chars).find((e) => e[1] === r)[0]);
|
|
return JSON.parse(str);
|
|
},
|
|
};
|
|
|
|
const expandDice = (dice, name) => {
|
|
console.log('Expand dice: ' + JSON.stringify(dice));
|
|
var diceResults = dice.dice;
|
|
var output = [];
|
|
console.log('Output pre: ' + JSON.stringify(output));
|
|
for (let i = 0; i < diceResults.length; i++) {
|
|
output[`${name}-dice-${i}`] =
|
|
`{"result": ${diceResults[i]},"dice": [${diceResults[i]}],"expression": "1D6","rolls": [{"sides": 6,"dice": 1,"results": [${diceResults[i]}] } ] }`;
|
|
}
|
|
console.log('Output post: ' + JSON.stringify(output));
|
|
return output;
|
|
};
|
|
|
|
on('clicked:push', async (ev) => {
|
|
clog('Starting push roll!');
|
|
clog(JSON.stringify(ev));
|
|
const reroll = rollEscape.unescape(ev.originalRollId);
|
|
clog(`Reroll object: ${JSON.stringify(reroll)}`);
|
|
const attributes = reroll.attributes,
|
|
roll = reroll.roll;
|
|
executeRoll({ev, attributes, roll});
|
|
});
|
|
|
|
on('clicked:roll_the_dice', () => {
|
|
getAttrs(
|
|
[
|
|
'character_name',
|
|
'character_id',
|
|
'attribute',
|
|
'skill',
|
|
'gear',
|
|
'artifact_die_eight',
|
|
'artifact_die_ocho',
|
|
'artifact_die_ten',
|
|
'artifact_die_twelve',
|
|
'current_preset',
|
|
'whisper_option',
|
|
'pushable',
|
|
],
|
|
async (values) => {
|
|
const trigger = {name: values.current_preset},
|
|
attributes = {
|
|
character_name: values.character_name || 'Unknown',
|
|
},
|
|
roll = {
|
|
name: values.current_preset || 'Roll',
|
|
attribute: int(values.attribute),
|
|
skill: int(values.skill),
|
|
gear: int(values.gear),
|
|
artifact_die_eight: int(values.artifact_die_eight),
|
|
artifact_die_ocho: int(values.artifact_die_ocho),
|
|
artifact_die_ten: int(values.artifact_die_ten),
|
|
artifact_die_twelve: int(values.artifact_die_twelve),
|
|
totalDice:
|
|
int(values.attribute) +
|
|
Math.abs(int(values.skill)) +
|
|
int(values.gear) +
|
|
int(values.artifact_die_eight) +
|
|
int(values.artifact_die_ocho) +
|
|
int(values.artifact_die_ten) +
|
|
int(values.artifact_die_twelve),
|
|
pushable: int(values.pushable),
|
|
pushroll: 0,
|
|
whisper: values.whisper_option,
|
|
};
|
|
executeRoll({trigger, attributes, roll});
|
|
},
|
|
);
|
|
});
|
|
|
|
const executeRoll = function ({trigger, attributes, roll}) {
|
|
var attributeStr = '',
|
|
skillStr = '',
|
|
gearStr = '',
|
|
rollStr = '',
|
|
artifact_eightStr = '',
|
|
artifact_ochoStr = '',
|
|
artifact_tenStr = '',
|
|
artifact_twelveStr = '',
|
|
successes = 0,
|
|
failures = 0,
|
|
gearfails = 0;
|
|
|
|
// clog(`TEST: Roll object: ${JSON.stringify(roll)}`);
|
|
// clog(`TEST: Roll pushRollStr: ${!!roll.pushRollStr}`);
|
|
|
|
if (roll.pushRollStr) {
|
|
rollStr = roll.pushRollStr;
|
|
} else {
|
|
for (let i = 1; i <= roll.attribute; i++) {
|
|
attributeStr += `{{attribute-die-${litnum[i]}=[[ 1 ]]}} {{attribute-roll-${litnum[i]}=[[ 1d6 ]]}} `;
|
|
}
|
|
if (roll.skill >= 0) {
|
|
for (let i = 1; i <= roll.skill; i++) {
|
|
skillStr += `{{skill-die-${litnum[i]}=[[ 1 ]]}} {{skill-roll-${litnum[i]}=[[ 1d6 ]]}} `;
|
|
}
|
|
} else if (roll.skill < 0) {
|
|
for (let i = 1; i <= Math.abs(roll.skill); i++) {
|
|
skillStr += `{{negative-die-${litnum[i]}=[[ 1 ]]}} {{negative-roll-${litnum[i]}=[[ 1d6 ]]}} `;
|
|
}
|
|
}
|
|
for (let i = 1; i <= roll.gear; i++) {
|
|
gearStr += `{{gear-die-${litnum[i]}=[[ 1 ]]}} {{gear-roll-${litnum[i]}=[[ 1d6 ]]}} `;
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_eight; i++) {
|
|
artifact_eightStr += `{{artifact-die-eight=[[ 1 ]]}} {{artifact-roll-eight=[[ 1d8 ]]}} `;
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_ocho; i++) {
|
|
artifact_ochoStr += `{{artifact-die-ocho=[[ 1 ]]}} {{artifact-roll-ocho=[[ 1d8 ]]}} `;
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_ten; i++) {
|
|
artifact_tenStr += `{{artifact-die-ten=[[ 1 ]]}} {{artifact-roll-ten=[[ 1d10 ]]}} `;
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_twelve; i++) {
|
|
artifact_twelveStr += `{{artifact-die-twelve=[[ 1 ]]}} {{artifact-roll-twelve=[[ 1d12 ]]}} `;
|
|
}
|
|
rollStr = `@{whisper_option} &{template:forbiddenlands} {{character_id=${attributes['character_id']}}} {{character_name=${attributes['character_name']}}} {{subtitle}} {{subtitle2=@{subtitle2}}} {{name=${roll.name}}} {{successes=[[ ${successes} ]]}} {{failures=[[ ${failures} ]]}} {{gearfails=[[ ${gearfails} ]]}} {{push=[[ ${roll.pushable} ]]}} {{pushroll=[[ ${roll.pushroll} ]]}} ${attributeStr} ${skillStr} ${gearStr} ${artifact_eightStr} ${artifact_ochoStr} ${artifact_tenStr} ${artifact_twelveStr} {{free-text}} {{footer}} @{include_with_roll}`;
|
|
}
|
|
|
|
// clog("Roll string; "+ rollStr);
|
|
|
|
startRoll(rollStr, (dicePoolRoll) => {
|
|
clog('Roll results: ' + JSON.stringify(dicePoolRoll));
|
|
var pushAttributeStr = '',
|
|
pushSkillStr = '',
|
|
pushGearStr = '',
|
|
pushArtifact_eightStr = '',
|
|
pushArtifact_ochoStr = '',
|
|
pushArtifact_tenStr = '',
|
|
pushArtifact_twelveStr = '',
|
|
totalArtifactBonus = 0,
|
|
successfulArtifactDie = 0,
|
|
successes = 0,
|
|
failures = 0,
|
|
gearfails = 0;
|
|
|
|
roll.pushroll = roll.pushroll + 1;
|
|
|
|
for (let i = 1; i <= roll.attribute; i++) {
|
|
let r = +dicePoolRoll.results[`attribute-roll-${litnum[i]}`].result || 0;
|
|
if (r === 6) {
|
|
pushAttributeStr += `{{attribute-die-${litnum[i]}=[[ 1 ]]}} {{attribute-roll-${litnum[i]}=[[ 6 ]]}}`;
|
|
successes++;
|
|
} else if (r === 1) {
|
|
pushAttributeStr += `{{attribute-die-${litnum[i]}=[[ 1 ]]}} {{attribute-roll-${litnum[i]}=[[ 1 ]]}}`;
|
|
failures++;
|
|
} else {
|
|
pushAttributeStr += `{{attribute-die-${litnum[i]}=[[ 1 ]]}} {{attribute-roll-${litnum[i]}=[[ 1d6 ]]}}`;
|
|
}
|
|
}
|
|
if (roll.skill >= 0) {
|
|
for (let i = 1; i <= roll.skill; i++) {
|
|
let r = +dicePoolRoll.results[`skill-roll-${litnum[i]}`].result || 0;
|
|
if (r === 6) {
|
|
pushSkillStr += `{{skill-die-${litnum[i]}=[[ 1 ]]}} {{skill-roll-${litnum[i]}=[[ 6 ]]}}`;
|
|
successes++;
|
|
} else {
|
|
pushSkillStr += `{{skill-die-${litnum[i]}=[[ 1 ]]}} {{skill-roll-${litnum[i]}=[[ 1d6 ]]}}`;
|
|
}
|
|
}
|
|
} else if (roll.skill < 0) {
|
|
for (let i = 1; i <= Math.abs(roll.skill); i++) {
|
|
let r = +dicePoolRoll.results[`negative-roll-${litnum[i]}`].result || 0;
|
|
// clog(`negative skill ${i} : ${r}`);
|
|
if (r === 6) {
|
|
pushSkillStr += `{{negative-die-${litnum[i]}=[[ 1 ]]}} {{negative-roll-${litnum[i]}=[[ 6 ]]}}`;
|
|
// a success on negative dice negates base and gear successes
|
|
// successes++;
|
|
successes--;
|
|
} else {
|
|
pushSkillStr += `{{negative-die-${litnum[i]}=[[ 1 ]]}} {{negative-roll-${litnum[i]}=[[ 1d6 ]]}}`;
|
|
}
|
|
}
|
|
}
|
|
for (let i = 1; i <= roll.gear; i++) {
|
|
let r = +dicePoolRoll.results[`gear-roll-${litnum[i]}`].result || 0;
|
|
if (r === 6) {
|
|
pushGearStr += `{{gear-die-${litnum[i]}=[[ 1 ]]}} {{gear-roll-${litnum[i]}=[[ 6 ]]}}`;
|
|
successes++;
|
|
} else if (r === 1) {
|
|
pushGearStr += `{{gear-die-${litnum[i]}=[[ 1 ]]}} {{gear-roll-${litnum[i]}=[[ 1 ]]}}`;
|
|
failures++;
|
|
gearfails++;
|
|
} else {
|
|
pushGearStr += `{{gear-die-${litnum[i]}=[[ 1 ]]}} {{gear-roll-${litnum[i]}=[[ 1d6 ]]}}`;
|
|
}
|
|
}
|
|
|
|
// artifact dice
|
|
for (let i = 1; i <= roll.artifact_die_eight; i++) {
|
|
let r = +dicePoolRoll.results[`artifact-roll-eight`].result || 0;
|
|
if (r >= 6) {
|
|
let bonus = 0;
|
|
switch (r) {
|
|
case 8:
|
|
bonus = 2;
|
|
break;
|
|
default:
|
|
bonus = 1;
|
|
}
|
|
pushArtifact_eightStr += `{{artifact-die-eight=[[ 1 ]]}} {{artifact-roll-eight=[[ ${r} ]]}}`;
|
|
successfulArtifactDie++;
|
|
totalArtifactBonus = incrementWith(totalArtifactBonus, bonus);
|
|
successes = incrementWith(successes, bonus);
|
|
} else {
|
|
pushArtifact_eightStr += `{{artifact-die-eight=[[ 1 ]]}} {{artifact-roll-eight=[[ 1d8 ]]}}`;
|
|
}
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_ocho; i++) {
|
|
let r = +dicePoolRoll.results[`artifact-roll-ocho`].result || 0;
|
|
if (r >= 6) {
|
|
let bonus = 0;
|
|
switch (r) {
|
|
case 8:
|
|
bonus = 2;
|
|
break;
|
|
default:
|
|
bonus = 1;
|
|
}
|
|
pushArtifact_ochoStr += `{{artifact-die-ocho=[[ 1 ]]}} {{artifact-roll-ocho=[[ ${r} ]]}}`;
|
|
successfulArtifactDie++;
|
|
totalArtifactBonus = incrementWith(totalArtifactBonus, bonus);
|
|
successes = incrementWith(successes, bonus);
|
|
} else {
|
|
pushArtifact_ochoStr += `{{artifact-die-ocho=[[ 1 ]]}} {{artifact-roll-ocho=[[ 1d8 ]]}}`;
|
|
}
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_ten; i++) {
|
|
let r = +dicePoolRoll.results[`artifact-roll-ten`].result || 0;
|
|
if (r >= 6) {
|
|
let bonus = 0;
|
|
switch (r) {
|
|
case 10:
|
|
bonus = 3;
|
|
break;
|
|
case 9:
|
|
case 8:
|
|
bonus = 2;
|
|
break;
|
|
default:
|
|
bonus = 1;
|
|
}
|
|
pushArtifact_tenStr += `{{artifact-die-ten=[[ 1 ]]}} {{artifact-roll-ten=[[ ${r} ]]}}`;
|
|
successfulArtifactDie++;
|
|
totalArtifactBonus = incrementWith(totalArtifactBonus, bonus);
|
|
successes = incrementWith(successes, bonus);
|
|
} else {
|
|
pushArtifact_tenStr += `{{artifact-die-ten=[[ 1 ]]}} {{artifact-roll-ten=[[ 1d10 ]]}}`;
|
|
}
|
|
}
|
|
for (let i = 1; i <= roll.artifact_die_twelve; i++) {
|
|
let r = +dicePoolRoll.results[`artifact-roll-twelve`].result || 0;
|
|
if (r >= 6) {
|
|
let bonus = 0;
|
|
switch (r) {
|
|
case 12:
|
|
bonus = 4;
|
|
break;
|
|
case 10:
|
|
case 11:
|
|
bonus = 3;
|
|
break;
|
|
case 8:
|
|
case 9:
|
|
bonus = 2;
|
|
break;
|
|
default:
|
|
bonus = 1;
|
|
}
|
|
pushArtifact_twelveStr += `{{artifact-die-twelve=[[ 1 ]]}} {{artifact-roll-twelve=[[ ${r} ]]}}`;
|
|
successfulArtifactDie++;
|
|
totalArtifactBonus = incrementWith(totalArtifactBonus, bonus);
|
|
successes = incrementWith(successes, bonus);
|
|
} else {
|
|
pushArtifact_twelveStr += `{{artifact-die-twelve=[[ 1 ]]}} {{artifact-roll-twelve=[[ 1d12 ]]}}`;
|
|
}
|
|
}
|
|
|
|
// removes total artifact successes but adds back the # of successful artifact dice
|
|
// use adjustedSuccesses to determine if a push is still an option for the roll
|
|
const adjustedSuccesses = successes - totalArtifactBonus + successfulArtifactDie;
|
|
|
|
// NB: Successes and failures counts number of dice which cannot be rerolled.
|
|
// In case of negative skill dice, the actual successes may be lower
|
|
if (adjustedSuccesses + failures >= roll.totalDice) {
|
|
roll.pushable = 0;
|
|
}
|
|
|
|
roll.pushRollStr = `@{whisper_option} &{template:forbiddenlands} {{character_id=${attributes['character_id']}}} {{character_name=${attributes['character_name']}}} {{subtitle}} {{subtitle2=@{subtitle2}}} {{name=${roll.name}}} {{push=[[ ${roll.pushable} ]]}} {{pushroll=[[ ${roll.pushroll} ]]}} {{successes=[[ ${successes} ]]}} {{failures=[[ ${failures} ]]}} {{gearfails=[[ ${gearfails} ]]}} ${pushAttributeStr} ${pushSkillStr} ${pushGearStr} ${pushArtifact_eightStr} ${pushArtifact_ochoStr} ${pushArtifact_tenStr} ${pushArtifact_twelveStr} {{free-text}} {{footer}} @{include_with_roll}`;
|
|
|
|
const pushRoll = {
|
|
attributes: attributes,
|
|
roll: roll,
|
|
successes: successes,
|
|
failures: failures,
|
|
gearfails: gearfails,
|
|
totalArtifactBonus: totalArtifactBonus,
|
|
successfulArtifactDie: successfulArtifactDie,
|
|
totalDice: roll.totalDice,
|
|
};
|
|
|
|
setAttrs({
|
|
push_latest: pushRoll,
|
|
pushable: 1,
|
|
});
|
|
// clog('Push data: ' + JSON.stringify(pushRoll));
|
|
finishRoll(dicePoolRoll.rollId, {
|
|
pushroll: rollEscape.escape(pushRoll),
|
|
push: roll.pushable,
|
|
successes: successes,
|
|
failures: failures,
|
|
gearfails: gearfails,
|
|
});
|
|
});
|
|
};
|
|
|
|
/* set reputation total */
|
|
on('change:age change:reputation', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['age', 'reputation', 'reputation_total'], function (values) {
|
|
const {age} = values;
|
|
const reputation = int(values.reputation);
|
|
let ageNum = 0;
|
|
if (age === 'young') {
|
|
ageNum = 0;
|
|
}
|
|
if (age === 'adult') {
|
|
ageNum = 1;
|
|
}
|
|
if (age === 'old') {
|
|
ageNum = 2;
|
|
}
|
|
const reputation_total = ageNum + reputation;
|
|
setAttrs({
|
|
reputation_total,
|
|
});
|
|
// clog(`reputation_total: ${reputation_total}`);
|
|
});
|
|
});
|
|
|
|
/* set reputation dice pool */
|
|
on('clicked:reputation-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['reputation_total'], function (values) {
|
|
let reputation_total = int(values.reputation_total);
|
|
let attributeOverflow = 0;
|
|
let gearOverflow = 0;
|
|
|
|
attributeOverflow = reputation_total > 10 ? Math.min(reputation_total - 10, 12) : 0;
|
|
gearOverflow = reputation_total > 22 ? Math.min(reputation_total - 22, 12) : 0;
|
|
reputation_total = +Math.min(reputation_total, 10);
|
|
clog(`reputation_total:${reputation_total} attributeOverflow:${attributeOverflow} gearOverflow:${gearOverflow}`);
|
|
|
|
setAttrs({
|
|
attribute: attributeOverflow,
|
|
skill: reputation_total,
|
|
gear: gearOverflow,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`reputation-roll`)}`,
|
|
subtitle2: '',
|
|
// include_with_roll: '{{attribute-die-one}}', // hides the dice column footer
|
|
include_with_roll: '{{dice-label-flag=1}}',
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set weapon dice pool */
|
|
on('clicked:repeating_weapons:attack-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'repeating_weapons_weapon_name',
|
|
'repeating_weapons_weapon_action',
|
|
'repeating_weapons_weapon_skill',
|
|
'repeating_weapons_weapon_base_total',
|
|
'repeating_weapons_weapon_skill_misc',
|
|
'repeating_weapons_weapon_skill_total',
|
|
'repeating_weapons_weapon_bonus',
|
|
'repeating_weapons_weapon_bonus_max',
|
|
'repeating_weapons_weapon_bonus_misc',
|
|
'repeating_weapons_weapon_bonus_total',
|
|
'repeating_weapons_weapon_damage',
|
|
'repeating_weapons_weapon_damage_misc',
|
|
'repeating_weapons_weapon_damage_total',
|
|
'repeating_weapons_weapon_grip',
|
|
'repeating_weapons_weapon_range',
|
|
'repeating_weapons_weapon_features',
|
|
'strength_total',
|
|
'agility_total',
|
|
'marksmanship',
|
|
'melee',
|
|
'repeating_weapons_weapon_artifact_die_ocho',
|
|
'repeating_weapons_weapon_artifact_die_eight',
|
|
'repeating_weapons_weapon_artifact_die_ten',
|
|
'repeating_weapons_weapon_artifact_die_twelve',
|
|
],
|
|
function (values) {
|
|
const weapon_name = values.repeating_weapons_weapon_name;
|
|
const weapon_action = values.repeating_weapons_weapon_action;
|
|
const weapon_base_total = int(values.repeating_weapons_weapon_base_total);
|
|
const weapon_bonus = int(values.repeating_weapons_weapon_bonus);
|
|
const weapon_bonus_misc = int(values.repeating_weapons_weapon_bonus_misc);
|
|
const weapon_bonus_max = int(values.repeating_weapons_weapon_bonus_max);
|
|
const weapon_bonus_total = int(values.repeating_weapons_weapon_bonus_total);
|
|
const weapon_skill_total = int(values.repeating_weapons_weapon_skill_total);
|
|
const weapon_damage = int(values.repeating_weapons_weapon_damage);
|
|
const weapon_damage_misc = int(values.repeating_weapons_weapon_damage_misc);
|
|
const weapon_grip = values.repeating_weapons_weapon_grip;
|
|
const weapon_range = values.repeating_weapons_weapon_range;
|
|
const weapon_features = values.repeating_weapons_weapon_features;
|
|
const weapon_artifact_die_ocho = int(values.repeating_weapons_weapon_artifact_die_ocho);
|
|
const weapon_artifact_die_eight = int(values.repeating_weapons_weapon_artifact_die_eight);
|
|
const weapon_artifact_die_ten = int(values.repeating_weapons_weapon_artifact_die_ten);
|
|
const weapon_artifact_die_twelve = int(values.repeating_weapons_weapon_artifact_die_twelve);
|
|
const actionSelected = weapon_action === '' ? `${weapon_name}` : `${weapon_action} - ${weapon_name}`;
|
|
|
|
setAttrs({
|
|
attribute: weapon_base_total,
|
|
gear: weapon_bonus_total,
|
|
skill: weapon_skill_total,
|
|
artifact_die_ocho: weapon_artifact_die_ocho,
|
|
artifact_die_eight: weapon_artifact_die_eight,
|
|
artifact_die_ten: weapon_artifact_die_ten,
|
|
artifact_die_twelve: weapon_artifact_die_twelve,
|
|
current_preset: `${actionSelected}`,
|
|
subtitle2: '',
|
|
include_with_roll: `{{weapon-bonus=${weapon_bonus}}} {{weapon-bonus-max=${weapon_bonus_max}}} {{weapon-bonus-misc=${weapon_bonus_misc}}} {{weapon-damage=${weapon_damage}}} {{weapon-damage-misc=${weapon_damage_misc}}} {{weapon-grip=${weapon_grip}}} {{weapon-range=${weapon_range}}} {{weapon-features=${weapon_features}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
/* Monster attacks dice pool */
|
|
on('clicked:repeating_monster:monster-attack-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'repeating_monster_attack_name',
|
|
'repeating_monster_attack_dice',
|
|
'repeating_monster_attack_damage',
|
|
'repeating_monster_attack_features',
|
|
'repeating_monster_attack_range',
|
|
'repeating_monster_attack_description',
|
|
],
|
|
function (values) {
|
|
const monster_attack_name = values.repeating_monster_attack_name;
|
|
const monster_attack_dice = int(values.repeating_monster_attack_dice);
|
|
const monster_attack_damage = int(values.repeating_monster_attack_damage);
|
|
const monster_attack_features = values.repeating_monster_attack_features;
|
|
const monster_attack_range = values.repeating_monster_attack_range;
|
|
const monster_attack_description = values.repeating_monster_attack_description;
|
|
const attribute = monster_attack_dice;
|
|
setAttrs({
|
|
attribute,
|
|
skill: 0,
|
|
gear: 0,
|
|
current_preset: `${getTranslationByKey(`attack`)} - ${monster_attack_name}`,
|
|
subtitle2: '',
|
|
include_with_roll: `{{weapon-damage=${monster_attack_damage}}} {{attack-features=${monster_attack_features}}} {{weapon-range=${monster_attack_range}}} {{attack-description=${monster_attack_description}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
/* set spell dice pool */
|
|
on('clicked:repeating_spells:spell-roll clicked:repeating_spells:spell-rollovercharge', function (eventInfo) {
|
|
clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'repeating_spells_spell_name',
|
|
'repeating_spells_spell_caster_rank',
|
|
'repeating_spells_spell_rank',
|
|
'repeating_spells_spell_range',
|
|
'repeating_spells_spell_duration',
|
|
'repeating_spells_spell_ingredients',
|
|
'repeating_spells_spell_ingredients_included',
|
|
'repeating_spells_spell_grimoire',
|
|
'repeating_spells_spell_description',
|
|
'repeating_spells_spell_willpower',
|
|
'willpower',
|
|
],
|
|
function (values) {
|
|
// check action button to determine if the roll is safe or overcharged
|
|
const isOvercharged = /rollovercharge/.test(eventInfo.sourceAttribute) ? 1 : 0;
|
|
const spell_name = values.repeating_spells_spell_name;
|
|
const caster_rank = int(values.repeating_spells_spell_caster_rank);
|
|
const spell_rank = int(values.repeating_spells_spell_rank);
|
|
const spell_willpower = int(values.repeating_spells_spell_willpower);
|
|
const spell_range = values.repeating_spells_spell_range;
|
|
const spell_duration = values.repeating_spells_spell_duration;
|
|
const spell_ingredients = values.repeating_spells_spell_ingredients;
|
|
let spell_ingredients_included = int(values.repeating_spells_spell_ingredients_included);
|
|
let spell_grimoire_text = '';
|
|
const spell_grimoire = int(values.repeating_spells_spell_grimoire);
|
|
const spell_description = values.repeating_spells_spell_description;
|
|
const willpower = int(values.willpower);
|
|
const basePowerLevel = spell_willpower + spell_ingredients_included;
|
|
const chanceCasting = caster_rank < spell_rank ? spell_rank - caster_rank : 0;
|
|
// check action button to determine if the roll is safe or overcharged
|
|
let typeOfCastingText = isOvercharged === 1 ? `${getTranslationByKey(`casting-overcharged`)}` : `${getTranslationByKey(`casting-safe`)}`;
|
|
let dicePool = isOvercharged === 1 ? spell_willpower + chanceCasting : spell_willpower - (caster_rank - (spell_rank - spell_grimoire));
|
|
// check for Chance casting
|
|
if (chanceCasting !== 0) {
|
|
typeOfCastingText = isOvercharged === 1 ? `${getTranslationByKey(`casting-overcharged-chance`)}` : `${getTranslationByKey(`casting-safe`)}`;
|
|
dicePool = isOvercharged === 1 ? spell_willpower + chanceCasting : spell_willpower - (caster_rank - (Math.min(spell_rank, caster_rank) - spell_grimoire));
|
|
}
|
|
spell_ingredients_included = spell_ingredients_included === 1 ? 'Ingred.' : '';
|
|
spell_grimoire_text = spell_grimoire === 1 ? 'Grimoire' : '';
|
|
setAttrs({
|
|
attribute: dicePool,
|
|
skill: 0,
|
|
gear: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`spell`)} - ${spell_name}`,
|
|
subtitle2: typeOfCastingText,
|
|
include_with_roll: `{{current-willpower=${willpower}}} {{caster-rank=${caster_rank}}} {{basePL=${basePowerLevel}}} {{spell-willpower=${spell_willpower}}} {{spell-rank=${spell_rank}}} {{spell-range=${spell_range}}} {{spell-duration=${spell_duration}}} {{spell-ingredients-included=${spell_ingredients_included}}} {{spell-ingredients=${spell_ingredients}}} {{spell-grimoire=${spell_grimoire_text}}} {{spell-description=${spell_description}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
/* set armor and shield calcs */
|
|
on(
|
|
'change:melee change:strength_total change:armor1_equipped change:armor1_damage change:armor1_bonus change:armor1_bonus_max change:armor2_equipped change:armor2_damage change:armor2_bonus change:armor2_bonus_max change:armor3_equipped change:armor3_damage change:armor3_bonus change:armor3_bonus_max change:armor4_equipped change:armor4_damage change:armor4_bonus change:armor4_bonus_max change:shield1_equipped change:shield1_bonus change:shield1_bonus_max change:shield1_bonus_misc',
|
|
function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'melee',
|
|
'strength_total',
|
|
'armor1_equipped',
|
|
'armor1_bonus',
|
|
'armor1_bonus_max',
|
|
'armor1_damage',
|
|
'armor2_equipped',
|
|
'armor2_bonus',
|
|
'armor2_bonus_max',
|
|
'armor2_damage',
|
|
'armor3_equipped',
|
|
'armor3_bonus',
|
|
'armor3_bonus_max',
|
|
'armor3_damage',
|
|
'armor4_equipped',
|
|
'armor4_bonus',
|
|
'armor4_bonus_max',
|
|
'armor4_damage',
|
|
'shield1_equipped',
|
|
'shield1_bonus',
|
|
'shield1_bonus_misc',
|
|
'shield1_bonus_max',
|
|
],
|
|
function (values) {
|
|
const armor1_equipped = int(values.armor1_equipped);
|
|
const armor1_bonus = int(values.armor1_bonus);
|
|
const armor1_bonus_max = int(values.armor1_bonus_max);
|
|
const armor1_bonusCap = Math.min(armor1_bonus, armor1_bonus_max); // prevents inputting a higher bonus than the bonus_max value
|
|
const armor1_damage = int(values.armor1_damage);
|
|
const armor2_equipped = int(values.armor2_equipped);
|
|
const armor2_bonus = int(values.armor2_bonus);
|
|
const armor2_bonus_max = int(values.armor2_bonus_max);
|
|
const armor2_bonusCap = Math.min(armor2_bonus, armor2_bonus_max); // prevents inputting a higher bonus than the bonus_max value
|
|
const armor2_damage = int(values.armor2_damage);
|
|
const armor3_equipped = int(values.armor3_equipped);
|
|
const armor3_bonus = int(values.armor3_bonus);
|
|
const armor3_bonus_max = int(values.armor3_bonus_max);
|
|
const armor3_bonusCap = Math.min(armor3_bonus, armor3_bonus_max); // prevents inputting a higher bonus than the bonus_max value
|
|
const armor3_damage = int(values.armor3_damage);
|
|
const armor4_equipped = int(values.armor4_equipped);
|
|
const armor4_bonus = int(values.armor4_bonus);
|
|
const armor4_bonus_max = int(values.armor4_bonus_max);
|
|
const armor4_bonusCap = Math.min(armor4_bonus, armor4_bonus_max); // prevents inputting a higher bonus than the bonus_max value
|
|
const armor4_damage = int(values.armor4_damage);
|
|
const strength_total = int(values.strength_total);
|
|
const melee = int(values.melee);
|
|
const shield1_equipped = int(values.shield1_equipped);
|
|
const shield1_bonus = int(values.shield1_bonus);
|
|
const shield1_bonus_misc = int(values.shield1_bonus_misc);
|
|
const shield1_bonus_max = int(values.shield1_bonus_max);
|
|
const shield1_bonusCap = Math.min(shield1_bonus, shield1_bonus_max); // prevents inputting a higher bonus than the bonus_max value
|
|
const shield1_bonus_total = Math.max(shield1_equipped * (strength_total + shield1_bonusCap + melee + shield1_bonus_misc));
|
|
const tempAR1 = armor1_equipped * (armor1_bonusCap + armor1_damage);
|
|
const tempAR2 = armor2_equipped * (armor2_bonusCap + armor2_damage);
|
|
const tempAR3 = armor3_equipped * (armor3_bonusCap + armor3_damage);
|
|
const tempAR4 = armor4_equipped * (armor4_bonusCap + armor4_damage);
|
|
const tempAR = Math.max(tempAR1 + tempAR2 + tempAR3 + tempAR4, 0); // prevents negative value
|
|
setAttrs({
|
|
armor1_ar: tempAR1,
|
|
armor2_ar: tempAR2,
|
|
armor3_ar: tempAR3,
|
|
armor4_ar: tempAR4,
|
|
ar: tempAR,
|
|
armor1_bonus: armor1_bonusCap, // applies cap based on the bonus_max value
|
|
armor2_bonus: armor2_bonusCap, // applies cap based on the bonus_max value
|
|
armor3_bonus: armor3_bonusCap, // applies cap based on the bonus_max value
|
|
armor4_bonus: armor4_bonusCap, // applies cap based on the bonus_max value
|
|
shield1_bonus: shield1_bonusCap, // applies cap based on the bonus_max value
|
|
shield1_bonus_total,
|
|
});
|
|
},
|
|
);
|
|
},
|
|
);
|
|
|
|
/* set armor artifact dice totals */
|
|
on(
|
|
'change:armor_artifact_die_ocho change:armor_artifact_die_eight change:armor_artifact_die_ten change:armor_artifact_die_twelve change:armor1_artifact_die_ocho change:armor1_artifact_die_eight change:armor1_artifact_die_ten change:armor1_artifact_die_twelve change:armor2_artifact_die_ocho change:armor2_artifact_die_eight change:armor2_artifact_die_ten change:armor2_artifact_die_twelve change:armor3_artifact_die_ocho change:armor3_artifact_die_eight change:armor3_artifact_die_ten change:armor3_artifact_die_twelve change:armor4_artifact_die_ocho change:armor4_artifact_die_eight change:armor4_artifact_die_ten change:armor4_artifact_die_twelve',
|
|
function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'armor_artifact_die_ocho',
|
|
'armor_artifact_die_eight',
|
|
'armor_artifact_die_ten',
|
|
'armor_artifact_die_twelve',
|
|
'armor1_artifact_die_ocho',
|
|
'armor1_artifact_die_eight',
|
|
'armor1_artifact_die_ten',
|
|
'armor1_artifact_die_twelve',
|
|
'armor2_artifact_die_ocho',
|
|
'armor2_artifact_die_eight',
|
|
'armor2_artifact_die_ten',
|
|
'armor2_artifact_die_twelve',
|
|
'armor3_artifact_die_ocho',
|
|
'armor3_artifact_die_eight',
|
|
'armor3_artifact_die_ten',
|
|
'armor3_artifact_die_twelve',
|
|
'armor4_artifact_die_ocho',
|
|
'armor4_artifact_die_eight',
|
|
'armor4_artifact_die_ten',
|
|
'armor4_artifact_die_twelve',
|
|
],
|
|
function (values) {
|
|
const armor1_artifact_die_ocho = int(values.armor1_artifact_die_ocho);
|
|
const armor1_artifact_die_eight = int(values.armor1_artifact_die_eight);
|
|
const armor1_artifact_die_ten = int(values.armor1_artifact_die_ten);
|
|
const armor1_artifact_die_twelve = int(values.armor1_artifact_die_twelve);
|
|
const armor2_artifact_die_ocho = int(values.armor2_artifact_die_ocho);
|
|
const armor2_artifact_die_eight = int(values.armor2_artifact_die_eight);
|
|
const armor2_artifact_die_ten = int(values.armor2_artifact_die_ten);
|
|
const armor2_artifact_die_twelve = int(values.armor3_artifact_die_twelve);
|
|
const armor3_artifact_die_ocho = int(values.armor3_artifact_die_ocho);
|
|
const armor3_artifact_die_eight = int(values.armor3_artifact_die_eight);
|
|
const armor3_artifact_die_ten = int(values.armor3_artifact_die_ten);
|
|
const armor3_artifact_die_twelve = int(values.armor3_artifact_die_twelve);
|
|
const armor4_artifact_die_ocho = int(values.armor4_artifact_die_ocho);
|
|
const armor4_artifact_die_eight = int(values.armor4_artifact_die_eight);
|
|
const armor4_artifact_die_ten = int(values.armor4_artifact_die_ten);
|
|
const armor4_artifact_die_twelve = int(values.armor4_artifact_die_twelve);
|
|
setAttrs({
|
|
armor_artifact_die_ocho: Math.max(armor1_artifact_die_ocho, armor2_artifact_die_ocho, armor3_artifact_die_ocho, armor4_artifact_die_ocho),
|
|
armor_artifact_die_eight: Math.max(armor1_artifact_die_eight, armor2_artifact_die_eight, armor3_artifact_die_eight, armor4_artifact_die_eight),
|
|
armor_artifact_die_ten: Math.max(armor1_artifact_die_ten, armor2_artifact_die_ten, armor3_artifact_die_ten, armor4_artifact_die_ten),
|
|
armor_artifact_die_twelve: Math.max(armor1_artifact_die_twelve, armor2_artifact_die_twelve, armor3_artifact_die_twelve, armor4_artifact_die_twelve),
|
|
});
|
|
},
|
|
);
|
|
},
|
|
);
|
|
|
|
/* set armor dice pool */
|
|
on('clicked:armor-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'ar',
|
|
'armor_artifact_die_ocho',
|
|
'armor_artifact_die_eight',
|
|
'armor_artifact_die_ten',
|
|
'armor_artifact_die_twelve',
|
|
'armor1_artifact_die_ocho',
|
|
'armor1_artifact_die_eight',
|
|
'armor1_artifact_die_ten',
|
|
'armor1_artifact_die_twelve',
|
|
'armor2_artifact_die_ocho',
|
|
'armor2_artifact_die_eight',
|
|
'armor2_artifact_die_ten',
|
|
'armor2_artifact_die_twelve',
|
|
'armor3_artifact_die_ocho',
|
|
'armor3_artifact_die_eight',
|
|
'armor3_artifact_die_ten',
|
|
'armor3_artifact_die_twelve',
|
|
'armor4_artifact_die_ocho',
|
|
'armor4_artifact_die_eight',
|
|
'armor4_artifact_die_ten',
|
|
'armor4_artifact_die_twelve',
|
|
'armor1_equipped',
|
|
'armor1_name',
|
|
'armor1_bonus',
|
|
'armor1_bonus_max',
|
|
'armor1_damage',
|
|
'armor1_ar',
|
|
'armor2_equipped',
|
|
'armor2_name',
|
|
'armor2_bonus',
|
|
'armor2_bonus_max',
|
|
'armor2_damage',
|
|
'armor2_ar',
|
|
'armor3_equipped',
|
|
'armor3_name',
|
|
'armor3_bonus',
|
|
'armor3_bonus_max',
|
|
'armor3_damage',
|
|
'armor3_ar',
|
|
'armor4_equipped',
|
|
'armor4_name',
|
|
'armor4_bonus',
|
|
'armor4_bonus_max',
|
|
'armor4_damage',
|
|
'armor4_ar',
|
|
],
|
|
function (values) {
|
|
const ar = int(values.ar);
|
|
const {armor1_equipped} = values;
|
|
const {armor1_name} = values;
|
|
const armor1_bonus = int(values.armor1_bonus);
|
|
const armor1_bonus_max = int(values.armor1_bonus_max);
|
|
const armor1_damage = int(values.armor1_damage);
|
|
const armor1_ar = int(values.armor1_ar);
|
|
const {armor2_equipped} = values;
|
|
const {armor2_name} = values;
|
|
const armor2_bonus = int(values.armor2_bonus);
|
|
const armor2_bonus_max = int(values.armor2_bonus_max);
|
|
const armor2_damage = int(values.armor2_damage);
|
|
const armor2_ar = int(values.armor2_ar);
|
|
const {armor3_equipped} = values;
|
|
const {armor3_name} = values;
|
|
const armor3_bonus = int(values.armor3_bonus);
|
|
const armor3_bonus_max = int(values.armor3_bonus_max);
|
|
const armor3_damage = int(values.armor3_damage);
|
|
const armor3_ar = int(values.armor3_ar);
|
|
const {armor4_equipped} = values;
|
|
const {armor4_name} = values;
|
|
const armor4_bonus = int(values.armor4_bonus);
|
|
const armor4_bonus_max = int(values.armor4_bonus_max);
|
|
const armor4_damage = int(values.armor4_damage);
|
|
const armor4_ar = int(values.armor4_ar);
|
|
const armor1_artifact_die_ocho = int(values.armor1_artifact_die_ocho);
|
|
const armor1_artifact_die_eight = int(values.armor1_artifact_die_eight);
|
|
const armor1_artifact_die_ten = int(values.armor1_artifact_die_ten);
|
|
const armor1_artifact_die_twelve = int(values.armor1_artifact_die_twelve);
|
|
const armor2_artifact_die_ocho = int(values.armor2_artifact_die_ocho);
|
|
const armor2_artifact_die_eight = int(values.armor2_artifact_die_eight);
|
|
const armor2_artifact_die_ten = int(values.armor2_artifact_die_ten);
|
|
const armor2_artifact_die_twelve = int(values.armor3_artifact_die_twelve);
|
|
const armor3_artifact_die_ocho = int(values.armor3_artifact_die_ocho);
|
|
const armor3_artifact_die_eight = int(values.armor3_artifact_die_eight);
|
|
const armor3_artifact_die_ten = int(values.armor3_artifact_die_ten);
|
|
const armor3_artifact_die_twelve = int(values.armor3_artifact_die_twelve);
|
|
const armor4_artifact_die_ocho = int(values.armor4_artifact_die_ocho);
|
|
const armor4_artifact_die_eight = int(values.armor4_artifact_die_eight);
|
|
const armor4_artifact_die_ten = int(values.armor4_artifact_die_ten);
|
|
const armor4_artifact_die_twelve = int(values.armor4_artifact_die_twelve);
|
|
const armor_artifact_die_ocho = int(values.armor_artifact_die_ocho);
|
|
const armor_artifact_die_eight = int(values.armor_artifact_die_eight);
|
|
const armor_artifact_die_ten = int(values.armor_artifact_die_ten);
|
|
const armor_artifact_die_twelve = int(values.armor_artifact_die_twelve);
|
|
const armorMiscSkill = Math.max(armor1_damage + armor2_damage + armor3_damage + armor4_damage, -3); // max of 3 negative dice
|
|
const armorMiscGear = ar;
|
|
setAttrs({
|
|
attribute: 0,
|
|
gear: armorMiscGear,
|
|
skill: armorMiscSkill,
|
|
artifact_die_ocho: Math.max(armor_artifact_die_ocho, armor1_artifact_die_ocho, armor2_artifact_die_ocho, armor3_artifact_die_ocho, armor4_artifact_die_ocho),
|
|
artifact_die_eight: Math.max(armor_artifact_die_eight, armor1_artifact_die_eight, armor2_artifact_die_eight, armor3_artifact_die_eight, armor4_artifact_die_eight),
|
|
artifact_die_ten: Math.max(armor_artifact_die_ten, armor1_artifact_die_ten, armor2_artifact_die_ten, armor3_artifact_die_ten, armor4_artifact_die_ten),
|
|
artifact_die_twelve: Math.max(armor_artifact_die_twelve, armor1_artifact_die_twelve, armor2_artifact_die_twelve, armor3_artifact_die_twelve, armor4_artifact_die_twelve),
|
|
current_preset: `${getTranslationByKey(`armor-roll`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: `{{armor1-equipped=[[ ${armor1_equipped} ]]}} {{armor1-name=${armor1_name}}} {{armor1-rating=${armor1_bonus}}} {{armor1-rating-max=${armor1_bonus_max}}} {{armor1-rating-misc=${armor1_damage}}} {{armor1-rating-total=${armor1_ar}}} {{armor2-equipped=[[ ${armor2_equipped} ]]}} {{armor2-name=${armor2_name}}} {{armor2-rating=${armor2_bonus}}} {{armor2-rating-max=${armor2_bonus_max}}} {{armor2-rating-misc=${armor2_damage}}} {{armor2-rating-total=${armor2_ar}}} {{armor3-equipped=[[ ${armor3_equipped} ]]}} {{armor3-name=${armor3_name}}} {{armor3-rating=${armor3_bonus}}} {{armor3-rating-max=${armor3_bonus_max}}} {{armor3-rating-misc=${armor3_damage}}} {{armor3-rating-total=${armor3_ar}}} {{armor4-equipped=[[ ${armor4_equipped} ]]}} {{armor4-name=${armor4_name}}} {{armor4-rating=${armor4_bonus}}} {{armor4-rating-max=${armor4_bonus_max}}} {{armor4-rating-misc=${armor4_damage}}} {{armor4-rating-total=${armor4_ar}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
/* set shield dice pool */
|
|
on('clicked:shield-shove-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'shield1_bonus',
|
|
'shield1_bonus_max',
|
|
'shield1_bonus_misc',
|
|
'shield1_bonus_total',
|
|
'melee',
|
|
'strength_total',
|
|
'shield1_name',
|
|
'shield1_artifact_die_ocho',
|
|
'shield1_artifact_die_eight',
|
|
'shield1_artifact_die_ten',
|
|
'shield1_artifact_die_twelve',
|
|
],
|
|
function (values) {
|
|
const skill = int(values.melee);
|
|
const melee = int(values.melee);
|
|
const strength_total = int(values.strength_total);
|
|
const strength = int(values.strength_total);
|
|
const shield1_bonus = int(values.shield1_bonus);
|
|
const shield1_bonus_misc = int(values.shield1_bonus_misc);
|
|
const shield1_bonus_max = int(values.shield1_bonus_max);
|
|
const shield1_bonus_total = int(values.shield1_bonus_total);
|
|
const {shield1_name} = values;
|
|
const shield1MiscSkill = Math.max(skill + shield1_bonus_misc, -3);
|
|
const shield1MiscGear = shield1_bonus_total - skill - shield1_bonus_misc - strength;
|
|
const shield1_artifact_die_ocho = int(values.shield1_artifact_die_ocho);
|
|
const shield1_artifact_die_eight = int(values.shield1_artifact_die_eight);
|
|
const shield1_artifact_die_ten = int(values.shield1_artifact_die_ten);
|
|
const shield1_artifact_die_twelve = int(values.shield1_artifact_die_twelve);
|
|
setAttrs({
|
|
attribute: strength,
|
|
gear: shield1MiscGear,
|
|
skill: shield1MiscSkill,
|
|
artifact_die_ocho: shield1_artifact_die_ocho,
|
|
artifact_die_eight: shield1_artifact_die_eight,
|
|
artifact_die_ten: shield1_artifact_die_ten,
|
|
artifact_die_twelve: shield1_artifact_die_twelve,
|
|
current_preset: `${getTranslationByKey(`shove`)} - ${getTranslationByKey(`shield`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: `{{shield1-name=${shield1_name}}} {{shield1-base=${strength_total}}} {{shield1-skill=${melee}}} {{shield1-bonus=${shield1_bonus}}} {{shield1-bonus-max=${shield1_bonus_max}}} {{shield1-bonus-misc=${shield1_bonus_misc}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
on('clicked:shield-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'shield1_bonus',
|
|
'shield1_bonus_max',
|
|
'shield1_bonus_misc',
|
|
'shield1_bonus_total',
|
|
'melee',
|
|
'strength_total',
|
|
'shield1_name',
|
|
'shield1_artifact_die_ocho',
|
|
'shield1_artifact_die_eight',
|
|
'shield1_artifact_die_ten',
|
|
'shield1_artifact_die_twelve',
|
|
],
|
|
function (values) {
|
|
const skill = int(values.melee);
|
|
const melee = int(values.melee);
|
|
const strength_total = int(values.strength_total);
|
|
const strength = int(values.strength_total);
|
|
const shield1_bonus = int(values.shield1_bonus);
|
|
const shield1_bonus_misc = int(values.shield1_bonus_misc);
|
|
const shield1_bonus_max = int(values.shield1_bonus_max);
|
|
const shield1_bonus_total = int(values.shield1_bonus_total);
|
|
const {shield1_name} = values;
|
|
const shield1MiscSkill = Math.max(skill + shield1_bonus_misc, -3);
|
|
const shield1MiscGear = shield1_bonus_total - skill - shield1_bonus_misc - strength;
|
|
const shield1_artifact_die_ocho = int(values.shield1_artifact_die_ocho);
|
|
const shield1_artifact_die_eight = int(values.shield1_artifact_die_eight);
|
|
const shield1_artifact_die_ten = int(values.shield1_artifact_die_ten);
|
|
const shield1_artifact_die_twelve = int(values.shield1_artifact_die_twelve);
|
|
setAttrs({
|
|
attribute: strength,
|
|
gear: shield1MiscGear,
|
|
skill: shield1MiscSkill,
|
|
artifact_die_ocho: shield1_artifact_die_ocho,
|
|
artifact_die_eight: shield1_artifact_die_eight,
|
|
artifact_die_ten: shield1_artifact_die_ten,
|
|
artifact_die_twelve: shield1_artifact_die_twelve,
|
|
current_preset: `${getTranslationByKey(`parry`)} - ${getTranslationByKey(`shield`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: `{{shield1-name=${shield1_name}}} {{shield1-base=${strength_total}}} {{shield1-skill=${melee}}} {{shield1-bonus=${shield1_bonus}}} {{shield1-bonus-max=${shield1_bonus_max}}} {{shield1-bonus-misc=${shield1_bonus_misc}}}`,
|
|
});
|
|
},
|
|
);
|
|
});
|
|
|
|
/* Mount/Beast Carry calcs */
|
|
const carry = (strength, mounted) => (strength * 4) / (mounted + 1);
|
|
on('change:mounted change:mount_strength', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['mounted', 'mount_strength'], function (values) {
|
|
const mounted = int(values.mounted);
|
|
const strength = int(values.mount_strength);
|
|
const Carry = carry(strength, mounted);
|
|
setAttrs({
|
|
mount_carry: Carry,
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:repeating_beasts', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['repeating_beasts_beast_mounted', 'repeating_beasts_beast_strength'], function (values) {
|
|
const mounted = int(values.repeating_beasts_beast_mounted);
|
|
const strength = int(values.repeating_beasts_beast_strength);
|
|
const Carry = carry(strength, mounted);
|
|
setAttrs({
|
|
repeating_beasts_beast_carry: Carry,
|
|
});
|
|
});
|
|
});
|
|
|
|
/* translate query text */
|
|
on('sheet:opened', function () {
|
|
// clog('Translation of query text complete.');
|
|
setAttrs({
|
|
translation_whisper_macro_query: `?{${getTranslationByKey('whisper-macro')}|${getTranslationByKey('no')},|${getTranslationByKey('yes')},/w gm |}`,
|
|
translation_whisper_api_macro_query: `?{${getTranslationByKey('whisper-macro')}|${getTranslationByKey('no')},!forl |${getTranslationByKey('yes')},!wforl |}`,
|
|
});
|
|
});
|
|
|
|
// attribute and skill maximum
|
|
// checks the score is valid and in-range.
|
|
// if not, resets its value within range.
|
|
const checkMax = (stat, score, max) => {
|
|
const settings = {};
|
|
if (score > max) {
|
|
settings[stat] = max;
|
|
}
|
|
if (score >= 0 && score < max) {
|
|
settings[stat] = score;
|
|
} else if (score < 0) {
|
|
settings[stat] = 0;
|
|
}
|
|
return settings;
|
|
};
|
|
stats.forEach((stat) => {
|
|
on(`change:${stat} change:tab`, function () {
|
|
getAttrs([stat, 'tab', 'strength_monster', 'strength_pc'], function (values) {
|
|
let total = int(values[stat]);
|
|
const tab = int(values.tab);
|
|
const pc = int(values.strength_pc);
|
|
const monster = int(values.strength_monster);
|
|
let max = 7; // increased to 7 for reforged power ruleset
|
|
// changing from tab 3, score will be monster str
|
|
if (tab === 1 && stat === 'strength') {
|
|
total = pc;
|
|
max = 7;
|
|
}
|
|
if (tab === 3 && stat === 'strength') {
|
|
total = monster;
|
|
max = 48; // monsters health max
|
|
}
|
|
|
|
const settings = checkMax(stat, total, max);
|
|
if (settings) setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
|
|
Object.keys(attributes).forEach((stat) => {
|
|
on(`change:${stat}`, function () {
|
|
getAttrs([stat], function (values) {
|
|
const total = int(values[stat]);
|
|
// const {max} = pools.skill;
|
|
const max = pools.skill.max;
|
|
const settings = checkMax(stat, total, max);
|
|
if (settings) setAttrs(settings);
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Update attributes total max */
|
|
on('sheet:opened change:strength_total change:agility_total change:wits_total change:empathy_total', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(
|
|
[
|
|
'strength',
|
|
'strength_total',
|
|
'strength_total_max',
|
|
'agility',
|
|
'agility_total',
|
|
'agility_total_max',
|
|
'wits',
|
|
'wits_total',
|
|
'wits_total_max',
|
|
'empathy',
|
|
'empathy_total',
|
|
'empathy_total_max',
|
|
],
|
|
function (values) {
|
|
const output = {};
|
|
output.strength = int(values.strength);
|
|
output.strength_total = int(values.strength_total);
|
|
output.agility = int(values.agility);
|
|
output.agility_total = int(values.agility_total);
|
|
output.wits = int(values.wits);
|
|
output.wits_total = int(values.wits_total);
|
|
output.empathy = int(values.empathy);
|
|
output.empathy_total = int(values.empathy_total);
|
|
setAttrs(output);
|
|
},
|
|
);
|
|
});
|
|
|
|
/* set strength dice pool */
|
|
on('clicked:strength-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['strength_total'], function (values) {
|
|
const strength_total = int(values.strength_total);
|
|
setAttrs({
|
|
attribute: Math.min(strength_total, 12),
|
|
skill: 0,
|
|
gear: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`roll-strength`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: '',
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set agility dice pool */
|
|
on('clicked:agility-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['agility_total'], function (values) {
|
|
const agility_total = int(values.agility_total);
|
|
setAttrs({
|
|
attribute: agility_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`roll-agility`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: '',
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set wits dice pool */
|
|
on('clicked:wits-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['wits_total'], function (values) {
|
|
const wits_total = int(values.wits_total);
|
|
setAttrs({
|
|
attribute: wits_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`roll-wits`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: '',
|
|
});
|
|
});
|
|
});
|
|
|
|
/* set empathy dice pool */
|
|
on('clicked:empathy-roll', function (eventInfo) {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getAttrs(['empathy_total'], function (values) {
|
|
const empathy_total = int(values.empathy_total);
|
|
setAttrs({
|
|
attribute: empathy_total,
|
|
skill: 0,
|
|
gear: 0,
|
|
artifact_die_eight: 0,
|
|
artifact_die_ocho: 0,
|
|
artifact_die_ten: 0,
|
|
artifact_die_twelve: 0,
|
|
current_preset: `${getTranslationByKey(`roll-empathy`)}`,
|
|
subtitle2: '',
|
|
include_with_roll: '',
|
|
});
|
|
});
|
|
});
|
|
|
|
/* willpower */
|
|
on('clicked:reset change:willpower', (eventInfo) => {
|
|
getAttrs(['willpower'], (v) => {
|
|
const zero = eventInfo.triggerName.replace('clicked:', '');
|
|
const output = {};
|
|
const newValue = +v.willpower;
|
|
const previousValue = eventInfo.previousValue;
|
|
if (eventInfo.triggerName === 'clicked:reset') {
|
|
output.willpower = 0;
|
|
} else if (newValue === 0) {
|
|
output.willpower = previousValue - 1;
|
|
}
|
|
setAttrs(output, {silent: true});
|
|
});
|
|
});
|
|
|
|
/* delete empty repeating rows w/out having to close/reopen sheet */
|
|
on(
|
|
'remove:repeating_injuries remove:repeating_talents remove:repeating_gear remove:repeating_mount_gear remove:repeating_cart_gear remove:repeating_relationships remove:repeating_spells remove:repeating_beasts remove:repeating_notes remove:repeating_functions remove:repeating_stronghold-stockpile remove:repeating_stronghold-notes remove:repeating_hirelings remove:repeating_monster',
|
|
function (eventInfo) {
|
|
const timestamp = Number(new Date());
|
|
setAttrs({repeat_delete: timestamp});
|
|
// clog('repeating row has been removed');
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
},
|
|
);
|
|
|
|
/* Talent Rank Totals */
|
|
const section_attribute = (section, id, field) => `repeating_${section}_${id}_${field}`;
|
|
on('change:repeating_talents:talent_rank remove:repeating_talents', (eventInfo) => {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
getSectionIDs('repeating_talents', (id_talent) => {
|
|
const fields = [];
|
|
// creates an array using the attribute data from each row
|
|
id_talent.forEach((id) => {
|
|
fields.push(section_attribute('talents', id, 'talent_rank'));
|
|
});
|
|
getAttrs(fields, (values) => {
|
|
const output = {};
|
|
const statsArray = ['talent_rank1', 'talent_rank2', 'talent_rank3', 'talent_rank4', 'talent_rank5', 'talent_rank6', 'talent_ranks'];
|
|
// instead of setting each attribute loop through the statsArray array
|
|
statsArray.forEach((stat) => {
|
|
output[`${stat}_total`] = 0;
|
|
});
|
|
// now loop through each repeating row
|
|
id_talent.forEach((id) => {
|
|
const rank = +values[section_attribute('talents', id, 'talent_rank')] || 0;
|
|
// clog(`~~~ Rank:${rank} ~~~`);
|
|
if (rank === 1) {
|
|
output.talent_rank1_total += rank;
|
|
} else if (rank === 2) {
|
|
output.talent_rank2_total += rank;
|
|
} else if (rank === 3) {
|
|
output.talent_rank3_total += rank;
|
|
} else if (rank === 4) {
|
|
output.talent_rank4_total += rank;
|
|
} else if (rank === 5) {
|
|
output.talent_rank5_total += rank;
|
|
} else if (rank === 6) {
|
|
output.talent_rank6_total += rank;
|
|
}
|
|
});
|
|
setAttrs(output);
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Skill Rank Totals */
|
|
const skills = [
|
|
'animal_handling',
|
|
'crafting',
|
|
'endurance',
|
|
'healing',
|
|
'insight',
|
|
'lore',
|
|
'manipulation',
|
|
'marksmanship',
|
|
'melee',
|
|
'might',
|
|
'move',
|
|
'performance',
|
|
'scouting',
|
|
'sleight_of_hand',
|
|
'stealth',
|
|
'survival',
|
|
];
|
|
on(
|
|
'change:animal_handling change:crafting change:endurance change:healing change:insight change:lore change:manipulation change:marksmanship change:melee change:might change:move change:performance change:scouting change:sleight_of_hand change:stealth change:survival',
|
|
(eventInfo) => {
|
|
// clog(`Change Detected: ${eventInfo.sourceAttribute}`);
|
|
const fields = [...skills];
|
|
// clog(`fields: ${fields}`);
|
|
getAttrs(fields, (values) => {
|
|
clog(`Skills:${skills}`);
|
|
const output = {};
|
|
const statsArray = ['skill_level1', 'skill_level2', 'skill_level3', 'skill_level4', 'skill_level5', 'skill_level6', 'skill_levels'];
|
|
// loop through statsArray array, rename to match output attribute and set to 0
|
|
statsArray.forEach((stat) => {
|
|
output[`${stat}_total`] = 0;
|
|
});
|
|
// loop through each attribute in the array and grab the value
|
|
skills.forEach((field) => {
|
|
const level = +values[field] || 0;
|
|
// clog(`Level:${level}`);
|
|
if (level === 1) {
|
|
output.skill_level1_total += level;
|
|
} else if (level === 2) {
|
|
output.skill_level2_total += level;
|
|
} else if (level === 3) {
|
|
output.skill_level3_total += level;
|
|
} else if (level === 4) {
|
|
output.skill_level4_total += level;
|
|
} else if (level === 5) {
|
|
output.skill_level5_total += level;
|
|
} else if (level === 6) {
|
|
output.skill_level6_total += level;
|
|
}
|
|
});
|
|
setAttrs(output);
|
|
});
|
|
},
|
|
);
|
|
|
|
/* Auto-generates a repeating row as a placeholder */
|
|
on('sheet:opened', (eventInfo) => {
|
|
// clog(`Change Detected:${eventInfo.sourceAttribute}`);
|
|
getSectionIDs('repeating_weapons', (weaponID) => {
|
|
getSectionIDs('repeating_talents', (talentID) => {
|
|
getSectionIDs('repeating_injuries', (injuryID) => {
|
|
getSectionIDs('repeating_gear', (gearID) => {
|
|
getSectionIDs('repeating_spells', (spellsID) => {
|
|
getSectionIDs('repeating_beasts', (beastsID) => {
|
|
getSectionIDs('repeating_notes', (notesID) => {
|
|
getSectionIDs('repeating_relationships', (relationshipsID) => {
|
|
getSectionIDs('repeating_mount', (mountID) => {
|
|
getSectionIDs('repeating_cart', (cartID) => {
|
|
const output = {};
|
|
const weaponRows = weaponID.length;
|
|
const talentRows = talentID.length;
|
|
const injuryRows = injuryID.length;
|
|
const gearRows = gearID.length;
|
|
const spellsRows = spellsID.length;
|
|
const beastsRows = beastsID.length;
|
|
const notesRows = notesID.length;
|
|
const relationshipsRows = relationshipsID.length;
|
|
const mountRows = mountID.length;
|
|
const cartRows = cartID.length;
|
|
if (weaponRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_weapons_${newrowid}_weapon_value`] = 1;
|
|
}
|
|
// adds 3 rows
|
|
if (talentRows < 3) {
|
|
let i = talentRows;
|
|
do {
|
|
i++;
|
|
const newrowid = generateRowID();
|
|
output[`repeating_talents_${newrowid}_talent_value`] = 1;
|
|
} while (i < 3);
|
|
}
|
|
if (injuryRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_injuries_${newrowid}_injury_value`] = 1;
|
|
}
|
|
// adds 10 rows
|
|
if (gearRows < 5) {
|
|
let i = gearRows;
|
|
do {
|
|
i++;
|
|
const newrowid = generateRowID();
|
|
output[`repeating_gear_${newrowid}_gear_value`] = 1;
|
|
} while (i < 5);
|
|
}
|
|
if (spellsRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_spells_${newrowid}_spell_value`] = 1;
|
|
}
|
|
if (beastsRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_beasts_${newrowid}_beast_value`] = 1;
|
|
}
|
|
if (notesRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_notes_${newrowid}_note_value`] = 1;
|
|
}
|
|
if (relationshipsRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_relationships_${newrowid}_pc_value`] = 1;
|
|
}
|
|
if (mountRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_mount_${newrowid}_mount_value`] = 1;
|
|
}
|
|
if (cartRows === 0) {
|
|
const newrowid = generateRowID();
|
|
output[`repeating_cart_${newrowid}_cart_value`] = 1;
|
|
} else {
|
|
return;
|
|
}
|
|
setAttrs(output, {
|
|
silent: true,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
const consumables = ['food', 'water', 'arrows', 'torches'];
|
|
const consumableRolled = consumables.map((thisConsumable) => `clicked:${thisConsumable}`).join(' ');
|
|
on(consumableRolled, (eventInfo) => {
|
|
const resource = eventInfo.triggerName.replace('clicked:', '');
|
|
getAttrs([resource], (values) => {
|
|
const output = {};
|
|
const resourceDieSize = +values[resource] || 0;
|
|
const resourceDieSizeWord = `${litnum[resourceDieSize]}`;
|
|
const resourceTitle = capitalizeFirstLetter(resource);
|
|
let resourceSubtitle = `{die-${resourceDieSize}-u}`;
|
|
const rollString = `@{whisper_option} &{template:forbiddenlands} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{name=^{consumable}}} {{subtitle=^${resourceSubtitle} ^{of-${resource}}}} {{imageInsert${resourceTitle}= }} {{consumable-die-${resourceDieSizeWord}=[[ 1 ]]}} {{consumable-roll-${resourceDieSizeWord}=[[ 1d${resourceDieSize} ]]}} {{footer}} {{consumable-flag= [[ 1 ]]}}`;
|
|
startRoll(rollString, (roll) => {
|
|
// console.log(roll);
|
|
const total = roll.results[`consumable-roll-${resourceDieSizeWord}`].result;
|
|
// reduce die size on 1 or 2
|
|
if (total <= 2) {
|
|
output[`${resource}`] = resourceDieSize > 6 ? resourceDieSize - 2 : 0;
|
|
}
|
|
setAttrs(output, {silent: true});
|
|
finishRoll(roll.rollId);
|
|
});
|
|
});
|
|
});
|
|
|
|
on('change:character_name', (eventInfo) => {
|
|
getAttrs(['character_name'], (v) => {
|
|
const attr = v[`${eventInfo.sourceAttribute}`];
|
|
const name = `${eventInfo.sourceAttribute}`;
|
|
nameChanged(name, attr);
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<!--
|
|
i18n-tags generated with ACSI V0.32 (Automated Character Sheet Internationalizer)
|
|
ACSI author: https://github.com/Anduh
|
|
ACSI Sourcecode: https://github.com/Anduh/acsi
|
|
-->
|