Compare commits
3 Commits
115fcc4f18
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d83415ba7d | ||
|
|
3385a11e33 | ||
|
|
d4f758250a |
24
README.md
@@ -1,14 +1,20 @@
|
|||||||
This system is based on the video tutorials by Cédric Hauteville you can watch them here: https://www.youtube.com/playlist?list=PLFV9z59nkHDccUbRXVt623UdloPTclIrz parts of it were also lifted from the Foundry VTT Boilerplate system by XXX.
|
# Rolemaster Standard System for Foundry VTT
|
||||||
|
|
||||||
Icons have been sourced from https://game-icons.net
|
## Intro
|
||||||
|
|
||||||
Dice shapes are licensed under Creative Commons Attribution-Noncommercial-Share Alike 3.0 License and appear from https://www.deviantart.com/jpatterson/art/Polyhedral-RPG-Gaming-Dice-Dec-2014-502024799 created by jpatterson
|
This is an in development implementation of the Rolemaster Standard System for FoundryVTT. All rights to the system remain property of Iron Crown Enterprises (http://ironcrown.com/). This system will not include any of the book content and aims to provide only what is on the reproducable character sheet. If you need access to the Rolemaster Standard System please purchase a copy of the PDF's via Drive Thru RPG (https://www.drivethrurpg.com/browse/pub/461/Iron-Crown-Enterprises).
|
||||||
|
|
||||||
Dice 10 Icon (https://game-icons.net/1x1/skoll/d10.html) by Skoll and licensed under CC BY 3.0 https://creativecommons.org/licenses/by/3.0/
|
Early project goals include:
|
||||||
|
- A functionaing character sheet that automates some of the basic maths.
|
||||||
|
- A dice roller that allows you to perform the most common rolls in the system.
|
||||||
|
- A basic combat tracker
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
This system is based on:
|
||||||
|
- the Foundry VTT Boilerplate system by Asacolips.
|
||||||
|
- The video tutorials by Cédric Hauteville you can watch them here: https://www.youtube.com/playlist?list=PLFV9z59nkHDccUbRXVt623UdloPTclIrz
|
||||||
|
|
||||||
|
Icons have been provided by https://game-icons.net
|
||||||
|
|
||||||
This system uses less for CSS you can see a good installation guide for VSCode at https://code.visualstudio.com/docs/languages/css#_transpiling-sass-and-less-into-css
|
This system uses less for CSS you can see a good installation guide for VSCode at https://code.visualstudio.com/docs/languages/css#_transpiling-sass-and-less-into-css
|
||||||
|
|
||||||
User Notes
|
|
||||||
|
|
||||||
Skill Categories and Skills cannot be renamed if they are owned and you cannot drag a duplicate named skill to the sheet
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
# Installing the Rolemaster FoundryVTT System
|
|
||||||
|
|
||||||
## Download the System
|
|
||||||
As the system has not been officially released yet you won't be able to download it via the in game System browser. To install it you must download the System from the github repository and extract it to the right place in your FoundryVTT Data Directory.
|
|
||||||
|
|
||||||
Go to https://github.com/Cynicide/RMSS-FoundryVTT and click the green "Code" button from there click "Download Zip".
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Extract and install the System
|
|
||||||
Using your favorite ZIP extractor (or Windows Explorer if you have none) you must find and extract the "rmss" directory and place it in the "systems" directory in your FoundryVTT Data Directory. As you are free to place this folder anywhere you want I can't tell you where it is. It's the same folder your Worlds go to when you create them in Foundry.
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
## Checking you have installed properly
|
|
||||||
If you have installed the folder properly you should see Rolemaster under the Systems tab when you start Foundry.
|
|
||||||

|
|
||||||
|
|
||||||
## Create a World
|
|
||||||
When you create a world you can now select Rolemaster Standard System from the System dropdown.
|
|
||||||

|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
# Rolemaster Standard System for Foundry VTT Usage
|
|
||||||
|
|
||||||
## Understanding Foundry Data
|
|
||||||
In Foundry VTT characters, NPC's and Creatures are called Actors and almost everything else is referred to as an Item. As a result of this things in Rolemaster that you would associate with Characters like Skills and Skill Categories are actually items.
|
|
||||||
|
|
||||||
## Creating a Character
|
|
||||||
To create a character click on the Actor tab and click "Create Actor". You can choose between an NPC and a Character, however the NPC is unfinished at this point.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Once you have create your Character you can view the character sheet.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
From here you can start filling out fields. Most fields are cosmetic at this point however as you start filling out your stats you will notice the Stat Bonus is auto calculated and Foundry will also attempt to calculate your Resistance Rolls (Racial Bonuses are not supported yet).
|
|
||||||
|
|
||||||
Skill Categories and Skills are considered Items by Foundry, see the following section.
|
|
||||||
|
|
||||||
## Understanding Items Types
|
|
||||||
When you create an item you will see the following drop down:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
The items you can create are as follows:
|
|
||||||
|
|
||||||
- Skill Category
|
|
||||||
- Skill
|
|
||||||
- Spell
|
|
||||||
- Item
|
|
||||||
- Armor
|
|
||||||
- Weapon
|
|
||||||
- Transport (Not complete)
|
|
||||||
- Herb or Poison
|
|
||||||
|
|
||||||
Every item on this list can be dragged onto the character sheet and added to a character. Rather than making an item for each character, consider building a library of items that you can drag on to any character you want.
|
|
||||||
|
|
||||||
## Creating a Skill Category
|
|
||||||
When you create a Skill Category you can set the three dropdowns at the top to mark a stat as being applicable to this skill category. After you have done this Foundry will attempt to auto calculate the Stat Bonus when the Skill Category has been dragged onto a character sheet.
|
|
||||||
|
|
||||||
As you fill out the other fields Foundry will attempt to calculate the Total Bonus for this Skill Category.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
If you click on the Compendiums Tab you will find a compendium with the skill categories from the character sheet ready for you to use.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Dragging a Skill Category onto your Character Sheet
|
|
||||||
If you drag a skill category onto your character sheet that has the Applicable Stats set you can see that Foundry will apply the appropriate Stat Bonus to the Skill Category. Things like Ranks, Rank Bonuses, Profession Bonuses and Special Bonuses are manually entered but will be taken into account when the Total bonus is calculated.
|
|
||||||
|
|
||||||
If you make a mistake selecting the applicable stats you can just click the pencil icon to edit it.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Creating a Skill
|
|
||||||
When you create a skill you will be unable to select a skill category as the skill has no owner and Foundry does not know what skill categories are available to it.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Once you have dragged the Skill onto the character sheet you will be able select a skill category and Foundry will start to apply the Category Bonus. Like Skill Categories; things like Ranks, Rank Bonuses, Items Bonuses and Special Bonuses are manually entered but will be taken into account when the Total bonus is calculated.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
When you select a skill as a favorite you can see it added to the front page of the character sheet for quick reference
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Adding Items
|
|
||||||
Items such as mundane Items, Weapons, Armor and Herbs can be created in Foundry and then dragged to the Equipment Screen on the character sheet. Additionally they can be created directly on the sheet if need be. Items to not have any direct functionality yet and appear for record keeping purposes only.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Adding Spells
|
|
||||||
Spells can be added to the Spells tab in much the same way that items can. They can be favorited and will appear on the front page of the character sheet. Spells to not have any direct functionality yet and appear for record keeping purposes only.
|
|
||||||
|
|
||||||

|
|
||||||
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 43 KiB |
2
rmss/.gitignore
vendored
@@ -1,3 +1 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
.jshintrc
|
|
||||||
.eslintrc
|
|
||||||
9
rmss/README.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
This tutorial is based on the video tutorials by Cédric Hauteville you can watch them here: https://www.youtube.com/playlist?list=PLFV9z59nkHDccUbRXVt623UdloPTclIrz parts of it were also lifted from the Foundry VTT Boilerplate system by XXX.
|
||||||
|
|
||||||
|
Icons have been sourced from https://game-icons.net
|
||||||
|
|
||||||
|
This system uses less for CSS you can see a good installation guide for VSCode at https://code.visualstudio.com/docs/languages/css#_transpiling-sass-and-less-into-css
|
||||||
|
|
||||||
|
User Notes
|
||||||
|
|
||||||
|
Skill Categories and Skills cannot be renamed if they are owned and you cannot drag a duplicate named skill to the sheet
|
||||||
22
rmss/TODO
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Small
|
||||||
|
|
||||||
|
1. Add Relationship between skills and skill categories
|
||||||
|
2. Remove Tables and replace with CSS Grid
|
||||||
|
3. Fix unaligned CSS
|
||||||
|
4. Prevent Duplication on Drag and Drop for Skills and Skill Categories, possibly spells too.
|
||||||
|
DONE - Overriden _onDropItem on Player Sheet
|
||||||
|
DONE - Skill Categories cannot be renamed if they are owned.
|
||||||
|
|
||||||
|
Medium
|
||||||
|
|
||||||
|
4. Inventory sorted by types
|
||||||
|
i. Drag and drop should add an item if it already exists.
|
||||||
|
ii. Equipables
|
||||||
|
iii. Favorites
|
||||||
|
5. Creature Sheet
|
||||||
|
|
||||||
|
Large
|
||||||
|
|
||||||
|
6. Dice Roller
|
||||||
|
7. Initiative System
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g class="" style="" transform="translate(0,0)"><path d="M488 348.78h-70.24l-15.1 87.44-48.78-87.44H169v-50h190v-157h129zm-145-273v207H158.13l-48.79 87.47-15.11-87.47H24v-207zM136.724 215.324c0-10.139-12.257-15.214-19.425-8.046-7.168 7.168-2.093 19.426 8.046 19.426 6.285 0 11.38-5.095 11.38-11.38zm60.945 0c-.068-10.12-12.32-15.122-19.452-7.943-7.131 7.18-2.047 19.399 8.073 19.399 6.314 0 11.422-5.141 11.38-11.456zm60.945 0c0-10.139-12.257-15.214-19.425-8.046-7.169 7.168-2.093 19.426 8.046 19.426 6.284 0 11.38-5.095 11.38-11.38z" fill="#fff" fill-opacity="1"></path></g></svg>
|
|
||||||
|
Before Width: | Height: | Size: 680 B |
@@ -1,68 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="10mm"
|
|
||||||
height="10mm"
|
|
||||||
viewBox="0 0 10 10"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
sodipodi:docname="R.svg"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
|
||||||
<defs
|
|
||||||
id="defs2" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="11.2"
|
|
||||||
inkscape:cx="22.566968"
|
|
||||||
inkscape:cy="24.072623"
|
|
||||||
inkscape:document-units="mm"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="1672"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata5">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-287)">
|
|
||||||
<g
|
|
||||||
aria-label="R"
|
|
||||||
transform="matrix(0.26458333,0,0,0.26458333,-39.157593,262.07008)"
|
|
||||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
||||||
id="flowRoot4539">
|
|
||||||
<path
|
|
||||||
d="m 161.01484,115.06095 q 1.08,0 2.28,0.92 1.24,0.88 2.4,2.08 1.2,1.2 2.28,2.44 1.08,1.2 1.92,1.88 2.08,1.68 4.16,3.32 2.08,1.6 4.2,3.24 0.56,0.44 1.04,0.8 0.48,0.4 0.96,0.68 0.52,0.28 1.08,0.44 0.6,0.16 1.36,0.16 0.56,0 0.68,-0.32 0.12,-0.28 0.12,-0.72 0,-0.8 -0.64,-1.8 -0.6,-1.04 -1.48,-2.04 -0.84,-1.04 -1.72,-1.96 -0.88,-0.92 -1.4,-1.52 -1.88,-2.2 -3.84,-4.4 -1.92,-2.2 -4,-4.24 0,-0.24 0,-0.4 0.04,-0.2 0.28,-0.36 1.32,-0.88 2.88,-1.68 1.56,-0.8 2.88,-1.8 1.32,-1.04 2.2,-2.4 0.92,-1.36 0.92,-3.28 0,-2.08 -0.72,-3.52 -0.72,-1.480002 -1.92,-2.440002 -1.2,-1 -2.76,-1.56 -1.56,-0.6 -3.28,-0.88 -1.72,-0.32 -3.48,-0.4 -1.72,-0.08 -3.28,-0.08 h -3.64 q -1.16,0 -2.36,0.12 -1.2,0.12 -2.36,0.12 -0.56,0 -1.44,-0.04 -0.88,-0.04 -1.72,0.08 -0.84,0.12 -1.44,0.52 -0.6,0.4 -0.6,1.28 0,0.56 0.48,0.84 0.48,0.24 1.12,0.4 0.64,0.12 1.28,0.24 0.68,0.12 1.04,0.36 -0.12,2.440002 -0.04,4.880002 0.08,2.44 0.2,4.92 0.12,2.44 0.24,4.92 0.12,2.44 0.12,4.88 0,1.8 -0.16,3.52 -0.12,1.72 -0.12,3.52 -0.4,0.48 -1.16,0.72 -0.72,0.2 -1.48,0.44 -0.72,0.2 -1.28,0.6 -0.52,0.36 -0.52,1.12 0,0.32 0.28,0.48 0.32,0.16 0.52,0.32 1.4,-0.04 2.72,-0.28 1.36,-0.24 2.76,-0.24 2.16,0 4.32,0.12 2.16,0.12 4.32,0.12 h 1.8 q 0.32,-0.16 0.56,-0.4 0.24,-0.24 0.24,-0.64 0,-0.72 -0.8,-1.08 -0.8,-0.4 -1.88,-0.6 -1.08,-0.2 -2.16,-0.28 -1.04,-0.08 -1.52,-0.2 -0.12,-0.04 -0.44,-0.12 -0.28,-0.12 -0.28,-0.32 v -10.2 z m 0,-2.08 q 0,-3.48 0.24,-6.92 0.28,-3.44 0.28,-6.920002 l 0.28,-0.52 0.24,-0.28 q 0.68,-0.04 1.28,-0.16 0.64,-0.12 1.32,-0.12 h 0.28 q 1.68,0.24 3.04,0.56 1.36,0.32 2.32,1 0.96,0.680002 1.44,1.880002 0.52,1.16 0.52,3.12 0,1.92 -0.36,3.2 -0.36,1.24 -1.04,2.04 -0.64,0.8 -1.56,1.28 -0.92,0.44 -2.04,0.76 -1.08,0.28 -2.36,0.6 -1.24,0.28 -2.56,0.76 -0.12,0 -0.36,0 -0.2,0 -0.44,0 -0.2,-0.04 -0.36,-0.08 -0.16,-0.08 -0.16,-0.2 z"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:40px;font-family:PragRoman;-inkscape-font-specification:'PragRoman, Medium';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start"
|
|
||||||
id="path4571"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 4.2 KiB |
@@ -1,354 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" id="svg2" sodipodi:docname="_svgclean2.svg" viewBox="0 0 1015.8 687.24" version="1.1" inkscape:version="0.48.3.1 r9886">
|
|
||||||
<sodipodi:namedview id="namedview4" fit-margin-left="0" inkscape:zoom="0.75585938" borderopacity="1" inkscape:current-layer="svg2" inkscape:cx="600.99803" inkscape:guide-bbox="true" inkscape:window-maximized="0" showgrid="false" fit-margin-right="0" inkscape:snap-global="false" showguides="true" bordercolor="#666666" inkscape:window-x="0" guidetolerance="10" objecttolerance="10" inkscape:window-y="0" fit-margin-bottom="0" inkscape:window-width="512" inkscape:pageopacity="0" inkscape:pageshadow="2" pagecolor="#ffffff" gridtolerance="10" inkscape:cy="-21.199467" inkscape:window-height="452" fit-margin-top="0">
|
|
||||||
<sodipodi:guide id="guide3103" position="629.48057,1441.0961" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3111" position="-942.56933,2326.5579" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3113" position="-402.76913,1796.2278" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3115" position="520.57347,2132.4192" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3117" position="1817.9882,1403.2154" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3133" position="449.54717,1138.0503" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3135" position="501.63317,754.50797" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3137" position="747.85787,228.91293" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3263" position="261.91917,1110.2316" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3265" position="256.00037,898.92817" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3267" position="325.02107,1065.5962" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3269" position="363.72367,1167.6446" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3271" position="362.53987,840.33147" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3273" position="31.675468,1096.0264" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3275" position="453.34934,2.6762529" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3277" position="257.77597,1086.5562" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3279" position="112.17197,1149.888" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3281" position="556.88497,1225.4735" orientation="1,0"/>
|
|
||||||
<sodipodi:guide id="guide3297" position="271.86817,863.02927" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3308" position="390.35847,1003.1002" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3310" position="352.47777,1062.2889" orientation="0,1"/>
|
|
||||||
<sodipodi:guide id="guide3319" position="161.79567,945.06047" orientation="0,1"/>
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<flowRoot id="flowRoot3321" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="translate(1784.8 -879.48)">
|
|
||||||
<flowRegion id="flowRegion3323">
|
|
||||||
<rect id="rect3325" y="-1082" width="1098.5" x="-634.5" height="454.57"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3327"/>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-9-8" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="translate(2745 74.666)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-3-4">
|
|
||||||
<rect id="rect3333-2-1-7-5-1-1" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-9-4" style="font-size:220px;font-weight:bold">Hit</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<g id="g3579" transform="matrix(.38287 0 0 .38287 239.73 585.89)">
|
|
||||||
<path id="path3007" d="m-565.54-286.65 6.1004-89.981 150.68-85.405 155.86 91.506 0.91503 95.166-158.91 83.575-155.25-86.93z" style="stroke:#000000;stroke-width:5.8303;fill:none" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3009" d="m-256.96-274.7-53.92 21.137-102.23 48.744-106.55-51.763 110-203.17 100.94 203.6" style="stroke:#000000;stroke-width:2.9152;fill:none" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3017" d="m-565.82-280.74 46.587 23.725" style="stroke:#000000;stroke-width:2.9152;fill:none" inkscape:connector-curvature="0"/>
|
|
||||||
</g>
|
|
||||||
<g id="g3584" transform="matrix(.35906 0 0 .35906 227.8 591.51)">
|
|
||||||
<g id="g3034" transform="translate(-1094.9 127.23)">
|
|
||||||
<path id="path2989" sodipodi:nodetypes="cccccc" style="stroke:#000000;stroke-width:6;fill:none" inkscape:connector-curvature="0" d="m1176.4-341.82-229.98-18.579 2.0085-260.61 240.52 14.562 15.566 68.29z"/>
|
|
||||||
<path id="path2991" sodipodi:nodetypes="ccccc" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m947.44-360.91 9.5406-27.617 95.405-12.553 58.248-99.925 92.895-36.154"/>
|
|
||||||
<path id="path2993" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m1112.1-501.5-158.63-119.51"/>
|
|
||||||
<path id="path2995" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m956.48-387.02-5.5235-231.48"/>
|
|
||||||
<path id="path2997" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m1053.4-401.08 123.52 58.248"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g id="g3592" transform="matrix(.34290 0 0 .34290 201.53 549.71)">
|
|
||||||
<g id="g3041" transform="translate(-837.05 478.79)">
|
|
||||||
<path id="path2999" style="stroke:#000000;stroke-width:10;fill:none" inkscape:connector-curvature="0" d="m310.86-215.78 32.639-179.76 181.77-94.401 160.68 138.59-22.596 178.26-185.79 90.384z"/>
|
|
||||||
<path id="path3001" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m313.37-215.78 164.2 24.102 182.78 15.064"/>
|
|
||||||
<path id="path3003" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m476.06-82.71 4.0171-108.96-92.393-200.35 230.48 25.609-137.58 175.24"/>
|
|
||||||
<path id="path3005" sodipodi:nodetypes="ccccc" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m315.38-217.28 72.307-175.75 138.59-92.393 91.388 118 44.69 188.3"/>
|
|
||||||
<path id="path3007-1" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m345-394.54 46.196 2.0085"/>
|
|
||||||
<path id="path3009-7" style="stroke:#000000;stroke-width:2;fill:none" inkscape:connector-curvature="0" d="m616.66-367.92 69.294 19.081"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g id="g3242" transform="matrix(.25983 0 0 .25983 477.3 823.96)">
|
|
||||||
<g id="g3210" transform="matrix(.91589 0 0 .91589 -381.67 -74.793)">
|
|
||||||
<path id="path3172" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 -20.089)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
<path id="path3172-5" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 111.33)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
<path id="path3172-5-5" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 242.75)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
</g>
|
|
||||||
<g id="g3210-1" transform="matrix(.91589 0 0 .91589 -192.21 -74.793)">
|
|
||||||
<path id="path3172-7" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 -20.089)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
<path id="path3172-5-1" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 111.33)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
<path id="path3172-5-5-1" sodipodi:rx="31.808037" sodipodi:ry="31.808037" style="stroke:#000000;stroke-width:16;fill:#000000" sodipodi:type="arc" d="m-1044.6-963.58c0 17.567-14.241 31.808-31.808 31.808s-31.808-14.241-31.808-31.808 14.241-31.808 31.808-31.808 31.808 14.241 31.808 31.808z" transform="translate(336.5 242.75)" sodipodi:cy="-963.58374" sodipodi:cx="-1076.4509"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path id="path3073" style="stroke:#000000;stroke-width:3.2246;fill:#ff0000" inkscape:connector-curvature="0" d="m1.6123 100.14 4.0557 3.8171h112.37l2.5592-4.4327-55.283-97.914h-4.5329z"/>
|
|
||||||
<flowRoot id="flowRoot3329" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 588.84 503.3)">
|
|
||||||
<flowRegion id="flowRegion3331">
|
|
||||||
<rect id="rect3333" y="-1096.2" width="421.42" x="-643.97" height="303.05"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3391" style="font-size:220px;font-weight:bold">D4</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<g id="g3129" transform="matrix(.19571 0 0 .19571 523.21 201.56)">
|
|
||||||
<path id="path3073-2" d="m-2354.9-392.57-296.96 338.75-1.0158-1.2344c100.54 117.51 199.33 237.47 298.62 356.38l3.2576-0.0829c98.3-117.58 189.88-243.49 288.16-360.29l-288.62-333.37z" sodipodi:nodetypes="cccccccc" style="stroke:#000000;stroke-width:16;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3105" d="m-2650.5-53.343 587.74-4.7351" style="stroke:#000000;stroke-width:6;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
</g>
|
|
||||||
<flowRoot id="flowRoot3329-5" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 762.98 504.82)">
|
|
||||||
<flowRegion id="flowRegion3331-2">
|
|
||||||
<rect id="rect3333-7" y="-1096.2" width="279.37" x="-643.97" height="222.55"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3337-6" style="font-size:200px;font-weight:bold">D8</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<rect id="rect3075" style="stroke:#000000;stroke-width:3.1257;fill:#ff0000" rx="6.3636" ry="9.4969" height="95.104" width="91.404" y="10.349" x="167.39"/>
|
|
||||||
<flowRoot id="flowRoot3329-1" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 675.87 501.87)">
|
|
||||||
<flowRegion id="flowRegion3331-4">
|
|
||||||
<rect id="rect3333-2" y="-1096.2" width="312.52" x="-643.97" height="227.28"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3391-3" style="font-size:220px;font-weight:bold">D6</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<g id="g3028" style="fill:#ff0000" transform="matrix(.18846 0 0 .18846 58.843 93.476)">
|
|
||||||
<path id="path2999-4" d="m531.52 523.73 19.011-70.352 277.45-258.73h9.4784l282.8 263.72 23.945 90.327-310.5 292.66-8.8497-0.47531-301.66-290.1z" sodipodi:nodetypes="cccccccccc" style="stroke:#000000;stroke-width:16;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3001-0" d="m519.04 547.65 111.3-61.37 199.64-291.63 198.72 300.99-200.72 95.89-199.72-107.33" sodipodi:nodetypes="cccccc" style="stroke:#000000;stroke-width:6;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3003-9" d="m1028.7 493.56 114.42 54.092" style="stroke:#000000;stroke-width:6;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
<path id="path3005-4" d="m828.72 591.66-0.73554 250.68" sodipodi:nodetypes="cc" style="stroke:#000000;stroke-width:5.6871;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
</g>
|
|
||||||
<flowRoot id="flowRoot3329-1-2" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 846.66 499.81)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2">
|
|
||||||
<rect id="rect3333-2-1" y="-1096.2" width="411.95" x="-643.97" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3391-3-6" style="font-size:220px;font-weight:bold">D10</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<path id="path3283" sodipodi:nodetypes="ccccccccccc" style="stroke:#000000;stroke-width:4.9521;fill:#ff0000" inkscape:connector-curvature="0" d="m66.604 384.13 33.97-8.3455 23.883-36.237-2.749-31.304-22.247-26.861-32.307-6.8007-34.44 7.5108-21.433 27.662-3.1143 30.043 21.983 35.539z"/>
|
|
||||||
<path id="path3285" sodipodi:nodetypes="cccccc" style="stroke:#000000;stroke-width:1.7613;fill:#ff0000" inkscape:connector-curvature="0" d="m33.765 323.86 10.228 36.563 43.896 0.16485 10.249-36.599-30.919-23.74z"/>
|
|
||||||
<path id="path3287" style="stroke:#000000;stroke-width:1.857;fill:#ff0000" inkscape:connector-curvature="0" d="m67.154 274.95-0.18318 25.83"/>
|
|
||||||
<path id="path3289" sodipodi:nodetypes="cc" style="stroke:#000000;stroke-width:1.857;fill:#ff0000" inkscape:connector-curvature="0" d="m34.287 325.37-24.377-15.72"/>
|
|
||||||
<path id="path3291" sodipodi:nodetypes="cc" style="stroke:#000000;stroke-width:1.857;fill:#ff0000" inkscape:connector-curvature="0" d="m44.233 360.16-14.45 16.64"/>
|
|
||||||
<path id="path3293" sodipodi:nodetypes="cc" style="stroke:#000000;stroke-width:1.857;fill:#ff0000" inkscape:connector-curvature="0" d="m87.683 360.71 13.267 15.263"/>
|
|
||||||
<path id="path3295" sodipodi:nodetypes="cc" style="stroke:#000000;stroke-width:1.857;fill:#ff0000" inkscape:connector-curvature="0" d="m98.251 324.45 22.939-15.93"/>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 966.57 498.37)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5">
|
|
||||||
<rect id="rect3333-2-1-7" y="-1096.2" width="411.95" x="-643.97" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3391-3-6-6" style="font-size:220px;font-weight:bold">D12</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<g id="g3162" transform="matrix(.25983 0 0 .25983 463.76 280.15)">
|
|
||||||
<path id="path3007-8" d="m-1160.8 71.357 208.07-122.82 208.03 122.23-11.16 232.13-197.46 122.23-196.88-119.29z" style="stroke:#000000;stroke-width:16;fill:#ff0000" inkscape:connector-curvature="0"/>
|
|
||||||
<g id="g3032" style="fill:#ff0000" transform="matrix(.39948 0 0 .39948 -1174.3 -120.6)">
|
|
||||||
<path id="path3017-8" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccc" style="stroke:#000000;stroke-width:8;fill:none" d="m560.49 177.48-4.4133 214.78m-314.82 594.33 639.93 7.35m-817.93 70.66 179.47-76.54 310.4 373.64 325.11-370.7 142.56 48.4m-960.32-541.11 497.07-104.55 491.15 106.02-177.81 489.77-317.76-597.27-314.81 592.86z"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-1" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1080.1 499.13)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-8">
|
|
||||||
<rect id="rect3333-2-1-7-9" y="-1096.2" width="411.95" x="-643.97" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3391-3-6-6-2" style="font-size:220px;font-weight:bold">D20</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 469.73 316.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9">
|
|
||||||
<rect id="rect3333-2-1-7-5" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611" style="font-size:220px;font-weight:bold">1</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-3" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 529.34 316.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-1">
|
|
||||||
<rect id="rect3333-2-1-7-5-2" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-3" style="font-size:220px;font-weight:bold">2</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 594.64 315.86)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11">
|
|
||||||
<rect id="rect3333-2-1-7-5-3" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8" style="font-size:220px;font-weight:bold">3</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-7" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 637.31 382.27)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-4">
|
|
||||||
<rect id="rect3333-2-1-7-5-27" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-7" style="font-size:220px;font-weight:bold">14</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-9" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 720.27 381.86)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-3">
|
|
||||||
<rect id="rect3333-2-1-7-5-1" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-9" style="font-size:220px;font-weight:bold">15</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-8" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 803.23 381.97)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-6">
|
|
||||||
<rect id="rect3333-2-1-7-5-5" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-0" style="font-size:220px;font-weight:bold">16</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-2" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 886.19 382.38)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-8">
|
|
||||||
<rect id="rect3333-2-1-7-5-6" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-02" style="font-size:220px;font-weight:bold">17</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-4" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 969.15 381.74)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-86">
|
|
||||||
<rect id="rect3333-2-1-7-5-50" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-90" style="font-size:220px;font-weight:bold">18</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-0" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1052.1 381.79)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-61">
|
|
||||||
<rect id="rect3333-2-1-7-5-38" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-93" style="font-size:220px;font-weight:bold">19</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-44" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1138.2 382.08)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-60">
|
|
||||||
<rect id="rect3333-2-1-7-5-66" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-1" style="font-size:220px;font-weight:bold">20</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-8" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 661.45 316.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-4">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-9" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-6" style="font-size:220px;font-weight:bold">4</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-3" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 727.92 315.86)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-7">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-8" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-8" style="font-size:220px;font-weight:bold">5</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-2" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 794.08 315.86)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-9">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-1" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-3" style="font-size:220px;font-weight:bold">6</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-5" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 859.94 316.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-98">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-4" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-0" style="font-size:220px;font-weight:bold">7</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-7" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 925.41 315.83)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-6">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-3" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-61" style="font-size:220px;font-weight:bold">8</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-54" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 991.35 315.83)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-2">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-0" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-9" style="font-size:220px;font-weight:bold">9</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-73" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1054.5 315.86)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-72">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-6" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-01" style="font-size:220px;font-weight:bold">10</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-6" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1149.3 316.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-5">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-7" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-5" style="font-size:220px;font-weight:bold">11</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-4" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 471.39 382.49)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-1">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-2" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-00" style="font-size:220px;font-weight:bold">12</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-1" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 554.35 382.19)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-46">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-07" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-1" style="font-size:220px;font-weight:bold">13</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-7-7" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 637.66 450.97)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-4-7">
|
|
||||||
<rect id="rect3333-2-1-7-5-27-7" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-7-7" style="font-size:220px;font-weight:bold">40</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-9-3" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 720.62 450.56)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-3-3">
|
|
||||||
<rect id="rect3333-2-1-7-5-1-5" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-9-9" style="font-size:220px;font-weight:bold">50</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-8-9" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 803.58 450.67)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-6-8">
|
|
||||||
<rect id="rect3333-2-1-7-5-5-1" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-0-8" style="font-size:220px;font-weight:bold">60</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-2-2" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 886.54 451.08)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-8-6">
|
|
||||||
<rect id="rect3333-2-1-7-5-6-6" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-02-0" style="font-size:220px;font-weight:bold">70</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-4-3" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 969.5 450.44)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-86-8">
|
|
||||||
<rect id="rect3333-2-1-7-5-50-0" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-90-1" style="font-size:220px;font-weight:bold">80</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-0-2" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1052.5 450.49)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-61-5">
|
|
||||||
<rect id="rect3333-2-1-7-5-38-0" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-93-9" style="font-size:220px;font-weight:bold">90</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-44-4" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 1138.5 450.78)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-60-7">
|
|
||||||
<rect id="rect3333-2-1-7-5-66-8" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-1-3" style="font-size:220px;font-weight:bold"> 0</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-4-5" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 471.74 451.19)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-1-1">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-2-2" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-00-0" style="font-size:220px;font-weight:bold">00</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-1-1" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 554.7 450.89)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-46-6">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-07-4" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-1-0" style="font-size:220px;font-weight:bold">30</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-7-6" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 558.19 623.85)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-4-1">
|
|
||||||
<rect id="rect3333-2-1-7-5-27-8" y="-1200.4" width="374.07" x="-691.32" height="303.05"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-7-9" style="font-size:300px;font-weight:bold">*</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-8-3" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 487.23 618.05)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-6-9">
|
|
||||||
<rect id="rect3333-2-1-7-5-5-8" y="-1200.4" width="288.84" x="-691.32" height="250.96"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-0-80" style="font-size:220px;font-weight:bold">X</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-4-9" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 466.81 522.55)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-1-6">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-2-8" ry="0" height="298.31" width="255.7" y="-1205.2" x="-691.32"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-00-3" style="font-size:300px;font-weight:bold"> - </flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<flowRoot id="flowRoot3329-1-2-8-7-34-1-4" xml:space="preserve" style="letter-spacing:0px;color:#000000;word-spacing:0px;line-height:125%;fill:#000000" transform="matrix(.25983 0 0 .25983 539.31 524.4)">
|
|
||||||
<flowRegion id="flowRegion3331-4-2-5-9-11-46-8">
|
|
||||||
<rect id="rect3333-2-1-7-5-3-07-49" y="-1200.4" width="303.05" x="-691.32" height="307.78"/>
|
|
||||||
</flowRegion>
|
|
||||||
<flowPara id="flowPara3611-8-1-9" style="font-size:300px;font-weight:bold">+</flowPara>
|
|
||||||
</flowRoot>
|
|
||||||
<metadata id="metadata241">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work>
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
|
||||||
<cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
|
|
||||||
<dc:publisher>
|
|
||||||
<cc:Agent rdf:about="http://openclipart.org/">
|
|
||||||
<dc:title>Openclipart</dc:title>
|
|
||||||
</cc:Agent>
|
|
||||||
</dc:publisher>
|
|
||||||
</cc:Work>
|
|
||||||
<cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
|
|
||||||
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
|
|
||||||
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
|
|
||||||
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
|
|
||||||
</cc:License>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 31 KiB |
@@ -33,15 +33,11 @@
|
|||||||
"stat_total": "Total"
|
"stat_total": "Total"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pc_sheet": {
|
|
||||||
"import_skillcat": "Import"
|
|
||||||
},
|
|
||||||
"pc_sheet_tabs": {
|
"pc_sheet_tabs": {
|
||||||
"record": "Record",
|
"record": "Record",
|
||||||
"skill_categories": "Skill Categories",
|
"skill_categories": "Skill Categories",
|
||||||
"skills": "Skills",
|
"skills": "Skills",
|
||||||
"equipment": "Equipment",
|
"equipment": "Equipment",
|
||||||
"spells": "Spells",
|
|
||||||
"status_record": "Status Record",
|
"status_record": "Status Record",
|
||||||
"experience_points": "Experience Points"
|
"experience_points": "Experience Points"
|
||||||
},
|
},
|
||||||
@@ -131,11 +127,9 @@
|
|||||||
"prof_bonus": "Prof Bonus",
|
"prof_bonus": "Prof Bonus",
|
||||||
"special_bonus": "Special Bonus",
|
"special_bonus": "Special Bonus",
|
||||||
"total_bonus": "Total Bonus",
|
"total_bonus": "Total Bonus",
|
||||||
"import_skillcat": "Import Skill Categories"
|
"add_skillcat": "Add Skill Category"
|
||||||
},
|
},
|
||||||
"pc_sheet_items": {
|
"pc_sheet_items": {
|
||||||
"equipped": "Equipped",
|
|
||||||
"worn": "Worn",
|
|
||||||
"favorite": "Favorite",
|
"favorite": "Favorite",
|
||||||
"quantity": "Quantity",
|
"quantity": "Quantity",
|
||||||
"item_name": "Item Name",
|
"item_name": "Item Name",
|
||||||
@@ -143,21 +137,6 @@
|
|||||||
"cost": "Cost",
|
"cost": "Cost",
|
||||||
"add_item": "Add Item"
|
"add_item": "Add Item"
|
||||||
},
|
},
|
||||||
"pc_sheet_spell": {
|
|
||||||
"favorite": "Favorite",
|
|
||||||
"level": "Level",
|
|
||||||
"name": "Name",
|
|
||||||
"spell_list": "Spell List",
|
|
||||||
"area_of_effect": "Area of Effect",
|
|
||||||
"duration": "Duration",
|
|
||||||
"range": "Range",
|
|
||||||
"type": "Type"
|
|
||||||
},
|
|
||||||
"pc_sheet_language": {
|
|
||||||
"name": "Name",
|
|
||||||
"spoken": "Spoken",
|
|
||||||
"written": "Written"
|
|
||||||
},
|
|
||||||
"entity_sheet": {
|
"entity_sheet": {
|
||||||
"spell": "RMSS Spell",
|
"spell": "RMSS Spell",
|
||||||
"weapon": "RMSS Weapon",
|
"weapon": "RMSS Weapon",
|
||||||
@@ -180,13 +159,11 @@
|
|||||||
"cp": "Copper Pieces"
|
"cp": "Copper Pieces"
|
||||||
},
|
},
|
||||||
"item": {
|
"item": {
|
||||||
"worn": "Worn",
|
|
||||||
"description": "Other Notes",
|
"description": "Other Notes",
|
||||||
"quantity": "Quantity",
|
"quantity": "Quantity",
|
||||||
"weight": "Weight",
|
"weight": "Weight",
|
||||||
"cost": "Cost",
|
"cost": "Cost",
|
||||||
"prod_time": "Production Time",
|
"prod_time": "Production Time"
|
||||||
"equipped": "Equipped"
|
|
||||||
},
|
},
|
||||||
"armor": {
|
"armor": {
|
||||||
"at": "AT",
|
"at": "AT",
|
||||||
@@ -201,8 +178,7 @@
|
|||||||
"weight": "Weight",
|
"weight": "Weight",
|
||||||
"breakage_range": "B#s",
|
"breakage_range": "B#s",
|
||||||
"strength": "Str",
|
"strength": "Str",
|
||||||
"fumble_range": "Fumble",
|
"fumble_range": "Fumble"
|
||||||
"equipped": "Equipped"
|
|
||||||
},
|
},
|
||||||
"herb_or_poison": {
|
"herb_or_poison": {
|
||||||
"codes": "Codes",
|
"codes": "Codes",
|
||||||
@@ -222,7 +198,6 @@
|
|||||||
"offensive_bonus": "OB"
|
"offensive_bonus": "OB"
|
||||||
},
|
},
|
||||||
"spell": {
|
"spell": {
|
||||||
"favorite": "Favorite",
|
|
||||||
"spell_list": "Spell List",
|
"spell_list": "Spell List",
|
||||||
"level": "Level",
|
"level": "Level",
|
||||||
"area_of_effect": "Area of Effect",
|
"area_of_effect": "Area of Effect",
|
||||||
@@ -255,11 +230,6 @@
|
|||||||
"special_bonus_2": "Special Bonus 2:",
|
"special_bonus_2": "Special Bonus 2:",
|
||||||
"total_bonus": "Total Bonus:",
|
"total_bonus": "Total Bonus:",
|
||||||
"description": "Description:"
|
"description": "Description:"
|
||||||
},
|
|
||||||
"language": {
|
|
||||||
"spoken": "Spoken",
|
|
||||||
"written": "Written",
|
|
||||||
"description": "Description"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
.armor-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [equipped] 12% [at] 12% [quantity] 12% [weight] 12% [cost] 12% [controls] 10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.armor-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.armor-grid-container > div:nth-child(14n+1),
|
|
||||||
.armor-grid-container > div:nth-child(14n+2),
|
|
||||||
.armor-grid-container > div:nth-child(14n+3),
|
|
||||||
.armor-grid-container > div:nth-child(14n+4),
|
|
||||||
.armor-grid-container > div:nth-child(14n+5),
|
|
||||||
.armor-grid-container > div:nth-child(14n+6),
|
|
||||||
.armor-grid-container > div:nth-child(14n+7)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.armor-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
.herbs-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [quantity] 11% [codes] 12% [af] 12% [weight] 12% [cost] 11% [controls] 12%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.herbs-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.herbs-grid-container > div:nth-child(14n+1),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+2),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+3),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+4),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+5),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+6),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+7)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.herbs-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
.items-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [worn] 10% [name] 30% [quantity] 15% [weight] 15% [cost] 15% [controls] 15%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-grid-container > div:nth-child(12n+1),
|
|
||||||
.items-grid-container > div:nth-child(12n+2),
|
|
||||||
.items-grid-container > div:nth-child(12n+3),
|
|
||||||
.items-grid-container > div:nth-child(12n+4),
|
|
||||||
.items-grid-container > div:nth-child(12n+5),
|
|
||||||
.items-grid-container > div:nth-child(12n+6)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
.money-column {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.money-container {
|
|
||||||
flex-direction: column;
|
|
||||||
flex-shrink: 1;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
.resistances-grid-container {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [Name] 40% [Value] 20% [Race_Mod] 20% [Total] 20%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resistances-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.resistance-input {
|
|
||||||
width: 50%
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
.skillcat-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [skill-category-name] 10% [applicable-stats] 10% [dev-cost] 8% [num-ranks] 8% [new-ranks] 8% [rank-bonus] 8% [stat-bonus] 8% [prof-bonus] 8% [special-bonus-1] 8% [special-bonus-2] 8% [total-bonus] 8% [controls] 8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
//flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+1),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+2),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+3),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+4),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+5),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+6),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+7),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+8),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+9),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+10),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+11),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+12)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
//flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
.skills-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [favorite] 9% [skill-name] 11% [num-ranks] 9% [new-ranks] 9% [rank-bonus] 9% [category-bonus] 9% [item-bonus] 9% [special-bonus-1] 9% [special-bonus-2] 9% [total-bonus] 9% [controls] 8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skills-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skills-grid-container > div:nth-child(22n+1),
|
|
||||||
.skills-grid-container > div:nth-child(22n+2),
|
|
||||||
.skills-grid-container > div:nth-child(22n+3),
|
|
||||||
.skills-grid-container > div:nth-child(22n+4),
|
|
||||||
.skills-grid-container > div:nth-child(22n+5),
|
|
||||||
.skills-grid-container > div:nth-child(22n+6),
|
|
||||||
.skills-grid-container > div:nth-child(22n+7),
|
|
||||||
.skills-grid-container > div:nth-child(22n+8),
|
|
||||||
.skills-grid-container > div:nth-child(22n+9),
|
|
||||||
.skills-grid-container > div:nth-child(22n+10),
|
|
||||||
.skills-grid-container > div:nth-child(22n+11)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.skills-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
.spell-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [favorite] 9% [level] 8% [name] 30% [spell_list] 9% [area_of_effect] 9% [duration] 9% [range] 9% [type] 9% [controls] 8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spell-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spell-grid-container > div:nth-child(18n+1),
|
|
||||||
.spell-grid-container > div:nth-child(18n+2),
|
|
||||||
.spell-grid-container > div:nth-child(18n+3),
|
|
||||||
.spell-grid-container > div:nth-child(18n+4),
|
|
||||||
.spell-grid-container > div:nth-child(18n+5),
|
|
||||||
.spell-grid-container > div:nth-child(18n+6),
|
|
||||||
.spell-grid-container > div:nth-child(18n+7),
|
|
||||||
.spell-grid-container > div:nth-child(18n+8),
|
|
||||||
.spell-grid-container > div:nth-child(18n+9)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.spell-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
.weapons-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [equipped] 8% [breakage_range] 9% [fumble_range] 9% [strength] 9% [quantity] 9% [weight] 9% [cost] 9% [controls] 8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.weapons-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.weapons-grid-container > div:nth-child(18n+1),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+2),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+3),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+4),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+5),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+6),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+7),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+8),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+9)
|
|
||||||
{
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.weapons-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
// General Elements
|
|
||||||
|
|
||||||
.container {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.rm-heading {
|
|
||||||
font-size: 1.0em;
|
|
||||||
font-family: PragRoman;
|
|
||||||
border-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header CSS
|
|
||||||
|
|
||||||
.actor-icon {
|
|
||||||
flex-shrink: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.favorite-container {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
.header-container {
|
|
||||||
flex-grow: 2;
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-text {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.settings-button, .playersheet-settings {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
margin-right: 6px
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resource Elements in Headers
|
|
||||||
|
|
||||||
.resource-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-grow: 3;
|
|
||||||
text-align: -webkit-center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resource-container > * {
|
|
||||||
flex: 1 1 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resource-entry {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resource-entry input{
|
|
||||||
width: 50px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-container {
|
|
||||||
flex-direction: column;
|
|
||||||
flex-shrink: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-row {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.equipment-container {
|
|
||||||
flex-direction: column;
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-name, .money-name {
|
|
||||||
width: 75px;
|
|
||||||
border: none;
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-name input {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-header {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fixed Info CSS
|
|
||||||
|
|
||||||
.fixed-info-container {
|
|
||||||
flex-grow: 3;
|
|
||||||
flex-direction: row;
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fixed-info-section {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.armor-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.race-stat-fixed-info-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.role-traits-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.background-info-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove Me
|
|
||||||
.resistance-block {
|
|
||||||
outline: 1px solid; /* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Debugging
|
|
||||||
|
|
||||||
.red {
|
|
||||||
background-color: orangered;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blue {
|
|
||||||
background-color: lightblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grey {
|
|
||||||
background-color: lightgrey;
|
|
||||||
}
|
|
||||||
|
|
||||||
.green {
|
|
||||||
background-color: lightseagreen;
|
|
||||||
}
|
|
||||||
@@ -1,24 +1,6 @@
|
|||||||
|
|
||||||
// Actor Sheet
|
|
||||||
@import "./actor-sheet/actor-sheet-skillcat.less";
|
|
||||||
@import "./actor-sheet/actor-sheet.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-skills.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-money.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-items.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-weapons.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-armor.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-herbs.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-spells.less";
|
|
||||||
@import "./actor-sheet/actor-sheet-resistances.less";
|
|
||||||
|
|
||||||
//Skill Category Sheet
|
|
||||||
|
|
||||||
@import "./skillcat-sheet/skillcat-sheet.less";
|
|
||||||
@import "./skillcat-sheet/applicable-stats-grid.less";
|
|
||||||
|
|
||||||
//Apps
|
|
||||||
|
|
||||||
@import "./tools/dice-roller.less";
|
|
||||||
|
|
||||||
// Generics
|
|
||||||
@import "./item-sheet.less";
|
@import "./item-sheet.less";
|
||||||
|
@import "./actor-sheet.less";
|
||||||
|
@import "./skillcat-sheet.less";
|
||||||
|
@import "./money-sheet.less";
|
||||||
|
@import "./table.less";
|
||||||
|
@import "./grid.less";
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
.applicable-stats-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [app-stat-1] 33% [app-stat-2] 33% [app-stat-3] 33%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.applicable-stats-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
//.skillcat-icons {
|
|
||||||
// display: flex;
|
|
||||||
// justify-content: space-around;
|
|
||||||
// flex-direction: row;
|
|
||||||
// align-items: center;
|
|
||||||
//}
|
|
||||||
|
|
||||||
.skillcat-name, .skill-name, .item-name, .spell-name, .equipable-name {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-entry, .skill-entry, .item-entry, .spell-entry, .equipable-entry {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-headeritem, .skill-headeritem, .item-headeritem, .spell-headeritem, .equipable-headeritem {
|
|
||||||
text-align: center;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skillcat-controls, .skill-controls, .item-controls {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
.dice-roller-options {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dice-roller-item {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin:5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dice-roller-item div {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.roll-button-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
@@ -1,60 +1,53 @@
|
|||||||
export const rmss = {};
|
export const rmss = {};
|
||||||
|
|
||||||
rmss.curreny_type = {
|
rmss.curreny_type = {
|
||||||
mp: "rmss.curreny_type.mp",
|
mp: "rmss.curreny_type.mp",
|
||||||
pp: "rmss.curreny_type.pp",
|
pp: "rmss.curreny_type.pp",
|
||||||
gp: "rmss.curreny_type.gp",
|
gp: "rmss.curreny_type.gp",
|
||||||
sp: "rmss.curreny_type.sp",
|
sp: "rmss.curreny_type.sp",
|
||||||
bp: "rmss.curreny_type.bp",
|
bp: "rmss.curreny_type.bp",
|
||||||
cp: "rmss.curreny_type.cp"
|
cp: "rmss.curreny_type.cp"
|
||||||
};
|
};
|
||||||
|
|
||||||
rmss.stats = {
|
rmss.stats = {
|
||||||
agility: {
|
agility: {
|
||||||
fullname: "Agility",
|
fullname: "Agility",
|
||||||
shortname: "Ag"
|
shortname: "Ag"
|
||||||
},
|
},
|
||||||
constitution: {
|
constitution: {
|
||||||
fullname: "Constitution",
|
fullname: "Constitution",
|
||||||
shortname: "Co"
|
shortname: "Co"
|
||||||
},
|
},
|
||||||
memory: {
|
memory: {
|
||||||
fullname: "Memory",
|
fullname: "Memory",
|
||||||
shortname: "Me"
|
shortname: "Me"
|
||||||
},
|
},
|
||||||
reasoning: {
|
reasoning: {
|
||||||
fullname: "Reasoning",
|
fullname: "Reasoning",
|
||||||
shortname: "Re"
|
shortname: "Re"
|
||||||
},
|
},
|
||||||
self_discipline: {
|
self_discipline: {
|
||||||
fullname: "Self Discipline",
|
fullname: "Self Discipline",
|
||||||
shortname: "SD"
|
shortname: "SD"
|
||||||
},
|
},
|
||||||
empathy: {
|
empathy: {
|
||||||
fullname: "Empathy",
|
fullname: "Empathy",
|
||||||
shortname: "Em"
|
shortname: "Em"
|
||||||
},
|
},
|
||||||
intuition: {
|
intuition: {
|
||||||
fullname: "Intuition",
|
fullname: "Intuition",
|
||||||
shortname: "In"
|
shortname: "In"
|
||||||
},
|
},
|
||||||
presence: {
|
presence: {
|
||||||
fullname: "Presence",
|
fullname: "Presence",
|
||||||
shortname: "Pr"
|
shortname: "Pr"
|
||||||
},
|
},
|
||||||
quickness: {
|
quickness: {
|
||||||
fullname: "Quickness",
|
fullname: "Quickness",
|
||||||
shortname: "Qu"
|
shortname: "Qu"
|
||||||
},
|
},
|
||||||
strength: {
|
strength: {
|
||||||
fullname: "Strength",
|
fullname: "Strength",
|
||||||
shortname: "St"
|
shortname: "St"
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
rmss.skill_designations = {
|
|
||||||
None: "None",
|
|
||||||
Occupational: "Occupational",
|
|
||||||
Everyman: "Everyman",
|
|
||||||
Restricted: "Restricted"
|
|
||||||
};
|
|
||||||
|
|||||||
26
rmss/module/controls.js
vendored
@@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
export function registerGetSceneControlButtonsHook() {
|
|
||||||
Hooks.on("getSceneControlButtons", getSceneControlButtons);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSceneControlButtons(controls) {
|
|
||||||
if (canvas == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
controls.push({
|
|
||||||
name: "rmss",
|
|
||||||
title: "Rolemaster Standard System",
|
|
||||||
icon: "fas fa-r",
|
|
||||||
layer: "ControlsLayer",
|
|
||||||
tools: [
|
|
||||||
{
|
|
||||||
name: "rmmsdiceroller",
|
|
||||||
title: "Dice Roller",
|
|
||||||
icon: "fas fa-dice",
|
|
||||||
onClick: () => { return new game.rmss.applications.RMSSToolsDiceRoller().render(true); },
|
|
||||||
button: true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
activeTool: "rmmsdiceroller"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -21,211 +21,79 @@ export class RMSSActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare Character specific data.
|
* Prepare Character type specific data
|
||||||
* @param {Actor} actorData The NPC Object to prepare data for
|
*/
|
||||||
*/
|
|
||||||
_prepareCharacterData(actorData) {
|
_prepareCharacterData(actorData) {
|
||||||
if (actorData.type !== "character") return;
|
if (actorData.type !== 'character') return;
|
||||||
|
|
||||||
this.calculateBasicStatBonus(actorData);
|
|
||||||
|
|
||||||
// Calculate Stat Bonuses for the Actor
|
// Calculate Stat Bonuses for the Actor
|
||||||
this.calculateStatBonuses(actorData);
|
this.prepareStatBonuses(actorData);
|
||||||
|
|
||||||
// Calculate Resistance Rolls for the Actor
|
// Calculate Resistance Rolls for the Actor
|
||||||
this.calculateResistanceRolls(actorData);
|
this.prepareResistanceRolls(actorData);
|
||||||
|
|
||||||
// Iterate through and apply Stat bonuses for Skill Category Items
|
// Iterate through and apply Stat bonuses for Skill Category Items
|
||||||
this.calculateSkillCategoryStatBonuses();
|
this.prepareSkillCategoryStatBonuses();
|
||||||
|
|
||||||
// Iterate through and apply Skill Category Bonuses for Skill items
|
|
||||||
this.calculateSkillBonuses();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare NPC specific data.
|
* Prepare NPC type specific data.
|
||||||
* @param {Actor} actorData The NPC Object to prepare data for
|
*/
|
||||||
*/
|
|
||||||
_prepareNpcData(actorData) {
|
_prepareNpcData(actorData) {
|
||||||
if (actorData.type !== "npc") return;
|
if (actorData.type !== 'npc') return;
|
||||||
|
|
||||||
// Make modifications to data here. For example:
|
// Make modifications to data here. For example:
|
||||||
const data = actorData.data;
|
const data = actorData.data;
|
||||||
}
|
data.xp = (data.cr * data.cr) * 100;
|
||||||
|
|
||||||
// This checks to see if you have a Rollable Table called "Basic Stat Bonus Table" and uses it to calculate the basic stat bonuses.
|
|
||||||
calculateBasicStatBonus(actorData) {
|
|
||||||
const systemData = actorData.system;
|
|
||||||
for (const table of game.tables) {
|
|
||||||
if (table.name === "Basic Stat Bonus Table") {
|
|
||||||
for (const result of table.results) {
|
|
||||||
if (actorData.system.stats.agility.temp >= Number(result.range[0]) && actorData.system.stats.agility.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.agility.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.constitution.temp >= Number(result.range[0]) && actorData.system.stats.constitution.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.constitution.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.memory.temp >= Number(result.range[0]) && actorData.system.stats.memory.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.memory.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.reasoning.temp >= Number(result.range[0]) && actorData.system.stats.reasoning.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.reasoning.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.self_discipline.temp >= Number(result.range[0]) && actorData.system.stats.self_discipline.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.self_discipline.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.empathy.temp >= Number(result.range[0]) && actorData.system.stats.empathy.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.empathy.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.intuition.temp >= Number(result.range[0]) && actorData.system.stats.intuition.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.intuition.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.presence.temp >= Number(result.range[0]) && actorData.system.stats.presence.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.presence.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.quickness.temp >= Number(result.range[0]) && actorData.system.stats.quickness.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.quickness.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actorData.system.stats.strength.temp >= Number(result.range[0]) && actorData.system.stats.strength.basic_bonus <= Number(result.range[1])) {
|
|
||||||
actorData.system.stats.strength.basic_bonus = parseInt(result.text, 10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tally each stat bonus and populate the total field.
|
// Tally each stat bonus and populate the total field.
|
||||||
calculateStatBonuses(actorData) {
|
prepareStatBonuses(actorData) {
|
||||||
const systemData = actorData.system;
|
const systemData = actorData.system;
|
||||||
|
actorData.system.stats.agility.stat_bonus = Number(systemData.stats.agility.racial_bonus)+Number(systemData.stats.agility.special_bonus)+Number(systemData.stats.agility.basic_bonus);
|
||||||
actorData.system.stats.agility.stat_bonus = Number(systemData.stats.agility.racial_bonus)
|
actorData.system.stats.constitution.stat_bonus = Number(systemData.stats.constitution.racial_bonus)+Number(systemData.stats.constitution.special_bonus)+Number(systemData.stats.constitution.basic_bonus);
|
||||||
+ Number(systemData.stats.agility.special_bonus)
|
actorData.system.stats.memory.stat_bonus = Number(systemData.stats.memory.racial_bonus)+Number(systemData.stats.memory.special_bonus)+Number(systemData.stats.memory.basic_bonus);
|
||||||
+ Number(systemData.stats.agility.basic_bonus);
|
actorData.system.stats.reasoning.stat_bonus = Number(systemData.stats.reasoning.racial_bonus)+Number(systemData.stats.reasoning.special_bonus)+Number(systemData.stats.reasoning.basic_bonus);
|
||||||
|
actorData.system.stats.self_discipline.stat_bonus = Number(systemData.stats.self_discipline.racial_bonus)+Number(systemData.stats.self_discipline.special_bonus)+Number(systemData.stats.self_discipline.basic_bonus);
|
||||||
actorData.system.stats.constitution.stat_bonus = Number(systemData.stats.constitution.racial_bonus)
|
actorData.system.stats.empathy.stat_bonus = Number(systemData.stats.empathy.racial_bonus)+Number(systemData.stats.empathy.special_bonus)+Number(systemData.stats.empathy.basic_bonus);
|
||||||
+ Number(systemData.stats.constitution.special_bonus)
|
actorData.system.stats.intuition.stat_bonus = Number(systemData.stats.intuition.racial_bonus)+Number(systemData.stats.intuition.special_bonus)+Number(systemData.stats.intuition.basic_bonus);
|
||||||
+ Number(systemData.stats.constitution.basic_bonus);
|
actorData.system.stats.presence.stat_bonus = Number(systemData.stats.presence.racial_bonus)+Number(systemData.stats.presence.special_bonus)+Number(systemData.stats.presence.basic_bonus);
|
||||||
|
actorData.system.stats.quickness.stat_bonus = Number(systemData.stats.quickness.racial_bonus)+Number(systemData.stats.quickness.special_bonus)+Number(systemData.stats.quickness.basic_bonus);
|
||||||
actorData.system.stats.memory.stat_bonus = Number(systemData.stats.memory.racial_bonus)
|
actorData.system.stats.strength.stat_bonus = Number(systemData.stats.strength.racial_bonus)+Number(systemData.stats.strength.special_bonus)+Number(systemData.stats.strength.basic_bonus);
|
||||||
+ Number(systemData.stats.memory.special_bonus)
|
|
||||||
+ Number(systemData.stats.memory.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.reasoning.stat_bonus = Number(systemData.stats.reasoning.racial_bonus)
|
|
||||||
+ Number(systemData.stats.reasoning.special_bonus)
|
|
||||||
+ Number(systemData.stats.reasoning.basic_bonus);
|
|
||||||
|
|
||||||
|
|
||||||
actorData.system.stats.self_discipline.stat_bonus = Number(systemData.stats.self_discipline.racial_bonus)
|
|
||||||
+ Number(systemData.stats.self_discipline.special_bonus)
|
|
||||||
+ Number(systemData.stats.self_discipline.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.empathy.stat_bonus = Number(systemData.stats.empathy.racial_bonus)
|
|
||||||
+ Number(systemData.stats.empathy.special_bonus)
|
|
||||||
+ Number(systemData.stats.empathy.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.intuition.stat_bonus = Number(systemData.stats.intuition.racial_bonus)
|
|
||||||
+ Number(systemData.stats.intuition.special_bonus)
|
|
||||||
+ Number(systemData.stats.intuition.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.presence.stat_bonus = Number(systemData.stats.presence.racial_bonus)
|
|
||||||
+ Number(systemData.stats.presence.special_bonus)
|
|
||||||
+ Number(systemData.stats.presence.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.quickness.stat_bonus = Number(systemData.stats.quickness.racial_bonus)
|
|
||||||
+ Number(systemData.stats.quickness.special_bonus)
|
|
||||||
+ Number(systemData.stats.quickness.basic_bonus);
|
|
||||||
|
|
||||||
actorData.system.stats.strength.stat_bonus = Number(systemData.stats.strength.racial_bonus)
|
|
||||||
+ Number(systemData.stats.strength.special_bonus)
|
|
||||||
+ Number(systemData.stats.strength.basic_bonus);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate each Resistance Roll with the formula on the character sheet.
|
// Calculate each Resistance Roll with the formula on the character sheet.
|
||||||
calculateResistanceRolls(actorData) {
|
prepareResistanceRolls(actorData) { // TODO: Add Racial modifiers to resistance
|
||||||
const systemData = actorData.system;
|
const systemData = actorData.system;
|
||||||
|
actorData.system.resistance_rolls.essence = Number(systemData.stats.empathy.stat_bonus * 3);
|
||||||
actorData.system.resistance_rolls.essence.value = Number(systemData.stats.empathy.stat_bonus * 3);
|
actorData.system.resistance_rolls.channeling = Number(systemData.stats.intuition.stat_bonus * 3);
|
||||||
|
actorData.system.resistance_rolls.mentalism = Number(systemData.stats.presence.stat_bonus * 3);
|
||||||
actorData.system.resistance_rolls.channeling.value = Number(systemData.stats.intuition.stat_bonus * 3);
|
actorData.system.resistance_rolls.fear = Number(systemData.stats.self_discipline.stat_bonus * 3);
|
||||||
|
actorData.system.resistance_rolls.poison_disease = Number(systemData.stats.constitution.stat_bonus * 3);
|
||||||
actorData.system.resistance_rolls.mentalism.value = Number(systemData.stats.presence.stat_bonus * 3);
|
actorData.system.resistance_rolls.chann_ess = Number(systemData.stats.intuition.stat_bonus) + Number(systemData.stats.empathy.stat_bonus);
|
||||||
|
actorData.system.resistance_rolls.chann_ment = Number(systemData.stats.intuition.stat_bonus) + Number(systemData.stats.presence.stat_bonus);
|
||||||
actorData.system.resistance_rolls.fear.value = Number(systemData.stats.self_discipline.stat_bonus * 3);
|
actorData.system.resistance_rolls.ess_ment = Number(systemData.stats.empathy.stat_bonus) + Number(systemData.stats.presence.stat_bonus);
|
||||||
|
actorData.system.resistance_rolls.arcane = Number(systemData.stats.empathy.stat_bonus) + Number(systemData.stats.intuition.stat_bonus) + Number(systemData.stats.presence.stat_bonus);
|
||||||
actorData.system.resistance_rolls.poison_disease.value = Number(systemData.stats.constitution.stat_bonus * 3);
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.chann_ess.value = Number(systemData.stats.intuition.stat_bonus)
|
|
||||||
+ Number(systemData.stats.empathy.stat_bonus);
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.chann_ment.value = Number(systemData.stats.intuition.stat_bonus)
|
|
||||||
+ Number(systemData.stats.presence.stat_bonus);
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.ess_ment.value = Number(systemData.stats.empathy.stat_bonus)
|
|
||||||
+ Number(systemData.stats.presence.stat_bonus);
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.arcane.value = Number(systemData.stats.empathy.stat_bonus)
|
|
||||||
+ Number(systemData.stats.intuition.stat_bonus)
|
|
||||||
+ Number(systemData.stats.presence.stat_bonus);
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.essence.total = actorData.system.resistance_rolls.essence.value
|
|
||||||
+ actorData.system.resistance_rolls.essence.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.channeling.total = actorData.system.resistance_rolls.channeling.value
|
|
||||||
+ actorData.system.resistance_rolls.channeling.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.mentalism.total = actorData.system.resistance_rolls.mentalism.value
|
|
||||||
+ actorData.system.resistance_rolls.mentalism.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.fear.total = actorData.system.resistance_rolls.fear.value
|
|
||||||
+ actorData.system.resistance_rolls.fear.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.poison_disease.total = actorData.system.resistance_rolls.poison_disease.value
|
|
||||||
+ actorData.system.resistance_rolls.poison_disease.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.chann_ess.total = actorData.system.resistance_rolls.chann_ess.value
|
|
||||||
+ actorData.system.resistance_rolls.chann_ess.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.chann_ment.total = actorData.system.resistance_rolls.chann_ment.value
|
|
||||||
+ actorData.system.resistance_rolls.chann_ment.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.ess_ment.total = actorData.system.resistance_rolls.ess_ment.value
|
|
||||||
+ actorData.system.resistance_rolls.ess_ment.race_mod;
|
|
||||||
|
|
||||||
actorData.system.resistance_rolls.arcane.total = actorData.system.resistance_rolls.arcane.value
|
|
||||||
+ actorData.system.resistance_rolls.arcane.race_mod;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calculateSkillBonuses() {
|
/*prepareSkillCategoryBonuses() {
|
||||||
for (const item of this.items) {
|
for (const item of this.items) {
|
||||||
if (item.type === "skill") {
|
if (item.type === "skill") {
|
||||||
console.log(`rmss | actor.js | Calculating skill bonus for Skill: ${item.name}`);
|
|
||||||
console.log(`rmss | actor.js | Updating Skill Category Bonus for Skill: ${item.name}`);
|
|
||||||
item.calculateSelectedSkillCategoryBonus(item);
|
|
||||||
console.log(`rmss | actor.js | Updating Skill Total Bonus for Skill: ${item.name}`);
|
|
||||||
item.calculateSkillTotalBonus(item);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// Tallys the bonus for each Stat that is applicable to the Skill Category and then updates the total
|
// Tallys the bonus for each Stat that is applicable to the Skill Category and then updates the total
|
||||||
calculateSkillCategoryStatBonuses() {
|
prepareSkillCategoryStatBonuses() {
|
||||||
for (const item of this.items) {
|
for (const item of this.items) {
|
||||||
if (item.type === "skill_category") {
|
if (item.type === "skill_category") {
|
||||||
|
|
||||||
console.log(`rmss | actor.js | Calculating Skill Category Stat Bonuses for: ${item.name}`);
|
|
||||||
// Get all the applicable stats for this skill category
|
// Get all the applicable stats for this skill category
|
||||||
let app_stat_1 = item.system.app_stat_1;
|
var app_stat_1 = item.system.app_stat_1;
|
||||||
let app_stat_2 = item.system.app_stat_2;
|
var app_stat_2 = item.system.app_stat_2;
|
||||||
let app_stat_3 = item.system.app_stat_3;
|
var app_stat_3 = item.system.app_stat_3;
|
||||||
|
|
||||||
// If the first one is None we don't need to do anything further
|
// If the first one is None we don't need to do anything further
|
||||||
if (app_stat_1 === "None") {
|
if (app_stat_1 === "None") {
|
||||||
@@ -233,11 +101,11 @@ export class RMSSActor extends Actor {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let applicable_stat_bonus = 0;
|
var applicable_stat_bonus = 0;
|
||||||
|
|
||||||
let app_stat_1_found = false;
|
var app_stat_1_found = false;
|
||||||
let app_stat_2_found = false;
|
var app_stat_2_found = false;
|
||||||
let app_stat_3_found = false;
|
var app_stat_3_found = false;
|
||||||
|
|
||||||
// Iterate through the applicable stats and find their full names
|
// Iterate through the applicable stats and find their full names
|
||||||
for (const stat in CONFIG.rmss.stats) {
|
for (const stat in CONFIG.rmss.stats) {
|
||||||
@@ -256,25 +124,11 @@ export class RMSSActor extends Actor {
|
|||||||
applicable_stat_bonus = applicable_stat_bonus + this.system.stats[stat].stat_bonus;
|
applicable_stat_bonus = applicable_stat_bonus + this.system.stats[stat].stat_bonus;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//console.log("Applicable Stat Bonus: " + applicable_stat_bonus)
|
||||||
if (app_stat_1_found === true && app_stat_2_found === true && app_stat_3_found === true) {
|
if (app_stat_1_found === true && app_stat_2_found === true && app_stat_3_found === true) {
|
||||||
// Apply the update if we found stat bonuses for every applicable stat
|
// Apply the update if we found stat bonuses for every applicable stat
|
||||||
item.system.stat_bonus = applicable_stat_bonus;
|
item.system.stat_bonus = applicable_stat_bonus;
|
||||||
|
|
||||||
// Update the total in the Item
|
|
||||||
item.calculateSkillCategoryTotalBonus(item);
|
|
||||||
}
|
|
||||||
else if (app_stat_1_found === true && app_stat_2_found === true && app_stat_3_found === false) {
|
|
||||||
// Apply the update if we found stat bonuses for the first two applicable stats
|
|
||||||
item.system.stat_bonus = applicable_stat_bonus;
|
|
||||||
|
|
||||||
// Update the total in the Item
|
|
||||||
item.calculateSkillCategoryTotalBonus(item);
|
|
||||||
}
|
|
||||||
else if (app_stat_1_found === true && app_stat_2_found === false && app_stat_3_found === false) {
|
|
||||||
// Apply the update if we found stat bonuses for the first applicable stat
|
|
||||||
item.system.stat_bonus = applicable_stat_bonus;
|
|
||||||
|
|
||||||
// Update the total in the Item
|
// Update the total in the Item
|
||||||
item.calculateSkillCategoryTotalBonus(item);
|
item.calculateSkillCategoryTotalBonus(item);
|
||||||
}
|
}
|
||||||
@@ -286,15 +140,13 @@ export class RMSSActor extends Actor {
|
|||||||
// For each skill category return an object in this format.
|
// For each skill category return an object in this format.
|
||||||
// {{ _id: "skill category name"}}
|
// {{ _id: "skill category name"}}
|
||||||
// This is the format that the select helper on the skill sheet needs
|
// This is the format that the select helper on the skill sheet needs
|
||||||
|
getOwnedSkillCategories() {
|
||||||
getOwnedItemsByType(item_type) {
|
var ownedSkillCategories = {None: "None"};
|
||||||
let ownedItems = {None: "None"};
|
for (const item of this.items) {
|
||||||
console.log(`rmss | actor.js | Getting owned ${item_type} for: ${this.name}`);
|
if (item.type === "skill_category") {
|
||||||
for (const item of this.items) {
|
ownedSkillCategories[item._id] = item.name;
|
||||||
if (item.type === item_type) {
|
|
||||||
ownedItems[item._id] = item.name;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (ownedItems);
|
return(ownedSkillCategories);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,118 +1,79 @@
|
|||||||
export class RMSSItem extends Item {
|
export class RMSSItem extends Item {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
prepareData() {
|
prepareData() {
|
||||||
// Prepare data for the item. Calling the super version of this executes
|
// Prepare data for the item. Calling the super version of this executes
|
||||||
// the following, in order: data reset (to clear active effects),
|
// the following, in order: data reset (to clear active effects),
|
||||||
// prepareBaseData(), prepareEmbeddedDocuments() (including active effects),
|
// prepareBaseData(), prepareEmbeddedDocuments() (including active effects),
|
||||||
// prepareDerivedData().
|
// prepareDerivedData().
|
||||||
console.log(`rmss | item.js | prepareData for: ${this.name}`);
|
super.prepareData();
|
||||||
super.prepareData();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the icon images for newly created images.
|
|
||||||
async _preCreate(data, options, userId) {
|
|
||||||
await super._preCreate(data, options, userId);
|
|
||||||
|
|
||||||
// Do not set on copied items if they have a custom Icon.
|
|
||||||
if (!data.name.includes("(Copy)"))
|
|
||||||
{
|
|
||||||
if (this.type === "armor") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/armor.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "weapon") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/weapon.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "skill") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/skill.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "skill_category") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/skill_category.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "spell") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/spell.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "herb_or_poison") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/herb_or_poison.svg"});
|
|
||||||
}
|
|
||||||
else if (this.type === "transport") {
|
|
||||||
await this.updateSource({img: "systems/rmss/assets/default/transport.svg"});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prepareDerivedData() {
|
|
||||||
const itemData = this;
|
|
||||||
const systemData = itemData.system;
|
|
||||||
const flags = itemData.flags.rmss || {};
|
|
||||||
|
|
||||||
// Make separate methods for each item type to keep things organized.
|
|
||||||
|
|
||||||
if (itemData.type === "skill") {
|
|
||||||
this._prepareSkillCategoryData(itemData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemData.type === "skill") {
|
// Set the icon images for newly created images.
|
||||||
this._prepareSkillData(itemData);
|
async _preCreate(data, options, userId) {
|
||||||
}
|
await super._preCreate(data, options, userId);
|
||||||
}
|
|
||||||
|
|
||||||
_prepareSkillCategoryData(itemData) {
|
// Do not set on copied items if they have a custom Icon.
|
||||||
if (itemData.type !== "skill_category") return;
|
if (!data.name.includes("(Copy)"))
|
||||||
console.log(`rmss | item.js | Preparing Skill Category Data for: ${itemData.name}`);
|
{
|
||||||
// Calculate Skill Category Total Bonus
|
if (this.type == "armor") {
|
||||||
this.calculateSkillCategoryTotalBonus(itemData);
|
await this.updateSource({img: "systems/rmss/assets/default/armor.svg"});
|
||||||
}
|
}
|
||||||
|
else if (this.type == "weapon") {
|
||||||
_prepareSkillData(itemData) {
|
await this.updateSource({img: "systems/rmss/assets/default/weapon.svg"});
|
||||||
if (itemData.type !== "skill") return;
|
}
|
||||||
console.log(`rmss | item.js | Preparing Skill Data for: ${itemData.name}`);
|
else if (this.type == "skill") {
|
||||||
// Make modifications to data here. For example:
|
await this.updateSource({img: "systems/rmss/assets/default/skill.svg"});
|
||||||
// const systemData = itemData.system;
|
}
|
||||||
// Calculate Skill Category Bonus
|
else if (this.type == "skill_category") {
|
||||||
this.calculateSelectedSkillCategoryBonus(itemData);
|
await this.updateSource({img: "systems/rmss/assets/default/skill_category.svg"});
|
||||||
// Calculate Skill Total Bonus
|
}
|
||||||
this.calculateSkillTotalBonus(itemData);
|
else if (this.type == "spell") {
|
||||||
}
|
await this.updateSource({img: "systems/rmss/assets/default/spell.svg"});
|
||||||
|
}
|
||||||
calculateSkillCategoryTotalBonus(itemData) {
|
else if (this.type == "herb_or_poison") {
|
||||||
if (this.type === "skill_category") {
|
await this.updateSource({img: "systems/rmss/assets/default/herb_or_poison.svg"});
|
||||||
console.log(`rmss | item.js | Calculating Skill Category Total Bonus for: ${itemData.name}`);
|
}
|
||||||
const systemData = itemData.system;
|
else if (this.type == "transport") {
|
||||||
itemData.system.total_bonus = Number(systemData.rank_bonus)
|
await this.updateSource({img: "systems/rmss/assets/default/transport.svg"});
|
||||||
+ Number(systemData.stat_bonus)
|
}
|
||||||
+ Number(systemData.prof_bonus)
|
|
||||||
+ Number(systemData.special_bonus_1)
|
|
||||||
+ Number(systemData.special_bonus_2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
calculateSkillTotalBonus(itemData) {
|
|
||||||
if (this.type === "skill") {
|
|
||||||
const systemData = itemData.system;
|
|
||||||
console.log(`rmss | item.js | Calculating Skill Total Bonus for: ${itemData.name}`);
|
|
||||||
itemData.system.total_bonus = Number(systemData.rank_bonus)
|
|
||||||
+ Number(systemData.category_bonus)
|
|
||||||
+ Number(systemData.item_bonus)
|
|
||||||
+ Number(systemData.special_bonus_1)
|
|
||||||
+ Number(systemData.special_bonus_2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
calculateSelectedSkillCategoryBonus(itemData) {
|
|
||||||
if (this.isEmbedded === null) {
|
|
||||||
console.log(`rmss | item.js | Skill ${this.name} has no owner. Not calculating Skill Category bonus`);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const items = this.parent.items;
|
|
||||||
console.log(`rmss | item.js | Skill ${this.name} has owner, calculating skill category bonus.`);
|
|
||||||
for (const item of items) {
|
|
||||||
if (item.type === "skill_category" && item._id === itemData.system.category) {
|
|
||||||
console.log(`rmss | item.js | Calculating Skill Category bonus for skill: ${this.name}`);
|
|
||||||
this.system.category_bonus = item.system.total_bonus;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
calculateSkillCategoryTotalBonus(itemData) {
|
||||||
|
if (this.type === "skill_category") {
|
||||||
|
const systemData = itemData.system;
|
||||||
|
itemData.system.total_bonus = Number(systemData.rank_bonus)+Number(systemData.stat_bonus)+Number(systemData.prof_bonus)+Number(systemData.special_bonus_1)+Number(systemData.special_bonus_2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareDerivedData() {
|
||||||
|
const itemData = this;
|
||||||
|
const systemData = itemData.system;
|
||||||
|
const flags = itemData.flags.rmss || {};
|
||||||
|
|
||||||
|
// Make separate methods for each item type to keep things organized.
|
||||||
|
this._prepareSkillCategoryData(itemData);
|
||||||
|
this._prepareSkillData(itemData);
|
||||||
|
}
|
||||||
|
|
||||||
|
_prepareSkillCategoryData(itemData) {
|
||||||
|
if (itemData.type !== 'skill_category') return;
|
||||||
|
|
||||||
|
// Make modifications to data here. For example:
|
||||||
|
//const data = itemData.data;
|
||||||
|
|
||||||
|
// Calculate Stat Bonuses
|
||||||
|
this.calculateSkillCategoryTotalBonus(itemData);
|
||||||
|
}
|
||||||
|
|
||||||
|
_prepareSkillData(itemData) {
|
||||||
|
if (itemData.type !== 'skill') return;
|
||||||
|
|
||||||
|
// Make modifications to data here. For example:
|
||||||
|
const systemData = itemData.system;
|
||||||
|
|
||||||
|
// Calculate Stat Bonuses
|
||||||
|
itemData.system.total_bonus = Number(systemData.rank_bonus)+Number(systemData.category_bonus)+Number(systemData.item_bonus)+Number(systemData.special_bonus_1)+Number(systemData.special_bonus_2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,394 +1,166 @@
|
|||||||
export default class RMSSPlayerSheet extends ActorSheet {
|
export default class RMSSPlayerSheet extends ActorSheet {
|
||||||
|
|
||||||
// Override Default Options, Set CSS Classes, Set Default Sheet, Set up Sheet Tabs
|
// Override Default Options, Set CSS Classes, Set Default Sheet, Set up Sheet Tabs
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 860,
|
template: "systems/rmss/templates/sheets/actors/rmss-character-sheet.html",
|
||||||
height: 780,
|
classes: ["rmss", "sheet", "actor"],
|
||||||
template: "systems/rmss/templates/sheets/actors/rmss-character-sheet.html",
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
|
||||||
classes: ["rmss", "sheet", "actor"],
|
});
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
|
||||||
async getData() {
|
|
||||||
const context = super.getData();
|
|
||||||
|
|
||||||
// Use a safe clone of the actor data for further operations.
|
|
||||||
const actorData = this.actor.toObject(false);
|
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.actor.system.description, {async: true});
|
|
||||||
|
|
||||||
// Add the actor's data to context.data for easier access, as well as flags.
|
|
||||||
context.system = actorData.system;
|
|
||||||
context.flags = actorData.flags;
|
|
||||||
context.enrichedDescription = enrichedDescription;
|
|
||||||
|
|
||||||
// Prepare character data and items.
|
|
||||||
if (actorData.type === "character") {
|
|
||||||
this._prepareItems(context);
|
|
||||||
this._prepareCharacterData(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare NPC data and items.
|
// Make the data available to the sheet template
|
||||||
if (actorData.type === "npc") {
|
getData() {
|
||||||
this._prepareItems(context);
|
const context = super.getData();
|
||||||
}
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Override this method to check for duplicates when things are dragged to the sheet
|
// Use a safe clone of the actor data for further operations.
|
||||||
// We don't want duplicate skills and skill categories.
|
const actorData = this.actor.toObject(false);
|
||||||
async _onDropItem(event, data) {
|
|
||||||
|
|
||||||
// Reconstruct the item from the event
|
// Add the actor's data to context.data for easier access, as well as flags.
|
||||||
const newitem = await Item.implementation.fromDropData(data);
|
context.system = actorData.system;
|
||||||
const itemData = newitem.toObject();
|
context.flags = actorData.flags;
|
||||||
|
|
||||||
// To Do: Seperate Skills and Skill Categories. Increment Counts for items
|
// Prepare character data and items.
|
||||||
if (itemData.type === "skill_category") {
|
if (actorData.type == 'character') {
|
||||||
|
this._prepareItems(context);
|
||||||
|
this._prepareCharacterData(context);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the already owned Items from the actor and push into an array
|
// Prepare NPC data and items.
|
||||||
const owneditems = this.object.getOwnedItemsByType("skill_category");
|
if (actorData.type == 'npc') {
|
||||||
|
this._prepareItems(context);
|
||||||
let ownedskillcatlist = Object.values(owneditems);
|
}
|
||||||
|
return context;
|
||||||
// Check if the dragged item is not in the array and not owned
|
|
||||||
if (!ownedskillcatlist.includes(itemData.name)) {
|
|
||||||
console.log("Not Owned!");
|
|
||||||
super._onDropItem(event, data);
|
|
||||||
}
|
|
||||||
} else if ( itemData.type === "skill") {
|
|
||||||
// Get the already owned Items from the actor and push into an array
|
|
||||||
const owneditems = this.object.getOwnedItemsByType("skill");
|
|
||||||
|
|
||||||
let ownedskilllist = Object.values(owneditems);
|
|
||||||
|
|
||||||
// Check if the dragged item is not in the array and not owned
|
|
||||||
if (!ownedskilllist.includes(itemData.name)) {
|
|
||||||
console.log("Not Owned!");
|
|
||||||
super._onDropItem(event, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
super._onDropItem(event, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_prepareCharacterData(context) {
|
|
||||||
// Calculate Power Point Exhaustion
|
|
||||||
let powerpointPercentage = (Number(context.system.attributes.power_points.current) / Number(context.system.attributes.power_points.max)) * 100;
|
|
||||||
|
|
||||||
console.log(true);
|
|
||||||
|
|
||||||
switch (true) {
|
|
||||||
case (powerpointPercentage < 25):
|
|
||||||
context.system.attributes.power_points.modifier = "PP Exhaustion Penalty: -30 ";
|
|
||||||
break;
|
|
||||||
case (powerpointPercentage < 50):
|
|
||||||
context.system.attributes.power_points.modifier = "PP Exhaustion Penalty: -20 ";
|
|
||||||
break;
|
|
||||||
case (powerpointPercentage < 75):
|
|
||||||
console.log("Less than 75");
|
|
||||||
context.system.attributes.power_points.modifier = "PP Exhaustion Penalty: -10 ";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
console.log("Setting Default");
|
|
||||||
context.system.attributes.power_points.modifier = "PP Exhaustion Penalty: 0 ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate Exhaustion Point Penalty
|
//Override this method to check for duplicates when things are dragged to the sheet
|
||||||
let exhaustionPercentage = (Number(context.system.attributes.exhaustion_points.current) / Number(context.system.attributes.exhaustion_points.max)) * 100;
|
// We don't want duplicate skills and skill categories.
|
||||||
|
async _onDropItem(event, data) {
|
||||||
|
|
||||||
console.log(true);
|
// Reconstruct the item from the event
|
||||||
|
const newitem = await Item.implementation.fromDropData(data);
|
||||||
|
const itemData = newitem.toObject();
|
||||||
|
|
||||||
switch (true) {
|
if (itemData.type === "skill_category" || itemData.type === "skill"){
|
||||||
case (exhaustionPercentage < 1):
|
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: -100 ";
|
// Get the already owned Items from the actor and push into an array
|
||||||
break;
|
const owneditems = this.object.getOwnedSkillCategories();
|
||||||
case (exhaustionPercentage < 10):
|
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: -60 ";
|
console.log(owneditems);
|
||||||
break;
|
|
||||||
case (exhaustionPercentage < 25):
|
var owneditemslist = Object.values(owneditems);
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: -30 ";
|
|
||||||
break;
|
// Check if the dragged item is not in the array and not owned
|
||||||
case (exhaustionPercentage < 50):
|
if (!owneditemslist.includes(itemData.name)) {
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: -15 ";
|
console.log("Not Owned!");
|
||||||
break;
|
super._onDropItem(event, data);
|
||||||
case (exhaustionPercentage < 75):
|
}
|
||||||
console.log("Less than 75");
|
}
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: -5 ";
|
else {
|
||||||
break;
|
super._onDropItem(event, data);
|
||||||
default:
|
}
|
||||||
console.log("Setting Default");
|
|
||||||
context.system.attributes.exhaustion_points.modifier = "Exhaustion Penalty: 0 ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
_prepareCharacterData(context) {
|
||||||
|
|
||||||
_prepareItems(context) {
|
|
||||||
console.log(`rmss | rmss_player_sheet.js | Preparing items for: ${this.name}`);
|
|
||||||
// Initialize containers.
|
|
||||||
const gear = [];
|
|
||||||
const playerskill= [];
|
|
||||||
const skillcat = [];
|
|
||||||
const weapons = [];
|
|
||||||
const armor = [];
|
|
||||||
const herbs = [];
|
|
||||||
const spells = [];
|
|
||||||
const equipables = [];
|
|
||||||
|
|
||||||
// Iterate through items, allocating to containers
|
|
||||||
for (let i of context.items) {
|
|
||||||
i.img = i.img || DEFAULT_TOKEN;
|
|
||||||
// Append to gear.
|
|
||||||
if (i.type === "item") {
|
|
||||||
gear.push(i);
|
|
||||||
}
|
|
||||||
else if (i.type === "weapon") {
|
|
||||||
weapons.push(i);
|
|
||||||
}
|
|
||||||
else if (i.type === "herb_or_poison") {
|
|
||||||
herbs.push(i);
|
|
||||||
}
|
|
||||||
// Append to skill categories.
|
|
||||||
else if (i.type === "skill_category") {
|
|
||||||
skillcat.push(i);
|
|
||||||
}
|
|
||||||
// Append to playerskill
|
|
||||||
else if (i.type === "skill") {
|
|
||||||
playerskill.push(i);
|
|
||||||
}
|
|
||||||
else if (i.type === "armor") {
|
|
||||||
armor.push(i);
|
|
||||||
}
|
|
||||||
else if (i.type === "spell") {
|
|
||||||
spells.push(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_prepareItems(context) {
|
||||||
|
// Initialize containers.
|
||||||
|
const gear = [];
|
||||||
|
const playerskill= [];
|
||||||
|
const skillcat = [];
|
||||||
|
|
||||||
// Sort Skill/Skillcat Arrays
|
// Iterate through items, allocating to containers
|
||||||
skillcat.sort(function(a, b) {
|
for (let i of context.items) {
|
||||||
if (a.name < b.name) {
|
i.img = i.img || DEFAULT_TOKEN;
|
||||||
return -1;
|
// Append to gear.
|
||||||
}
|
if (i.type === 'item' || i.type === 'armor' || i.type === 'weapon' || i.type === 'herb_or_poison') {
|
||||||
if (a.name > b.name) {
|
gear.push(i);
|
||||||
return 1;
|
}
|
||||||
}
|
// Append to skill categories.
|
||||||
return 0;
|
else if (i.type === 'skill_category') {
|
||||||
});
|
skillcat.push(i);
|
||||||
|
}
|
||||||
|
// Append to playerskill
|
||||||
|
else if (i.type === 'skill') {
|
||||||
|
playerskill.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
playerskill.sort(function(a, b) {
|
// Sort Skill/Skillcat Arrays
|
||||||
if (a.name < b.name) {
|
skillcat.sort(function (a, b){
|
||||||
return -1;
|
if (a.name < b.name) {
|
||||||
}
|
return -1;
|
||||||
if (a.name > b.name) {
|
}
|
||||||
return 1;
|
if (a.name > b.name) {
|
||||||
}
|
return 1;
|
||||||
return 0;
|
}
|
||||||
});
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
// Assign and return
|
playerskill.sort(function (a, b){
|
||||||
context.gear = gear;
|
if (a.name < b.name) {
|
||||||
context.skillcat = skillcat;
|
return -1;
|
||||||
context.playerskill = playerskill;
|
}
|
||||||
context.weapons = weapons;
|
if (a.name > b.name) {
|
||||||
context.armor = armor;
|
return 1;
|
||||||
context.herbs = herbs;
|
}
|
||||||
context.spells = spells;
|
return 0;
|
||||||
}
|
});
|
||||||
|
|
||||||
async renderCharacterSettings(data) {
|
|
||||||
console.log(data);
|
|
||||||
const configSheet = await renderTemplate("systems/rmss/templates/sheets/actors/dialogs/app_skill_category_importer.html", data);
|
|
||||||
return (configSheet);
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
// Assign and return
|
||||||
super.activateListeners(html);
|
context.gear = gear;
|
||||||
|
context.skillcat = skillcat;
|
||||||
|
context.playerskill = playerskill;
|
||||||
|
}
|
||||||
|
|
||||||
// Render the item sheet for viewing/editing prior to the editable check.
|
activateListeners(html) {
|
||||||
html.find(".item-edit").click(ev => {
|
super.activateListeners(html);
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
item.sheet.render(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
html.find(".item-roll").click(ev => {
|
// NOTE: Can you do skill/item favorites this way?
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
new game.rmss.applications.RMSSToolsDiceRoller(item.name, item.system.total_bonus).render(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// Render the item sheet for viewing/editing prior to the editable check.
|
||||||
// Everything below here is only needed if the sheet is editable
|
html.find('.item-edit').click(ev => {
|
||||||
if (!this.isEditable) return;
|
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
||||||
|
//console.log(this);
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
// Add Item
|
// -------------------------------------------------------------
|
||||||
html.find(".item-create").click(this._onItemCreate.bind(this));
|
// Everything below here is only needed if the sheet is editable
|
||||||
|
if (!this.isEditable) return;
|
||||||
|
|
||||||
// Delete Item
|
// Add Item
|
||||||
html.find(".item-delete").click(ev => {
|
html.find('.item-create').click(this._onItemCreate.bind(this));
|
||||||
console.log(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
item.delete();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Show Skill Category Importer
|
// Delete Item
|
||||||
html.find(".import-skillcats").click(async ev => {
|
html.find('.item-delete').click(ev => {
|
||||||
|
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
||||||
|
//console.log(ev.currentTarget.getAttribute("data-item-id"));
|
||||||
|
item.delete();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let selectOptions = {};
|
async _onItemCreate(event) {
|
||||||
for (const pack of game.packs) {
|
event.preventDefault();
|
||||||
selectOptions[pack.metadata.id] = pack.metadata.label;
|
const header = event.currentTarget;
|
||||||
}
|
// Get the type of item to create.
|
||||||
new game.rmss.applications.RMSSToolsSCImporter(selectOptions, this.actor).render(true);
|
const type = header.dataset.type;
|
||||||
});
|
// Grab any data associated with this control.
|
||||||
|
const data = duplicate(header.dataset);
|
||||||
// Check/Uncheck Favorite Skill
|
// Initialize a default name.
|
||||||
html.find(".skill-favorite").click(ev => {
|
const name = `New ${type.capitalize()}`;
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
// Prepare the item object.
|
||||||
console.log(item);
|
const itemData = {
|
||||||
console.log(`Before change: ${item.system.favorite}`);
|
name: name,
|
||||||
if (item.system.favorite === true) {
|
type: type,
|
||||||
console.log("Setting False");
|
data: data
|
||||||
item.update({system: {favorite: false}});
|
};
|
||||||
} else {
|
// Remove the type from the dataset since it's in the itemData.type prop.
|
||||||
console.log("Setting True");
|
//delete itemData.data["type"];
|
||||||
item.update({system: {favorite: true}});
|
delete itemData.data.type;
|
||||||
}
|
// Finally, create the item!
|
||||||
console.log(`After change: ${item.system.favorite}`);
|
return await Item.create(itemData, {parent: this.actor});
|
||||||
});
|
}
|
||||||
|
|
||||||
// Check/Uncheck Favorite Spell
|
|
||||||
html.find(".spell-favorite").click(ev => {
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
console.log(item);
|
|
||||||
console.log(`Before change: ${item.system.favorite}`);
|
|
||||||
if (item.system.favorite === true) {
|
|
||||||
console.log("Setting False");
|
|
||||||
item.update({system: {favorite: false}});
|
|
||||||
} else {
|
|
||||||
console.log("Setting True");
|
|
||||||
item.update({system: {favorite: true}});
|
|
||||||
}
|
|
||||||
console.log(`After change: ${item.system.favorite}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Equip/Unequip Weapon/Armor
|
|
||||||
html.find(".equippable").click(ev => {
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
console.log(item);
|
|
||||||
console.log(`Before change: ${item.system.equipped}`);
|
|
||||||
if (item.system.equipped === true) {
|
|
||||||
console.log("Setting False");
|
|
||||||
item.update({system: {equipped: false}});
|
|
||||||
} else {
|
|
||||||
console.log("Setting True");
|
|
||||||
item.update({system: {equipped: true}});
|
|
||||||
}
|
|
||||||
console.log(`After change: ${item.system.equipped}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Wear/Remove Item
|
|
||||||
html.find(".wearable").click(ev => {
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
console.log(item);
|
|
||||||
console.log(`Before change: ${item.system.equipped}`);
|
|
||||||
if (item.system.worn === true) {
|
|
||||||
console.log("Setting False");
|
|
||||||
item.update({system: {worn: false}});
|
|
||||||
} else {
|
|
||||||
console.log("Setting True");
|
|
||||||
item.update({system: {worn: true}});
|
|
||||||
}
|
|
||||||
console.log(`After change: ${item.system.equipped}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Change New Ranks value when clicked in player sheet. From 0-3.
|
|
||||||
html.find(".skill-newrank").click(ev => {
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
|
|
||||||
console.log("Firing in the Player Sheet");
|
|
||||||
console.log(ev.currentTarget.getAttribute("value"));
|
|
||||||
console.log(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
|
|
||||||
switch (ev.currentTarget.getAttribute("value")) {
|
|
||||||
case "0":
|
|
||||||
console.log("Skill NewRanks is 0 setting to 1");
|
|
||||||
item.update({system: {new_ranks: { value: 1 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "1":
|
|
||||||
console.log("Skill NewRanks is 1 setting to 2");
|
|
||||||
item.update({system: {new_ranks: { value: 2 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "2":
|
|
||||||
console.log("Skill NewRanks is 2 setting to 3");
|
|
||||||
item.update({system: {new_ranks: { value: 3 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "3":
|
|
||||||
console.log("Skill NewRanks is 3 setting to 0");
|
|
||||||
item.update({system: {new_ranks: { value: 0 }}});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Change New Ranks value when clicked in player sheet. From 0-3.
|
|
||||||
html.find(".skillcategory-newrank").click(ev => {
|
|
||||||
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
|
|
||||||
console.log("Firing in the Player Sheet");
|
|
||||||
console.log(ev.currentTarget.getAttribute("value"));
|
|
||||||
console.log(ev.currentTarget.getAttribute("data-item-id"));
|
|
||||||
|
|
||||||
switch (ev.currentTarget.getAttribute("value")) {
|
|
||||||
case "0":
|
|
||||||
console.log("Skill Category NewRanks is 0 setting to 1");
|
|
||||||
item.update({system: {new_ranks: { value: 1 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "1":
|
|
||||||
console.log("Skill Category NewRanks is 1 setting to 2");
|
|
||||||
item.update({system: {new_ranks: { value: 2 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "2":
|
|
||||||
console.log("Skill Category NewRanks is 2 setting to 3");
|
|
||||||
item.update({system: {new_ranks: { value: 3 }}});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "3":
|
|
||||||
console.log("Skill Category NewRanks is 3 setting to 0");
|
|
||||||
item.update({system: {new_ranks: { value: 0 }}});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async _onItemCreate(event) {
|
|
||||||
event.preventDefault();
|
|
||||||
const header = event.currentTarget;
|
|
||||||
|
|
||||||
// Get the type of item to create.
|
|
||||||
const type = header.dataset.type;
|
|
||||||
|
|
||||||
// Grab any data associated with this control.
|
|
||||||
const data = duplicate(header.dataset);
|
|
||||||
|
|
||||||
// Initialize a default name.
|
|
||||||
const name = `New ${type.capitalize()}`;
|
|
||||||
|
|
||||||
// Prepare the item object.
|
|
||||||
const itemData = {
|
|
||||||
name: name,
|
|
||||||
type: type,
|
|
||||||
data: data
|
|
||||||
};
|
|
||||||
// Remove the type from the dataset since it's in the itemData.type prop.
|
|
||||||
delete itemData.data.type;
|
|
||||||
// Finally, create the item!
|
|
||||||
return await Item.create(itemData, {parent: this.actor});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
export default class RMSSActorSheetConfig extends FormApplication {
|
|
||||||
|
|
||||||
constructor(selectOptions, character) {
|
|
||||||
super();
|
|
||||||
this.selectOptions = selectOptions;
|
|
||||||
this.character = character;
|
|
||||||
}
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return mergeObject(super.defaultOptions, {
|
|
||||||
classes: ["form"],
|
|
||||||
popOut: true,
|
|
||||||
template: "systems/rmss/templates/sheets/actors/apps/actor-settings.html"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getData() {
|
|
||||||
// Send data to the template
|
|
||||||
return {
|
|
||||||
selectOptions: this.selectOptions
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
}
|
|
||||||
|
|
||||||
async _updateObject(event, formData) {
|
|
||||||
console.log("Deleting Old Skill Categories.");
|
|
||||||
for (const item of this.character.items) {
|
|
||||||
if (item.type === "skill_category") {
|
|
||||||
item.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const pack = game.packs.get(formData.selectOptions);
|
|
||||||
const skillCategoryData = await pack.getIndex();
|
|
||||||
|
|
||||||
console.log("Importing New Skill Categories.");
|
|
||||||
|
|
||||||
for (const sc of skillCategoryData) {
|
|
||||||
const newitem = await pack.getDocument(sc._id);
|
|
||||||
|
|
||||||
let newDocuments = [];
|
|
||||||
if (newitem.type === "skill_category") {
|
|
||||||
console.log(newitem);
|
|
||||||
newDocuments.push(newitem);
|
|
||||||
}
|
|
||||||
if (newDocuments.length > 0) {
|
|
||||||
await Item.createDocuments(newDocuments, {parent: this.character});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
import {
|
|
||||||
roll_one_to_onehundred,
|
|
||||||
roll_low_open_ended,
|
|
||||||
roll_high_open_ended,
|
|
||||||
roll_open_ended
|
|
||||||
} from "./rmss_dice_roller_rolls.js";
|
|
||||||
import {
|
|
||||||
getOpenEndedRollModifier,
|
|
||||||
processOpenEndedSixtySixRoll,
|
|
||||||
processOpenEndedRoll,
|
|
||||||
processHighOpenEndedRoll,
|
|
||||||
processLowOpenEndedRoll
|
|
||||||
} from "./rmss_dice_roller_processing.js";
|
|
||||||
|
|
||||||
export default class RMSSToolsDiceRoller extends FormApplication {
|
|
||||||
constructor(itemName, characterBonus) {
|
|
||||||
super();
|
|
||||||
this.itemName = itemName;
|
|
||||||
this.characterBonus = characterBonus;
|
|
||||||
this.rollType = [
|
|
||||||
{value: "one_to_onehundred", text: "1-100", selected: false},
|
|
||||||
{value: "open_ended", text: "Open-Ended", selected: true},
|
|
||||||
{value: "high_open_ended", text: "High Open-Ended", selected: false},
|
|
||||||
{value: "low_open_ended", text: "Low Open-Ended", selected: false}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return mergeObject(super.defaultOptions, {
|
|
||||||
classes: ["form"],
|
|
||||||
title: "Rolemaster Dice Roller",
|
|
||||||
popOut: true,
|
|
||||||
width: 380,
|
|
||||||
height: 210,
|
|
||||||
template: "systems/rmss/templates/sheets/apps/app_dice_roller.html"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getData() {
|
|
||||||
// Send data to the template
|
|
||||||
return {
|
|
||||||
itemName: this.itemName,
|
|
||||||
characterBonus: this.characterBonus,
|
|
||||||
selectOptions: this.rollType,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
}
|
|
||||||
|
|
||||||
async _updateObject(event, formData) {
|
|
||||||
console.log("Rolling Dice");
|
|
||||||
console.log(formData);
|
|
||||||
console.log(event);
|
|
||||||
switch (formData.rollType) {
|
|
||||||
case "one_to_onehundred":
|
|
||||||
this.roll_one_to_onehundred();
|
|
||||||
break;
|
|
||||||
case "open_ended":
|
|
||||||
this.roll_open_ended();
|
|
||||||
break;
|
|
||||||
case "high_open_ended":
|
|
||||||
this.roll_high_open_ended();
|
|
||||||
break;
|
|
||||||
case "low_open_ended":
|
|
||||||
this.roll_low_open_ended();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RMSSToolsDiceRoller.prototype.roll_one_to_onehundred = roll_one_to_onehundred;
|
|
||||||
RMSSToolsDiceRoller.prototype.roll_low_open_ended = roll_low_open_ended;
|
|
||||||
RMSSToolsDiceRoller.prototype.roll_high_open_ended = roll_high_open_ended;
|
|
||||||
RMSSToolsDiceRoller.prototype.roll_open_ended = roll_open_ended;
|
|
||||||
|
|
||||||
RMSSToolsDiceRoller.prototype.getOpenEndedRollModifier =
|
|
||||||
getOpenEndedRollModifier;
|
|
||||||
RMSSToolsDiceRoller.prototype.processOpenEndedSixtySixRoll =
|
|
||||||
processOpenEndedSixtySixRoll;
|
|
||||||
RMSSToolsDiceRoller.prototype.processOpenEndedRoll = processOpenEndedRoll;
|
|
||||||
RMSSToolsDiceRoller.prototype.processHighOpenEndedRoll =
|
|
||||||
processHighOpenEndedRoll;
|
|
||||||
RMSSToolsDiceRoller.prototype.processLowOpenEndedRoll = processLowOpenEndedRoll;
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
export async function getOpenEndedRollModifier() {
|
|
||||||
return await new Roll("1d100x>95").roll({ async: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
export function processOpenEndedSixtySixRoll(baseroll, rolltype) {
|
|
||||||
// Log the Roll to Chat
|
|
||||||
let chatOptions = {
|
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
|
||||||
rolls: [baseroll],
|
|
||||||
flavor: rolltype,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
content: "You rolled a 66!",
|
|
||||||
};
|
|
||||||
|
|
||||||
ChatMessage.create(chatOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function processOpenEndedRoll(baseroll, rolltype) {
|
|
||||||
// Define the Chat Message Template
|
|
||||||
let chatTemplate = "systems/rmss/templates/chat/chat_dice_roll.html";
|
|
||||||
|
|
||||||
// Pass the Data through to be used in the Chat Message
|
|
||||||
let chatData = {
|
|
||||||
baseroll: baseroll,
|
|
||||||
total: baseroll.result,
|
|
||||||
highopen: false,
|
|
||||||
lowopen: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Render the Rolls to the Chat Window
|
|
||||||
renderTemplate(chatTemplate, chatData).then((html) => {
|
|
||||||
let chatOptions = {
|
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
|
||||||
rolls: [baseroll],
|
|
||||||
flavor: rolltype,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
content: html,
|
|
||||||
};
|
|
||||||
|
|
||||||
ChatMessage.create(chatOptions);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function processHighOpenEndedRoll(baseroll, rolltype) {
|
|
||||||
// Get the Base Roll followed by the High Open Ended Roll
|
|
||||||
let originalRoll = baseroll;
|
|
||||||
let openendedRoll = await this.getOpenEndedRollModifier();
|
|
||||||
|
|
||||||
// Create a rolls array for Dice So Nice integration.
|
|
||||||
let rolls = [originalRoll, openendedRoll];
|
|
||||||
|
|
||||||
// Create an Array to hold the High Open Ended Roll Results and set the total to base roll
|
|
||||||
let openendedResults = [];
|
|
||||||
let total = Number(originalRoll.result);
|
|
||||||
|
|
||||||
// Each time the High Open Ended Roll is triggered add the result to an array and add it to the total.
|
|
||||||
for (const rollResult of openendedRoll.dice[0].results) {
|
|
||||||
openendedResults.push(rollResult.result);
|
|
||||||
total = total + Number(rollResult.result);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define the Chat Message Template
|
|
||||||
let chatTemplate = "systems/rmss/templates/chat/chat_dice_roll.html";
|
|
||||||
|
|
||||||
// Pass the Data through to be used in the Chat Message
|
|
||||||
let chatData = {
|
|
||||||
baseroll: baseroll,
|
|
||||||
opeendedresults: [openendedResults],
|
|
||||||
highopen: true,
|
|
||||||
lowopen: false,
|
|
||||||
total: total,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Render the Rolls to the Chat Window
|
|
||||||
renderTemplate(chatTemplate, chatData).then((html) => {
|
|
||||||
let chatOptions = {
|
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
|
||||||
rolls: rolls,
|
|
||||||
flavor: rolltype,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
content: html,
|
|
||||||
};
|
|
||||||
|
|
||||||
ChatMessage.create(chatOptions);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function processLowOpenEndedRoll(baseroll, rolltype) {
|
|
||||||
// Get the Base Roll followed by the Low Open Ended Roll
|
|
||||||
let originalRoll = baseroll;
|
|
||||||
let openendedRoll = await this.getOpenEndedRollModifier();
|
|
||||||
|
|
||||||
// Create a rolls array for Dice So Nice integration.
|
|
||||||
let rolls = [originalRoll, openendedRoll];
|
|
||||||
|
|
||||||
// Create an Array to hold the Low Open Ended Roll Results and set the total to base roll
|
|
||||||
let openendedResults = [];
|
|
||||||
let total = Number(originalRoll.result);
|
|
||||||
|
|
||||||
// Each time the Low Open Ended Roll is triggered add the result to an array and subtract it from the total.
|
|
||||||
for (const rollResult of openendedRoll.dice[0].results) {
|
|
||||||
openendedResults.push(rollResult.result);
|
|
||||||
total = total - Number(rollResult.result);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define the Chat Message Template
|
|
||||||
let chatTemplate = "systems/rmss/templates/chat/chat_dice_roll.html";
|
|
||||||
|
|
||||||
// Pass the Data through to be used in the Chat Message
|
|
||||||
let chatData = {
|
|
||||||
baseroll: baseroll,
|
|
||||||
rolls: rolls,
|
|
||||||
opeendedresults: [openendedResults],
|
|
||||||
highopen: false,
|
|
||||||
lowopen: true,
|
|
||||||
total: total,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Render the Rolls to the Chat Window
|
|
||||||
renderTemplate(chatTemplate, chatData).then((html) => {
|
|
||||||
let chatOptions = {
|
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
|
||||||
rolls: rolls,
|
|
||||||
flavor: rolltype,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
content: html,
|
|
||||||
};
|
|
||||||
|
|
||||||
ChatMessage.create(chatOptions);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
export async function roll_one_to_onehundred() {
|
|
||||||
// Construct the Roll instance
|
|
||||||
let baseroll = await new Roll("1d100 + @characterBonus", {characterBonus: this.characterBonus}).roll({async: true});
|
|
||||||
let rolltype = "Roll Type: 1-100";
|
|
||||||
|
|
||||||
// Log the Roll to Chat
|
|
||||||
let chatOptions = {
|
|
||||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
|
||||||
rolls: [baseroll],
|
|
||||||
flavor: rolltype,
|
|
||||||
rollMode: game.settings.get("core", "rollMode")
|
|
||||||
};
|
|
||||||
|
|
||||||
ChatMessage.create(chatOptions);
|
|
||||||
this.close();
|
|
||||||
};
|
|
||||||
|
|
||||||
export async function roll_low_open_ended() {
|
|
||||||
// Construct the Roll instance
|
|
||||||
let baseroll = await new Roll("1d100").roll({async: true});
|
|
||||||
console.log(baseroll.result);
|
|
||||||
let rolltype = "Roll Type: Low Open-Ended";
|
|
||||||
|
|
||||||
switch (true) {
|
|
||||||
case (baseroll.result < 6):
|
|
||||||
this.processLowOpenEndedRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
case (baseroll.result === 66):
|
|
||||||
this.processOpenEndedSixtySixRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
this.processOpenEndedRoll(baseroll, rolltype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function roll_high_open_ended() {
|
|
||||||
// Construct the Roll instance
|
|
||||||
let baseroll = await new Roll("1d100").roll({async: true});
|
|
||||||
console.log(baseroll.result);
|
|
||||||
let rolltype = "Roll Type: High Open-Ended";
|
|
||||||
switch (true) {
|
|
||||||
case (baseroll.result === 66):
|
|
||||||
this.processOpenEndedSixtySixRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
case (baseroll.result > 95):
|
|
||||||
this.processHighOpenEndedRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
this.processOpenEndedRoll(baseroll, rolltype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function roll_open_ended() {
|
|
||||||
// Construct the Roll instance
|
|
||||||
let baseroll = await new Roll("1d100").roll({async: true});
|
|
||||||
console.log(baseroll.result);
|
|
||||||
let rolltype = "Roll Type: Open-Ended";
|
|
||||||
switch (true) {
|
|
||||||
case (baseroll.result < 6):
|
|
||||||
this.processLowOpenEndedRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
case (baseroll.result === 66):
|
|
||||||
this.processOpenEndedSixtySixRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
case (baseroll.result > 95):
|
|
||||||
this.processHighOpenEndedRoll(baseroll, rolltype);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
this.processOpenEndedRoll(baseroll, rolltype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
export default class RMSSToolsSCImporter extends FormApplication {
|
|
||||||
|
|
||||||
constructor(selectOptions, character) {
|
|
||||||
super();
|
|
||||||
this.selectOptions = selectOptions;
|
|
||||||
this.character = character;
|
|
||||||
}
|
|
||||||
|
|
||||||
static get defaultOptions() {
|
|
||||||
return mergeObject(super.defaultOptions, {
|
|
||||||
classes: ["form"],
|
|
||||||
popOut: true,
|
|
||||||
title: "Import Skill Categories",
|
|
||||||
template: "systems/rmss/templates/sheets/apps/app_skill_category_importer.html"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getData() {
|
|
||||||
// Send data to the template
|
|
||||||
return {
|
|
||||||
selectOptions: this.selectOptions
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
}
|
|
||||||
|
|
||||||
async _updateObject(event, formData) {
|
|
||||||
console.log("Deleting Old Skill Categories.");
|
|
||||||
for (const item of this.character.items) {
|
|
||||||
if (item.type === "skill_category") {
|
|
||||||
item.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const pack = game.packs.get(formData.selectOptions);
|
|
||||||
const skillCategoryData = await pack.getIndex();
|
|
||||||
|
|
||||||
console.log("Importing New Skill Categories.");
|
|
||||||
|
|
||||||
for (const sc of skillCategoryData) {
|
|
||||||
const newitem = await pack.getDocument(sc._id);
|
|
||||||
|
|
||||||
let newDocuments = [];
|
|
||||||
if (newitem.type === "skill_category") {
|
|
||||||
console.log(newitem);
|
|
||||||
newDocuments.push(newitem);
|
|
||||||
}
|
|
||||||
if (newDocuments.length > 0) {
|
|
||||||
await Item.createDocuments(newDocuments, {parent: this.character});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSArmorSheet extends ItemSheet {
|
export default class RMSSArmorSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/items/rmss-armor-sheet.html",
|
template: "systems/rmss/templates/sheets/items/rmss-armor-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/items/rmss-armor-sheet.html";
|
return `systems/rmss/templates/sheets/items/rmss-armor-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSHerbAndPoisonSheet extends ItemSheet {
|
export default class RMSSHerbAndPoisonSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/items/rmss-herb-or-poison-sheet.html",
|
template: "systems/rmss/templates/sheets/items/rmss-herb-or-poison-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/items/rmss-herb-or-poison-sheet.html";
|
return `systems/rmss/templates/sheets/items/rmss-herb-or-poison-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSItemSheet extends ItemSheet {
|
export default class RMSSItemSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/items/rmss-item-sheet.html",
|
template: "systems/rmss/templates/sheets/items/rmss-item-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/items/rmss-item-sheet.html";
|
return `systems/rmss/templates/sheets/items/rmss-item-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSTransportSheet extends ItemSheet {
|
export default class RMSSTransportSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/items/rmss-transport-sheet.html",
|
template: "systems/rmss/templates/sheets/items/rmss-transport-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/items/rmss-transport-sheet.html";
|
return `systems/rmss/templates/sheets/items/rmss-transport-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSWeaponSheet extends ItemSheet {
|
export default class RMSSWeaponSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/items/rmss-weapon-sheet.html",
|
template: "systems/rmss/templates/sheets/items/rmss-weapon-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/items/rmss-weapon-sheet.html";
|
return `systems/rmss/templates/sheets/items/rmss-weapon-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,133 +1,111 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSSkillCategorySheet extends ItemSheet {
|
export default class RMSSSkillCategorySheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 580,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/skills/rmss-skill-category-sheet.html",
|
template: "systems/rmss/templates/sheets/skills/rmss-skill-category-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
|
||||||
get template() {
|
|
||||||
return "systems/rmss/templates/sheets/skills/rmss-skill-category-sheet.html";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
|
||||||
async getData() {
|
|
||||||
const context = await super.getData();
|
|
||||||
|
|
||||||
// Get a list of stats that can be used as applicable stats
|
|
||||||
let applicableStatList = this.prepareApplicableStatNames(CONFIG);
|
|
||||||
|
|
||||||
// Get the currently selected value for all three applicable stats
|
|
||||||
let firstApplicableStat = this.prepareApplicableSelectedStat("app_stat_1");
|
|
||||||
let secondApplicableStat = this.prepareApplicableSelectedStat("app_stat_2");
|
|
||||||
let thirdApplicableStat = this.prepareApplicableSelectedStat("app_stat_3");
|
|
||||||
|
|
||||||
// Build and apply the display string for Applicable Stats
|
|
||||||
let applicableStatText =
|
|
||||||
this.buildApplicableStatsText(firstApplicableStat, secondApplicableStat, thirdApplicableStat);
|
|
||||||
context.item.system.applicable_stats = applicableStatText;
|
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
|
||||||
|
|
||||||
let sheetData = {
|
|
||||||
owner: this.item.isOwner,
|
|
||||||
editable: this.isEditable,
|
|
||||||
item: context.item,
|
|
||||||
system: context.item.system,
|
|
||||||
config: CONFIG.rmss,
|
|
||||||
applicable_stat_list: applicableStatList,
|
|
||||||
applicable_stat_1_selected: firstApplicableStat,
|
|
||||||
applicable_stat_2_selected: secondApplicableStat,
|
|
||||||
applicable_stat_3_selected: thirdApplicableStat,
|
|
||||||
enrichedDescription: enrichedDescription
|
|
||||||
};
|
|
||||||
return sheetData;
|
|
||||||
}
|
|
||||||
|
|
||||||
async _setApplicableStat(item, ev) {
|
|
||||||
// Build a JSON Object from the selected tag value and selected name (item data attribute key)
|
|
||||||
let updateKey = ev.currentTarget.getAttribute("name");
|
|
||||||
let updateData = ev.target.value;
|
|
||||||
|
|
||||||
// Update Item Data
|
|
||||||
await item.update({[updateKey]: updateData});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Each Skill Category can have up to three Applicable Stats that apply to it. We need to get a list of
|
|
||||||
// the Stat Shortnames from Config so the user can select which stats are applicable to this Skill Category
|
|
||||||
prepareApplicableStatNames(config) {
|
|
||||||
let applicableStatList = {None: "None"};
|
|
||||||
for (const item in config.rmss.stats) {
|
|
||||||
applicableStatList[config.rmss.stats[item].shortname] = config.rmss.stats[item].shortname;
|
|
||||||
}
|
}
|
||||||
return applicableStatList;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the values for the currently selected Applicable Stat so we can display it on the Skill Category Sheet
|
// If our sheet is called here it is.
|
||||||
// If nothing is selected return an empty string.
|
get template() {
|
||||||
prepareApplicableSelectedStat(appStat) {
|
return `systems/rmss/templates/sheets/skills/rmss-skill-category-sheet.html`;
|
||||||
let applicableStatSelected = "";
|
|
||||||
applicableStatSelected = this.item.system[appStat];
|
|
||||||
return applicableStatSelected;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The character sheet has an information field that displays the applicable stats in the following format
|
|
||||||
// St/Ag/St. This method checks the current applicable stats and builds that field so
|
|
||||||
// it can be displayed to the user.
|
|
||||||
buildApplicableStatsText(firstAppStat, secondAppStat, thirdAppStat) {
|
|
||||||
if (firstAppStat === "None") {
|
|
||||||
return ("None");
|
|
||||||
}
|
}
|
||||||
else if (firstAppStat !== "None" && secondAppStat === "None") {
|
|
||||||
return (firstAppStat);
|
|
||||||
}
|
|
||||||
else if (firstAppStat !== "None" && secondAppStat !== "None" && thirdAppStat === "None" ) {
|
|
||||||
return (`${firstAppStat}/${secondAppStat}`);
|
|
||||||
}
|
|
||||||
else if (firstAppStat !== "None" && secondAppStat !== "None" && thirdAppStat !== "None" ) {
|
|
||||||
return (`${firstAppStat}/${secondAppStat}/${thirdAppStat}`);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return ("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
// Make the data available to the sheet template
|
||||||
super.activateListeners(html);
|
async getData() {
|
||||||
|
const context = await super.getData();
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// Get a list of stats that can be used as applicable stats
|
||||||
// Everything below here is only needed if the sheet is editable
|
var applicable_stat_list = this.prepareApplicableStatValues(CONFIG);
|
||||||
if (!this.isEditable) return;
|
|
||||||
|
|
||||||
// Every time the user selects one of the Applicable Stat dropdowns
|
//Get the currently selected value for all three applicable stats
|
||||||
// fire an event to change the value in the Skill Category
|
var applicable_stat_1_selected = this.prepareApplicableSelectedStat("app_stat_1");
|
||||||
html.find(".stat-selector").change(ev => {
|
var applicable_stat_2_selected = this.prepareApplicableSelectedStat("app_stat_2");
|
||||||
this._setApplicableStat(this.item, ev);
|
var applicable_stat_3_selected = this.prepareApplicableSelectedStat("app_stat_3");
|
||||||
});
|
|
||||||
|
|
||||||
// Catch the event when the user clicks one of the New Ranks Checkboxes in a Skill Category.
|
// Build and apply the display string for Applicable Stats
|
||||||
// It will increment by one or wrap back to zero on a value of three
|
var applicable_stat_text = this.buildApplicableStatsText(applicable_stat_1_selected, applicable_stat_2_selected, applicable_stat_3_selected);
|
||||||
html.find(".skillcategorysheet-newrank").click(ev => {
|
//context.item.system['applicable_stats'] = applicable_stat_text;
|
||||||
switch (ev.currentTarget.getAttribute("value")) {
|
context.item.system.applicable_stats = applicable_stat_text;
|
||||||
case "0":
|
|
||||||
this.object.update({system: {new_ranks: { value: 1 }}});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
break;
|
|
||||||
case "1":
|
let sheetData = {
|
||||||
this.object.update({system: {new_ranks: { value: 2 }}});
|
owner: this.item.isOwner,
|
||||||
break;
|
editable :this.isEditable,
|
||||||
case "2":
|
item: context.item,
|
||||||
this.object.update({system: {new_ranks: { value: 3 }}});
|
system: context.item.system,
|
||||||
break;
|
config: CONFIG.rmss,
|
||||||
case "3":
|
applicable_stat_list: applicable_stat_list,
|
||||||
this.object.update({system: {new_ranks: { value: 0 }}});
|
applicable_stat_1_selected: applicable_stat_1_selected,
|
||||||
break;
|
applicable_stat_2_selected: applicable_stat_2_selected,
|
||||||
}
|
applicable_stat_3_selected: applicable_stat_3_selected,
|
||||||
});
|
enrichedDescription: enrichedDescription
|
||||||
}
|
};
|
||||||
|
return sheetData;
|
||||||
|
}
|
||||||
|
|
||||||
|
async _setApplicableStat(item, ev) {
|
||||||
|
// Build a JSON Object from the select tag value and select name (item data attribute key)
|
||||||
|
var update_key = ev.currentTarget.getAttribute("name");
|
||||||
|
var update_data = ev.target.value;
|
||||||
|
|
||||||
|
// Update Item Data
|
||||||
|
await item.update({[update_key]: update_data});
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareApplicableStatValues(CONFIG) {
|
||||||
|
var applicable_stat_list = {None: "None"};
|
||||||
|
|
||||||
|
// Get a list of stat shortnames from the config
|
||||||
|
for (const item in CONFIG.rmss.stats) {
|
||||||
|
applicable_stat_list[CONFIG.rmss.stats[item].shortname] = CONFIG.rmss.stats[item].shortname;
|
||||||
|
}
|
||||||
|
return applicable_stat_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine which Stat is selected for applicable stats
|
||||||
|
prepareApplicableSelectedStat(app_stat) {
|
||||||
|
var applicable_stat_selected = "";
|
||||||
|
applicable_stat_selected = this.item.system[app_stat];
|
||||||
|
return applicable_stat_selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the text that is displayed in the Applicable Stats field
|
||||||
|
buildApplicableStatsText(app_stat_1, app_stat_2, app_stat_3) {
|
||||||
|
|
||||||
|
if (app_stat_1 === "None") {
|
||||||
|
return("None");
|
||||||
|
}
|
||||||
|
else if (app_stat_1 !== "None" && app_stat_2 === "None") {
|
||||||
|
return(app_stat_1);
|
||||||
|
}
|
||||||
|
else if (app_stat_1 !== "None" && app_stat_2 !== "None" && app_stat_3 === "None" ) {
|
||||||
|
return(app_stat_1 + "/" + app_stat_2 );
|
||||||
|
}
|
||||||
|
else if (app_stat_1 !== "None" && app_stat_2 !== "None" && app_stat_3 !== "None" ) {
|
||||||
|
return(app_stat_1 + "/" + app_stat_2 + "/" + app_stat_3 );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return("None");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
// -------------------------------------------------------------
|
||||||
|
// Everything below here is only needed if the sheet is editable
|
||||||
|
if (!this.isEditable) return;
|
||||||
|
|
||||||
|
// Update Applicable Stats for Skill Categories
|
||||||
|
html.find('.stat-selector').change(ev => {
|
||||||
|
this._setApplicableStat(this.item, ev);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,115 +1,90 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSSkillSheet extends ItemSheet {
|
export default class RMSSSkillSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
template: "systems/rmss/templates/sheets/skills/rmss-skill-sheet.html",
|
template: "systems/rmss/templates/sheets/skills/rmss-skill-sheet.html",
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
|
||||||
get template() {
|
|
||||||
return "systems/rmss/templates/sheets/skills/rmss-skill-sheet.html";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
|
||||||
async getData() {
|
|
||||||
const baseData = await super.getData();
|
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
|
||||||
|
|
||||||
// Get a list of the parent item's skill categories for the dropdown
|
|
||||||
let ownedSkillCategories = this.prepareSkillCategoryValues();
|
|
||||||
|
|
||||||
// Figure out if a valid Skill Category is already selected
|
|
||||||
let selectedSkillCategory = this.prepareSelectedSkillCategory(ownedSkillCategories, this.object.system.category);
|
|
||||||
|
|
||||||
let sheetData = {
|
|
||||||
owner: this.item.isOwner,
|
|
||||||
editable: this.isEditable,
|
|
||||||
item: baseData.item,
|
|
||||||
system: baseData.item.system,
|
|
||||||
config: CONFIG.rmss,
|
|
||||||
owned_skillcats: ownedSkillCategories,
|
|
||||||
enrichedDescription: enrichedDescription,
|
|
||||||
selected_skillcat: selectedSkillCategory,
|
|
||||||
designations: CONFIG.rmss.skill_designations
|
|
||||||
};
|
|
||||||
|
|
||||||
return sheetData;
|
|
||||||
}
|
|
||||||
|
|
||||||
activateListeners(html) {
|
|
||||||
super.activateListeners(html);
|
|
||||||
|
|
||||||
// Catch the event when the user clicks one of the New Ranks Checkboxes in a Skill.
|
|
||||||
// It will increment by one or wrap back to zero on a value of three
|
|
||||||
html.find(".skillsheet-newrank").click(ev => {
|
|
||||||
switch (ev.currentTarget.getAttribute("value")) {
|
|
||||||
case "0":
|
|
||||||
this.object.update({system: {new_ranks: { value: 1 }}});
|
|
||||||
break;
|
|
||||||
case "1":
|
|
||||||
this.object.update({system: {new_ranks: { value: 2 }}});
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
this.object.update({system: {new_ranks: { value: 3 }}});
|
|
||||||
break;
|
|
||||||
case "3":
|
|
||||||
this.object.update({system: {new_ranks: { value: 0 }}});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skills are related to Skill Categories so we need something to allow the user to choose that relationship
|
|
||||||
// If this Skill is owned then we will return a list of Skill Categories and allow them to choose
|
|
||||||
// Otherwise we'll just return 'Skill has no owner'
|
|
||||||
prepareSkillCategoryValues() {
|
|
||||||
let skillNoOwner = {None: "Skill Has No Owner"};
|
|
||||||
|
|
||||||
if (this.item.isEmbedded === null) {
|
|
||||||
return (skillNoOwner);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
const skillCategories = this.item.parent.getOwnedItemsByType("skill_category");
|
|
||||||
return (skillCategories);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Determine which Skill Category is selected and test that it is in the current list of categories.
|
// If our sheet is called here it is.
|
||||||
// If it isn't set it to None.
|
get template() {
|
||||||
prepareSelectedSkillCategory(ownedSkillCategories, selectedSkillCategory) {
|
return `systems/rmss/templates/sheets/skills/rmss-skill-sheet.html`;
|
||||||
let defaultSelectedCategory = "None";
|
|
||||||
if (Object.keys(ownedSkillCategories).includes(selectedSkillCategory)) {
|
|
||||||
return (selectedSkillCategory);
|
|
||||||
} else {
|
|
||||||
return (defaultSelectedCategory);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Populate the Skill Category Bonus field on the Skill Sheet.
|
// Make the data available to the sheet template
|
||||||
// Iterate through the owned skill categories and if one of them matches the item id of currently
|
async getData() {
|
||||||
// selected skill category then set the Skill Category Bonus field to the Total Bonus field of the Skill Category
|
const baseData = await super.getData();
|
||||||
prepareSelectedSkillCategoryBonus(selected_skillcat) {
|
|
||||||
if (this.item.isEmbedded === null) {
|
|
||||||
console.log("Skill has no owner");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const items = this.object.parent.items;
|
|
||||||
|
|
||||||
for (const item of items) {
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
if (item.type === "skill_category" && item._id === selected_skillcat) {
|
|
||||||
console.log(`rmss | rmss_skill_sheet | Calculating Skill Category bonus for skill: ${this.object.name}`);
|
// Get a list of the parent item's skill categories for the dropdown
|
||||||
this.object.system.category_bonus = item.system.total_bonus;
|
var owned_skillcats = this.prepareSkillCategoryValues();
|
||||||
|
|
||||||
|
// Figure out if a valid Skill Category is already selected
|
||||||
|
var selected_skillcat = this.prepareSelectedSkillCategory(owned_skillcats, this.object.system.category);
|
||||||
|
|
||||||
|
this.prepareSelectedSkillCategoryBonus(selected_skillcat);
|
||||||
|
|
||||||
|
let sheetData = {
|
||||||
|
owner: this.item.isOwner,
|
||||||
|
editable :this.isEditable,
|
||||||
|
item: baseData.item,
|
||||||
|
system: baseData.item.system,
|
||||||
|
config: CONFIG.rmss,
|
||||||
|
owned_skillcats: owned_skillcats,
|
||||||
|
enrichedDescription: enrichedDescription,
|
||||||
|
selected_skillcat: selected_skillcat
|
||||||
|
};
|
||||||
|
|
||||||
|
return sheetData;
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareSkillCategoryValues() {
|
||||||
|
// If there is no player owning this Skill then we cannot assign a category.
|
||||||
|
var skillcat_list = {None: "Skill Has No Owner", };
|
||||||
|
|
||||||
|
if (this.item.isEmbedded === null) {
|
||||||
|
return(skillcat_list);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const skillcats = this.item.parent.getOwnedSkillCategories();
|
||||||
|
return(skillcats);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine which Stat is selected and test that it is in the current list of categories.
|
||||||
|
prepareSelectedSkillCategory(ownedskillcats, selected_category) {
|
||||||
|
|
||||||
|
// Start By setting the owned category to None, if nothing happens this will be the default
|
||||||
|
var default_selected_category = "None";
|
||||||
|
|
||||||
|
// Get a list of keys from the currently owned skill categories and compare to the current value
|
||||||
|
if (Object.keys(ownedskillcats).includes(selected_category)) {
|
||||||
|
return(selected_category);
|
||||||
|
} else {
|
||||||
|
return(default_selected_category);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareSelectedSkillCategoryBonus(selected_skillcat) {
|
||||||
|
if (this.item.isEmbedded === null) {
|
||||||
|
console.log("Skill has no owner");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const items = this.object.parent.items;
|
||||||
|
|
||||||
|
for (const item of items) {
|
||||||
|
if (item.type === "skill_category" && item._id === selected_skillcat) {
|
||||||
|
this.object.system.category_bonus = item.system.total_bonus;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,35 +1,35 @@
|
|||||||
// Our Item Sheet extends the default
|
// Our Item Sheet extends the default
|
||||||
export default class RMSSSpellSheet extends ItemSheet {
|
export default class RMSSSpellSheet extends ItemSheet {
|
||||||
|
|
||||||
// Set the height and width
|
// Set the height and width
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
width: 530,
|
width: 530,
|
||||||
height: 440,
|
height: 440,
|
||||||
classes: ["rmss", "sheet", "item"]
|
classes: ["rmss", "sheet", "item"]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// If our sheet is called here it is.
|
// If our sheet is called here it is.
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/rmss/templates/sheets/spells/rmss-spell-sheet.html";
|
return `systems/rmss/templates/sheets/spells/rmss-spell-sheet.html`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the data available to the sheet template
|
// Make the data available to the sheet template
|
||||||
async getData() {
|
async getData() {
|
||||||
const baseData = await super.getData();
|
const baseData = await super.getData();
|
||||||
|
|
||||||
let enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
|
||||||
|
|
||||||
let sheetData = {
|
let sheetData = {
|
||||||
owner: this.item.isOwner,
|
owner: this.item.isOwner,
|
||||||
editable: this.isEditable,
|
editable :this.isEditable,
|
||||||
item: baseData.item,
|
item: baseData.item,
|
||||||
system: baseData.item.system,
|
system: baseData.item.system,
|
||||||
config: CONFIG.rmss,
|
config: CONFIG.rmss,
|
||||||
enrichedDescription: enrichedDescription
|
enrichedDescription: enrichedDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
{"name":"Weapon • Missile Artillery","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Ag/Re","app_stat_1":"In","app_stat_2":"Ag","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.swVilWoSF4JH0yhZ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898842718,"modifiedTime":1663840828472,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"1HevhbCbvMonyQXe"}
|
|
||||||
{"name":"Armor • Medium","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.ENiEBop9Kgrn9pBt"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897408501,"modifiedTime":1663840704830,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"2fdM9ICcj7vp8nFd"}
|
|
||||||
{"name":"Athletic • Gymnastics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Qu/Ag","app_stat_1":"Ag","app_stat_2":"Qu","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.TASzGNEwHMQUz1AV"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897573841,"modifiedTime":1663840718046,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"2rw9aaYaiTiuKX6p"}
|
|
||||||
{"name":"Weapon • Missile","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.8a1d0Z2MfJe0R1Eb"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898823756,"modifiedTime":1663840820736,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"2sTx95Y88soBT6Xm"}
|
|
||||||
{"name":"Technical/Trade • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/SD","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.1td9QGD20b4nkD6h"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898674902,"modifiedTime":1663840807018,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"3mHLFWrWHEA8Fmyq"}
|
|
||||||
{"name":"Lore • Obscure","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.bsDoIUKcNUeqxQQO"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897997337,"modifiedTime":1663840747755,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"47foBA6Yk70CVg2i"}
|
|
||||||
{"name":"Weapon • Thown","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.kCtfktVNlH414NL2"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898881742,"modifiedTime":1663840832033,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"5e3r6vHlLHjZzyTu"}
|
|
||||||
{"name":"Technical/Trade • Professional","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/In","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.xNTn6oV9yMOmfP0Z"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898699996,"modifiedTime":1663840810513,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"67oz5EUQCrxKsh5e"}
|
|
||||||
{"name":"Spells • Other Realm Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.AUzgIWYzrE15qCt9"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898456160,"modifiedTime":1663840790383,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"7z1BmP1Qlx11GL1C"}
|
|
||||||
{"name":"Lore • Technical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.Tw2FXIQb5HA89kbX"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898032616,"modifiedTime":1663840749775,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"9XA38iy0DxyhUaaC"}
|
|
||||||
{"name":"Armor • Light","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.TMGapmlYutNuQaw8"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897388838,"modifiedTime":1663840702933,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"AIvpcHWyipCtWLvT"}
|
|
||||||
{"name":"Combat Maneuvers","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Qu/SD","app_stat_1":"Ag","app_stat_2":"Qu","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.bwL0nMJePO6OQNue"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897819566,"modifiedTime":1663840727979,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"Aa5S1GaRJmkyDjIR"}
|
|
||||||
{"name":"Awareness • Perceptions","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/SD/In","app_stat_1":"In","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.gJHBJS3aEz62XbxE"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897610482,"modifiedTime":1663840719487,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"BJlyds9J8ILwLIyW"}
|
|
||||||
{"name":"Martial Arts • Sweeps","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.n9WaU79Ctzmf6JbC"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898139942,"modifiedTime":1663840757073,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"Bj3no8mNboD8qKTn"}
|
|
||||||
{"name":"Crafts","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Me/SD","app_stat_1":"Ag","app_stat_2":"Me","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.6nErPtcQ33WXkyH4"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897865848,"modifiedTime":1663840734368,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"CcUHr6zfVpRuu4xv"}
|
|
||||||
{"name":"Body Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Co/SD/Co","app_stat_1":"Co","app_stat_2":"SD","app_stat_3":"Co","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.cWtQ0YU3kGBhL8iR"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897724809,"modifiedTime":1663840726119,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"DL9XZU3P2Bw87PJa"}
|
|
||||||
{"name":"Weapon • Pole Arms","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.hpmgFsJPXxBQHJSE"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898862386,"modifiedTime":1663840830247,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"HkZMP2SZyRVqzzCJ"}
|
|
||||||
{"name":"Self Control","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD/Pr/SD","app_stat_1":"SD","app_stat_2":"Pr","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.1B82OxRKQ781NEa9"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898315491,"modifiedTime":1663840773057,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"IIQQyaCr7KJeeMGp"}
|
|
||||||
{"name":"Special Defenses","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.eH1iaAuxyIwDmuA8"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898371453,"modifiedTime":1663840778477,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"JmokU4vzQQ4lPicS"}
|
|
||||||
{"name":"Spells • Own Realm Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.w8xibKSY2EShkDJq"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898482739,"modifiedTime":1663840794007,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"KICAwOwrP1cMTRKf"}
|
|
||||||
{"name":"Subterfuge • Stealth","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/In","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.FM9stBeKGFVdAPdc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898591826,"modifiedTime":1663840803256,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"KmFEWAhhqtmRZCQv"}
|
|
||||||
{"name":"Subterfuge • Mechanics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Ag/Re","app_stat_1":"In","app_stat_2":"Ag","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.O0Zwk5hAhCMx6ajP"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898576285,"modifiedTime":1663840801090,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"P6lna8uCBQeVNgau"}
|
|
||||||
{"name":"Influence","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Pr/Em/In","app_stat_1":"Pr","app_stat_2":"Em","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.zOKTXAFd6bK3XJZ5"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897929958,"modifiedTime":1663840741277,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"PnBxiNuUS8b3KjGE"}
|
|
||||||
{"name":"Spells • Own Realm Other Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.HeAonlDHotwBy2lx"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898530167,"modifiedTime":1663840795735,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"QolQRsysF7O5XJo8"}
|
|
||||||
{"name":"Power Awareness","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/In/Pr","app_stat_1":"Em","app_stat_2":"In","app_stat_3":"Pr","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.cnnhsP9vAOoN7VMn"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898233748,"modifiedTime":1663840766010,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"R2wZUOFxekV1mBgc"}
|
|
||||||
{"name":"Spells • Arcane Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.R3lQNaGBdz7C5Fhs"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898407655,"modifiedTime":1663840780153,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"RpiCBmS6DKnI8Pok"}
|
|
||||||
{"name":"Athletic • Endurance","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Co/Ag/St","app_stat_1":"Co","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.ldmZhkHo8m4VvV2V"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897539929,"modifiedTime":1663840716358,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"Rug8mq3LdUxGhHXK"}
|
|
||||||
{"name":"Directed Spells","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/Ag","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.RA46DfHavzTTrp99"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897900117,"modifiedTime":1663840738205,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"US94Sx46Vn1Rs9D5"}
|
|
||||||
{"name":"Lore • Magical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.V9otC0Kh0y0B3P8Q"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897982070,"modifiedTime":1663840745751,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"X8RmCDRpojxc6u09"}
|
|
||||||
{"name":"Weapon • 1-H Concussion","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898744329,"modifiedTime":1663840814331,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"YZw0sLV7fZwXD85n"}
|
|
||||||
{"name":"Weapon • 1-H Edged","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.MV3UkzR77MTPHTau"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898787439,"modifiedTime":1663840817273,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"ZS8ikAjF41M7eZg5"}
|
|
||||||
{"name":"Awareness • Searching","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Re/SD","app_stat_1":"In","app_stat_2":"Re","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.NZl30XPdtYjHqtwp"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897647294,"modifiedTime":1663840720922,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"ZaUdmzJSrTeI0gsl"}
|
|
||||||
{"name":"Lore • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.5fCeVMz6xVnkmH8o"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897962808,"modifiedTime":1663840744241,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"brpsxpqHEnUfC8a1"}
|
|
||||||
{"name":"Science/Analytic • Basic","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Re","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898290307,"modifiedTime":1663840771526,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"dKHsLzvDinagbTCm"}
|
|
||||||
{"name":"Power Manipulation","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/In/Pr","app_stat_1":"Em","app_stat_2":"In","app_stat_3":"Pr","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.CQX0326xax4K3lEP"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898250959,"modifiedTime":1663840767601,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"g64EdTWn0WxJXJFq"}
|
|
||||||
{"name":"Subterfuge • Attack","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/In","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.Zva3DO0Zmk3G5xWT"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898559045,"modifiedTime":1663840799076,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"gYP00F897jg2I6pC"}
|
|
||||||
{"name":"Artistic • Passive","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/In/Pr","app_stat_1":"Em","app_stat_2":"In","app_stat_3":"Pr","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.NTMvAPWeh5G55Kjs"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897462965,"modifiedTime":1663840713026,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"hFi8bJUxX2HvSoDj"}
|
|
||||||
{"name":"Athletic • Brawn","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Co/Ag","app_stat_1":"St","app_stat_2":"Co","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.VufLKW42mP7RtinG"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897509473,"modifiedTime":1663840714620,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"iC37JIsE5RETzyd6"}
|
|
||||||
{"name":"Spells • Own Realm Own Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.eEAr5sqnGKej7eiC"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898544500,"modifiedTime":1663840797285,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"iWL7y95CGF7Y1dAq"}
|
|
||||||
{"name":"Artistic • Active","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Pr/Em/Ag","app_stat_1":"Pr","app_stat_2":"Em","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.cEffILww7nn8vqJ7"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897441727,"modifiedTime":1663840706776,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"iZn6Hzq4cr0zY7Uk"}
|
|
||||||
{"name":"Power Point Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.Q7rKLS4gJwH2Lygw"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898277091,"modifiedTime":1663840769117,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"jOywgkFX58CVDn7z"}
|
|
||||||
{"name":"Armor • Heavy","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.7UA8xwzcBrKZfFk9"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897366792,"modifiedTime":1663840700907,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"k4IOyyJU8t7MAySl"}
|
|
||||||
{"name":"Spells • Other Realm Closed Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.7ka2nD2kPq6ixwWu"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898426199,"modifiedTime":1663840788519,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"kbOWBGenZjWIVqrC"}
|
|
||||||
{"name":"Awareness • Senses","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/SD/In","app_stat_1":"In","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.QplAVXReCFVlKVB8"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897666266,"modifiedTime":1663840724332,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"pApyCNOxQb5sIOsf"}
|
|
||||||
{"name":"Weapon • 2-Handed","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.JiH6JhVoH9jrqptT"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898804378,"modifiedTime":1663840819146,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"qRNUoJcWrF2EmLSP"}
|
|
||||||
{"name":"Spells • Own Realm Closed Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.cyNDeZDye15gUFzA"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898478099,"modifiedTime":1663840792427,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"ruxbCKHjuGsdQ79z"}
|
|
||||||
{"name":"Outdoor • Animal","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/Ag/Em","app_stat_1":"Em","app_stat_2":"Ag","app_stat_3":"Em","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.6UjbXeI6IFrsdTEy"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898166391,"modifiedTime":1663840758805,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"v6tHhdaL7amLDnzR"}
|
|
||||||
{"name":"Outdoor • Environmental","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD/In/Me","app_stat_1":"SD","app_stat_2":"In","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.49iK0oluVd5Z1fpc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898214394,"modifiedTime":1663840760505,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"vM8rePr9QRXnG6HK"}
|
|
||||||
{"name":"Spells • Other Realm Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"None","app_stat_1":"None","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.Wo1SrqGsgMYNoApO"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898426199,"modifiedTime":1663840786314,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"vlFr24F5zJ9fYzs7"}
|
|
||||||
{"name":"Urban","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Pr/Re","app_stat_1":"In","app_stat_2":"Pr","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.JAY4cM0lv1wZm3vo"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898721300,"modifiedTime":1663840812646,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"xHqAlnQjgEScetvh"}
|
|
||||||
{"name":"Martial Arts • Striking","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.HVistg0XNoVGsSKZ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898114714,"modifiedTime":1663840754969,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"xJXObXAQcdPbSXg9"}
|
|
||||||
{"name":"Communcations","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Em","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Em","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.fh63pdckz6VYGAFc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662897838640,"modifiedTime":1663840730283,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"xTzO3HPhQe5OS255"}
|
|
||||||
{"name":"Special Attacks","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/SD","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"ownership":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.by1LH6XYGWd5d9bs"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.2","coreVersion":"10.285","createdTime":1662898332987,"modifiedTime":1663840775989,"lastModifiedBy":"jFAyH93PxEe1ncxK"},"folder":null,"sort":0,"_id":"yRIFroc5VC9Oj3qY"}
|
|
||||||
0
rmss/packs/skill_categories.db
Normal file
@@ -1,48 +0,0 @@
|
|||||||
{"name":"Special Attacks","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/SD","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.by1LH6XYGWd5d9bs"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898332987,"modifiedTime":1670979889250,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"19mzrZOIjHOQMJRb"}
|
|
||||||
{"name":"Athletic • Gymnastics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Qu/Ag","app_stat_1":"Ag","app_stat_2":"Qu","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.TASzGNEwHMQUz1AV"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897573841,"modifiedTime":1670979417390,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"1pzqttjfJqGkCio2"}
|
|
||||||
{"name":"Lore • Technical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.Tw2FXIQb5HA89kbX"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898032616,"modifiedTime":1670979629255,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"8b1DqVmR2w3aFZ9H"}
|
|
||||||
{"name":"Armor • Medium","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.ENiEBop9Kgrn9pBt"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897408501,"modifiedTime":1670979376804,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"9tRVGNuqiUXLkt7X"}
|
|
||||||
{"name":"Outdoor • Environmental","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD/In/Me","app_stat_1":"SD","app_stat_2":"In","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.49iK0oluVd5Z1fpc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898214394,"modifiedTime":1670979688946,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"AleqAY3hcYEWwKOx"}
|
|
||||||
{"name":"Awareness • Perceptions","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/SD/In","app_stat_1":"In","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.gJHBJS3aEz62XbxE"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897610482,"modifiedTime":1670979421091,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"CYkI6APa2sQ772D0"}
|
|
||||||
{"name":"Directed Powers","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/Ag","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.RA46DfHavzTTrp99"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897900117,"modifiedTime":1670979547990,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"CjTPpZGQoacSBAyu"}
|
|
||||||
{"name":"Science/Analytic • Medical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/In","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898290307,"modifiedTime":1670979824114,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"DAwVBEPE5QJHoxIt"}
|
|
||||||
{"name":"Science/Analytic • Basic","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Re","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898290307,"modifiedTime":1670979752303,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"FEqpspsCMjUJz7FE"}
|
|
||||||
{"name":"Awareness • Senses","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/SD/In","app_stat_1":"In","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.QplAVXReCFVlKVB8"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897666266,"modifiedTime":1670979423515,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"KJZRbH17p30EJa04"}
|
|
||||||
{"name":"Weapon • 1-H Melee","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980248154,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"KZeBMZBjBkGctBb0"}
|
|
||||||
{"name":"Athletic • Endurance","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Co/Ag/St","app_stat_1":"Co","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.ldmZhkHo8m4VvV2V"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897539929,"modifiedTime":1670979416149,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"Ko33CPZI7C0rSIRl"}
|
|
||||||
{"name":"Subterfuge • Stealth","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/In","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.FM9stBeKGFVdAPdc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898591826,"modifiedTime":1670979913428,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"LBLcWrV4qjxllEw9"}
|
|
||||||
{"name":"Weapon • 2-H Melee","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980269575,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"Ld41o7ekmwzXwXgQ"}
|
|
||||||
{"name":"Subterfuge • Mechanics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Ag/Re","app_stat_1":"In","app_stat_2":"Ag","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.O0Zwk5hAhCMx6ajP"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898576285,"modifiedTime":1670979911668,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"Mspp4CJDKjuqxVxU"}
|
|
||||||
{"name":"Weapon • 1-H Firearms","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980265600,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"NZXsMbVcm9kYd1gB"}
|
|
||||||
{"name":"Weapon • 1-H Energy","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Ag/Ag","app_stat_1":"Ag","app_stat_2":"Ag","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980254758,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"On5jQJQVDflVDAp7"}
|
|
||||||
{"name":"Technical/Trade • Professional","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/In","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.xNTn6oV9yMOmfP0Z"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898699996,"modifiedTime":1670979981424,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"PtPyhFeSb8OuqGIt"}
|
|
||||||
{"name":"Lore • Academic","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.V9otC0Kh0y0B3P8Q"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897982070,"modifiedTime":1670979619507,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"Q1fe44wicIwgiOW0"}
|
|
||||||
{"name":"Weapon • 2-H Firearms","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980274500,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"QYXxP8bwKoLYf2IJ"}
|
|
||||||
{"name":"Psychic •","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD/SD","app_stat_1":"SD","app_stat_2":"SD","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":-15,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.oAwFLBD7uNUBdNgI"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1670979716214,"modifiedTime":1670979743085,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"RNo0LJNOdgcTVuVk"}
|
|
||||||
{"name":"Outdoor • Animal","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/Ag/Em","app_stat_1":"Em","app_stat_2":"Ag","app_stat_3":"Em","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.6UjbXeI6IFrsdTEy"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898166391,"modifiedTime":1670979687230,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"SWttx3JsJVR6WG5e"}
|
|
||||||
{"name":"Artistic • Passive","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Em/In/Pr","app_stat_1":"Em","app_stat_2":"In","app_stat_3":"Pr","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.NTMvAPWeh5G55Kjs"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897462965,"modifiedTime":1670979379203,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"U8rN3zps2go0IS6O"}
|
|
||||||
{"name":"Weapon • Missile/Thrown","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.8a1d0Z2MfJe0R1Eb"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898823756,"modifiedTime":1670980277959,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"V7IAKktApiLkKNbB"}
|
|
||||||
{"name":"Combat Maneuvers","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Qu/SD","app_stat_1":"Ag","app_stat_2":"Qu","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.bwL0nMJePO6OQNue"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897819566,"modifiedTime":1670979488179,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"Yj8rbirDtPSyFxKe"}
|
|
||||||
{"name":"Lore • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/Me","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"Me","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.5fCeVMz6xVnkmH8o"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897962808,"modifiedTime":1670979625749,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"b969dpNiQSpqaDsH"}
|
|
||||||
{"name":"Technical/Trade • Gunnery","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Ag/Ag","app_stat_1":"In","app_stat_2":"Ag","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.1td9QGD20b4nkD6h"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898674902,"modifiedTime":1670979967399,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"bgDehY2PthlhPUai"}
|
|
||||||
{"name":"Martial Arts • Striking","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.HVistg0XNoVGsSKZ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898114714,"modifiedTime":1670979640244,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"cSJMJ97JBsfZO8Ge"}
|
|
||||||
{"name":"Technical/Trade • Vocational","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/In/Re","app_stat_1":"Me","app_stat_2":"In","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.1td9QGD20b4nkD6h"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898674902,"modifiedTime":1670980052328,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"e6RrjsyHbvz6OuZF"}
|
|
||||||
{"name":"Influence","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Pr/Em/In","app_stat_1":"Pr","app_stat_2":"Em","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.zOKTXAFd6bK3XJZ5"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897929958,"modifiedTime":1670979557055,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"ehfUJPUyO2Fzme35"}
|
|
||||||
{"name":"Self Control","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD/Pr/SD","app_stat_1":"SD","app_stat_2":"Pr","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.1B82OxRKQ781NEa9"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898315491,"modifiedTime":1670979881437,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"fjpVO4rOlSIbrsly"}
|
|
||||||
{"name":"Crafts","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Me/SD","app_stat_1":"Ag","app_stat_2":"Me","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.6nErPtcQ33WXkyH4"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897865848,"modifiedTime":1670979490274,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"iKc4n9ZubKtG6SvK"}
|
|
||||||
{"name":"Science/Analytic • Engineering","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Me/Re/In","app_stat_1":"Me","app_stat_2":"Re","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898290307,"modifiedTime":1670979792357,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"jT4YOfJEKXOjW7yN"}
|
|
||||||
{"name":"Technical/Trade • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/SD","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.1td9QGD20b4nkD6h"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898674902,"modifiedTime":1670979941026,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"k1fYuSWiGncFKqYq"}
|
|
||||||
{"name":"Artistic • Active","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Pr/Em/Ag","app_stat_1":"Pr","app_stat_2":"Em","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.cEffILww7nn8vqJ7"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897441727,"modifiedTime":1670979378056,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"mM8gBxoxUWs9JwaZ"}
|
|
||||||
{"name":"Subterfuge • Attack","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/SD/In","app_stat_1":"Ag","app_stat_2":"SD","app_stat_3":"In","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.Zva3DO0Zmk3G5xWT"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898559045,"modifiedTime":1670979909587,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"nel3MMlV6G6UbUqz"}
|
|
||||||
{"name":"Armor • Light","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.TMGapmlYutNuQaw8"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897388838,"modifiedTime":1670979375450,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"oUBH3ZiQhwgyEwuC"}
|
|
||||||
{"name":"Athletic • Brawn","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Co/Ag","app_stat_1":"St","app_stat_2":"Co","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.VufLKW42mP7RtinG"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897509473,"modifiedTime":1670979414458,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"omcYQ5goZenLxv1d"}
|
|
||||||
{"name":"Awareness • Searching","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Re/SD","app_stat_1":"In","app_stat_2":"Re","app_stat_3":"SD","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.NZl30XPdtYjHqtwp"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897647294,"modifiedTime":1670979422361,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"pa35A84DZkI6I611"}
|
|
||||||
{"name":"Weapon • Support","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/St/Ag","app_stat_1":"Ag","app_stat_2":"St","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.8a1d0Z2MfJe0R1Eb"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898823756,"modifiedTime":1670980279746,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"pkxuna2rIm1ZjyEK"}
|
|
||||||
{"name":"Armor • Heavy","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"St/Ag/St","app_stat_1":"St","app_stat_2":"Ag","app_stat_3":"St","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.7UA8xwzcBrKZfFk9"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897366792,"modifiedTime":1670979372753,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"r6D1tALgD1wR0GGj"}
|
|
||||||
{"name":"Weapon • 2-H Energy","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Ag/Ag/Ag","app_stat_1":"Ag","app_stat_2":"Ag","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.CXllZNGgTe80uZRQ"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898744329,"modifiedTime":1670980272057,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"rw987ZssCMcfx8n7"}
|
|
||||||
{"name":"Urban","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"In/Pr/Re","app_stat_1":"In","app_stat_2":"Pr","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.JAY4cM0lv1wZm3vo"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898721300,"modifiedTime":1670980058009,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"sV50mwPLEO7ju9nT"}
|
|
||||||
{"name":"Communcations","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Em","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Em","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.fh63pdckz6VYGAFc"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897838640,"modifiedTime":1670979489034,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"tXyzk5v0PTLAxmFk"}
|
|
||||||
{"name":"Body Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Co/SD/Co","app_stat_1":"Co","app_stat_2":"SD","app_stat_3":"Co","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.cWtQ0YU3kGBhL8iR"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662897724809,"modifiedTime":1670979475450,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"y6Tq2DSvZm0dIZ7A"}
|
|
||||||
{"name":"Science/Analytic • Specialized","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Re","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Re","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898290307,"modifiedTime":1670979851643,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"yHwwkDNq6DuylHYa"}
|
|
||||||
{"name":"Science/Analytic • Technical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"Re/Me/Ag","app_stat_1":"Re","app_stat_2":"Me","app_stat_3":"Ag","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.BfDFjciYPFezmes0"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898290307,"modifiedTime":1670979874641,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"z1Z1K02tzG1JU5wN"}
|
|
||||||
{"name":"Mind Point Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","system":{"description":"Description here.","applicable_stats":"SD","app_stat_1":"SD","app_stat_2":"None","app_stat_3":"None","development_cost":"0","ranks":0,"new_ranks":{"value":0,"max":3,"max_default":3},"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"flags":{"core":{"sourceId":"Item.Q7rKLS4gJwH2Lygw"}},"_stats":{"systemId":"rmss","systemVersion":"0.0.3","coreVersion":"10.291","createdTime":1662898277091,"modifiedTime":1670979677773,"lastModifiedBy":"AKzFUDVFn0NcwQv9"},"folder":null,"sort":0,"ownership":{"default":0,"AKzFUDVFn0NcwQv9":3},"_id":"zYUB46z7lYODAIK2"}
|
|
||||||
455
rmss/rmss.css
@@ -1,60 +1,21 @@
|
|||||||
.skillcat-grid-container {
|
.sheet form {
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [skill-category-name] 10% [applicable-stats] 10% [dev-cost] 8% [num-ranks] 8% [new-ranks] 8% [rank-bonus] 8% [stat-bonus] 8% [prof-bonus] 8% [special-bonus-1] 8% [special-bonus-2] 8% [total-bonus] 8% [controls] 8%;
|
|
||||||
}
|
|
||||||
.skillcat-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
flex-direction: column;
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
.skillcat-grid-container > div:nth-child(24n+1),
|
.sheet .sheet-content {
|
||||||
.skillcat-grid-container > div:nth-child(24n+2),
|
height: 100%;
|
||||||
.skillcat-grid-container > div:nth-child(24n+3),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+4),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+5),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+6),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+7),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+8),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+9),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+10),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+11),
|
|
||||||
.skillcat-grid-container > div:nth-child(24n+12) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
flex-direction: column;
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
}
|
||||||
.skillcat-grid-heading {
|
.sheet .sheet-content .editor {
|
||||||
font-weight: bold;
|
height: 100%;
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
}
|
||||||
.container {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
.rm-heading {
|
|
||||||
font-size: 1em;
|
|
||||||
font-family: PragRoman;
|
|
||||||
border-bottom: 0px;
|
|
||||||
}
|
|
||||||
.actor-icon {
|
.actor-icon {
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
}
|
}
|
||||||
.favorite-container {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
.header-container {
|
.header-container {
|
||||||
flex-grow: 2;
|
flex-grow: 2;
|
||||||
outline: 1px solid;
|
outline: 1px solid;
|
||||||
@@ -65,14 +26,8 @@
|
|||||||
}
|
}
|
||||||
.header-text {
|
.header-text {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
flex-direction: row;
|
||||||
padding: 1px;
|
justify-content: center;
|
||||||
}
|
|
||||||
.settings-button,
|
|
||||||
.playersheet-settings {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
}
|
||||||
.resource-container {
|
.resource-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -98,9 +53,6 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
}
|
}
|
||||||
.stat-row {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.equipment-container {
|
.equipment-container {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
@@ -186,6 +138,102 @@
|
|||||||
.green {
|
.green {
|
||||||
background-color: lightseagreen;
|
background-color: lightseagreen;
|
||||||
}
|
}
|
||||||
|
.skillcat-name,
|
||||||
|
.skill-name,
|
||||||
|
.item-name {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.skillcat-entry,
|
||||||
|
.skill-entry,
|
||||||
|
.item-entry {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.skillcat-headeritem,
|
||||||
|
.skill-headeritem,
|
||||||
|
.item-headeritem {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.skillcat-controls,
|
||||||
|
.skill-controls,
|
||||||
|
.item-controls {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.money-column {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.money-container {
|
||||||
|
flex-direction: column;
|
||||||
|
flex-shrink: 1;
|
||||||
|
}
|
||||||
|
.table-font {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.table-bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.table-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.table-controls {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.skillcat-grid-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: [skill-category-name] 10% [applicable-stats] 10% [dev-cost] 8% [num-ranks] 8% [new-ranks] 8% [rank-bonus] 8% [stat-bonus] 8% [prof-bonus] 8% [special-bonus-1] 8% [special-bonus-2] 8% [total-bonus] 8% [controls] 8%;
|
||||||
|
}
|
||||||
|
.skillcat-grid-container > div {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+1),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+2),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+3),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+4),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+5),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+6),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+7),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+8),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+9),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+10),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+11),
|
||||||
|
.skillcat-grid-container > div:nth-child(24n+12) {
|
||||||
|
font-family: Signika, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
||||||
|
}
|
||||||
|
.skillcat-grid-heading {
|
||||||
|
font-weight: bold;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
||||||
|
}
|
||||||
.skills-grid-container {
|
.skills-grid-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: [favorite] 9% [skill-name] 11% [num-ranks] 9% [new-ranks] 9% [rank-bonus] 9% [category-bonus] 9% [item-bonus] 9% [special-bonus-1] 9% [special-bonus-2] 9% [total-bonus] 9% [controls] 8%;
|
grid-template-columns: [favorite] 9% [skill-name] 11% [num-ranks] 9% [new-ranks] 9% [rank-bonus] 9% [category-bonus] 9% [item-bonus] 9% [special-bonus-1] 9% [special-bonus-2] 9% [total-bonus] 9% [controls] 8%;
|
||||||
@@ -230,271 +278,9 @@
|
|||||||
border-bottom: 1px solid;
|
border-bottom: 1px solid;
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
||||||
}
|
}
|
||||||
.money-column {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.money-container {
|
|
||||||
flex-direction: column;
|
|
||||||
flex-shrink: 1;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
.items-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [worn] 10% [name] 30% [quantity] 15% [weight] 15% [cost] 15% [controls] 15%;
|
|
||||||
}
|
|
||||||
.items-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.items-grid-container > div:nth-child(12n+1),
|
|
||||||
.items-grid-container > div:nth-child(12n+2),
|
|
||||||
.items-grid-container > div:nth-child(12n+3),
|
|
||||||
.items-grid-container > div:nth-child(12n+4),
|
|
||||||
.items-grid-container > div:nth-child(12n+5),
|
|
||||||
.items-grid-container > div:nth-child(12n+6) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.items-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.weapons-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [equipped] 8% [breakage_range] 9% [fumble_range] 9% [strength] 9% [quantity] 9% [weight] 9% [cost] 9% [controls] 8%;
|
|
||||||
}
|
|
||||||
.weapons-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.weapons-grid-container > div:nth-child(18n+1),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+2),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+3),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+4),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+5),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+6),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+7),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+8),
|
|
||||||
.weapons-grid-container > div:nth-child(18n+9) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.weapons-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.armor-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [equipped] 12% [at] 12% [quantity] 12% [weight] 12% [cost] 12% [controls] 10%;
|
|
||||||
}
|
|
||||||
.armor-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.armor-grid-container > div:nth-child(14n+1),
|
|
||||||
.armor-grid-container > div:nth-child(14n+2),
|
|
||||||
.armor-grid-container > div:nth-child(14n+3),
|
|
||||||
.armor-grid-container > div:nth-child(14n+4),
|
|
||||||
.armor-grid-container > div:nth-child(14n+5),
|
|
||||||
.armor-grid-container > div:nth-child(14n+6),
|
|
||||||
.armor-grid-container > div:nth-child(14n+7) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.armor-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.herbs-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [name] 30% [quantity] 11% [codes] 12% [af] 12% [weight] 12% [cost] 11% [controls] 12%;
|
|
||||||
}
|
|
||||||
.herbs-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.herbs-grid-container > div:nth-child(14n+1),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+2),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+3),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+4),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+5),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+6),
|
|
||||||
.herbs-grid-container > div:nth-child(14n+7) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.herbs-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.spell-grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [favorite] 9% [level] 8% [name] 30% [spell_list] 9% [area_of_effect] 9% [duration] 9% [range] 9% [type] 9% [controls] 8%;
|
|
||||||
}
|
|
||||||
.spell-grid-container > div {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.spell-grid-container > div:nth-child(18n+1),
|
|
||||||
.spell-grid-container > div:nth-child(18n+2),
|
|
||||||
.spell-grid-container > div:nth-child(18n+3),
|
|
||||||
.spell-grid-container > div:nth-child(18n+4),
|
|
||||||
.spell-grid-container > div:nth-child(18n+5),
|
|
||||||
.spell-grid-container > div:nth-child(18n+6),
|
|
||||||
.spell-grid-container > div:nth-child(18n+7),
|
|
||||||
.spell-grid-container > div:nth-child(18n+8),
|
|
||||||
.spell-grid-container > div:nth-child(18n+9) {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.spell-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.resistances-grid-container {
|
|
||||||
outline: 1px solid;
|
|
||||||
/* use instead of border */
|
|
||||||
margin-top: 1px;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 5px;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: [Name] 40% [Value] 20% [Race_Mod] 20% [Total] 20%;
|
|
||||||
}
|
|
||||||
.resistances-grid-heading {
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);
|
|
||||||
}
|
|
||||||
.resistance-input {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.skillcat-name,
|
|
||||||
.skill-name,
|
|
||||||
.item-name,
|
|
||||||
.spell-name,
|
|
||||||
.equipable-name {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.skillcat-entry,
|
|
||||||
.skill-entry,
|
|
||||||
.item-entry,
|
|
||||||
.spell-entry,
|
|
||||||
.equipable-entry {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.skillcat-headeritem,
|
|
||||||
.skill-headeritem,
|
|
||||||
.item-headeritem,
|
|
||||||
.spell-headeritem,
|
|
||||||
.equipable-headeritem {
|
|
||||||
text-align: center;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.skillcat-controls,
|
|
||||||
.skill-controls,
|
|
||||||
.item-controls {
|
|
||||||
font-family: Signika, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.applicable-stats-grid-container {
|
.applicable-stats-grid-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: [app-stat-1] 33% [app-stat-2] 33% [app-stat-3] 33%;
|
grid-template-columns: [app-stat-1] 33% [app-stat-2] 33% [dapp-stat-3] 33%;
|
||||||
}
|
}
|
||||||
.applicable-stats-grid-container > div {
|
.applicable-stats-grid-container > div {
|
||||||
font-family: Signika, sans-serif;
|
font-family: Signika, sans-serif;
|
||||||
@@ -508,32 +294,3 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.dice-roller-options {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.dice-roller-item {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
.dice-roller-item div {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
.roll-button-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
.sheet form {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.sheet .sheet-content {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.sheet .sheet-content .editor {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|||||||
148
rmss/rmss.js
@@ -1,12 +1,14 @@
|
|||||||
// Import Configuration Object
|
// Import Configuration Object
|
||||||
import { rmss } from "./module/config.js";
|
console.log("rmss | Importing configuration javascript");
|
||||||
//import { registerGetSceneControlButtonsHook } from "./module/controls.js";
|
import {rmss} from "./module/config.js";
|
||||||
|
|
||||||
// Import document classes.
|
// Import document classes.
|
||||||
|
console.log("rmss | Importing document classes");
|
||||||
import { RMSSActor } from "./module/documents/actor.js";
|
import { RMSSActor } from "./module/documents/actor.js";
|
||||||
import { RMSSItem } from "./module/documents/item.js";
|
import { RMSSItem } from "./module/documents/item.js";
|
||||||
|
|
||||||
// Import Sheets
|
// Import Sheets
|
||||||
|
console.log("rmss | Importing actor and item sheet");
|
||||||
import RMSSItemSheet from "./module/sheets/items/rmss_item_sheet.js";
|
import RMSSItemSheet from "./module/sheets/items/rmss_item_sheet.js";
|
||||||
import RMSSArmorSheet from "./module/sheets/items/rmss_armor_sheet.js";
|
import RMSSArmorSheet from "./module/sheets/items/rmss_armor_sheet.js";
|
||||||
import RMSSTransportSheet from "./module/sheets/items/rmss_transport_sheet.js";
|
import RMSSTransportSheet from "./module/sheets/items/rmss_transport_sheet.js";
|
||||||
@@ -17,109 +19,73 @@ import RMSSSkillCategorySheet from "./module/sheets/skills/rmss_skill_category_s
|
|||||||
import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js";
|
import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js";
|
||||||
|
|
||||||
import RMSSPlayerSheet from "./module/sheets/actors/rmss_player_sheet.js";
|
import RMSSPlayerSheet from "./module/sheets/actors/rmss_player_sheet.js";
|
||||||
import RMSSToolsSCImporter from "./module/sheets/apps/rmss_import_skill_categories.js";
|
|
||||||
import RMSSToolsDiceRoller from "./module/sheets/apps/rmss_dice_roller.js";
|
|
||||||
|
|
||||||
/** Preload handlebars templates for character sheets */
|
// Preload handlebars templates for character sheets
|
||||||
async function preloadHandlebarsTemplates() {
|
async function preloadHandlebarsTemplates() {
|
||||||
const templatePaths = [
|
const templatePaths = [
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-stats.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-stats.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-fixed-info.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-fixed-info.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-armor-info.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-armor-info.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-resistance.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-resistance.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-race-stat-fixed-info.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-race-stat-fixed-info.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-role-traits.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-role-traits.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-background-info.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-background-info.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-skill-categories.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-skill-categories.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-skills.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-skills.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-fav-skills.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-fav-skills.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-items.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-items.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-weapons.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-money.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-money.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-skill-categories-grid.html",
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-skill-categories.html",
|
"systems/rmss/templates/sheets/actors/parts/actor-skills-grid.html"
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-skills.html",
|
];
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-armor.html",
|
return loadTemplates(templatePaths);
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-herbs.html",
|
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-spells.html",
|
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-fav-spells.html",
|
|
||||||
"systems/rmss/templates/sheets/actors/parts/actor-fav-items.html",
|
|
||||||
"systems/rmss/templates/sheets/apps/app_skill_category_importer.html"
|
|
||||||
];
|
|
||||||
return loadTemplates(templatePaths);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register Scene Controls
|
|
||||||
// registerGetSceneControlButtonsHook();
|
|
||||||
|
|
||||||
// Hook the init function and set up our system
|
// Hook the init function and set up our system
|
||||||
Hooks.once("init", function() {
|
Hooks.once("init", function () {
|
||||||
console.log("rmss | Initialising Rolemaster Standard System");
|
console.log("rmss | Initialising Rolemaster Standard System");
|
||||||
|
|
||||||
// Load our custom actor and item classes
|
// Load our custom actor and item classes
|
||||||
console.log("rmss | Loading Rolemaster Actor and Item classes");
|
console.log("rmss | Loading Rolemaster Actor and Item classes");
|
||||||
game.rmss = {
|
game.rmss = {
|
||||||
RMSSActor,
|
RMSSActor,
|
||||||
RMSSItem,
|
RMSSItem
|
||||||
applications: {
|
};
|
||||||
RMSSToolsSCImporter,
|
|
||||||
RMSSToolsDiceRoller
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Define custom Document classes
|
// Define custom Document classes
|
||||||
CONFIG.Actor.documentClass = RMSSActor;
|
CONFIG.Actor.documentClass = RMSSActor;
|
||||||
CONFIG.Item.documentClass = RMSSItem;
|
CONFIG.Item.documentClass = RMSSItem;
|
||||||
|
|
||||||
// Add PragRoman Font
|
// Make Config Data Available
|
||||||
CONFIG.fontDefinitions["PragRoman"] = {
|
CONFIG.rmss = rmss;
|
||||||
editor: true,
|
|
||||||
fonts: [
|
|
||||||
{urls: ["systems/rmss/assets/fonts/PragRoman.woff2"]}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
|
|
||||||
// Make Config Data Available
|
// Unregister Default Sheets
|
||||||
CONFIG.rmss = rmss;
|
console.log("rmss | Unregistering core sheets");
|
||||||
|
|
||||||
// Unregister Default Sheets
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
console.log("rmss | Unregistering core sheets");
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
// Register RMSS Sheets
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
console.log("rmss | Registering RMSS sheets");
|
||||||
|
|
||||||
// Register RMSS Sheets
|
// Items
|
||||||
console.log("rmss | Registering RMSS sheets");
|
Items.registerSheet("rmss", RMSSItemSheet, {makeDefault: true, label: "rmss.entity_sheet.item", types: ['item']});
|
||||||
|
Items.registerSheet("rmss", RMSSArmorSheet, {makeDefault: true, label: "rmss.entity_sheet.armor", types: ['armor']});
|
||||||
|
Items.registerSheet("rmss", RMSSTransportSheet, {makeDefault: true, label: "rmss.entity_sheet.transport", types: ['transport']});
|
||||||
|
Items.registerSheet("rmss", RMSSWeaponSheet, {makeDefault: true, label: "rmss.entity_sheet.weapon", types: ['weapon']});
|
||||||
|
Items.registerSheet("rmss", RMSSHerbOrPoisonSheet, {makeDefault: true, label: "rmss.entity_sheet.herb_or_poison", types: ['herb_or_poison']});
|
||||||
|
|
||||||
// Items
|
// Spells
|
||||||
Items.registerSheet("rmss", RMSSItemSheet, {makeDefault: true, label: "rmss.entity_sheet.item", types: ["item"]});
|
Items.registerSheet("rmss", RMSSSpellSheet, {makeDefault: true, label: "rmss.entity_sheet.spell", types: ['spell']});
|
||||||
Items.registerSheet("rmss", RMSSArmorSheet, {makeDefault: true, label: "rmss.entity_sheet.armor", types: ["armor"]});
|
|
||||||
Items.registerSheet("rmss", RMSSTransportSheet, {makeDefault: true, label: "rmss.entity_sheet.transport", types: ["transport"]});
|
|
||||||
Items.registerSheet("rmss", RMSSWeaponSheet, {makeDefault: true, label: "rmss.entity_sheet.weapon", types: ["weapon"]});
|
|
||||||
Items.registerSheet("rmss", RMSSHerbOrPoisonSheet, {makeDefault: true, label: "rmss.entity_sheet.herb_or_poison", types: ["herb_or_poison"]});
|
|
||||||
|
|
||||||
// Spells
|
// Skills
|
||||||
Items.registerSheet("rmss", RMSSSpellSheet, {makeDefault: true, label: "rmss.entity_sheet.spell", types: ["spell"]});
|
Items.registerSheet("rmss", RMSSSkillCategorySheet, {makeDefault: true, label: "rmss.entity_sheet.skill_category", types: ['skill_category']});
|
||||||
|
Items.registerSheet("rmss", RMSSSkillSheet, {makeDefault: true, label: "rmss.entity_sheet.skill", types: ['skill']});
|
||||||
|
|
||||||
// Skills
|
// Actors
|
||||||
Items.registerSheet("rmss", RMSSSkillCategorySheet, {makeDefault: true, label: "rmss.entity_sheet.skill_category", types: ["skill_category"]});
|
Actors.registerSheet("rmss", RMSSPlayerSheet, {makeDefault: true, label: "rmss.entity_sheet.player_characrer", types: ['character']});
|
||||||
Items.registerSheet("rmss", RMSSSkillSheet, {makeDefault: true, label: "rmss.entity_sheet.skill", types: ["skill"]});
|
|
||||||
|
|
||||||
// Actors
|
// Preload Handlebars Templates
|
||||||
Actors.registerSheet("rmss", RMSSPlayerSheet, {makeDefault: true, label: "rmss.entity_sheet.player_characrer", types: ["character"]});
|
console.log("rmss | Preloading Handlebars Templates");
|
||||||
|
preloadHandlebarsTemplates();
|
||||||
// Preload Handlebars Templates
|
|
||||||
console.log("rmss | Preloading Handlebars Templates");
|
|
||||||
preloadHandlebarsTemplates();
|
|
||||||
|
|
||||||
// Handlebars Helpers
|
|
||||||
Handlebars.registerHelper("switch", function(value, options) {
|
|
||||||
this.switch_value = value;
|
|
||||||
return options.fn(this);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("case", function(value, options) {
|
|
||||||
if (value === this.switch_value) {
|
|
||||||
return options.fn(this);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
@@ -2,31 +2,19 @@
|
|||||||
"name": "rmss",
|
"name": "rmss",
|
||||||
"title": "Rolemaster Standard System",
|
"title": "Rolemaster Standard System",
|
||||||
"description": "The Rolemaster Standard System system for FoundryVTT.",
|
"description": "The Rolemaster Standard System system for FoundryVTT.",
|
||||||
"authors": [{
|
"author": "Cynicide",
|
||||||
"name": "Cynicide"
|
"version": "0.0.1",
|
||||||
}],
|
"minimumCoreVersion": "0.8.6",
|
||||||
"version": "0.0.3",
|
"compatibleCoreVersion": "9",
|
||||||
"compatibility": {
|
|
||||||
"minimum": 10,
|
|
||||||
"verified": "11.315",
|
|
||||||
"maximum": 11
|
|
||||||
},
|
|
||||||
"esmodules":[
|
"esmodules":[
|
||||||
"rmss.js"
|
"rmss.js"
|
||||||
],
|
],
|
||||||
"styles": ["rmss.css"],
|
"styles": ["rmss.css"],
|
||||||
"packs": [ {
|
"packs": [ {
|
||||||
"name": "rmss_skill_categories",
|
"name": "skill_categories",
|
||||||
"label": "RMSS Skill Categories",
|
"label": "Skill Categories",
|
||||||
"system": "rmss",
|
"system": "rmss",
|
||||||
"path": "./packs/rmss_skill_categories.db",
|
"path": "./packs/skill_categories.db",
|
||||||
"type": "Item"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "smss_skill_categories",
|
|
||||||
"label": "Spacemaster Skill Categories",
|
|
||||||
"system": "rmss",
|
|
||||||
"path": "./packs/smss_skill_categories.db",
|
|
||||||
"type": "Item"
|
"type": "Item"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -4,224 +4,187 @@
|
|||||||
"templates": {
|
"templates": {
|
||||||
"role_traits": {
|
"role_traits": {
|
||||||
"role_traits": {
|
"role_traits": {
|
||||||
"appearance": 0,
|
"appearance": 10,
|
||||||
"sex": "",
|
"sex": "mysex",
|
||||||
"skin": "",
|
"skin": "myskin",
|
||||||
"apparent_age": 0,
|
"apparent_age": 30,
|
||||||
"actual_age": 0,
|
"actual_age": 35,
|
||||||
"height": "",
|
"height": "myheight",
|
||||||
"weight": "",
|
"weight": "myweight",
|
||||||
"hair": "",
|
"hair": "myhair",
|
||||||
"eyes": "",
|
"eyes": "myeyes",
|
||||||
"personality": "",
|
"personality": "mypersonality",
|
||||||
"motivations": "",
|
"motivations": "mymotivations",
|
||||||
"alignment": ""
|
"alignment": "myalignment"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"race_stat_fixed_info": {
|
"race_stat_fixed_info": {
|
||||||
"race_stat_fixed_info" : {
|
"race_stat_fixed_info" : {
|
||||||
"soul_departure_rounds": 0,
|
"soul_departure_rounds": 5,
|
||||||
"recovery_multiplier": 0,
|
"recovery_multiplier": 7,
|
||||||
"body_development_progression": "",
|
"body_development_progression": "research",
|
||||||
"pp_development_progression": "",
|
"pp_development_progression": "research",
|
||||||
"recover_hits_per_hour_resting": 0,
|
"recover_hits_per_hour_resting": 6,
|
||||||
"recover_hits_per_sleep_cycle": 0,
|
"recover_hits_per_sleep_cycle": 7,
|
||||||
"recover_pp_per_hour_resting": 0,
|
"recover_pp_per_hour_resting": 8,
|
||||||
"recover_pp_per_sleep_cycle": 0
|
"recover_pp_per_sleep_cycle": 9
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"armor_info": {
|
"armor_info": {
|
||||||
"armor_info": {
|
"armor_info": {
|
||||||
"armor_type": 0,
|
"armor_type": 7,
|
||||||
"mmp": 0,
|
"mmp": -10,
|
||||||
"weight_penalty": 0,
|
"weight_penalty": -5,
|
||||||
"missile_penalty": 0,
|
"missile_penalty": 30,
|
||||||
"quickness_penalty": 0,
|
"quickness_penalty": 40,
|
||||||
"quickness_bonus": 0,
|
"quickness_bonus": 60,
|
||||||
"adrenal_defense": 0,
|
"adrenal_defense": 50,
|
||||||
"shield_bonus": 0,
|
"shield_bonus": 20,
|
||||||
"magic": "",
|
"magic": "research",
|
||||||
"total_db": 0
|
"total_db": 102
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fixed_info": {
|
"fixed_info": {
|
||||||
"fixed_info": {
|
"fixed_info": {
|
||||||
"race": "",
|
"race": "myrace",
|
||||||
"profession": "",
|
"profession": "myprofession",
|
||||||
"training_packages": "",
|
"training_packages": "mytrainingpackages",
|
||||||
"realm": ""
|
"realm": "myrealm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resistance_rolls": {
|
"resistance_rolls": {
|
||||||
"resistance_rolls": {
|
"resistance_rolls": {
|
||||||
"channeling": {
|
"channeling": 0,
|
||||||
"value": 0,
|
"essence": 0,
|
||||||
"race_mod": 0,
|
"mentalism": 0,
|
||||||
"total": 0
|
"chann_ess": 0,
|
||||||
},
|
"chann_ment": 0,
|
||||||
"essence": {
|
"ess_ment": 0,
|
||||||
"value": 0,
|
"arcane": 0,
|
||||||
"race_mod": 0,
|
"poison_disease": 0,
|
||||||
"total": 0
|
"fear": 0
|
||||||
},
|
|
||||||
"mentalism": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"chann_ess": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"chann_ment": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"ess_ment": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"arcane": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"poison_disease": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
},
|
|
||||||
"fear": {
|
|
||||||
"value": 0,
|
|
||||||
"race_mod": 0,
|
|
||||||
"total": 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"background": {
|
"background": {
|
||||||
"background": {
|
"background": {
|
||||||
"nationality": "",
|
"nationality": "mynationality",
|
||||||
"home_town": "",
|
"home_town": "myhometown",
|
||||||
"deity": "",
|
"deity": "mydeity",
|
||||||
"patron": "",
|
"patron": "mypatron",
|
||||||
"parents": "",
|
"parents": "myparents",
|
||||||
"spouse": "",
|
"spouse": "myspouse",
|
||||||
"children": "",
|
"children": "mychildren",
|
||||||
"other": ""
|
"other": "myother"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stats": {
|
"stats": {
|
||||||
"stats": {
|
"stats": {
|
||||||
"agility": {
|
"agility": {
|
||||||
"shortname": "Ag",
|
"shortname": "Ag",
|
||||||
"temp": 0,
|
"temp": 1,
|
||||||
"potential": 0,
|
"potential": 2,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 3,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 4,
|
||||||
"special_bonus": 0,
|
"special_bonus": 5,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"constitution": {
|
"constitution": {
|
||||||
"shortname": "Co",
|
"shortname": "Co",
|
||||||
"temp": 0,
|
"temp": 6,
|
||||||
"potential": 0,
|
"potential": 7,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 8,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 9,
|
||||||
"special_bonus": 0,
|
"special_bonus": 10,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"memory": {
|
"memory": {
|
||||||
"shortname": "Me",
|
"shortname": "Me",
|
||||||
"temp": 0,
|
"temp": 11,
|
||||||
"potential": 0,
|
"potential": 12,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 13,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 14,
|
||||||
"special_bonus": 0,
|
"special_bonus": 15,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"reasoning": {
|
"reasoning": {
|
||||||
"shortname": "Re",
|
"shortname": "Re",
|
||||||
"temp": 0,
|
"temp": 16,
|
||||||
"potential": 0,
|
"potential": 17,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 18,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 19,
|
||||||
"special_bonus": 0,
|
"special_bonus": 20,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"self_discipline": {
|
"self_discipline": {
|
||||||
"shortname": "SD",
|
"shortname": "SD",
|
||||||
"temp": 0,
|
"temp": 21,
|
||||||
"potential": 0,
|
"potential": 22,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 23,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 24,
|
||||||
"special_bonus": 0,
|
"special_bonus": 25,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"empathy": {
|
"empathy": {
|
||||||
"shortname": "Em",
|
"shortname": "Em",
|
||||||
"temp": 0,
|
"temp": 26,
|
||||||
"potential": 0,
|
"potential": 27,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 28,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 29,
|
||||||
"special_bonus": 0,
|
"special_bonus": 30,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"intuition": {
|
"intuition": {
|
||||||
"shortname": "In",
|
"shortname": "In",
|
||||||
"temp": 0,
|
"temp": 31,
|
||||||
"potential": 0,
|
"potential": 32,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 33,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 34,
|
||||||
"special_bonus": 0,
|
"special_bonus": 35,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"presence": {
|
"presence": {
|
||||||
"shortname": "Pr",
|
"shortname": "Pr",
|
||||||
"temp": 0,
|
"temp": 36,
|
||||||
"potential": 0,
|
"potential": 37,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 38,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 39,
|
||||||
"special_bonus": 0,
|
"special_bonus": 40,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"quickness": {
|
"quickness": {
|
||||||
"shortname": "Qu",
|
"shortname": "Qu",
|
||||||
"temp": 0,
|
"temp": 41,
|
||||||
"potential": 0,
|
"potential": 42,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 43,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 44,
|
||||||
"special_bonus": 0,
|
"special_bonus": 45,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
},
|
},
|
||||||
"strength": {
|
"strength": {
|
||||||
"shortname": "St",
|
"shortname": "St",
|
||||||
"temp": 0,
|
"temp": 46,
|
||||||
"potential": 0,
|
"potential": 47,
|
||||||
"basic_bonus": 0,
|
"basic_bonus": 48,
|
||||||
"racial_bonus": 0,
|
"racial_bonus": 49,
|
||||||
"special_bonus": 0,
|
"special_bonus": 50,
|
||||||
"stat_bonus": 0
|
"stat_bonus": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"money": {
|
"money": {
|
||||||
"money": {
|
"mithril": 1,
|
||||||
"mithril": 0,
|
"platinum": 2,
|
||||||
"platinum": 0,
|
"gold": 3,
|
||||||
"gold": 0,
|
"silver": 4,
|
||||||
"silver": 0,
|
"bronze": 5,
|
||||||
"bronze": 0,
|
"copper": 6,
|
||||||
"copper": 0,
|
"tin": 7,
|
||||||
"tin": 0,
|
"iron": 8
|
||||||
"iron": 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"character": {
|
"character": {
|
||||||
"templates": ["background", "stats", "resistance_rolls", "armor_info", "fixed_info", "race_stat_fixed_info", "role_traits", "money", "description"],
|
"templates": ["background", "stats", "resistance_rolls", "armor_info", "fixed_info", "race_stat_fixed_info", "role_traits", "money"],
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"level": {
|
"level": {
|
||||||
"value": 1
|
"value": 1
|
||||||
@@ -231,22 +194,21 @@
|
|||||||
"max": 1
|
"max": 1
|
||||||
},
|
},
|
||||||
"exhaustion_points": {
|
"exhaustion_points": {
|
||||||
"current": 1,
|
"current": 2,
|
||||||
"max": 1
|
"max": 2
|
||||||
},
|
},
|
||||||
"power_points": {
|
"power_points": {
|
||||||
"current": 1,
|
"current": 3,
|
||||||
"max": 1
|
"max": 3
|
||||||
},
|
},
|
||||||
"experience_points": {
|
"experience_points": {
|
||||||
"value": 0
|
"value": 0
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"description": ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"types": ["item", "skill_category", "skill", "armor", "weapon", "transport", "herb_or_poison", "spell", "language"],
|
"types": ["item", "skill_category", "skill", "armor", "weapon", "transport", "herb_or_poison", "spell"],
|
||||||
"templates": {
|
"templates": {
|
||||||
"base": {
|
"base": {
|
||||||
"description": "Description here."
|
"description": "Description here."
|
||||||
@@ -254,7 +216,6 @@
|
|||||||
},
|
},
|
||||||
"item": {
|
"item": {
|
||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"worn": false,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"cost": 0,
|
"cost": 0,
|
||||||
@@ -273,7 +234,6 @@
|
|||||||
},
|
},
|
||||||
"armor": {
|
"armor": {
|
||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"equipped": false,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"cost": 0,
|
"cost": 0,
|
||||||
@@ -282,23 +242,22 @@
|
|||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"equipped": false,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"cost": 0,
|
"cost": 0,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"type" : "",
|
"type" : "nothing",
|
||||||
"prod_time": 0,
|
"prod_time": 0,
|
||||||
"at": 0,
|
"at": 0,
|
||||||
"breakage_range": "",
|
"breakage_range": "nothing",
|
||||||
"strength": "",
|
"strength": "nothing",
|
||||||
"fumble_range": ""
|
"fumble_range": "nothing"
|
||||||
},
|
},
|
||||||
"herb_or_poison": {
|
"herb_or_poison": {
|
||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"codes": "",
|
"codes": "nothing",
|
||||||
"form_and_prep" : "",
|
"form_and_prep" : "nothing",
|
||||||
"cost": 0,
|
"cost": 0,
|
||||||
"af": 0
|
"af": 0
|
||||||
},
|
},
|
||||||
@@ -306,34 +265,25 @@
|
|||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"category" : "",
|
"category" : "",
|
||||||
"ranks": 0,
|
"ranks": 0,
|
||||||
"new_ranks": {
|
"new_ranks": 0,
|
||||||
"value": 0,
|
"rank_bonus": 0,
|
||||||
"max": 3,
|
|
||||||
"max_default": 3
|
|
||||||
},
|
|
||||||
"rank_bonus": -15,
|
|
||||||
"category_bonus": 0,
|
"category_bonus": 0,
|
||||||
"item_bonus": 0,
|
"item_bonus": 0,
|
||||||
"special_bonus_1": 0,
|
"special_bonus_1": 0,
|
||||||
"special_bonus_2": 0,
|
"special_bonus_2": 0,
|
||||||
"total_bonus": 0,
|
"total_bonus": 0,
|
||||||
"favorite": false,
|
"favorite": false
|
||||||
"designation": "None"
|
|
||||||
},
|
},
|
||||||
"skill_category": {
|
"skill_category": {
|
||||||
"templates": ["base"],
|
"templates": ["base"],
|
||||||
"applicable_stats": "None",
|
"applicable_stats": "St/Ag/St",
|
||||||
"app_stat_1": "None",
|
"app_stat_1": "None",
|
||||||
"app_stat_2": "None",
|
"app_stat_2": "None",
|
||||||
"app_stat_3": "None",
|
"app_stat_3": "None",
|
||||||
"development_cost": "0",
|
"development_cost": "0",
|
||||||
"ranks": 0,
|
"ranks": 0,
|
||||||
"new_ranks": {
|
"new_ranks": 0,
|
||||||
"value": 0,
|
"rank_bonus": 0,
|
||||||
"max": 3,
|
|
||||||
"max_default": 3
|
|
||||||
},
|
|
||||||
"rank_bonus": -15,
|
|
||||||
"stat_bonus": 0,
|
"stat_bonus": 0,
|
||||||
"prof_bonus": 0,
|
"prof_bonus": 0,
|
||||||
"special_bonus_1": 0,
|
"special_bonus_1": 0,
|
||||||
@@ -342,14 +292,13 @@
|
|||||||
"favorite": false
|
"favorite": false
|
||||||
},
|
},
|
||||||
"spell": {
|
"spell": {
|
||||||
"favorite": false,
|
"spell_list": "Open Channeling",
|
||||||
"spell_list": "",
|
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"area_of_effect": "",
|
"area_of_effect": "10 x 10 x 1",
|
||||||
"duration": "",
|
"duration": "C",
|
||||||
"range": "",
|
"range": 50,
|
||||||
"type": "",
|
"type": "E",
|
||||||
"description": "Description here."
|
"description": "My New Spell!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
<div class="dice-roll">
|
|
||||||
<div class="dice-result">
|
|
||||||
Original Roll:
|
|
||||||
<h4 class="dice-total" >{{ baseroll.result }}</h4>
|
|
||||||
</div>
|
|
||||||
{{#if highopen }}
|
|
||||||
<div class=dice-result>
|
|
||||||
Rolled over 95 - High Open-Ended!
|
|
||||||
{{#each opeendedresults as |rollresult|}}
|
|
||||||
<h4 class="dice-total" >{{ rollresult }}</h4>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if lowopen }}
|
|
||||||
<div class=dice-result>
|
|
||||||
Rolled under 6 - Low Open-Ended!
|
|
||||||
{{#each opeendedresults as |rollresult|}}
|
|
||||||
<h4 class="dice-total" >{{ rollresult }}</h4>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="dice-result">
|
|
||||||
Total:
|
|
||||||
<h4 class="dice-total" >{{ total }}</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<form>
|
|
||||||
<div>
|
|
||||||
<h3>Import Skill Categories</h3>
|
|
||||||
<div>
|
|
||||||
WARNING: This will erase your existing Skill Categories and import all Skill Categories from the selected Compendium.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
Select Compendium:
|
|
||||||
<select name="selectOptions" class="compendium-selector" value="None" itemid="blah">
|
|
||||||
{{selectOptions selectOptions}}
|
|
||||||
</select></div>
|
|
||||||
<div>
|
|
||||||
<button class="import-skillcats" title="Import">Import</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
<div class="armor-grid-container">
|
|
||||||
<!-- LOCALIZE THE LAST STRINGS IN THIS PAGE. ALSO SKILLS AND SKILL CATEGORIES-->
|
|
||||||
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.pc_sheet_items.item_name" }}</div>
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.pc_sheet_items.equipped" }}</div>
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.armor.at" }}</div>
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.pc_sheet_items.quantity" }}</div>
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.pc_sheet_items.weight" }}</div>
|
|
||||||
<div class="armor-grid-heading">{{ localize "rmss.pc_sheet_items.cost" }}</div>
|
|
||||||
<div class="armor-grid-heading">
|
|
||||||
<a class="item-control item-create" title="Create Item" data-type="armor"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_items.add_item" }}</a>
|
|
||||||
</div>
|
|
||||||
{{#each armor as |equipable id|}}
|
|
||||||
<div>{{equipable.name}}</div>
|
|
||||||
{{#if equipable.system.equipped}}
|
|
||||||
<div><a class="equippable" data-item-id="{{equipable._id}}"><i class="fa-regular fa-square-check"></i></a></div>
|
|
||||||
{{else}}
|
|
||||||
<div><a class="equippable" data-item-id="{{equipable._id}}"><i class="fa-regular fa-square"></i></a></div>
|
|
||||||
{{/if}}
|
|
||||||
<div>{{equipable.system.at}}</div>
|
|
||||||
<div>{{equipable.system.quantity}}</div>
|
|
||||||
<div>{{equipable.system.weight}}</div>
|
|
||||||
<div>{{equipable.system.cost}}</div>
|
|
||||||
<div class="item-controls">
|
|
||||||
<a class="item-control item-edit" title="Edit Item" data-item-id="{{equipable._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item" data-item-id="{{equipable._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<table>
|
|
||||||
<th><div class="equipable-name equipable-headeritem">{{ localize "rmss.pc_sheet_items.item_name" }}</div></th>
|
|
||||||
<th><div class="equipable-entry equipable-headeritem">{{ localize "rmss.armor.at" }}</div></th>
|
|
||||||
<th><div class="equipable-entry equipable-headeritem">{{ localize "rmss.weapon.breakage_range" }}</div></th>
|
|
||||||
<th><div class="equipable-entry equipable-headeritem">{{ localize "rmss.weapon.fumble_range" }}</div></th>
|
|
||||||
<th><div class="equipable-entry equipable-headeritem">{{ localize "rmss.weapon.strength" }}</div></th>
|
|
||||||
{{#each armor as |equipable id|}}
|
|
||||||
{{#if equipable.system.equipped}}
|
|
||||||
<tr class="item" data-item-id="{{equipable._id}}">
|
|
||||||
<td><div class="equipable-name">
|
|
||||||
<h4>{{equipable.name}}</h4>
|
|
||||||
</div></td>
|
|
||||||
<td><div class="equipable-entry item-prop"><div>{{equipable.system.at}}</div></div></td>
|
|
||||||
<td><div class="equipable-entry item-prop"> - </div></td>
|
|
||||||
<td><div class="equipable-entry item-prop"> - </div></td>
|
|
||||||
<td><div class="equipable-entry item-prop"> - </div></td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
{{#each weapons as |weapon id|}}
|
|
||||||
{{#if weapon.system.equipped}}
|
|
||||||
<tr class="item" data-item-id="{{weapon._id}}">
|
|
||||||
<td><div class="equipable-name">
|
|
||||||
<h4>{{weapon.name}}</h4>
|
|
||||||
</div></td>
|
|
||||||
<td><div class="equipable-entry item-prop"><div> - </div></div></td>
|
|
||||||
<td><div class="equipable-entry item-prop">{{weapon.system.breakage_range}}</div></td>
|
|
||||||
<td><div class="equipable-entry item-prop">{{weapon.system.fumble_range}}</div></td>
|
|
||||||
<td><div class="equipable-entry item-prop">{{weapon.system.strength}}</div></td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</table>
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<table>
|
|
||||||
<th><div class="spell-name spell-headeritem">{{ localize "rmss.pc_sheet_spell.name" }}</div></th>
|
|
||||||
<th><div class="spell-entry spell-headeritem">{{ localize "rmss.pc_sheet_spell.area_of_effect" }}</div></th>
|
|
||||||
<th><div class="spell-entry spell-headeritem">{{ localize "rmss.pc_sheet_spell.duration" }}</div></th>
|
|
||||||
<th><div class="spell-entry spell-headeritem">{{ localize "rmss.pc_sheet_spell.range" }}</div></th>
|
|
||||||
<th><div class="spell-entry spell-headeritem">{{ localize "rmss.pc_sheet_spell.type" }}</div></th>
|
|
||||||
{{#each spells as |spell id|}}
|
|
||||||
{{#if spell.system.favorite}}
|
|
||||||
<tr class="item" data-item-id="{{spell._id}}">
|
|
||||||
<td><div class="spell-name">
|
|
||||||
<h4>{{spell.name}}</h4>
|
|
||||||
</div></td>
|
|
||||||
<td><div class="spell-entry item-prop">{{spell.system.area_of_effect}}</div></td>
|
|
||||||
<td><div class="spell-entry item-prop">{{spell.system.duration}}</div></td>
|
|
||||||
<td><div class="spell-entry item-prop">{{spell.system.range}}</div></td>
|
|
||||||
<td><div class="spell-entry item-prop">{{spell.system.type}}</div></td>
|
|
||||||
</tr>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</table>
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
<div class="herbs-grid-container">
|
|
||||||
|
|
||||||
<!-- LOCALIZE THE LAST STRINGS IN THIS PAGE. ALSO SKILLS AND SKILL CATEGORIES-->
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.pc_sheet_items.item_name" }}</div>
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.pc_sheet_items.quantity" }}</div>
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.herb_or_poison.codes" }}</div>
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.herb_or_poison.af" }}</div>
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.pc_sheet_items.weight" }}</div>
|
|
||||||
<div class="herbs-grid-heading">{{ localize "rmss.pc_sheet_items.cost" }}</div>
|
|
||||||
<div class="herbs-grid-heading">
|
|
||||||
<a class="item-control item-create" title="Create Item" data-type="herb_or_poison"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_items.add_item" }}</a>
|
|
||||||
</div>
|
|
||||||
{{#each herbs as |herb id|}}
|
|
||||||
<div>{{herb.name}}</div>
|
|
||||||
<div>{{herb.system.quantity}}</div>
|
|
||||||
<div>{{herb.system.codes}}</div>
|
|
||||||
<div>{{herb.system.af}}</div>
|
|
||||||
<div>{{herb.system.weight}}</div>
|
|
||||||
<div>{{herb.system.cost}}</div>
|
|
||||||
<div>
|
|
||||||
<a class="item-control item-edit" title="Edit Item" data-item-id="{{herb._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item" data-item-id="{{herb._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
@@ -1,27 +1,28 @@
|
|||||||
<div class="items-grid-container">
|
<table>
|
||||||
|
|
||||||
<!-- LOCALIZE THE LAST STRINGS IN THIS PAGE. ALSO SKILLS AND SKILL CATEGORIES-->
|
<!-- LOCALIZE THE LAST STRINGS IN THIS PAGE. ALSO SKILLS AND SKILL CATEGORIES-->
|
||||||
<div class="items-grid-heading">{{ localize "rmss.pc_sheet_items.item_name" }}</div>
|
|
||||||
<div class="items-grid-heading">{{ localize "rmss.pc_sheet_items.worn" }}</div>
|
<th><div class="item-name item-headeritem">{{ localize "rmss.pc_sheet_items.favorite" }}</div></th>
|
||||||
<div class="items-grid-heading">{{ localize "rmss.pc_sheet_items.quantity" }}</div>
|
<th><div class="item-entry item-headeritem">{{ localize "rmss.pc_sheet_items.quantity" }}</div></th>
|
||||||
<div class="items-grid-heading">{{ localize "rmss.pc_sheet_items.weight" }}</div>
|
<th><div class="item-name item-headeritem">{{ localize "rmss.pc_sheet_items.item_name" }}</div></th>
|
||||||
<div class="items-grid-heading">{{ localize "rmss.pc_sheet_items.cost" }}</div>
|
<th><div class="item-entry item-headeritem">{{ localize "rmss.pc_sheet_items.weight" }}</div></th>
|
||||||
<div class="items-grid-heading">
|
<th><div class="item-entry item-headeritem">{{ localize "rmss.pc_sheet_items.cost" }}</div></th>
|
||||||
|
<th><div class="item-controls">
|
||||||
<a class="item-control item-create" title="Create Item" data-type="item"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_items.add_item" }}</a>
|
<a class="item-control item-create" title="Create Item" data-type="item"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_items.add_item" }}</a>
|
||||||
</div>
|
</div></th>
|
||||||
{{#each gear as |item id|}}
|
{{#each gear as |item id|}}
|
||||||
<div>{{item.name}}</div>
|
<tr class="item" data-item-id="{{item._id}}">
|
||||||
{{#if item.system.worn}}
|
<td><div class="item-entry item-prop"><input type="checkbox" name="system.favorite" {{checked item.system.favorite}}/></div></td>
|
||||||
<div><a class="wearable" data-item-id="{{item._id}}"><i class="fa-regular fa-square-check"></i></a></div>
|
<td><div class="item-entry item-prop">{{item.system.quantity}}</div></td>
|
||||||
{{else}}
|
<td><div class="item-name">
|
||||||
<div><a class="wearable" data-item-id="{{item._id}}"><i class="fa-regular fa-square"></i></a></div>
|
<h4>{{item.name}}</h4>
|
||||||
{{/if}}
|
</div></td>
|
||||||
<div>{{item.system.quantity}}</div>
|
<td><div class="item-entry item-prop">{{item.system.weight}}</div></td>
|
||||||
<div>{{item.system.weight}}</div>
|
<td><div class="item-entry item-prop">{{item.system.cost}}</div></td>
|
||||||
<div>{{item.system.cost}}</div>
|
<td><div class="item-controls">
|
||||||
<div>
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
<a class="item-control item-edit" title="Edit Item" data-item-id="{{item._id}}"><i class="fas fa-edit"></i></a>
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
<a class="item-control item-delete" title="Delete Item" data-item-id="{{item._id}}"><i class="fas fa-trash"></i></a>
|
</div></td>
|
||||||
</div>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</table>
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<table>
|
|
||||||
<th><div class="language-name language-headeritem">{{ localize "rmss.pc_sheet_language.name" }}</div></th>
|
|
||||||
<th><div class="language-entry language-headeritem">{{ localize "rmss.pc_sheet_language.spoken" }}</div></th>
|
|
||||||
<th><div class="language-entry language-headeritem">{{ localize "rmss.pc_sheet_language.written" }}</div></th>
|
|
||||||
<th><div class="language-entry language-headeritem"> </div></th>
|
|
||||||
{{#each languages as |language id|}}
|
|
||||||
<tr class="item" data-item-id="{{language._id}}">
|
|
||||||
<td><div class="language-name">
|
|
||||||
<h4>{{language.name}}</h4>
|
|
||||||
</div></td>
|
|
||||||
<td><div class="language-entry item-prop">{{language.system.spoken}}</div></td>
|
|
||||||
<td><div class="language-entry item-prop">{{language.system.written}}</div></td>
|
|
||||||
<td><div class="language-entry item-prop">
|
|
||||||
<a class="item-edit" title="Edit Language" data-item-id="{{language._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-delete" title="Delete Language" data-item-id="{{language._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div></td>
|
|
||||||
</tr>
|
|
||||||
{{/each}}
|
|
||||||
</table>
|
|
||||||
@@ -1,53 +1,84 @@
|
|||||||
<section class="resistances-grid-container">
|
<section class="resistance-block">
|
||||||
|
<ol class="labels-list">
|
||||||
|
<li class="stat flexrow" >
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{ localize "rmss.pc_sheet_resistances.channeling" }}</h4>
|
||||||
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.channeling}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div class="resistances-grid-heading">Name</div>
|
<li class="stat flexrow" >
|
||||||
<div class="resistances-grid-heading">Value</div>
|
<div class="label-name">
|
||||||
<div class="resistances-grid-heading">Racial Mod</div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.essence" }}</h4>
|
||||||
<div class="resistances-grid-heading">Total</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.essence}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.channeling" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.channeling.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.channeling.race_mod" value="{{system.resistance_rolls.channeling.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.mentalism" }}</h4>
|
||||||
<div>{{system.resistance_rolls.channeling.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.mentalism}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.essence" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.essence.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.essence.race_mod" value="{{system.resistance_rolls.essence.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.chann_ess" }}</h4>
|
||||||
<div>{{system.resistance_rolls.essence.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.chann_ess}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.mentalism" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.mentalism.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.mentalism.race_mod" value="{{system.resistance_rolls.mentalism.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.chann_ment" }}</h4>
|
||||||
<div>{{system.resistance_rolls.mentalism.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.chann_ment}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.chann_ess" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.chann_ess.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.chann_ess.race_mod" value="{{system.resistance_rolls.chann_ess.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.ess_ment" }}</h4>
|
||||||
<div>{{system.resistance_rolls.chann_ess.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.ess_ment}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.chann_ment" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.chann_ment.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.chann_ment.race_mod" value="{{system.resistance_rolls.chann_ment.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.arcane" }}</h4>
|
||||||
<div>{{system.resistance_rolls.chann_ment.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.arcane}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.ess_ment" }}</div>
|
<li class="stat flexrow" >
|
||||||
<div>{{system.resistance_rolls.ess_ment.value}}</div>
|
<div class="label-name">
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.ess_ment.race_mod" value="{{system.resistance_rolls.ess_ment.race_mod}}" data-dtype="Number"/></div>
|
<h4>{{ localize "rmss.pc_sheet_resistances.poison_disease" }}</h4>
|
||||||
<div>{{system.resistance_rolls.ess_ment.total}}</div>
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.arcane" }}</div>
|
<h4>{{system.resistance_rolls.poison_disease}}</h4>
|
||||||
<div>{{system.resistance_rolls.arcane.value}}</div>
|
</div>
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.arcane.race_mod" value="{{system.resistance_rolls.arcane.race_mod}}" data-dtype="Number"/></div>
|
</li>
|
||||||
<div>{{system.resistance_rolls.arcane.total}}</div>
|
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.poison_disease" }}</div>
|
|
||||||
<div>{{system.resistance_rolls.poison_disease.value}}</div>
|
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.poison_disease.race_mod" value="{{system.resistance_rolls.poison_disease.race_mod}}" data-dtype="Number"/></div>
|
|
||||||
<div>{{system.resistance_rolls.poison_disease.total}}</div>
|
|
||||||
|
|
||||||
<div>{{ localize "rmss.pc_sheet_resistances.fear" }}</div>
|
|
||||||
<div>{{system.resistance_rolls.fear.value}}</div>
|
|
||||||
<div class="resistance-input"><input type="text" name="system.resistance_rolls.fear.race_mod" value="{{system.resistance_rolls.fear.race_mod}}" data-dtype="Number"/></div>
|
|
||||||
<div>{{system.resistance_rolls.fear.total}}</div>
|
|
||||||
|
|
||||||
|
<li class="stat flexrow" >
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>Fear</h4>
|
||||||
|
</div>
|
||||||
|
<div class="label-name">
|
||||||
|
<h4>{{system.resistance_rolls.fear}}</h4>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
</section>
|
</section>
|
||||||
@@ -1,43 +1,35 @@
|
|||||||
<div class="skillcat-grid-container">
|
<table>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.skillcat_name" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.skillcat_name" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.applicable_stats" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.applicable_stats" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.dev_cost" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.dev_cost" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.ranks" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.ranks" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.new_ranks" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.new_ranks" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.rank_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.rank_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.stat_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.stat_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.prof_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.prof_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.special_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.special_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.special_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.special_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">{{ localize "rmss.pc_sheet_skill_categories.total_bonus" }}</div>
|
<th><div class="table-font table-bold table-center">{{ localize "rmss.pc_sheet_skill_categories.total_bonus" }}</div></th>
|
||||||
<div class="skillcat-grid-heading">
|
<th><div class="table-controls">
|
||||||
<div class="settings-button">
|
<a class="item-create" title="Create Skill Category" data-type="skill_category"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_skill_categories.add_skillcat" }}</a>
|
||||||
<button type="button" class="import-skillcats" title="Import" acotr_id="">{{ localize "rmss.pc_sheet.import_skillcat" }}</button>
|
</div></th>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{#each skillcat as |skill_category id|}}
|
{{#each skillcat as |skill_category id|}}
|
||||||
<div>{{skill_category.name}}</div>
|
<tr class="item" data-item-id="{{skill_category._id}}">
|
||||||
<div>{{skill_category.system.applicable_stats}}</div>
|
<td><div class="table-font table-bold">{{skill_category.name}}</div></td>
|
||||||
<div>{{skill_category.system.development_cost}}</div>
|
<td><div class="table-font">{{skill_category.system.applicable_stats}}</div></td>
|
||||||
<div>{{skill_category.system.ranks}}</div>
|
<td><div class="table-font">{{skill_category.system.development_cost}}</div></td>
|
||||||
<div>
|
<td><div class="table-font">{{skill_category.system.ranks}}</div></td>
|
||||||
{{#switch skill_category.system.new_ranks.value}}
|
<td><div class="table-font">{{skill_category.system.new_ranks}}</div></td>
|
||||||
{{#case 0}} <a class="skillcategory-newrank" data-item-id="{{skill_category._id}}" value="{{skill_category.system.new_ranks.value}}"><i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="table-font">{{skill_category.system.rank_bonus}}</div></td>
|
||||||
{{#case 1}} <a class="skillcategory-newrank" data-item-id="{{skill_category._id}}" value="{{skill_category.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="table-font">{{skill_category.system.stat_bonus}}</div></td>
|
||||||
{{#case 2}} <a class="skillcategory-newrank" data-item-id="{{skill_category._id}}" value="{{skill_category.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="table-font">{{skill_category.system.prof_bonus}}</div></td>
|
||||||
{{#case 3}} <a class="skillcategory-newrank" data-item-id="{{skill_category._id}}" value="{{skill_category.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i></a> {{/case}}
|
<td><div class="table-font">{{skill_category.system.special_bonus_1}}</div></td>
|
||||||
{{/switch}}
|
<td><div class="table-font">{{skill_category.system.special_bonus_2}}</div></td>
|
||||||
</div>
|
<td><div class="table-font">{{skill_category.system.total_bonus}}</div></td>
|
||||||
<div>{{skill_category.system.rank_bonus}}</div>
|
<td><div class="table-controls">
|
||||||
<div>{{skill_category.system.stat_bonus}}</div>
|
<a class="item-edit" title="Edit Category"><i class="fas fa-edit"></i></a>
|
||||||
<div>{{skill_category.system.prof_bonus}}</div>
|
<a class="item-delete" title="Delete Category"><i class="fas fa-trash"></i></a>
|
||||||
<div>{{skill_category.system.special_bonus_1}}</div>
|
</div></td>
|
||||||
<div>{{skill_category.system.special_bonus_2}}</div>
|
</tr>
|
||||||
<div>{{skill_category.system.total_bonus}}</div>
|
|
||||||
<div class="skillcat-icons">
|
|
||||||
<a class="item-edit" title="Edit Category" data-item-id="{{skill_category._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-delete item" title="Delete Category" data-item-id="{{skill_category._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
<a class="item-roll" title="Roll Check" data-item-id="{{skill_category._id}}"><i class="fas fa-dice"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</table>
|
||||||
@@ -1,43 +1,35 @@
|
|||||||
<div class="skills-grid-container">
|
<table>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.favorite" }}</div>
|
<th><div class="skill-name skill-headeritem">{{ localize "rmss.pc_sheet_skills.favorite" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.skill_name" }}</div>
|
<th><div class="skill-name skill-headeritem">{{ localize "rmss.pc_sheet_skills.skill_name" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.ranks" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.ranks" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.new_ranks" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.new_ranks" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.rank_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.rank_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.category_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.category_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.item_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.item_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.special_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.special_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.special_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.special_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">{{ localize "rmss.pc_sheet_skills.total_bonus" }}</div>
|
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.total_bonus" }}</div></th>
|
||||||
<div class="skills-grid-heading">
|
<th><div class="skill-controls">
|
||||||
<!--<a class="item-create" title="Create Skill" data-type="skill"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_skills.add_skill" }}</a>-->
|
<a class="skill-control item-create" title="Create Skill" data-type="skill"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_skills.add_skill" }}</a>
|
||||||
</div>
|
</div></th>
|
||||||
{{#each playerskill as |skill id|}}
|
{{#each playerskill as |skill id|}}
|
||||||
{{#if skill.system.favorite}}
|
<tr class="item" data-item-id="{{skill._id}}">
|
||||||
<div><a class="skill-favorite" data-item-id="{{skill._id}}"><i class="fa-regular fa-square-check"></i></a></div>
|
<td><div class="skill-entry item-prop"><input type="checkbox" name="system.favorite" {{checked skill.system.favorite}}/></div></td>
|
||||||
{{else}}
|
<td><div class="skill-name">
|
||||||
<div><a class="skill-favorite" data-item-id="{{skill._id}}"><i class="fa-regular fa-square"></i></a></div>
|
<h4>{{skill.name}}</h4>
|
||||||
{{/if}}
|
</div></td>
|
||||||
<!--<div><input type="checkbox" name="system.favorite" {{checked skill.system.favorite}}/></div>-->
|
<td><div class="skill-entry item-prop">{{skill.system.ranks}}</div></td>
|
||||||
<div>{{skill.name}}</div>
|
<td><div class="skill-entry item-prop">{{skill.system.new_ranks}}</div></td>
|
||||||
<div>{{skill.system.ranks}}</div>
|
<td><div class="skill-entry item-prop">{{skill.system.rank_bonus}}</div></td>
|
||||||
<div>
|
<td><div class="skill-entry item-prop">{{skill.system.category_bonus}}</div></td>
|
||||||
{{#switch skill.system.new_ranks.value}}
|
<td><div class="skill-entry item-prop">{{skill.system.item_bonus}}</div></td>
|
||||||
{{#case 0}} <a class="skill-newrank" data-item-id="{{skill._id}}" value="{{skill.system.new_ranks.value}}"><i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="skill-entry item-prop">{{skill.system.special_bonus_1}}</div></td>
|
||||||
{{#case 1}} <a class="skill-newrank" data-item-id="{{skill._id}}" value="{{skill.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="skill-entry item-prop">{{skill.system.special_bonus_2}}</div></td>
|
||||||
{{#case 2}} <a class="skill-newrank" data-item-id="{{skill._id}}" value="{{skill.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
<td><div class="skill-entry item-prop">{{skill.system.total_bonus}}</div></td>
|
||||||
{{#case 3}} <a class="skill-newrank" data-item-id="{{skill._id}}" value="{{skill.system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i></a> {{/case}}
|
<td><div class="skill-controls">
|
||||||
{{/switch}}
|
<a class="skill-control item-edit" title="Edit Skill"><i class="fas fa-edit"></i></a>
|
||||||
</div>
|
<a class="skill-control item-delete" title="Delete Skill"><i class="fas fa-trash"></i></a>
|
||||||
<div>{{skill.system.rank_bonus}}</div>
|
</div></td>
|
||||||
<div>{{skill.system.category_bonus}}</div>
|
</tr>
|
||||||
<div>{{skill.system.item_bonus}}</div>
|
|
||||||
<div>{{skill.system.special_bonus_1}}</div>
|
|
||||||
<div>{{skill.system.special_bonus_2}}</div>
|
|
||||||
<div>{{skill.system.total_bonus}}</div>
|
|
||||||
<div>
|
|
||||||
<a class="item-edit" title="Edit Skill" data-item-id="{{skill._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-delete" title="Delete Skill" data-item-id="{{skill._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</table>
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<div class="spell-grid-container">
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.favorite" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.level" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.name" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.spell_list" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.area_of_effect" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.duration" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.range" }}</div>
|
|
||||||
<div class="spell-grid-heading">{{ localize "rmss.pc_sheet_spell.type" }}</div>
|
|
||||||
<div class="spell-grid-heading">
|
|
||||||
</div>
|
|
||||||
{{#each spells as |spell id|}}
|
|
||||||
{{#if spell.system.favorite}}
|
|
||||||
<div><a class="spell-favorite" data-item-id="{{spell._id}}"><i class="fa-regular fa-square-check"></i></a></div>
|
|
||||||
{{else}}
|
|
||||||
<div><a class="spell-favorite" data-item-id="{{spell._id}}"><i class="fa-regular fa-square"></i></a></div>
|
|
||||||
{{/if}}
|
|
||||||
<div>{{spell.system.level}}</div>
|
|
||||||
<div>{{spell.name}}</div>
|
|
||||||
<div>{{spell.system.spell_list}}</div>
|
|
||||||
<div>{{spell.system.area_of_effect}}</div>
|
|
||||||
<div>{{spell.system.duration}}</div>
|
|
||||||
<div>{{spell.system.range}}</div>
|
|
||||||
<div>{{spell.system.type}}</div>
|
|
||||||
<div>
|
|
||||||
<a class="item-edit" title="Edit Spell" data-item-id="{{spell._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-delete" title="Delete Spell" data-item-id="{{spell._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<section class="stat-block">
|
<section class="stat-block">
|
||||||
<ol>
|
<ol>
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.stat" }}</div>
|
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.stat" }}</div>
|
||||||
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.temp" }}</div>
|
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.temp" }}</div>
|
||||||
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.pot" }}</div>
|
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.pot" }}</div>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.stat_bonus" }}</div>
|
<div class="stat-header">{{ localize "rmss.player_character.attribute_headers.stat_bonus" }}</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.agility" }}
|
{{ localize "rmss.player_character.attribute.agility" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.constitution" }}
|
{{ localize "rmss.player_character.attribute.constitution" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.memory" }}
|
{{ localize "rmss.player_character.attribute.memory" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.reasoning" }}
|
{{ localize "rmss.player_character.attribute.reasoning" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.self_discipline" }}
|
{{ localize "rmss.player_character.attribute.self_discipline" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.empathy" }}
|
{{ localize "rmss.player_character.attribute.empathy" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.intuition" }}
|
{{ localize "rmss.player_character.attribute.intuition" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.presence" }}
|
{{ localize "rmss.player_character.attribute.presence" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -250,7 +250,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.quickness" }}
|
{{ localize "rmss.player_character.attribute.quickness" }}
|
||||||
</div>
|
</div>
|
||||||
@@ -280,7 +280,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow stat-row">
|
<li class="flexrow">
|
||||||
<div class="stat-name">
|
<div class="stat-name">
|
||||||
{{ localize "rmss.player_character.attribute.strength" }}
|
{{ localize "rmss.player_character.attribute.strength" }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
<div class="weapons-grid-container">
|
|
||||||
<!-- LOCALIZE THE LAST STRINGS IN THIS PAGE. ALSO SKILLS AND SKILL CATEGORIES-->
|
|
||||||
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.pc_sheet_items.item_name" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.pc_sheet_items.equipped" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.weapon.breakage_range" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.weapon.fumble_range" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.weapon.strength" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.pc_sheet_items.quantity" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.pc_sheet_items.weight" }}</div>
|
|
||||||
<div class="weapons-grid-heading">{{ localize "rmss.pc_sheet_items.cost" }}</div>
|
|
||||||
<div class="weapons-grid-heading">
|
|
||||||
<a class="item-control item-create" title="Create Item" data-type="weapon"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_items.add_item" }}</a>
|
|
||||||
</div>
|
|
||||||
{{#each weapons as |weapon id|}}
|
|
||||||
<div>{{weapon.name}}</div>
|
|
||||||
{{#if weapon.system.equipped}}
|
|
||||||
<div><a class="equippable" data-item-id="{{weapon._id}}"><i class="fa-regular fa-square-check"></i></a></div>
|
|
||||||
{{else}}
|
|
||||||
<div><a class="equippable" data-item-id="{{weapon._id}}"><i class="fa-regular fa-square"></i></a></div>
|
|
||||||
{{/if}}
|
|
||||||
<div>{{weapon.system.breakage_range}}</div>
|
|
||||||
<div>{{weapon.system.fumble_range}}</div>
|
|
||||||
<div>{{weapon.system.strength}}</div>
|
|
||||||
<div>{{weapon.system.quantity}}</div>
|
|
||||||
<div>{{weapon.system.weight}}</div>
|
|
||||||
<div>{{weapon.system.cost}}</div>
|
|
||||||
<div class="item-controls">
|
|
||||||
<a class="item-control item-edit" title="Edit Item" data-item-id="{{weapon._id}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item" data-item-id="{{weapon._id}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
@@ -6,10 +6,9 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
|
|
||||||
<!-- Actor Icon Section-->
|
<!-- Actor Icon Section-->
|
||||||
<div>
|
|
||||||
<div class="actor-icon">
|
<div class="actor-icon">
|
||||||
<img src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="64" width="64"/>
|
<img src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="64" width="64"/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Resource Boxes Section-->
|
<!-- Resource Boxes Section-->
|
||||||
@@ -18,27 +17,17 @@
|
|||||||
|
|
||||||
<div class="resource-entry">
|
<div class="resource-entry">
|
||||||
{{ localize "rmss.player_character.resources.hits" }}
|
{{ localize "rmss.player_character.resources.hits" }}
|
||||||
<h4><input name="system.attributes.hits.current" type="Number" value="{{system.attributes.hits.current}}"/>/<input name="system.attributes.hits.max" type="Number" value="{{system.attributes.hits.max}}"/></h4>
|
<h4><input name="system.attributes.hits.current" type="text" value="{{system.attributes.hits.current}}"/>/<input name="system.attributes.hits.max" type="text" value="{{system.attributes.hits.max}}"/></h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="resource-entry">
|
<div class="resource-entry">
|
||||||
<div class="exhaustion-resources">
|
{{ localize "rmss.player_character.resources.exhaustion_points" }}
|
||||||
{{ localize "rmss.player_character.resources.exhaustion_points" }}
|
<h4><input name="system.attributes.exhaustion_points.current" type="text" value="{{system.attributes.exhaustion_points.current}}"/>/<input name="system.attributes.exhaustion_points.max" type="text" value="{{system.attributes.exhaustion_points.max}}"/></h4>
|
||||||
<h4><input name="system.attributes.exhaustion_points.current" type="Number" value="{{system.attributes.exhaustion_points.current}}"/>/<input name="system.attributes.exhaustion_points.max" type="Number" value="{{system.attributes.exhaustion_points.max}}"/></h4>
|
|
||||||
</div>
|
|
||||||
<div class="exhaustion-modifier">
|
|
||||||
<label>{{system.attributes.exhaustion_points.modifier}}</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="resource-entry">
|
<div class="resource-entry">
|
||||||
<div class="pp-resources">
|
{{ localize "rmss.player_character.resources.power_points" }}
|
||||||
{{ localize "rmss.player_character.resources.power_points" }}
|
<h4><input name="system.attributes.power_points.current" type="text" value="{{system.attributes.power_points.current}}"/>/<input name="system.attributes.power_points.max" type="text" value="{{system.attributes.power_points.max}}"/></h4>
|
||||||
<h4><input name="system.attributes.power_points.current" type="Number" value="{{system.attributes.power_points.current}}"/>/<input name="system.attributes.power_points.max" type="Number" value="{{system.attributes.power_points.max}}"/></h4>
|
|
||||||
</div>
|
|
||||||
<div class="pp-exhaustion">
|
|
||||||
<label>{{system.attributes.power_points.modifier}}</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -52,12 +41,12 @@
|
|||||||
|
|
||||||
<div class="header-text flexrow">
|
<div class="header-text flexrow">
|
||||||
<label for="level">{{ localize "rmss.player_character.level" }}</label>
|
<label for="level">{{ localize "rmss.player_character.level" }}</label>
|
||||||
<input name="system.attributes.level.value" type="text" value="{{system.attributes.level.value}}"/>
|
<input name="level" type="text" value="{{system.attributes.level.value}}"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-text flexrow">
|
<div class="header-text flexrow">
|
||||||
<label for="experience">{{ localize "rmss.player_character.experience" }}</label>
|
<label for="experience">{{ localize "rmss.player_character.experience" }}</label>
|
||||||
<input name="system.attributes.experience_points.value" type="text" value="{{system.attributes.experience_points.value}}"/>
|
<input name="experience" type="text" value="{{system.attributes.experience_points.value}}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -72,7 +61,6 @@
|
|||||||
<a class="item" data-tab="SkillCategory">{{ localize "rmss.pc_sheet_tabs.skill_categories" }}</a>
|
<a class="item" data-tab="SkillCategory">{{ localize "rmss.pc_sheet_tabs.skill_categories" }}</a>
|
||||||
<a class="item" data-tab="Skills">{{ localize "rmss.pc_sheet_tabs.skills" }}</a>
|
<a class="item" data-tab="Skills">{{ localize "rmss.pc_sheet_tabs.skills" }}</a>
|
||||||
<a class="item" data-tab="Equipment">{{ localize "rmss.pc_sheet_tabs.equipment" }}</a>
|
<a class="item" data-tab="Equipment">{{ localize "rmss.pc_sheet_tabs.equipment" }}</a>
|
||||||
<a class="item" data-tab="Spells">{{ localize "rmss.pc_sheet_tabs.spells" }}</a>
|
|
||||||
<a class="item" data-tab="StatusRecord">{{ localize "rmss.pc_sheet_tabs.status_record" }}</a>
|
<a class="item" data-tab="StatusRecord">{{ localize "rmss.pc_sheet_tabs.status_record" }}</a>
|
||||||
<a class="item" data-tab="ExperiencePoints">{{ localize "rmss.pc_sheet_tabs.experience_points" }}</a>
|
<a class="item" data-tab="ExperiencePoints">{{ localize "rmss.pc_sheet_tabs.experience_points" }}</a>
|
||||||
</nav>
|
</nav>
|
||||||
@@ -91,55 +79,30 @@
|
|||||||
|
|
||||||
<div class="stat-container">
|
<div class="stat-container">
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-stats.html" }}
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-stats.html" }}
|
||||||
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-fav-skills.html" }}
|
||||||
<div class="favorite-container">
|
|
||||||
<h2>Favorite Skills</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-fav-skills.html" }}
|
|
||||||
<h2>Favorite Spells</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-fav-spells.html" }}
|
|
||||||
<h2>Equipped Items</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-fav-items.html" }}
|
|
||||||
<h2>Description</h2>
|
|
||||||
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab skill_categories" data-group="primary" data-tab="SkillCategory">
|
<div class="tab skill_categories" data-group="primary" data-tab="SkillCategory">
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-skill-categories.html" }}
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-skill-categories-grid.html" }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab skills" data-group="primary" data-tab="Skills">
|
<div class="tab skills" data-group="primary" data-tab="Skills">
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-skills.html" }}
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-skills-grid.html" }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab equipment" data-group="primary" data-tab="Equipment">
|
<div class="tab equipment" data-group="primary" data-tab="Equipment">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="equipment-container">
|
<div class="equipment-container">
|
||||||
<h2>Items</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-items.html" }}
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-items.html" }}
|
||||||
<h2>Weapons</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-weapons.html" }}
|
|
||||||
<h2>Armor and Equipables</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-armor.html" }}
|
|
||||||
<h2>Herbs and Poisons</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-herbs.html" }}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="money-container">
|
<div class="money-container">
|
||||||
<h2>Wealth</h2>
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-money.html" }}
|
{{> "systems/rmss/templates/sheets/actors/parts/actor-money.html" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab spells" data-group="primary" data-tab="Spells">
|
|
||||||
<div class="spell-container">
|
|
||||||
{{> "systems/rmss/templates/sheets/actors/parts/actor-spells.html" }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
<form>
|
|
||||||
<div class="dice-roller-container">
|
|
||||||
<div class="dice-roller-options">
|
|
||||||
<div class="dice-roller-item">
|
|
||||||
<div>Rolling for:</div><div>{{itemName}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="dice-roller-item">
|
|
||||||
<div>Character Bonus:</div><div>{{characterBonus}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="dice-roller-item">
|
|
||||||
<div>Misc Bonus:</div><div><input name="miscBonus" value="0" /></div>
|
|
||||||
</div>
|
|
||||||
<div class="dice-roller-item">
|
|
||||||
<div>Select Roll Type:</div>
|
|
||||||
<div>
|
|
||||||
<select name="rollType" value="None" itemid="blah">
|
|
||||||
{{#each selectOptions as |option|}}
|
|
||||||
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.text}}</option>
|
|
||||||
{{/each}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="roll-button-container">
|
|
||||||
<button type="submit">Roll</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<form>
|
|
||||||
<div>
|
|
||||||
<h3>Import Skill Categories</h3>
|
|
||||||
<div>
|
|
||||||
WARNING: This will erase your existing Skill Categories and import all Skill Categories from the selected Compendium.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
Select Compendium:
|
|
||||||
<select name="selectOptions" class="compendium-selector" value="None" itemid="blah">
|
|
||||||
{{selectOptions selectOptions}}
|
|
||||||
</select></div>
|
|
||||||
<div>
|
|
||||||
<button class="import-skillcats" title="Import">Import</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
@@ -7,16 +7,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{localize "rmss.item.equipped"}}</th>
|
|
||||||
<th>{{localize "rmss.item.quantity"}}</th>
|
<th>{{localize "rmss.item.quantity"}}</th>
|
||||||
<th>{{localize "rmss.armor.weight"}}</th>
|
<th>{{localize "rmss.armor.weight"}}</th>
|
||||||
<th>{{localize "rmss.armor.cost"}}</th>
|
<th>{{localize "rmss.armor.cost"}}</th>
|
||||||
<th>{{localize "rmss.armor.prod_time"}}</th>
|
<th>{{localize "rmss.armor.prod_time"}}</th>
|
||||||
<th>{{localize "rmss.armor.at"}}</th>
|
<th>{{localize "rmss.armor.at"}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="system.equipped" {{checked system.equipped}}/>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -7,15 +7,11 @@
|
|||||||
<div>
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{localize "rmss.item.worn"}}</th>
|
|
||||||
<th>{{localize "rmss.item.quantity"}}</th>
|
<th>{{localize "rmss.item.quantity"}}</th>
|
||||||
<th>{{localize "rmss.item.weight"}}</th>
|
<th>{{localize "rmss.item.weight"}}</th>
|
||||||
<th>{{localize "rmss.item.cost"}}</th>
|
<th>{{localize "rmss.item.cost"}}</th>
|
||||||
<th>{{localize "rmss.item.prod_time"}}</th>
|
<th>{{localize "rmss.item.prod_time"}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="system.worn" {{checked system.worn}}/>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{localize "rmss.weapon.equipped"}}</th>
|
|
||||||
<th>{{localize "rmss.item.quantity"}}</th>
|
<th>{{localize "rmss.item.quantity"}}</th>
|
||||||
<th>{{localize "rmss.weapon.cost"}}</th>
|
<th>{{localize "rmss.weapon.cost"}}</th>
|
||||||
<th>{{localize "rmss.weapon.type"}}</th>
|
<th>{{localize "rmss.weapon.type"}}</th>
|
||||||
@@ -18,9 +17,6 @@
|
|||||||
<th>{{localize "rmss.weapon.fumble_range"}}</th>
|
<th>{{localize "rmss.weapon.fumble_range"}}</th>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="system.equipped" {{checked system.equipped}}/>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
<form class="{{cssClass}}" autocomplete="off">
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
<header class="sheet-header">
|
<header class="sheet-header">
|
||||||
<img src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
|
<img src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
|
||||||
|
|
||||||
|
{{#if item.isOwned}}
|
||||||
|
<h1>{{item.name}}</h1>
|
||||||
|
{{else}}
|
||||||
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
|
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
<div class="sheet-content">
|
<div class="sheet-content">
|
||||||
<div class="applicable-stats-grid-container">
|
<div class="applicable-stats-grid-container">
|
||||||
@@ -48,14 +54,7 @@
|
|||||||
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
|
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
<input name="system.new_ranks" type="text" value="{{system.new_ranks}}" data-dtype="Number"/>
|
||||||
{{#switch system.new_ranks.value}}
|
|
||||||
{{#case 0}} <a class="skillcategorysheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 1}} <a class="skillcategorysheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 2}} <a class="skillcategorysheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 3}} <a class="skillcategorysheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i></a> {{/case}}
|
|
||||||
{{/switch}}
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
|
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
|
||||||
|
|||||||
@@ -10,12 +10,6 @@
|
|||||||
{{selectOptions owned_skillcats selected=selected_skillcat }}
|
{{selectOptions owned_skillcats selected=selected_skillcat }}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
Skill Designation
|
|
||||||
<select name="system.designation" class="app-stat-selector" value="{{system.designation}}" itemid="{{ item._id }}">
|
|
||||||
{{selectOptions designations selected=system.designation}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -36,14 +30,7 @@
|
|||||||
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
|
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
<input name="system.new_ranks" type="text" value="{{system.new_ranks}}" data-dtype="Number"/>
|
||||||
{{#switch system.new_ranks.value}}
|
|
||||||
{{#case 0}} <a class="skillsheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 1}} <a class="skillsheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 2}} <a class="skillsheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square"></i></a> {{/case}}
|
|
||||||
{{#case 3}} <a class="skillsheet-newrank" data-item-id="{{item._id}}" value="{{system.new_ranks.value}}"><i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i> <i class="fa-regular fa-square-check"></i></a> {{/case}}
|
|
||||||
{{/switch}}
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
|
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{localize "rmss.spell.favorite"}}</th>
|
|
||||||
<th>{{localize "rmss.spell.spell_list"}}</th>
|
<th>{{localize "rmss.spell.spell_list"}}</th>
|
||||||
<th>{{localize "rmss.spell.level"}}</th>
|
<th>{{localize "rmss.spell.level"}}</th>
|
||||||
<th>{{localize "rmss.spell.area_of_effect"}}</th>
|
<th>{{localize "rmss.spell.area_of_effect"}}</th>
|
||||||
@@ -16,9 +15,6 @@
|
|||||||
<th>{{localize "rmss.spell.type"}}</th>
|
<th>{{localize "rmss.spell.type"}}</th>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="system.favorite" {{checked system.favorite}}/>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<input name="system.spell_list" type="text" value="{{system.spell_list}}" data-dtype="String"/>
|
<input name="system.spell_list" type="text" value="{{system.spell_list}}" data-dtype="String"/>
|
||||||
</td>
|
</td>
|
||||||
@@ -32,7 +28,7 @@
|
|||||||
<input name="system.duration" type="text" value="{{system.duration}}" data-dtype="String"/>
|
<input name="system.duration" type="text" value="{{system.duration}}" data-dtype="String"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input name="system.range" type="text" value="{{system.range}}" data-dtype="String"/>
|
<input name="system.range" type="text" value="{{system.range}}" data-dtype="Number"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input name="system.type" type="text" value="{{system.type}}" data-dtype="String"/>
|
<input name="system.type" type="text" value="{{system.type}}" data-dtype="String"/>
|
||||||
|
|||||||