Merge pull request #2 from Cynicide/develop

Foundry V10 Compatability and Skill Calculations
This commit is contained in:
Cynicide 2022-09-05 10:17:44 +10:00 committed by GitHub
commit d83415ba7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 548 additions and 450 deletions

0
rmss/LICENSE.txt Normal file
View File

9
rmss/README.md Normal file
View 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
View 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

View File

@ -50,6 +50,4 @@ rmss.stats = {
fullname: "Strength",
shortname: "St"
}
}

View File

@ -1,5 +1,5 @@
export class RMSSActor extends Actor {
/** @override */
prepareData() {
// Prepare data for the actor. Calling the super version of this executes
@ -8,87 +8,92 @@ export class RMSSActor extends Actor {
// prepareDerivedData().
super.prepareData();
}
prepareDerivedData() {
const actorData = this.data;
const data = actorData.data;
const actorData = this;
const systemData = actorData.system;
const flags = actorData.flags.rmss || {};
// Make separate methods for each Actor type (character, npc, etc.) to keep
// things organized.
this._prepareCharacterData(actorData);
this._prepareNpcData(actorData);
}
/**
* Prepare Character type specific data
*/
* Prepare Character type specific data
*/
_prepareCharacterData(actorData) {
if (actorData.type !== 'character') return;
// Calculate Stat Bonuses in Actor
this.prepareStatBonuses(actorData)
// Calculate Resistance Rolls in Actor
// Calculate Stat Bonuses for the Actor
this.prepareStatBonuses(actorData);
// Calculate Resistance Rolls for the Actor
this.prepareResistanceRolls(actorData);
// Iterate through and apply Stat bonuses for Skill Category Items
this.prepareSkillCatStatBonuses();
this.prepareSkillCategoryStatBonuses();
}
/**
* Prepare NPC type specific data.
*/
* Prepare NPC type specific data.
*/
_prepareNpcData(actorData) {
if (actorData.type !== 'npc') return;
// Make modifications to data here. For example:
const data = actorData.data;
data.xp = (data.cr * data.cr) * 100;
}
// Tally each stat bonus and populate the total field.
prepareStatBonuses(actorData) {
const data = actorData.data;
actorData.data.stats.agility.stat_bonus = Number(data.stats.agility.racial_bonus)+Number(data.stats.agility.special_bonus)+Number(data.stats.agility.basic_bonus);
actorData.data.stats.constitution.stat_bonus = Number(data.stats.constitution.racial_bonus)+Number(data.stats.constitution.special_bonus)+Number(data.stats.constitution.basic_bonus);
actorData.data.stats.memory.stat_bonus = Number(data.stats.memory.racial_bonus)+Number(data.stats.memory.special_bonus)+Number(data.stats.memory.basic_bonus);
actorData.data.stats.reasoning.stat_bonus = Number(data.stats.reasoning.racial_bonus)+Number(data.stats.reasoning.special_bonus)+Number(data.stats.reasoning.basic_bonus);
actorData.data.stats.self_discipline.stat_bonus = Number(data.stats.self_discipline.racial_bonus)+Number(data.stats.self_discipline.special_bonus)+Number(data.stats.self_discipline.basic_bonus);
actorData.data.stats.empathy.stat_bonus = Number(data.stats.empathy.racial_bonus)+Number(data.stats.empathy.special_bonus)+Number(data.stats.empathy.basic_bonus);
actorData.data.stats.intuition.stat_bonus = Number(data.stats.intuition.racial_bonus)+Number(data.stats.intuition.special_bonus)+Number(data.stats.intuition.basic_bonus);
actorData.data.stats.presence.stat_bonus = Number(data.stats.presence.racial_bonus)+Number(data.stats.presence.special_bonus)+Number(data.stats.presence.basic_bonus);
actorData.data.stats.quickness.stat_bonus = Number(data.stats.quickness.racial_bonus)+Number(data.stats.quickness.special_bonus)+Number(data.stats.quickness.basic_bonus);
actorData.data.stats.strength.stat_bonus = Number(data.stats.strength.racial_bonus)+Number(data.stats.strength.special_bonus)+Number(data.stats.strength.basic_bonus);
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.constitution.stat_bonus = Number(systemData.stats.constitution.racial_bonus)+Number(systemData.stats.constitution.special_bonus)+Number(systemData.stats.constitution.basic_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);
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);
}
prepareResistanceRolls(actorData) {
const data = actorData.data;
actorData.data.resistance_rolls.essence = Number(actorData.data.stats.empathy.stat_bonus * 3)
actorData.data.resistance_rolls.channeling = Number(actorData.data.stats.intuition.stat_bonus * 3)
actorData.data.resistance_rolls.mentalism = Number(actorData.data.stats.presence.stat_bonus * 3)
actorData.data.resistance_rolls.fear = Number(actorData.data.stats.self_discipline.stat_bonus * 3)
actorData.data.resistance_rolls.poison_disease = Number(actorData.data.stats.constitution.stat_bonus * 3)
actorData.data.resistance_rolls.chann_ess = Number(actorData.data.stats.intuition.stat_bonus) + Number(actorData.data.stats.empathy.stat_bonus)
actorData.data.resistance_rolls.chann_ment = Number(actorData.data.stats.intuition.stat_bonus) + Number(actorData.data.stats.presence.stat_bonus)
actorData.data.resistance_rolls.ess_ment = Number(actorData.data.stats.empathy.stat_bonus) + Number(actorData.data.stats.presence.stat_bonus)
actorData.data.resistance_rolls.arcane = Number(actorData.data.stats.empathy.stat_bonus) + Number(actorData.data.stats.intuition.stat_bonus) + Number(actorData.data.stats.presence.stat_bonus)
// Calculate each Resistance Roll with the formula on the character sheet.
prepareResistanceRolls(actorData) { // TODO: Add Racial modifiers to resistance
const systemData = actorData.system;
actorData.system.resistance_rolls.essence = 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.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.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.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);
}
prepareSkillCatStatBonuses() {
console.log("Getting Items");
/*prepareSkillCategoryBonuses() {
for (const item of this.items) {
if (item.type === "skill") {
}
}
}*/
// Tallys the bonus for each Stat that is applicable to the Skill Category and then updates the total
prepareSkillCategoryStatBonuses() {
for (const item of this.items) {
if (item.type === "skill_category") {
// Get all the applicable stats for this skill category
var app_stat_1 = item.data.data.app_stat_1;
var app_stat_2 = item.data.data.app_stat_2;
var app_stat_3 = item.data.data.app_stat_3;
console.log(item.name + " " + app_stat_1 + " " + app_stat_2 + " " + app_stat_3);
var app_stat_1 = item.system.app_stat_1;
var app_stat_2 = item.system.app_stat_2;
var app_stat_3 = item.system.app_stat_3;
// If the first one is None we don't need to do anything further
if (app_stat_1 === "None") {
@ -97,7 +102,7 @@ export class RMSSActor extends Actor {
else
{
var applicable_stat_bonus = 0;
var app_stat_1_found = false;
var app_stat_2_found = false;
var app_stat_3_found = false;
@ -106,39 +111,42 @@ export class RMSSActor extends Actor {
for (const stat in CONFIG.rmss.stats) {
// If the configured App Stat matches the one of the stats in config
if (app_stat_1 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found first stat: " + stat);
app_stat_1_found = true;
// Get the Stat Bonus
console.log(this.data.data.stats[stat].stat_bonus);
applicable_stat_bonus = applicable_stat_bonus + this.data.data.stats[stat].stat_bonus
//console.log("New Applicable Stat Bonus: " + applicable_stat_bonus)
applicable_stat_bonus = applicable_stat_bonus + this.system.stats[stat].stat_bonus;
}
if (app_stat_2 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found second stat: " + stat);
app_stat_2_found = true;
console.log(this.data.data.stats[stat].stat_bonus);
applicable_stat_bonus = applicable_stat_bonus + this.data.data.stats[stat].stat_bonus
//console.log("New Applicable Stat Bonus: " + applicable_stat_bonus)
applicable_stat_bonus = applicable_stat_bonus + this.system.stats[stat].stat_bonus;
}
if (app_stat_3 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found third stat: " + stat);
app_stat_3_found = true;
console.log(this.data.data.stats[stat].stat_bonus);
applicable_stat_bonus = applicable_stat_bonus + this.data.data.stats[stat].stat_bonus
//console.log("New Applicable Stat Bonus: " + applicable_stat_bonus)
applicable_stat_bonus = applicable_stat_bonus + this.system.stats[stat].stat_bonus;
}
}
console.log("Applicable Stat Bonus: " + applicable_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) {
// Apply the update if we found stat bonuses for every applicable stat
item.data.data.stat_bonus = applicable_stat_bonus;
item.system.stat_bonus = applicable_stat_bonus;
// Update the total in the Item
item.calculateSkillCatTotalBonus(item.data);
item.calculateSkillCategoryTotalBonus(item);
}
}
}
}
}
// For each skill category return an object in this format.
// {{ _id: "skill category name"}}
// This is the format that the select helper on the skill sheet needs
getOwnedSkillCategories() {
var ownedSkillCategories = {None: "None"};
for (const item of this.items) {
if (item.type === "skill_category") {
ownedSkillCategories[item._id] = item.name;
}
}
return(ownedSkillCategories);
}
}

View File

@ -9,45 +9,47 @@ export class RMSSItem extends Item {
super.prepareData();
}
// Set the images for newly created images (need to fix for copied images).
// Set the icon images for newly created images.
async _preCreate(data, options, userId) {
await super._preCreate(data, options, userId);
if (!data.img) {
if (this.data.type == "armor") {
await this.data.update({img: "systems/rmss/assets/default/armor.svg"});
// 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.data.type == "weapon") {
await this.data.update({img: "systems/rmss/assets/default/weapon.svg"});
else if (this.type == "weapon") {
await this.updateSource({img: "systems/rmss/assets/default/weapon.svg"});
}
else if (this.data.type == "skill") {
await this.data.update({img: "systems/rmss/assets/default/skill.svg"});
else if (this.type == "skill") {
await this.updateSource({img: "systems/rmss/assets/default/skill.svg"});
}
else if (this.data.type == "skill_category") {
await this.data.update({img: "systems/rmss/assets/default/skill_category.svg"});
else if (this.type == "skill_category") {
await this.updateSource({img: "systems/rmss/assets/default/skill_category.svg"});
}
else if (this.data.type == "spell") {
await this.data.update({img: "systems/rmss/assets/default/spell.svg"});
else if (this.type == "spell") {
await this.updateSource({img: "systems/rmss/assets/default/spell.svg"});
}
else if (this.data.type == "herb_or_poison") {
await this.data.update({img: "systems/rmss/assets/default/herb_or_poison.svg"});
else if (this.type == "herb_or_poison") {
await this.updateSource({img: "systems/rmss/assets/default/herb_or_poison.svg"});
}
else if (this.data.type == "transport") {
await this.data.update({img: "systems/rmss/assets/default/transport.svg"});
else if (this.type == "transport") {
await this.updateSource({img: "systems/rmss/assets/default/transport.svg"});
}
}
}
calculateSkillCatTotalBonus(itemData) {
// Calculate Stat Bonuses
const data = itemData.data;
itemData.data.total_bonus = Number(data.rank_bonus)+Number(data.stat_bonus)+Number(data.prof_bonus)+Number(data.special_bonus_1)+Number(data.special_bonus_2);
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.data;
const data = itemData.data;
const itemData = this;
const systemData = itemData.system;
const flags = itemData.flags.rmss || {};
// Make separate methods for each item type to keep things organized.
@ -62,16 +64,16 @@ export class RMSSItem extends Item {
//const data = itemData.data;
// Calculate Stat Bonuses
this.calculateSkillCatTotalBonus(itemData);
this.calculateSkillCategoryTotalBonus(itemData);
}
_prepareSkillData(itemData) {
if (itemData.type !== 'skill') return;
// Make modifications to data here. For example:
const data = itemData.data;
const systemData = itemData.system;
// Calculate Stat Bonuses
itemData.data.total_bonus = Number(data.rank_bonus)+Number(data.category_bonus)+Number(data.item_bonus)+Number(data.special_bonus_1)+Number(data.special_bonus_2);
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);
}
}

View File

@ -14,10 +14,10 @@ export default class RMSSPlayerSheet extends ActorSheet {
const context = super.getData();
// Use a safe clone of the actor data for further operations.
const actorData = this.actor.data.toObject(false);
const actorData = this.actor.toObject(false);
// Add the actor's data to context.data for easier access, as well as flags.
context.data = actorData.data;
context.system = actorData.system;
context.flags = actorData.flags;
// Prepare character data and items.
@ -29,11 +29,38 @@ export default class RMSSPlayerSheet extends ActorSheet {
// Prepare NPC data and items.
if (actorData.type == 'npc') {
this._prepareItems(context);
}
}
return context;
}
//Override this method to check for duplicates when things are dragged to the sheet
// We don't want duplicate skills and skill categories.
async _onDropItem(event, data) {
// Reconstruct the item from the event
const newitem = await Item.implementation.fromDropData(data);
const itemData = newitem.toObject();
if (itemData.type === "skill_category" || itemData.type === "skill"){
// Get the already owned Items from the actor and push into an array
const owneditems = this.object.getOwnedSkillCategories();
console.log(owneditems);
var owneditemslist = Object.values(owneditems);
// Check if the dragged item is not in the array and not owned
if (!owneditemslist.includes(itemData.name)) {
console.log("Not Owned!");
super._onDropItem(event, data);
}
}
else {
super._onDropItem(event, data);
}
}
_prepareCharacterData(context) {
}
@ -96,7 +123,7 @@ export default class RMSSPlayerSheet extends ActorSheet {
// Render the item sheet for viewing/editing prior to the editable check.
html.find('.item-edit').click(ev => {
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
console.log(this);
//console.log(this);
item.sheet.render(true);
});
@ -110,7 +137,7 @@ export default class RMSSPlayerSheet extends ActorSheet {
// Delete Item
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"));
//console.log(ev.currentTarget.getAttribute("data-item-id"));
item.delete();
});
}
@ -131,8 +158,8 @@ export default class RMSSPlayerSheet extends ActorSheet {
data: data
};
// Remove the type from the dataset since it's in the itemData.type prop.
delete itemData.data["type"];
//delete itemData.data["type"];
delete itemData.data.type;
// Finally, create the item!
return await Item.create(itemData, {parent: this.actor});
}

View File

@ -17,15 +17,18 @@ export default class RMSSArmorSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -17,15 +17,18 @@ export default class RMSSHerbAndPoisonSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -17,15 +17,18 @@ export default class RMSSItemSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -17,15 +17,18 @@ export default class RMSSTransportSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -17,15 +17,18 @@ export default class RMSSWeaponSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -17,36 +17,36 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const context = await super.getData();
// Get a list of stats that can be used as applicable stats
var applicable_stat_list = this.prepareApplicableStatValues(CONFIG);
//Get the currently selected value for all three applicable stats
var applicable_stat_1_selected = this.prepareApplicableSelectedStat("app_stat_1");
var applicable_stat_2_selected = this.prepareApplicableSelectedStat("app_stat_2");
var applicable_stat_3_selected = this.prepareApplicableSelectedStat("app_stat_3");
// Build the string for Applicable Stats
var applicable_stat_text = this.buildApplicableStatsText(applicable_stat_1_selected, applicable_stat_2_selected, applicable_stat_3_selected)
baseData.item.data.data['applicable_stats'] = applicable_stat_text
// Build and apply the display string for Applicable Stats
var applicable_stat_text = this.buildApplicableStatsText(applicable_stat_1_selected, applicable_stat_2_selected, applicable_stat_3_selected);
//context.item.system['applicable_stats'] = applicable_stat_text;
context.item.system.applicable_stats = applicable_stat_text;
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
item: context.item,
system: context.item.system,
config: CONFIG.rmss,
applicable_stat_list: applicable_stat_list,
applicable_stat_1_selected: applicable_stat_1_selected,
applicable_stat_2_selected: applicable_stat_2_selected,
applicable_stat_3_selected: applicable_stat_3_selected
applicable_stat_3_selected: applicable_stat_3_selected,
enrichedDescription: enrichedDescription
};
console.log(this.item)
return sheetData;
}
@ -60,19 +60,19 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
}
prepareApplicableStatValues(CONFIG) {
var applicable_stat_1_list = {None: "None"}
var applicable_stat_list = {None: "None"};
// Get a list of stat shortnames from the config
for (const item in CONFIG.rmss.stats) {
applicable_stat_1_list[CONFIG.rmss.stats[item]['shortname']] = CONFIG.rmss.stats[item]['shortname'];
applicable_stat_list[CONFIG.rmss.stats[item].shortname] = CONFIG.rmss.stats[item].shortname;
}
return applicable_stat_1_list;
return applicable_stat_list;
}
// Determine which Stat is selected for applicable stats
prepareApplicableSelectedStat(app_stat) {
var applicable_stat_selected = "";
applicable_stat_selected = this.item.data.data[app_stat];
applicable_stat_selected = this.item.system[app_stat];
return applicable_stat_selected;
}
@ -80,19 +80,19 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
buildApplicableStatsText(app_stat_1, app_stat_2, app_stat_3) {
if (app_stat_1 === "None") {
return("None")
return("None");
}
else if (app_stat_1 !== "None" && app_stat_2 === "None") {
return(app_stat_1)
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 )
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 )
return(app_stat_1 + "/" + app_stat_2 + "/" + app_stat_3 );
}
else {
return("None")
return("None");
}
}

View File

@ -17,17 +17,74 @@ export default class RMSSSkillSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
// Get a list of the parent item's skill categories for the dropdown
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,
data: baseData.item.data.data,
config: CONFIG.rmss
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;
}
}
}
}
}

View File

@ -16,15 +16,18 @@ export default class RMSSSpellSheet extends ItemSheet {
}
// Make the data available to the sheet template
getData() {
const baseData = super.getData();
async getData() {
const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = {
owner: this.item.isOwner,
editable :this.isEditable,
item: baseData.item,
data: baseData.item.data.data,
config: CONFIG.rmss
system: baseData.item.system,
config: CONFIG.rmss,
enrichedDescription: enrichedDescription
};
return sheetData;

View File

@ -1,55 +0,0 @@
{"_id":"0d3EfynJXdtM5Dzm","name":"Armor • Light","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/St/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"0w6sahjMDlHYSN8V","name":"Lore • Obscure","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Me/Re/Me","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"1G2k2fwahmEzCOFU","name":"Technical/Trade • Vocational","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Me/In/Re","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"4BM6WowdqAcmqKqQ","name":"Lore • Technical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Me/Re/Me","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"4rr30P65Yc43Ncjh","name":"Science/Analytic • Specialized","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Re/Me/Re","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Body Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Co/SD/Co","development_cost":"","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.HfkzoDVADnq2dYJ7"}},"_id":"5QRIgoZ6jew76BgE"}
{"_id":"8TZWjsbDPWi4xLNt","name":"Weapon • Thrown","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/St/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"91zRgmv9jirmpA3u","name":"Subterfuge • Attack","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/SD/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Influence","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Pr/Em/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.elWpmeBUSeX7AdrX"}},"_id":"96thkRaRd0KvdiIY"}
{"name":"Self Control","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"SD/Pr/SD","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.rbe2UnhjpflyUZSE"}},"_id":"B1dbjqpZq0srb9tg"}
{"_id":"CegELmkfwbiBjnRk","name":"Athletic • Gymanstics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/Qu/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Power Awareness","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Em/In/Pr","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.MddRxrypkR5XmFaA"}},"_id":"DowJf31x9cOtxFHF"}
{"_id":"FFdtMkQ6yupVjPeS","name":"Spells • Arcane Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Fcj10XbsHSUR5phg","name":"Subterfuge • Mechanics","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/Ag/Re","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"G6EOQxjgxzXF178q","name":"Spells • Own Realm Other Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Special Defenses","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"none","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.jCqolNb9eySmsuMB"}},"_id":"GLunI5fshwER51fi"}
{"_id":"Gtr6mVQnCpNtHViI","name":"Weapon • Missile","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/St/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"HMWeRbDDZtl0tXEh","name":"Spells • Other Realm Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"HpgMGMSEQ8Ts7YbG","name":"Armor • Medium","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"IXcTjepLPq31vxVT","name":"Artistic • Active","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Em/In/Pr","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Ip7mrF0VZ1ExBksX","name":"Outdoor • Animal","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Em/Ag/Em","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Jnd5pdtnTal5h06A","name":"Science/Analytic • Basic","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Re/Me/Re","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"KnUkHQavTshrTjkg","name":"Awareness • Perceptions","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/Sd/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"N42RNwyuUGHRjodJ","name":"Spells • Own Realm Closed Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"OyH3yI187GiJcIc4","name":"Lore • Magical","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Me/Re/Me","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Q4i7dMnuPsVqZHYw","name":"Artistic • Passive","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Em/In/Pr","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"QTDmhJB09fDe8iQv","name":"Martial Arts • Striking","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Power Point Development","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.2C7f9nvf1kuK8rXY"}},"_id":"QtaTRdx4XPibLhdr"}
{"_id":"Rl6sVmW7tYsp7AwE","name":"Weapon • Pole Arms","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Power Manipulation","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Em/In/Pr","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.qDbLIKRv8Q2Ciw74"}},"_id":"TW4y2IyruLOgQakC"}
{"_id":"Ta85zeG0pUbHtNBr","name":"Spells • Other Realm Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Communications","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Re/Me/Em","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.2JoQYKw8w0Hlpq4A"}},"_id":"UCh0IobVLOUEK6av"}
{"_id":"V8KDQbEuZHFyAVmr","name":"Awareness • Searching","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/Re/SD","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Vr9W9tfAwSitbMET","name":"Outdoor • Environmental","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"SD/In/Me","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"YEEf2L6g7ZMzTcbF","name":"Technical/Trade • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Re/Me/SD","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"YmhpyPfe6QnhPvQt","name":"Armor • Heavy","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"Yv6KAUTUixKBs2Wg","name":"Weapon • Missile Artillery","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/Ag/Re","development_cost":"","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"aJG4v8JkqUiXORVC","name":"Athletic • Endurance","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Co/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"aMAh2dm9dNpXc594","name":"Technical/Trade • Professional","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Re/Me/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"apah6xF0sZmT2wbe","name":"Spells • Own Realm Open Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"bBFVMX3i9ytyGBjc","name":"Combat Maneuvers","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/Qu/SD","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.tnvG5xaEcQocDS0w"}}}
{"_id":"bWXkqTxusDg3LD3p","name":"Lore • General","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Me/Re/Me","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Urban","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/Pr/Re","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.1ctWjqn6zIq1Ecah"}},"_id":"eGjI9piHe9tafzBC"}
{"_id":"eJ8HV5AYy1zzYrEL","name":"Weapon • 1-H Concussion","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"fiTen0GICCayYkzd","name":"Athletic • Brawn","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Co/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"jOlyQllB1OMurWft","name":"Martial Arts • Sweeps","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/St/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Special Attacks","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.DGkoTXdfa07tJWMt"}},"_id":"k5ybPxU5ZKdege0Q"}
{"_id":"m8dtArvtmCzVC1mA","name":"Subterfuge • Stealth","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/SD/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Directed Spells","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/SD/Ag","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.OY1iAvwGdsBA3oi9"}},"_id":"pwCwq6GP5Kra9zKv"}
{"_id":"r9z7zKuzfWlORaes","name":"Spells • Own Realm Own Base Lists","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"th7zQOOVjKY0B1j1","name":"Weapon • 2-Handed","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"name":"Crafts","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"Ag/Me/SD","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{"core":{"sourceId":"Item.EtAtBWxG9aujAxKn"}},"_id":"vcDgHmO9EhyzmTRj"}
{"_id":"wK30vs0JNMznlzWU","name":"Spells • Other Realm Closed List","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"y0bshWPNyGl1THYy","name":"Awareness • Senses","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"In/SD/In","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}
{"_id":"zyMFRGhlL3fuRjab","name":"Weapon • 1-H Edged","type":"skill_category","img":"systems/rmss/assets/default/skill_category.svg","data":{"description":"Description here.","applicable_stats":"St/Ag/St","development_cost":"0","ranks":0,"new_ranks":0,"rank_bonus":0,"stat_bonus":0,"prof_bonus":0,"special_bonus_1":0,"special_bonus_2":0,"total_bonus":0,"favorite":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jFAyH93PxEe1ncxK":3},"flags":{}}

View File

@ -15,8 +15,8 @@ import RMSSTransportSheet from "./module/sheets/items/rmss_transport_sheet.js";
import RMSSWeaponSheet from "./module/sheets/items/rmss_weapon_sheet.js";
import RMSSHerbOrPoisonSheet from "./module/sheets/items/rmss_herb_or_poison_sheet.js";
import RMSSSpellSheet from "./module/sheets/spells/rmss_spell_sheet.js";
import RMSSSkillCategorySheet from "./module/sheets/skills/rmss_skill_category_sheet.js"
import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js"
import RMSSSkillCategorySheet from "./module/sheets/skills/rmss_skill_category_sheet.js";
import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js";
import RMSSPlayerSheet from "./module/sheets/actors/rmss_player_sheet.js";
@ -37,7 +37,7 @@ async function preloadHandlebarsTemplates() {
"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-skills-grid.html"
]
];
return loadTemplates(templatePaths);
}

View File

@ -3,60 +3,60 @@
{{ localize "rmss.pc_sheet_armor_info.armor_type" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.armor_type" value="{{data.armor_info.armor_type}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.armor_type" value="{{system.armor_info.armor_type}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.mmp" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.mmp" value="{{data.armor_info.mmp}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.mmp" value="{{system.armor_info.mmp}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.weight_penalty" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.weight_penalty" value="{{data.armor_info.weight_penalty}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.weight_penalty" value="{{system.armor_info.weight_penalty}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.missile_penalty" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.missile_penalty" value="{{data.armor_info.missile_penalty}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.missile_penalty" value="{{system.armor_info.missile_penalty}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.quickness_penalty" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.quickness_penalty" value="{{data.armor_info.quickness_penalty}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.quickness_penalty" value="{{system.armor_info.quickness_penalty}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.quickness_bonus" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.quickness_bonus" value="{{data.armor_info.quickness_bonus}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.quickness_bonus" value="{{system.armor_info.quickness_bonus}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.adrenal_defense" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.adrenal_defense" value="{{data.armor_info.adrenal_defense}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.adrenal_defense" value="{{system.armor_info.adrenal_defense}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.shield_bonus" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.shield_bonus" value="{{data.armor_info.shield_bonus}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.shield_bonus" value="{{system.armor_info.shield_bonus}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.magic" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.magic" value="{{data.armor_info.magic}}" data-dtype="String"/>
<input type="text" name="system.armor_info.magic" value="{{system.armor_info.magic}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.total_db" }}
</div>
<div class="label-name">
<input type="text" name="data.armor_info.total_db" value="{{data.armor_info.total_db}}" data-dtype="Number"/>
<input type="text" name="system.armor_info.total_db" value="{{system.armor_info.total_db}}" data-dtype="Number"/>
</div>
</section>

View File

@ -3,48 +3,48 @@
{{ localize "rmss.pc_sheet_background_info.nationality" }}
</div>
<div class="label-name">
<input type="text" name="data.background.nationality" value="{{data.background.nationality}}" data-dtype="String"/>
<input type="text" name="system.background.nationality" value="{{system.background.nationality}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.home_town" }}
</div>
<div class="label-name">
<input type="text" name="data.background.home_town" value="{{data.background.home_town}}" data-dtype="String"/>
<input type="text" name="system.background.home_town" value="{{system.background.home_town}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.deity" }}
</div>
<div class="label-name">
<input type="text" name="data.background.deity" value="{{data.background.deity}}" data-dtype="String"/>
<input type="text" name="system.background.deity" value="{{system.background.deity}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.patron" }}
</div>
<div class="label-name">
<input type="text" name="data.background.patron" value="{{data.background.patron}}" data-dtype="String"/>
<input type="text" name="system.background.patron" value="{{system.background.patron}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.parents" }}
</div>
<div class="label-name">
<input type="text" name="data.background.parents" value="{{data.background.parents}}" data-dtype="String"/>
<input type="text" name="system.background.parents" value="{{system.background.parents}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.spouse" }}
</div>
<div class="label-name">
<input type="text" name="data.background.spouse" value="{{data.background.spouse}}" data-dtype="String"/>
<input type="text" name="system.background.spouse" value="{{system.background.spouse}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.children" }}
</div>
<div class="label-name">
<input type="text" name="data.background.children" value="{{data.background.children}}" data-dtype="String"/>
<input type="text" name="system.background.children" value="{{system.background.children}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_background_info.other" }}
</div>
<div class="label-name">
<input type="text" name="data.background.other" value="{{data.background.other}}" data-dtype="String"/>
<input type="text" name="system.background.other" value="{{system.background.other}}" data-dtype="String"/>
</div>
</section>

View File

@ -3,13 +3,13 @@
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.ranks" }}</div></th>
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.total_bonus" }}</div></th>
{{#each playerskill as |skill id|}}
{{#if skill.data.favorite}}
{{#if skill.system.favorite}}
<tr class="item" data-item-id="{{skill._id}}">
<td><div class="skill-name">
<h4>{{skill.name}}</h4>
</div></td>
<td><div class="skill-entry item-prop">{{skill.data.ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.total_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.total_bonus}}</div></td>
</tr>
{{/if}}
{{/each}}

View File

@ -3,24 +3,24 @@
{{ localize "rmss.pc_sheet_fixed_info.race" }}
</div>
<div class="label-name">
<input type="text" name="data.fixed_info.race" value="{{data.fixed_info.race}}" data-dtype="String"/>
<input type="text" name="system.fixed_info.race" value="{{system.fixed_info.race}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.profession" }}
</div>
<div class="label-name">
<input type="text" name="data.fixed_info.profession" value="{{data.fixed_info.profession}}" data-dtype="String"/>
<input type="text" name="system.fixed_info.profession" value="{{system.fixed_info.profession}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.training_packages" }}
</div>
<div class="label-name">
<input type="text" name="data.fixed_info.training_packages" value="{{data.fixed_info.training_packages}}" data-dtype="String"/>
<input type="text" name="system.fixed_info.training_packages" value="{{system.fixed_info.training_packages}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.realm" }}
</div>
<div class="label-name">
<input type="text" name="data.fixed_info.realm" value="{{data.fixed_info.realm}}" data-dtype="String"/>
<input type="text" name="system.fixed_info.realm" value="{{system.fixed_info.realm}}" data-dtype="String"/>
</div>
</section>

View File

@ -12,13 +12,13 @@
</div></th>
{{#each gear as |item id|}}
<tr class="item" data-item-id="{{item._id}}">
<td><div class="item-entry item-prop"><input type="checkbox" name="data.favorite" {{checked item.data.favorite}}/></div></td>
<td><div class="item-entry item-prop">{{item.data.quantity}}</div></td>
<td><div class="item-entry item-prop"><input type="checkbox" name="system.favorite" {{checked item.system.favorite}}/></div></td>
<td><div class="item-entry item-prop">{{item.system.quantity}}</div></td>
<td><div class="item-name">
<h4>{{item.name}}</h4>
</div></td>
<td><div class="item-entry item-prop">{{item.data.weight}}</div></td>
<td><div class="item-entry item-prop">{{item.data.cost}}</div></td>
<td><div class="item-entry item-prop">{{item.system.weight}}</div></td>
<td><div class="item-entry item-prop">{{item.system.cost}}</div></td>
<td><div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>

View File

@ -1,14 +1,14 @@
<section class="container">
<div class="money-column">
<div class="money-name">Mithril: <input type="text" name="data.money.mithril" value="{{data.money.mithril}}" data-dtype="Number"/></div>
<div class="money-name">Platinum: <input type="text" name="data.money.platinum" value="{{data.money.platinum}}" data-dtype="Number"/></div>
<div class="money-name">Gold: <input type="text" name="data.money.gold" value="{{data.money.gold}}" data-dtype="Number"/></div>
<div class="money-name">Silver: <input type="text" name="data.money.silver" value="{{data.money.silver}}" data-dtype="Number"/></div>
<div class="money-name">Mithril: <input type="text" name="system.money.mithril" value="{{system.money.mithril}}" data-dtype="Number"/></div>
<div class="money-name">Platinum: <input type="text" name="system.money.platinum" value="{{system.money.platinum}}" data-dtype="Number"/></div>
<div class="money-name">Gold: <input type="text" name="system.money.gold" value="{{system.money.gold}}" data-dtype="Number"/></div>
<div class="money-name">Silver: <input type="text" name="system.money.silver" value="{{system.money.silver}}" data-dtype="Number"/></div>
</div>
<div class="money-column">
<div class="money-name">Bronze: <input type="text" name="data.money.bronze" value="{{data.money.bronze}}" data-dtype="Number"/></div>
<div class="money-name">Copper:<input type="text" name="data.money.copper" value="{{data.money.copper}}" data-dtype="Number"/></div>
<div class="money-name">Tin: <input type="text" name="data.money.tin" value="{{data.money.tin}}" data-dtype="Number"/></div>
<div class="money-name">Iron: <input type="text" name="data.money.iron" value="{{data.money.iron}}" data-dtype="Number"/></div>
<div class="money-name">Bronze: <input type="text" name="system.money.bronze" value="{{system.money.bronze}}" data-dtype="Number"/></div>
<div class="money-name">Copper:<input type="text" name="system.money.copper" value="{{system.money.copper}}" data-dtype="Number"/></div>
<div class="money-name">Tin: <input type="text" name="system.money.tin" value="{{system.money.tin}}" data-dtype="Number"/></div>
<div class="money-name">Iron: <input type="text" name="system.money.iron" value="{{system.money.iron}}" data-dtype="Number"/></div>
</div>
</section>

View File

@ -3,48 +3,48 @@
{{ localize "rmss.pc_sheet_race_stat_fixed_info.soul_departure" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.soul_departure_rounds" value="{{data.race_stat_fixed_info.soul_departure_rounds}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.soul_departure_rounds" value="{{system.race_stat_fixed_info.soul_departure_rounds}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recovery_multiplier" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.recovery_multiplier" value="{{data.race_stat_fixed_info.recovery_multiplier}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.recovery_multiplier" value="{{system.race_stat_fixed_info.recovery_multiplier}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.body_dev_progression" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.body_development_progression" value="{{data.race_stat_fixed_info.body_development_progression}}" data-dtype="String"/>
<input type="text" name="system.race_stat_fixed_info.body_development_progression" value="{{system.race_stat_fixed_info.body_development_progression}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.pp_dev_progression" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.pp_development_progression" value="{{data.race_stat_fixed_info.pp_development_progression}}" data-dtype="String"/>
<input type="text" name="system.race_stat_fixed_info.pp_development_progression" value="{{system.race_stat_fixed_info.pp_development_progression}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_hour" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.recover_hits_per_hour_resting" value="{{data.race_stat_fixed_info.recover_hits_per_hour_resting}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.recover_hits_per_hour_resting" value="{{system.race_stat_fixed_info.recover_hits_per_hour_resting}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_sleep_cycle" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.recover_hits_per_sleep_cycle" value="{{data.race_stat_fixed_info.recover_hits_per_sleep_cycle}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.recover_hits_per_sleep_cycle" value="{{system.race_stat_fixed_info.recover_hits_per_sleep_cycle}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_hour" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.recover_pp_per_hour_resting" value="{{data.race_stat_fixed_info.recover_pp_per_hour_resting}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.recover_pp_per_hour_resting" value="{{system.race_stat_fixed_info.recover_pp_per_hour_resting}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_sleep_cycle" }}
</div>
<div class="label-name">
<input type="text" name="data.race_stat_fixed_info.recover_pp_per_sleep_cycle" value="{{data.race_stat_fixed_info.recover_pp_per_sleep_cycle}}" data-dtype="Number"/>
<input type="text" name="system.race_stat_fixed_info.recover_pp_per_sleep_cycle" value="{{system.race_stat_fixed_info.recover_pp_per_sleep_cycle}}" data-dtype="Number"/>
</div>
</section>

View File

@ -5,7 +5,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.channeling" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.channeling}}</h4>
<h4>{{system.resistance_rolls.channeling}}</h4>
</div>
</li>
@ -14,7 +14,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.essence" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.essence}}</h4>
<h4>{{system.resistance_rolls.essence}}</h4>
</div>
</li>
@ -23,7 +23,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.mentalism" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.mentalism}}</h4>
<h4>{{system.resistance_rolls.mentalism}}</h4>
</div>
</li>
@ -32,7 +32,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.chann_ess" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.chann_ess}}</h4>
<h4>{{system.resistance_rolls.chann_ess}}</h4>
</div>
</li>
@ -41,7 +41,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.chann_ment" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.chann_ment}}</h4>
<h4>{{system.resistance_rolls.chann_ment}}</h4>
</div>
</li>
@ -50,7 +50,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.ess_ment" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.ess_ment}}</h4>
<h4>{{system.resistance_rolls.ess_ment}}</h4>
</div>
</li>
@ -59,7 +59,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.arcane" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.arcane}}</h4>
<h4>{{system.resistance_rolls.arcane}}</h4>
</div>
</li>
@ -68,7 +68,7 @@
<h4>{{ localize "rmss.pc_sheet_resistances.poison_disease" }}</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.poison_disease}}</h4>
<h4>{{system.resistance_rolls.poison_disease}}</h4>
</div>
</li>
@ -77,7 +77,7 @@
<h4>Fear</h4>
</div>
<div class="label-name">
<h4>{{data.resistance_rolls.fear}}</h4>
<h4>{{system.resistance_rolls.fear}}</h4>
</div>
</li>
</ol>

View File

@ -3,72 +3,72 @@
{{ localize "rmss.pc_sheet_role_traits.appearance" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.appearance" value="{{data.role_traits.appearance}}" data-dtype="Number"/>
<input type="text" name="system.role_traits.appearance" value="{{system.role_traits.appearance}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.sex" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.sex" value="{{data.role_traits.sex}}" data-dtype="String"/>
<input type="text" name="system.role_traits.sex" value="{{system.role_traits.sex}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.skin" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.skin" value="{{data.role_traits.skin}}" data-dtype="String"/>
<input type="text" name="system.role_traits.skin" value="{{system.role_traits.skin}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.apparent_age" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.apparent_age" value="{{data.role_traits.apparent_age}}" data-dtype="Number"/>
<input type="text" name="system.role_traits.apparent_age" value="{{system.role_traits.apparent_age}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.actual_age" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.actual_age" value="{{data.role_traits.actual_age}}" data-dtype="Number"/>
<input type="text" name="system.role_traits.actual_age" value="{{system.role_traits.actual_age}}" data-dtype="Number"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.height" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.height" value="{{data.role_traits.height}}" data-dtype="String"/>
<input type="text" name="system.role_traits.height" value="{{system.role_traits.height}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.weight" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.weight" value="{{data.role_traits.weight}}" data-dtype="String"/>
<input type="text" name="system.role_traits.weight" value="{{system.role_traits.weight}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.hair" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.hair" value="{{data.role_traits.hair}}" data-dtype="String"/>
<input type="text" name="system.role_traits.hair" value="{{system.role_traits.hair}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.eyes" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.eyes" value="{{data.role_traits.eyes}}" data-dtype="String"/>
<input type="text" name="system.role_traits.eyes" value="{{system.role_traits.eyes}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.personality" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.personality" value="{{data.role_traits.personality}}" data-dtype="String"/>
<input type="text" name="system.role_traits.personality" value="{{system.role_traits.personality}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.motivations" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.motivations" value="{{data.role_traits.motivations}}" data-dtype="String"/>
<input type="text" name="system.role_traits.motivations" value="{{system.role_traits.motivations}}" data-dtype="String"/>
</div>
<div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.alignment" }}
</div>
<div class="label-name">
<input type="text" name="data.role_traits.alignment" value="{{data.role_traits.alignment}}" data-dtype="String"/>
<input type="text" name="system.role_traits.alignment" value="{{system.role_traits.alignment}}" data-dtype="String"/>
</div>
</section>

View File

@ -15,16 +15,16 @@
</div>
{{#each skillcat as |skill_category id|}}
<div>{{skill_category.name}}</div>
<div>{{skill_category.data.applicable_stats}}</div>
<div>{{skill_category.data.development_cost}}</div>
<div>{{skill_category.data.ranks}}</div>
<div>{{skill_category.data.new_ranks}}</div>
<div>{{skill_category.data.rank_bonus}}</div>
<div>{{skill_category.data.stat_bonus}}</div>
<div>{{skill_category.data.prof_bonus}}</div>
<div>{{skill_category.data.special_bonus_1}}</div>
<div>{{skill_category.data.special_bonus_2}}</div>
<div>{{skill_category.data.total_bonus}}</div>
<div>{{skill_category.system.applicable_stats}}</div>
<div>{{skill_category.system.development_cost}}</div>
<div>{{skill_category.system.ranks}}</div>
<div>{{skill_category.system.new_ranks}}</div>
<div>{{skill_category.system.rank_bonus}}</div>
<div>{{skill_category.system.stat_bonus}}</div>
<div>{{skill_category.system.prof_bonus}}</div>
<div>{{skill_category.system.special_bonus_1}}</div>
<div>{{skill_category.system.special_bonus_2}}</div>
<div>{{skill_category.system.total_bonus}}</div>
<div>
<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>

View File

@ -16,16 +16,16 @@
{{#each skillcat as |skill_category id|}}
<tr class="item" data-item-id="{{skill_category._id}}">
<td><div class="table-font table-bold">{{skill_category.name}}</div></td>
<td><div class="table-font">{{skill_category.data.applicable_stats}}</div></td>
<td><div class="table-font">{{skill_category.data.development_cost}}</div></td>
<td><div class="table-font">{{skill_category.data.ranks}}</div></td>
<td><div class="table-font">{{skill_category.data.new_ranks}}</div></td>
<td><div class="table-font">{{skill_category.data.rank_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.stat_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.prof_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.special_bonus_1}}</div></td>
<td><div class="table-font">{{skill_category.data.special_bonus_2}}</div></td>
<td><div class="table-font">{{skill_category.data.total_bonus}}</div></td>
<td><div class="table-font">{{skill_category.system.applicable_stats}}</div></td>
<td><div class="table-font">{{skill_category.system.development_cost}}</div></td>
<td><div class="table-font">{{skill_category.system.ranks}}</div></td>
<td><div class="table-font">{{skill_category.system.new_ranks}}</div></td>
<td><div class="table-font">{{skill_category.system.rank_bonus}}</div></td>
<td><div class="table-font">{{skill_category.system.stat_bonus}}</div></td>
<td><div class="table-font">{{skill_category.system.prof_bonus}}</div></td>
<td><div class="table-font">{{skill_category.system.special_bonus_1}}</div></td>
<td><div class="table-font">{{skill_category.system.special_bonus_2}}</div></td>
<td><div class="table-font">{{skill_category.system.total_bonus}}</div></td>
<td><div class="table-controls">
<a class="item-edit" title="Edit Category"><i class="fas fa-edit"></i></a>
<a class="item-delete" title="Delete Category"><i class="fas fa-trash"></i></a>

View File

@ -13,16 +13,16 @@
<a class="item-create" title="Create Skill" data-type="skill"><i class="fas fa-plus"></i>{{ localize "rmss.pc_sheet_skills.add_skill" }}</a>
</div>
{{#each playerskill as |skill id|}}
<div><input type="checkbox" name="data.favorite" {{checked skill.data.favorite}}/></div>
<div><input type="checkbox" name="system.favorite" {{checked skill.system.favorite}}/></div>
<div>{{skill.name}}</div>
<div>{{skill.data.ranks}}</div>
<div>{{skill.data.new_ranks}}</div>
<div>{{skill.data.rank_bonus}}</div>
<div>{{skill.data.category_bonus}}</div>
<div>{{skill.data.item_bonus}}</div>
<div>{{skill.data.special_bonus_1}}</div>
<div>{{skill.data.special_bonus_2}}</div>
<div>{{skill.data.total_bonus}}</div>
<div>{{skill.system.ranks}}</div>
<div>{{skill.system.new_ranks}}</div>
<div>{{skill.system.rank_bonus}}</div>
<div>{{skill.system.category_bonus}}</div>
<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>

View File

@ -14,18 +14,18 @@
</div></th>
{{#each playerskill as |skill id|}}
<tr class="item" data-item-id="{{skill._id}}">
<td><div class="skill-entry item-prop"><input type="checkbox" name="data.favorite" {{checked skill.data.favorite}}/></div></td>
<td><div class="skill-entry item-prop"><input type="checkbox" name="system.favorite" {{checked skill.system.favorite}}/></div></td>
<td><div class="skill-name">
<h4>{{skill.name}}</h4>
</div></td>
<td><div class="skill-entry item-prop">{{skill.data.ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.new_ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.rank_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.category_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.item_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.special_bonus_1}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.special_bonus_2}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.total_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.new_ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.rank_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.category_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.item_bonus}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.special_bonus_1}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.special_bonus_2}}</div></td>
<td><div class="skill-entry item-prop">{{skill.system.total_bonus}}</div></td>
<td><div class="skill-controls">
<a class="skill-control item-edit" title="Edit Skill"><i class="fas fa-edit"></i></a>
<a class="skill-control item-delete" title="Delete Skill"><i class="fas fa-trash"></i></a>

View File

@ -16,27 +16,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.agility.temp" value="{{data.stats.agility.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.agility.temp" value="{{system.stats.agility.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.agility.potential" value="{{data.stats.agility.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.agility.potential" value="{{system.stats.agility.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.agility.basic_bonus" value="{{data.stats.agility.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.agility.basic_bonus" value="{{system.stats.agility.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.agility.racial_bonus" value="{{data.stats.agility.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.agility.racial_bonus" value="{{system.stats.agility.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.agility.special_bonus" value="{{data.stats.agility.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.agility.special_bonus" value="{{system.stats.agility.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.agility.stat_bonus}}
{{system.stats.agility.stat_bonus}}
</div>
</li>
@ -46,27 +46,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.constitution.temp" value="{{data.stats.constitution.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.constitution.temp" value="{{system.stats.constitution.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.constitution.potential" value="{{data.stats.constitution.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.constitution.potential" value="{{system.stats.constitution.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.constitution.basic_bonus" value="{{data.stats.constitution.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.constitution.basic_bonus" value="{{system.stats.constitution.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.constitution.racial_bonus" value="{{data.stats.constitution.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.constitution.racial_bonus" value="{{system.stats.constitution.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.constitution.special_bonus" value="{{data.stats.constitution.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.constitution.special_bonus" value="{{system.stats.constitution.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.constitution.stat_bonus}}
{{system.stats.constitution.stat_bonus}}
</div>
</li>
@ -76,27 +76,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.memory.temp" value="{{data.stats.memory.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.memory.temp" value="{{system.stats.memory.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.memory.potential" value="{{data.stats.memory.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.memory.potential" value="{{system.stats.memory.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.memory.basic_bonus" value="{{data.stats.memory.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.memory.basic_bonus" value="{{system.stats.memory.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.memory.racial_bonus" value="{{data.stats.memory.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.memory.racial_bonus" value="{{system.stats.memory.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.memory.special_bonus" value="{{data.stats.memory.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.memory.special_bonus" value="{{system.stats.memory.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.memory.stat_bonus}}
{{system.stats.memory.stat_bonus}}
</div>
</li>
@ -106,27 +106,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.reasoning.temp" value="{{data.stats.reasoning.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.reasoning.temp" value="{{system.stats.reasoning.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.reasoning.potential" value="{{data.stats.reasoning.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.reasoning.potential" value="{{system.stats.reasoning.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.reasoning.basic_bonus" value="{{data.stats.reasoning.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.reasoning.basic_bonus" value="{{system.stats.reasoning.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.reasoning.racial_bonus" value="{{data.stats.reasoning.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.reasoning.racial_bonus" value="{{system.stats.reasoning.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.reasoning.special_bonus" value="{{data.stats.reasoning.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.reasoning.special_bonus" value="{{system.stats.reasoning.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.reasoning.stat_bonus}}
{{system.stats.reasoning.stat_bonus}}
</div>
</li>
@ -136,27 +136,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.self_discipline.temp" value="{{data.stats.self_discipline.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.self_discipline.temp" value="{{system.stats.self_discipline.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.self_discipline.potential" value="{{data.stats.self_discipline.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.self_discipline.potential" value="{{system.stats.self_discipline.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.self_discipline.basic_bonus" value="{{data.stats.self_discipline.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.self_discipline.basic_bonus" value="{{system.stats.self_discipline.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.self_discipline.racial_bonus" value="{{data.stats.self_discipline.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.self_discipline.racial_bonus" value="{{system.stats.self_discipline.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.self_discipline.special_bonus" value="{{data.stats.self_discipline.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.self_discipline.special_bonus" value="{{system.stats.self_discipline.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.self_discipline.stat_bonus}}
{{system.stats.self_discipline.stat_bonus}}
</div>
</li>
@ -166,27 +166,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.empathy.temp" value="{{data.stats.empathy.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.empathy.temp" value="{{system.stats.empathy.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.empathy.potential" value="{{data.stats.empathy.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.empathy.potential" value="{{system.stats.empathy.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.empathy.basic_bonus" value="{{data.stats.empathy.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.empathy.basic_bonus" value="{{system.stats.empathy.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.empathy.racial_bonus" value="{{data.stats.empathy.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.empathy.racial_bonus" value="{{system.stats.empathy.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.empathy.special_bonus" value="{{data.stats.empathy.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.empathy.special_bonus" value="{{system.stats.empathy.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.empathy.stat_bonus}}
{{system.stats.empathy.stat_bonus}}
</div>
</li>
@ -196,27 +196,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.intuition.temp" value="{{data.stats.intuition.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.intuition.temp" value="{{system.stats.intuition.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.intuition.potential" value="{{data.stats.intuition.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.intuition.potential" value="{{system.stats.intuition.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.intuition.basic_bonus" value="{{data.stats.intuition.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.intuition.basic_bonus" value="{{system.stats.intuition.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.intuition.racial_bonus" value="{{data.stats.intuition.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.intuition.racial_bonus" value="{{system.stats.intuition.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.intuition.special_bonus" value="{{data.stats.intuition.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.intuition.special_bonus" value="{{system.stats.intuition.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.intuition.stat_bonus}}
{{system.stats.intuition.stat_bonus}}
</div>
</li>
@ -226,27 +226,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.presence.temp" value="{{data.stats.presence.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.presence.temp" value="{{system.stats.presence.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.presence.potential" value="{{data.stats.presence.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.presence.potential" value="{{system.stats.presence.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.presence.basic_bonus" value="{{data.stats.presence.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.presence.basic_bonus" value="{{system.stats.presence.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.presence.racial_bonus" value="{{data.stats.presence.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.presence.racial_bonus" value="{{system.stats.presence.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.presence.special_bonus" value="{{data.stats.presence.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.presence.special_bonus" value="{{system.stats.presence.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.presence.stat_bonus}}
{{system.stats.presence.stat_bonus}}
</div>
</li>
@ -256,27 +256,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.quickness.temp" value="{{data.stats.quickness.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.quickness.temp" value="{{system.stats.quickness.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.quickness.potential" value="{{data.stats.quickness.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.quickness.potential" value="{{system.stats.quickness.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.quickness.basic_bonus" value="{{data.stats.quickness.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.quickness.basic_bonus" value="{{system.stats.quickness.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.quickness.racial_bonus" value="{{data.stats.quickness.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.quickness.racial_bonus" value="{{system.stats.quickness.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.quickness.special_bonus" value="{{data.stats.quickness.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.quickness.special_bonus" value="{{system.stats.quickness.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.quickness.stat_bonus}}
{{system.stats.quickness.stat_bonus}}
</div>
</li>
@ -286,27 +286,27 @@
</div>
<div class="stat-name">
<input type="text" name="data.stats.strength.temp" value="{{data.stats.strength.temp}}" data-dtype="Number"/>
<input type="text" name="system.stats.strength.temp" value="{{system.stats.strength.temp}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.strength.potential" value="{{data.stats.strength.potential}}" data-dtype="Number"/>
<input type="text" name="system.stats.strength.potential" value="{{system.stats.strength.potential}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.strength.basic_bonus" value="{{data.stats.strength.basic_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.strength.basic_bonus" value="{{system.stats.strength.basic_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.strength.racial_bonus" value="{{data.stats.strength.racial_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.strength.racial_bonus" value="{{system.stats.strength.racial_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
<input type="text" name="data.stats.strength.special_bonus" value="{{data.stats.strength.special_bonus}}" data-dtype="Number"/>
<input type="text" name="system.stats.strength.special_bonus" value="{{system.stats.strength.special_bonus}}" data-dtype="Number"/>
</div>
<div class="stat-name">
{{data.stats.strength.stat_bonus}}
{{system.stats.strength.stat_bonus}}
</div>
</li>
</ol>

View File

@ -17,17 +17,17 @@
<div class="resource-entry">
{{ localize "rmss.player_character.resources.hits" }}
<h4><input name="data.attributes.hits.current" type="text" value="{{data.attributes.hits.current}}"/>/<input name="data.attributes.hits.max" type="text" value="{{data.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 class="resource-entry">
{{ localize "rmss.player_character.resources.exhaustion_points" }}
<h4><input name="data.attributes.exhaustion_points.current" type="text" value="{{data.attributes.exhaustion_points.current}}"/>/<input name="data.attributes.exhaustion_points.max" type="text" value="{{data.attributes.exhaustion_points.max}}"/></h4>
<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>
</div>
<div class="resource-entry">
{{ localize "rmss.player_character.resources.power_points" }}
<h4><input name="data.attributes.power_points.current" type="text" value="{{data.attributes.power_points.current}}"/>/<input name="data.attributes.power_points.max" type="text" value="{{data.attributes.power_points.max}}"/></h4>
<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>
</div>
</div>
@ -41,12 +41,12 @@
<div class="header-text flexrow">
<label for="level">{{ localize "rmss.player_character.level" }}</label>
<input name="level" type="text" value="{{data.attributes.level.value}}"/>
<input name="level" type="text" value="{{system.attributes.level.value}}"/>
</div>
<div class="header-text flexrow">
<label for="experience">{{ localize "rmss.player_character.experience" }}</label>
<input name="experience" type="text" value="{{data.attributes.experience_points.value}}"/>
<input name="experience" type="text" value="{{system.attributes.experience_points.value}}"/>
</div>
</div>

View File

@ -14,23 +14,23 @@
<th>{{localize "rmss.armor.at"}}</th>
</tr>
<td>
<input name="data.quantity" type="text" value="{{data.quantity}}" data-dtype="Number"/>
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
</td>
<td>
<input name="data.weight" type="text" value="{{data.weight}}" data-dtype="Number"/>
<input name="system.weight" type="text" value="{{system.weight}}" data-dtype="Number"/>
</td>
<td>
<input name="data.cost" type="text" value="{{data.cost}}" data-dtype="String"/>
<input name="system.cost" type="text" value="{{system.cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.prod_time" type="text" value="{{data.prod_time}}" data-dtype="String"/>
<input name="system.prod_time" type="text" value="{{system.prod_time}}" data-dtype="String"/>
</td>
<td>
<input name="data.at" type="text" value="{{data.at}}" data-dtype="Number"/>
<input name="system.at" type="text" value="{{system.at}}" data-dtype="Number"/>
</td>
</table>
{{localize "rmss.item.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -15,26 +15,26 @@
<th>{{localize "rmss.herb_or_poison.af"}}</th>
</tr>
<td>
<input name="data.quantity" type="text" value="{{data.quantity}}" data-dtype="Number"/>
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
</td>
<td>
<input name="data.weight" type="text" value="{{data.weight}}" data-dtype="Number"/>
<input name="system.weight" type="text" value="{{system.weight}}" data-dtype="Number"/>
</td>
<td>
<input name="data.codes" type="text" value="{{data.codes}}" data-dtype="String"/>
<input name="system.codes" type="text" value="{{system.codes}}" data-dtype="String"/>
</td>
<td>
<input name="data.form_and_prep" type="text" value="{{data.form_and_prep}}" data-dtype="String"/>
<input name="system.form_and_prep" type="text" value="{{system.form_and_prep}}" data-dtype="String"/>
</td>
<td>
<input name="data.cost" type="text" value="{{data.cost}}" data-dtype="String"/>
<input name="system.cost" type="text" value="{{system.cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.af" type="text" value="{{data.af}}" data-dtype="Number"/>
<input name="system.af" type="text" value="{{system.af}}" data-dtype="Number"/>
</td>
</table>
{{localize "rmss.item.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -13,20 +13,20 @@
<th>{{localize "rmss.item.prod_time"}}</th>
</tr>
<td>
<input name="data.quantity" type="text" value="{{data.quantity}}" data-dtype="Number"/>
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
</td>
<td>
<input name="data.weight" type="text" value="{{data.weight}}" data-dtype="Number"/>
<input name="system.weight" type="text" value="{{system.weight}}" data-dtype="Number"/>
</td>
<td>
<input name="data.cost" type="text" value="{{data.cost}}" data-dtype="String"/>
<input name="system.cost" type="text" value="{{system.cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.prod_time" type="text" value="{{data.prod_time}}" data-dtype="String"/>
<input name="system.prod_time" type="text" value="{{system.prod_time}}" data-dtype="String"/>
</td>
</table>
{{localize "rmss.item.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -17,34 +17,34 @@
<th>{{localize "rmss.transport.offensive_bonus"}}</th>
</tr>
<td>
<input name="data.cost" type="text" value="{{data.cost}}" data-dtype="String"/>
<input name="system.cost" type="text" value="{{system.cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.feet_per_round" type="text" value="{{data.feet_per_round}}" data-dtype="Number"/>
<input name="system.feet_per_round" type="text" value="{{system.feet_per_round}}" data-dtype="Number"/>
</td>
<td>
<input name="data.miles_per_hour" type="text" value="{{data.miles_per_hour}}" data-dtype="Number"/>
<input name="system.miles_per_hour" type="text" value="{{system.miles_per_hour}}" data-dtype="Number"/>
</td>
<td>
<input name="data.maneuver" type="text" value="{{data.maneuver}}" data-dtype="Number"/>
<input name="system.maneuver" type="text" value="{{system.maneuver}}" data-dtype="Number"/>
</td>
<td>
<input name="data.height" type="text" value="{{data.height}}" data-dtype="Number"/>
<input name="system.height" type="text" value="{{system.height}}" data-dtype="Number"/>
</td>
<td>
<input name="data.weight" type="text" value="{{data.weight}}" data-dtype="Number"/>
<input name="system.weight" type="text" value="{{system.weight}}" data-dtype="Number"/>
</td>
<td>
<input name="data.capacity" type="text" value="{{data.capacity}}" data-dtype="Number"/>
<input name="system.capacity" type="text" value="{{system.capacity}}" data-dtype="Number"/>
</td>
<td>
<input name="data.offensive_bonus" type="text" value="{{data.offensive_bonus}}" data-dtype="Number"/>
<input name="system.offensive_bonus" type="text" value="{{system.offensive_bonus}}" data-dtype="Number"/>
</td>
</table>
{{localize "rmss.item.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -18,33 +18,33 @@
</tr>
<td>
<input name="data.quantity" type="text" value="{{data.quantity}}" data-dtype="Number"/>
<input name="system.quantity" type="text" value="{{system.quantity}}" data-dtype="Number"/>
</td>
<td>
<input name="data.cost" type="text" value="{{data.cost}}" data-dtype="String"/>
<input name="system.cost" type="text" value="{{system.cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.type" type="text" value="{{data.type}}" data-dtype="String"/>
<input name="system.type" type="text" value="{{system.type}}" data-dtype="String"/>
</td>
<td>
<input name="data.prod_time" type="text" value="{{data.prod_time}}" data-dtype="String"/>
<input name="system.prod_time" type="text" value="{{system.prod_time}}" data-dtype="String"/>
</td>
<td>
<input name="data.weight" type="text" value="{{data.weight}}" data-dtype="Number"/>
<input name="system.weight" type="text" value="{{system.weight}}" data-dtype="Number"/>
</td>
<td>
<input name="data.breakage_range" type="text" value="{{data.breakage_range}}" data-dtype="String"/>
<input name="system.breakage_range" type="text" value="{{system.breakage_range}}" data-dtype="String"/>
</td>
<td>
<input name="data.strength" type="text" value="{{data.strength}}" data-dtype="Number"/>
<input name="system.strength" type="text" value="{{system.strength}}" data-dtype="String"/>
</td>
<td>
<input name="data.fumble_range" type="text" value="{{data.fumble_range}}" data-dtype="Number"/>
<input name="system.fumble_range" type="text" value="{{system.fumble_range}}" data-dtype="String"/>
</td>
</table>
{{localize "rmss.item.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -1,25 +1,31 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<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>
{{/if}}
</header>
<div class="sheet-content">
<div class="applicable-stats-grid-container">
<div>
Applicable Stat 1
<select name="data.app_stat_1" class="app-stat-selector" value="{{data.app_stat_1}}" itemid="{{ item._id }}">
<select name="system.app_stat_1" class="app-stat-selector" value="{{system.app_stat_1}}" itemid="{{ item._id }}">
{{selectOptions applicable_stat_list selected=applicable_stat_1_selected }}
</select>
</div>
<div>
Applicable Stat 2
<select name="data.app_stat_2" class="app-stat-selector" value="{{data.app_stat_2}}" itemid="{{ item._id }}">
<select name="system.app_stat_2" class="app-stat-selector" value="{{system.app_stat_2}}" itemid="{{ item._id }}">
{{selectOptions applicable_stat_list selected=applicable_stat_2_selected }}
</select>
</div>
<div>
Applicable Stat 2
<select name="data.app_stat_3" class="app-stat-selector" value="{{data.app_stat_3}}" itemid="{{ item._id }}">
<select name="system.app_stat_3" class="app-stat-selector" value="{{system.app_stat_3}}" itemid="{{ item._id }}">
{{selectOptions applicable_stat_list selected=applicable_stat_3_selected }}
</select>
</div>
@ -39,38 +45,38 @@
<th>{{localize "rmss.skill_category.total_bonus"}}</th>
</tr>
<td>
<input name="data.applicable_stats" type="text" value="{{data.applicable_stats}}" data-dtype="String"/>
<input name="system.applicable_stats" type="text" value="{{system.applicable_stats}}" data-dtype="String"/>
</td>
<td>
<input name="data.development_cost" type="text" value="{{data.development_cost}}" data-dtype="String"/>
<input name="system.development_cost" type="text" value="{{system.development_cost}}" data-dtype="String"/>
</td>
<td>
<input name="data.ranks" type="text" value="{{data.ranks}}" data-dtype="Number"/>
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
</td>
<td>
<input name="data.new_ranks" type="text" value="{{data.new_ranks}}" data-dtype="Number"/>
<input name="system.new_ranks" type="text" value="{{system.new_ranks}}" data-dtype="Number"/>
</td>
<td>
<input name="data.rank_bonus" type="text" value="{{data.rank_bonus}}" data-dtype="Number"/>
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.stat_bonus" type="text" value="{{data.stat_bonus}}" data-dtype="Number"/>
<input name="system.stat_bonus" type="text" value="{{system.stat_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.prof_bonus" type="text" value="{{data.prof_bonus}}" data-dtype="Number"/>
<input name="system.prof_bonus" type="text" value="{{system.prof_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.special_bonus_1" type="text" value="{{data.special_bonus_1}}" data-dtype="Number"/>
<input name="system.special_bonus_1" type="text" value="{{system.special_bonus_1}}" data-dtype="Number"/>
</td>
<td>
<input name="data.special_bonus_2" type="text" value="{{data.special_bonus_2}}" data-dtype="Number"/>
<input name="system.special_bonus_2" type="text" value="{{system.special_bonus_2}}" data-dtype="Number"/>
</td>
<td>
<input name="data.total_bonus" type="text" value="{{data.total_bonus}}" data-dtype="Number"/>
<input name="system.total_bonus" type="text" value="{{system.total_bonus}}" data-dtype="Number"/>
</td>
</table>
{{localize "rmss.skill_category.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -4,6 +4,12 @@
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
</header>
<div class="sheet-content">
<div>
Skill Category
<select name="system.category" class="app-stat-selector" value="{{system.category}}" itemid="{{ item._id }}">
{{selectOptions owned_skillcats selected=selected_skillcat }}
</select>
</div>
<div>
<table>
<tr>
@ -18,35 +24,35 @@
<th>{{localize "rmss.skill.total_bonus"}}</th>
</tr>
<td>
<input type="checkbox" name="data.favorite" {{checked data.favorite}}/>
<input type="checkbox" name="system.favorite" {{checked system.favorite}}/>
</td>
<td>
<input name="data.ranks" type="text" value="{{data.ranks}}" data-dtype="Number"/>
<input name="system.ranks" type="text" value="{{system.ranks}}" data-dtype="Number"/>
</td>
<td>
<input name="data.new_ranks" type="text" value="{{data.new_ranks}}" data-dtype="Number"/>
<input name="system.new_ranks" type="text" value="{{system.new_ranks}}" data-dtype="Number"/>
</td>
<td>
<input name="data.rank_bonus" type="text" value="{{data.rank_bonus}}" data-dtype="Number"/>
<input name="system.rank_bonus" type="text" value="{{system.rank_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.category_bonus" type="text" value="{{data.category_bonus}}" data-dtype="Number"/>
<input name="system.category_bonus" type="text" value="{{system.category_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.item_bonus" type="text" value="{{data.item_bonus}}" data-dtype="Number"/>
<input name="system.item_bonus" type="text" value="{{system.item_bonus}}" data-dtype="Number"/>
</td>
<td>
<input name="data.special_bonus_1" type="text" value="{{data.special_bonus_1}}" data-dtype="Number"/>
<input name="system.special_bonus_1" type="text" value="{{system.special_bonus_1}}" data-dtype="Number"/>
</td>
<td>
<input name="data.special_bonus_2" type="text" value="{{data.special_bonus_2}}" data-dtype="Number"/>
<input name="system.special_bonus_2" type="text" value="{{system.special_bonus_2}}" data-dtype="Number"/>
</td>
<td>
<input name="data.total_bonus" type="text" value="{{data.total_bonus}}" data-dtype="Number"/>
<input name="system.total_bonus" type="text" value="{{system.total_bonus}}" data-dtype="Number"/>
</td>
</table>
{{localize "rmss.skill.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>

View File

@ -16,27 +16,27 @@
</tr>
<td>
<input name="data.spell_list" type="text" value="{{data.spell_list}}" data-dtype="String"/>
<input name="system.spell_list" type="text" value="{{system.spell_list}}" data-dtype="String"/>
</td>
<td>
<input name="data.level" type="text" value="{{data.level}}" data-dtype="Number"/>
<input name="system.level" type="text" value="{{system.level}}" data-dtype="Number"/>
</td>
<td>
<input name="data.area_of_effect" type="text" value="{{data.area_of_effect}}" data-dtype="String"/>
<input name="system.area_of_effect" type="text" value="{{system.area_of_effect}}" data-dtype="String"/>
</td>
<td>
<input name="data.duration" type="text" value="{{data.duration}}" data-dtype="String"/>
<input name="system.duration" type="text" value="{{system.duration}}" data-dtype="String"/>
</td>
<td>
<input name="data.range" type="text" value="{{data.range}}" data-dtype="Number"/>
<input name="system.range" type="text" value="{{system.range}}" data-dtype="Number"/>
</td>
<td>
<input name="data.type" type="text" value="{{data.type}}" data-dtype="String"/>
<input name="system.type" type="text" value="{{system.type}}" data-dtype="String"/>
</td>
</table>
{{localize "rmss.spell.description"}}
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
{{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</form>