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", fullname: "Strength",
shortname: "St" shortname: "St"
} }
} }

View File

@ -10,8 +10,8 @@ export class RMSSActor extends Actor {
} }
prepareDerivedData() { prepareDerivedData() {
const actorData = this.data; const actorData = this;
const data = actorData.data; const systemData = actorData.system;
const flags = actorData.flags.rmss || {}; const flags = actorData.flags.rmss || {};
// Make separate methods for each Actor type (character, npc, etc.) to keep // Make separate methods for each Actor type (character, npc, etc.) to keep
@ -26,14 +26,15 @@ export class RMSSActor extends Actor {
_prepareCharacterData(actorData) { _prepareCharacterData(actorData) {
if (actorData.type !== 'character') return; if (actorData.type !== 'character') return;
// Calculate Stat Bonuses in Actor // Calculate Stat Bonuses for the Actor
this.prepareStatBonuses(actorData) this.prepareStatBonuses(actorData);
// Calculate Resistance Rolls in Actor // Calculate Resistance Rolls for the Actor
this.prepareResistanceRolls(actorData); this.prepareResistanceRolls(actorData);
// Iterate through and apply Stat bonuses for Skill Category Items // Iterate through and apply Stat bonuses for Skill Category Items
this.prepareSkillCatStatBonuses(); this.prepareSkillCategoryStatBonuses();
} }
/** /**
@ -47,48 +48,52 @@ export class RMSSActor extends Actor {
data.xp = (data.cr * data.cr) * 100; data.xp = (data.cr * data.cr) * 100;
} }
// Tally each stat bonus and populate the total field.
prepareStatBonuses(actorData) { prepareStatBonuses(actorData) {
const systemData = actorData.system;
const data = actorData.data; 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.data.stats.agility.stat_bonus = Number(data.stats.agility.racial_bonus)+Number(data.stats.agility.special_bonus)+Number(data.stats.agility.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.data.stats.constitution.stat_bonus = Number(data.stats.constitution.racial_bonus)+Number(data.stats.constitution.special_bonus)+Number(data.stats.constitution.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.data.stats.memory.stat_bonus = Number(data.stats.memory.racial_bonus)+Number(data.stats.memory.special_bonus)+Number(data.stats.memory.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.data.stats.reasoning.stat_bonus = Number(data.stats.reasoning.racial_bonus)+Number(data.stats.reasoning.special_bonus)+Number(data.stats.reasoning.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.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.system.stats.intuition.stat_bonus = Number(systemData.stats.intuition.racial_bonus)+Number(systemData.stats.intuition.special_bonus)+Number(systemData.stats.intuition.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.system.stats.presence.stat_bonus = Number(systemData.stats.presence.racial_bonus)+Number(systemData.stats.presence.special_bonus)+Number(systemData.stats.presence.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.system.stats.quickness.stat_bonus = Number(systemData.stats.quickness.racial_bonus)+Number(systemData.stats.quickness.special_bonus)+Number(systemData.stats.quickness.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.system.stats.strength.stat_bonus = Number(systemData.stats.strength.racial_bonus)+Number(systemData.stats.strength.special_bonus)+Number(systemData.stats.strength.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);
} }
prepareResistanceRolls(actorData) { // Calculate each Resistance Roll with the formula on the character sheet.
prepareResistanceRolls(actorData) { // TODO: Add Racial modifiers to resistance
const data = actorData.data; const systemData = actorData.system;
actorData.system.resistance_rolls.essence = Number(systemData.stats.empathy.stat_bonus * 3);
actorData.data.resistance_rolls.essence = Number(actorData.data.stats.empathy.stat_bonus * 3) actorData.system.resistance_rolls.channeling = Number(systemData.stats.intuition.stat_bonus * 3);
actorData.data.resistance_rolls.channeling = Number(actorData.data.stats.intuition.stat_bonus * 3) actorData.system.resistance_rolls.mentalism = Number(systemData.stats.presence.stat_bonus * 3);
actorData.data.resistance_rolls.mentalism = Number(actorData.data.stats.presence.stat_bonus * 3) actorData.system.resistance_rolls.fear = Number(systemData.stats.self_discipline.stat_bonus * 3);
actorData.data.resistance_rolls.fear = Number(actorData.data.stats.self_discipline.stat_bonus * 3) actorData.system.resistance_rolls.poison_disease = Number(systemData.stats.constitution.stat_bonus * 3);
actorData.data.resistance_rolls.poison_disease = Number(actorData.data.stats.constitution.stat_bonus * 3) actorData.system.resistance_rolls.chann_ess = Number(systemData.stats.intuition.stat_bonus) + Number(systemData.stats.empathy.stat_bonus);
actorData.data.resistance_rolls.chann_ess = Number(actorData.data.stats.intuition.stat_bonus) + Number(actorData.data.stats.empathy.stat_bonus) actorData.system.resistance_rolls.chann_ment = Number(systemData.stats.intuition.stat_bonus) + Number(systemData.stats.presence.stat_bonus);
actorData.data.resistance_rolls.chann_ment = Number(actorData.data.stats.intuition.stat_bonus) + Number(actorData.data.stats.presence.stat_bonus) actorData.system.resistance_rolls.ess_ment = Number(systemData.stats.empathy.stat_bonus) + Number(systemData.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.system.resistance_rolls.arcane = Number(systemData.stats.empathy.stat_bonus) + Number(systemData.stats.intuition.stat_bonus) + Number(systemData.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)
} }
prepareSkillCatStatBonuses() { /*prepareSkillCategoryBonuses() {
console.log("Getting Items"); 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) { for (const item of this.items) {
if (item.type === "skill_category") { if (item.type === "skill_category") {
// Get all the applicable stats for this skill category // Get all the applicable stats for this skill category
var app_stat_1 = item.data.data.app_stat_1; var app_stat_1 = item.system.app_stat_1;
var app_stat_2 = item.data.data.app_stat_2; var app_stat_2 = item.system.app_stat_2;
var app_stat_3 = item.data.data.app_stat_3; var app_stat_3 = item.system.app_stat_3;
console.log(item.name + " " + app_stat_1 + " " + app_stat_2 + " " + app_stat_3);
// If the first one is None we don't need to do anything further // If the first one is None we don't need to do anything further
if (app_stat_1 === "None") { if (app_stat_1 === "None") {
@ -106,39 +111,42 @@ export class RMSSActor extends Actor {
for (const stat in CONFIG.rmss.stats) { for (const stat in CONFIG.rmss.stats) {
// If the configured App Stat matches the one of the stats in config // If the configured App Stat matches the one of the stats in config
if (app_stat_1 === CONFIG.rmss.stats[stat].shortname) { if (app_stat_1 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found first stat: " + stat);
app_stat_1_found = true; app_stat_1_found = true;
// Get the Stat Bonus // Get the Stat Bonus
console.log(this.data.data.stats[stat].stat_bonus); applicable_stat_bonus = applicable_stat_bonus + this.system.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)
} }
if (app_stat_2 === CONFIG.rmss.stats[stat].shortname) { if (app_stat_2 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found second stat: " + stat);
app_stat_2_found = true; app_stat_2_found = true;
console.log(this.data.data.stats[stat].stat_bonus); applicable_stat_bonus = applicable_stat_bonus + this.system.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)
} }
if (app_stat_3 === CONFIG.rmss.stats[stat].shortname) { if (app_stat_3 === CONFIG.rmss.stats[stat].shortname) {
console.log("Found third stat: " + stat);
app_stat_3_found = true; app_stat_3_found = true;
console.log(this.data.data.stats[stat].stat_bonus); applicable_stat_bonus = applicable_stat_bonus + this.system.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)
} }
} }
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) { if (app_stat_1_found === true && app_stat_2_found === true && app_stat_3_found === true) {
// Apply the update if we found stat bonuses for every applicable stat // Apply the update if we found stat bonuses for every applicable stat
item.data.data.stat_bonus = applicable_stat_bonus; item.system.stat_bonus = applicable_stat_bonus;
// Update the total in the Item // 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(); 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) { async _preCreate(data, options, userId) {
await super._preCreate(data, options, userId); await super._preCreate(data, options, userId);
if (!data.img) {
if (this.data.type == "armor") { // Do not set on copied items if they have a custom Icon.
await this.data.update({img: "systems/rmss/assets/default/armor.svg"}); 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") { else if (this.type == "weapon") {
await this.data.update({img: "systems/rmss/assets/default/weapon.svg"}); await this.updateSource({img: "systems/rmss/assets/default/weapon.svg"});
} }
else if (this.data.type == "skill") { else if (this.type == "skill") {
await this.data.update({img: "systems/rmss/assets/default/skill.svg"}); await this.updateSource({img: "systems/rmss/assets/default/skill.svg"});
} }
else if (this.data.type == "skill_category") { else if (this.type == "skill_category") {
await this.data.update({img: "systems/rmss/assets/default/skill_category.svg"}); await this.updateSource({img: "systems/rmss/assets/default/skill_category.svg"});
} }
else if (this.data.type == "spell") { else if (this.type == "spell") {
await this.data.update({img: "systems/rmss/assets/default/spell.svg"}); await this.updateSource({img: "systems/rmss/assets/default/spell.svg"});
} }
else if (this.data.type == "herb_or_poison") { else if (this.type == "herb_or_poison") {
await this.data.update({img: "systems/rmss/assets/default/herb_or_poison.svg"}); await this.updateSource({img: "systems/rmss/assets/default/herb_or_poison.svg"});
} }
else if (this.data.type == "transport") { else if (this.type == "transport") {
await this.data.update({img: "systems/rmss/assets/default/transport.svg"}); await this.updateSource({img: "systems/rmss/assets/default/transport.svg"});
} }
} }
} }
calculateSkillCatTotalBonus(itemData) { calculateSkillCategoryTotalBonus(itemData) {
// Calculate Stat Bonuses if (this.type === "skill_category") {
const systemData = itemData.system;
const data = itemData.data; 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);
}
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);
} }
prepareDerivedData() { prepareDerivedData() {
const itemData = this.data; const itemData = this;
const data = itemData.data; const systemData = itemData.system;
const flags = itemData.flags.rmss || {}; const flags = itemData.flags.rmss || {};
// Make separate methods for each item type to keep things organized. // Make separate methods for each item type to keep things organized.
@ -62,16 +64,16 @@ export class RMSSItem extends Item {
//const data = itemData.data; //const data = itemData.data;
// Calculate Stat Bonuses // Calculate Stat Bonuses
this.calculateSkillCatTotalBonus(itemData); this.calculateSkillCategoryTotalBonus(itemData);
} }
_prepareSkillData(itemData) { _prepareSkillData(itemData) {
if (itemData.type !== 'skill') return; if (itemData.type !== 'skill') return;
// Make modifications to data here. For example: // Make modifications to data here. For example:
const data = itemData.data; const systemData = itemData.system;
// Calculate Stat Bonuses // 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(); const context = super.getData();
// Use a safe clone of the actor data for further operations. // 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. // 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; context.flags = actorData.flags;
// Prepare character data and items. // Prepare character data and items.
@ -30,10 +30,37 @@ export default class RMSSPlayerSheet extends ActorSheet {
if (actorData.type == 'npc') { if (actorData.type == 'npc') {
this._prepareItems(context); this._prepareItems(context);
} }
return 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) { _prepareCharacterData(context) {
} }
@ -96,7 +123,7 @@ export default class RMSSPlayerSheet extends ActorSheet {
// Render the item sheet for viewing/editing prior to the editable check. // Render the item sheet for viewing/editing prior to the editable check.
html.find('.item-edit').click(ev => { html.find('.item-edit').click(ev => {
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id")); const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id"));
console.log(this); //console.log(this);
item.sheet.render(true); item.sheet.render(true);
}); });
@ -110,7 +137,7 @@ export default class RMSSPlayerSheet extends ActorSheet {
// Delete Item // Delete Item
html.find('.item-delete').click(ev => { html.find('.item-delete').click(ev => {
const item = this.actor.items.get(ev.currentTarget.getAttribute("data-item-id")); 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(); item.delete();
}); });
} }
@ -131,8 +158,8 @@ export default class RMSSPlayerSheet extends ActorSheet {
data: data data: data
}; };
// Remove the type from the dataset since it's in the itemData.type prop. // 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! // Finally, create the item!
return await Item.create(itemData, {parent: this.actor}); 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 // Make the data available to the sheet template
getData() { async getData() {
const baseData = super.getData(); const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = { let sheetData = {
owner: this.item.isOwner, owner: this.item.isOwner,
editable :this.isEditable, editable :this.isEditable,
item: baseData.item, item: baseData.item,
data: baseData.item.data.data, system: baseData.item.system,
config: CONFIG.rmss config: CONFIG.rmss,
enrichedDescription: enrichedDescription
}; };
return sheetData; return sheetData;

View File

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

View File

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

View File

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

View File

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

View File

@ -17,8 +17,8 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
} }
// Make the data available to the sheet template // Make the data available to the sheet template
getData() { async getData() {
const baseData = super.getData(); const context = await super.getData();
// Get a list of stats that can be used as applicable stats // Get a list of stats that can be used as applicable stats
var applicable_stat_list = this.prepareApplicableStatValues(CONFIG); var applicable_stat_list = this.prepareApplicableStatValues(CONFIG);
@ -28,25 +28,25 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
var applicable_stat_2_selected = this.prepareApplicableSelectedStat("app_stat_2"); var applicable_stat_2_selected = this.prepareApplicableSelectedStat("app_stat_2");
var applicable_stat_3_selected = this.prepareApplicableSelectedStat("app_stat_3"); var applicable_stat_3_selected = this.prepareApplicableSelectedStat("app_stat_3");
// Build the string for Applicable Stats // 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) 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 //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 = { let sheetData = {
owner: this.item.isOwner, owner: this.item.isOwner,
editable :this.isEditable, editable :this.isEditable,
item: baseData.item, item: context.item,
data: baseData.item.data.data, system: context.item.system,
config: CONFIG.rmss, config: CONFIG.rmss,
applicable_stat_list: applicable_stat_list, applicable_stat_list: applicable_stat_list,
applicable_stat_1_selected: applicable_stat_1_selected, applicable_stat_1_selected: applicable_stat_1_selected,
applicable_stat_2_selected: applicable_stat_2_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; return sheetData;
} }
@ -60,19 +60,19 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
} }
prepareApplicableStatValues(CONFIG) { prepareApplicableStatValues(CONFIG) {
var applicable_stat_1_list = {None: "None"} var applicable_stat_list = {None: "None"};
// Get a list of stat shortnames from the config // Get a list of stat shortnames from the config
for (const item in CONFIG.rmss.stats) { 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 // Determine which Stat is selected for applicable stats
prepareApplicableSelectedStat(app_stat) { prepareApplicableSelectedStat(app_stat) {
var applicable_stat_selected = ""; 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; return applicable_stat_selected;
} }
@ -80,19 +80,19 @@ export default class RMSSSkillCategorySheet extends ItemSheet {
buildApplicableStatsText(app_stat_1, app_stat_2, app_stat_3) { buildApplicableStatsText(app_stat_1, app_stat_2, app_stat_3) {
if (app_stat_1 === "None") { if (app_stat_1 === "None") {
return("None") return("None");
} }
else if (app_stat_1 !== "None" && app_stat_2 === "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" ) { 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" ) { 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 { 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 // Make the data available to the sheet template
getData() { async getData() {
const baseData = super.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 = { let sheetData = {
owner: this.item.isOwner, owner: this.item.isOwner,
editable :this.isEditable, editable :this.isEditable,
item: baseData.item, item: baseData.item,
data: baseData.item.data.data, system: baseData.item.system,
config: CONFIG.rmss config: CONFIG.rmss,
owned_skillcats: owned_skillcats,
enrichedDescription: enrichedDescription,
selected_skillcat: selected_skillcat
}; };
return sheetData; 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 // Make the data available to the sheet template
getData() { async getData() {
const baseData = super.getData(); const baseData = await super.getData();
var enrichedDescription = await TextEditor.enrichHTML(this.item.system.description, {async: true});
let sheetData = { let sheetData = {
owner: this.item.isOwner, owner: this.item.isOwner,
editable :this.isEditable, editable :this.isEditable,
item: baseData.item, item: baseData.item,
data: baseData.item.data.data, system: baseData.item.system,
config: CONFIG.rmss config: CONFIG.rmss,
enrichedDescription: enrichedDescription
}; };
return sheetData; 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 RMSSWeaponSheet from "./module/sheets/items/rmss_weapon_sheet.js";
import RMSSHerbOrPoisonSheet from "./module/sheets/items/rmss_herb_or_poison_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 RMSSSpellSheet from "./module/sheets/spells/rmss_spell_sheet.js";
import RMSSSkillCategorySheet from "./module/sheets/skills/rmss_skill_category_sheet.js" import RMSSSkillCategorySheet from "./module/sheets/skills/rmss_skill_category_sheet.js";
import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js" import RMSSSkillSheet from "./module/sheets/skills/rmss_skill_sheet.js";
import RMSSPlayerSheet from "./module/sheets/actors/rmss_player_sheet.js"; import RMSSPlayerSheet from "./module/sheets/actors/rmss_player_sheet.js";
@ -37,7 +37,7 @@ async function preloadHandlebarsTemplates() {
"systems/rmss/templates/sheets/actors/parts/actor-money.html", "systems/rmss/templates/sheets/actors/parts/actor-money.html",
"systems/rmss/templates/sheets/actors/parts/actor-skill-categories-grid.html", "systems/rmss/templates/sheets/actors/parts/actor-skill-categories-grid.html",
"systems/rmss/templates/sheets/actors/parts/actor-skills-grid.html" "systems/rmss/templates/sheets/actors/parts/actor-skills-grid.html"
] ];
return loadTemplates(templatePaths); return loadTemplates(templatePaths);
} }

View File

@ -3,60 +3,60 @@
{{ localize "rmss.pc_sheet_armor_info.armor_type" }} {{ localize "rmss.pc_sheet_armor_info.armor_type" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.mmp" }} {{ localize "rmss.pc_sheet_armor_info.mmp" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.weight_penalty" }} {{ localize "rmss.pc_sheet_armor_info.weight_penalty" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.missile_penalty" }} {{ localize "rmss.pc_sheet_armor_info.missile_penalty" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.quickness_penalty" }} {{ localize "rmss.pc_sheet_armor_info.quickness_penalty" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.quickness_bonus" }} {{ localize "rmss.pc_sheet_armor_info.quickness_bonus" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.adrenal_defense" }} {{ localize "rmss.pc_sheet_armor_info.adrenal_defense" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.shield_bonus" }} {{ localize "rmss.pc_sheet_armor_info.shield_bonus" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.magic" }} {{ localize "rmss.pc_sheet_armor_info.magic" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_armor_info.total_db" }} {{ localize "rmss.pc_sheet_armor_info.total_db" }}
</div> </div>
<div class="label-name"> <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> </div>
</section> </section>

View File

@ -3,48 +3,48 @@
{{ localize "rmss.pc_sheet_background_info.nationality" }} {{ localize "rmss.pc_sheet_background_info.nationality" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.home_town" }} {{ localize "rmss.pc_sheet_background_info.home_town" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.deity" }} {{ localize "rmss.pc_sheet_background_info.deity" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.patron" }} {{ localize "rmss.pc_sheet_background_info.patron" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.parents" }} {{ localize "rmss.pc_sheet_background_info.parents" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.spouse" }} {{ localize "rmss.pc_sheet_background_info.spouse" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.children" }} {{ localize "rmss.pc_sheet_background_info.children" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_background_info.other" }} {{ localize "rmss.pc_sheet_background_info.other" }}
</div> </div>
<div class="label-name"> <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> </div>
</section> </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.ranks" }}</div></th>
<th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.total_bonus" }}</div></th> <th><div class="skill-entry skill-headeritem">{{ localize "rmss.pc_sheet_skills.total_bonus" }}</div></th>
{{#each playerskill as |skill id|}} {{#each playerskill as |skill id|}}
{{#if skill.data.favorite}} {{#if skill.system.favorite}}
<tr class="item" data-item-id="{{skill._id}}"> <tr class="item" data-item-id="{{skill._id}}">
<td><div class="skill-name"> <td><div class="skill-name">
<h4>{{skill.name}}</h4> <h4>{{skill.name}}</h4>
</div></td> </div></td>
<td><div class="skill-entry item-prop">{{skill.data.ranks}}</div></td> <td><div class="skill-entry item-prop">{{skill.system.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.total_bonus}}</div></td>
</tr> </tr>
{{/if}} {{/if}}
{{/each}} {{/each}}

View File

@ -3,24 +3,24 @@
{{ localize "rmss.pc_sheet_fixed_info.race" }} {{ localize "rmss.pc_sheet_fixed_info.race" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.profession" }} {{ localize "rmss.pc_sheet_fixed_info.profession" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.training_packages" }} {{ localize "rmss.pc_sheet_fixed_info.training_packages" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_fixed_info.realm" }} {{ localize "rmss.pc_sheet_fixed_info.realm" }}
</div> </div>
<div class="label-name"> <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> </div>
</section> </section>

View File

@ -12,13 +12,13 @@
</div></th> </div></th>
{{#each gear as |item id|}} {{#each gear as |item id|}}
<tr class="item" data-item-id="{{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"><input type="checkbox" name="system.favorite" {{checked item.system.favorite}}/></div></td>
<td><div class="item-entry item-prop">{{item.data.quantity}}</div></td> <td><div class="item-entry item-prop">{{item.system.quantity}}</div></td>
<td><div class="item-name"> <td><div class="item-name">
<h4>{{item.name}}</h4> <h4>{{item.name}}</h4>
</div></td> </div></td>
<td><div class="item-entry item-prop">{{item.data.weight}}</div></td> <td><div class="item-entry item-prop">{{item.system.weight}}</div></td>
<td><div class="item-entry item-prop">{{item.data.cost}}</div></td> <td><div class="item-entry item-prop">{{item.system.cost}}</div></td>
<td><div class="item-controls"> <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-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> <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"> <section class="container">
<div class="money-column"> <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">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="data.money.platinum" value="{{data.money.platinum}}" 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="data.money.gold" value="{{data.money.gold}}" 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="data.money.silver" value="{{data.money.silver}}" 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>
<div class="money-column"> <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">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="data.money.copper" value="{{data.money.copper}}" 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="data.money.tin" value="{{data.money.tin}}" 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="data.money.iron" value="{{data.money.iron}}" 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> </div>
</section> </section>

View File

@ -3,48 +3,48 @@
{{ localize "rmss.pc_sheet_race_stat_fixed_info.soul_departure" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.soul_departure" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recovery_multiplier" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.recovery_multiplier" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.body_dev_progression" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.body_dev_progression" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.pp_dev_progression" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.pp_dev_progression" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_hour" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_hour" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_sleep_cycle" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_hits_per_sleep_cycle" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_hour" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_hour" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_sleep_cycle" }} {{ localize "rmss.pc_sheet_race_stat_fixed_info.recover_pp_per_sleep_cycle" }}
</div> </div>
<div class="label-name"> <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> </div>
</section> </section>

View File

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

View File

@ -3,72 +3,72 @@
{{ localize "rmss.pc_sheet_role_traits.appearance" }} {{ localize "rmss.pc_sheet_role_traits.appearance" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.sex" }} {{ localize "rmss.pc_sheet_role_traits.sex" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.skin" }} {{ localize "rmss.pc_sheet_role_traits.skin" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.apparent_age" }} {{ localize "rmss.pc_sheet_role_traits.apparent_age" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.actual_age" }} {{ localize "rmss.pc_sheet_role_traits.actual_age" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.height" }} {{ localize "rmss.pc_sheet_role_traits.height" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.weight" }} {{ localize "rmss.pc_sheet_role_traits.weight" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.hair" }} {{ localize "rmss.pc_sheet_role_traits.hair" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.eyes" }} {{ localize "rmss.pc_sheet_role_traits.eyes" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.personality" }} {{ localize "rmss.pc_sheet_role_traits.personality" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.motivations" }} {{ localize "rmss.pc_sheet_role_traits.motivations" }}
</div> </div>
<div class="label-name"> <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>
<div class="label-name"> <div class="label-name">
{{ localize "rmss.pc_sheet_role_traits.alignment" }} {{ localize "rmss.pc_sheet_role_traits.alignment" }}
</div> </div>
<div class="label-name"> <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> </div>
</section> </section>

View File

@ -15,16 +15,16 @@
</div> </div>
{{#each skillcat as |skill_category id|}} {{#each skillcat as |skill_category id|}}
<div>{{skill_category.name}}</div> <div>{{skill_category.name}}</div>
<div>{{skill_category.data.applicable_stats}}</div> <div>{{skill_category.system.applicable_stats}}</div>
<div>{{skill_category.data.development_cost}}</div> <div>{{skill_category.system.development_cost}}</div>
<div>{{skill_category.data.ranks}}</div> <div>{{skill_category.system.ranks}}</div>
<div>{{skill_category.data.new_ranks}}</div> <div>{{skill_category.system.new_ranks}}</div>
<div>{{skill_category.data.rank_bonus}}</div> <div>{{skill_category.system.rank_bonus}}</div>
<div>{{skill_category.data.stat_bonus}}</div> <div>{{skill_category.system.stat_bonus}}</div>
<div>{{skill_category.data.prof_bonus}}</div> <div>{{skill_category.system.prof_bonus}}</div>
<div>{{skill_category.data.special_bonus_1}}</div> <div>{{skill_category.system.special_bonus_1}}</div>
<div>{{skill_category.data.special_bonus_2}}</div> <div>{{skill_category.system.special_bonus_2}}</div>
<div>{{skill_category.data.total_bonus}}</div> <div>{{skill_category.system.total_bonus}}</div>
<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-edit" title="Edit Category" data-item-id="{{skill_category._id}}"><i class="fas fa-edit"></i></a>
<a class="item-delete item" title="Delete Category" data-item-id="{{skill_category._id}}"><i class="fas fa-trash"></i></a> <a class="item-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|}} {{#each skillcat as |skill_category id|}}
<tr class="item" data-item-id="{{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 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.system.applicable_stats}}</div></td>
<td><div class="table-font">{{skill_category.data.development_cost}}</div></td> <td><div class="table-font">{{skill_category.system.development_cost}}</div></td>
<td><div class="table-font">{{skill_category.data.ranks}}</div></td> <td><div class="table-font">{{skill_category.system.ranks}}</div></td>
<td><div class="table-font">{{skill_category.data.new_ranks}}</div></td> <td><div class="table-font">{{skill_category.system.new_ranks}}</div></td>
<td><div class="table-font">{{skill_category.data.rank_bonus}}</div></td> <td><div class="table-font">{{skill_category.system.rank_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.stat_bonus}}</div></td> <td><div class="table-font">{{skill_category.system.stat_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.prof_bonus}}</div></td> <td><div class="table-font">{{skill_category.system.prof_bonus}}</div></td>
<td><div class="table-font">{{skill_category.data.special_bonus_1}}</div></td> <td><div class="table-font">{{skill_category.system.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.system.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.total_bonus}}</div></td>
<td><div class="table-controls"> <td><div class="table-controls">
<a class="item-edit" title="Edit Category"><i class="fas fa-edit"></i></a> <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> <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> <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> </div>
{{#each playerskill as |skill id|}} {{#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.name}}</div>
<div>{{skill.data.ranks}}</div> <div>{{skill.system.ranks}}</div>
<div>{{skill.data.new_ranks}}</div> <div>{{skill.system.new_ranks}}</div>
<div>{{skill.data.rank_bonus}}</div> <div>{{skill.system.rank_bonus}}</div>
<div>{{skill.data.category_bonus}}</div> <div>{{skill.system.category_bonus}}</div>
<div>{{skill.data.item_bonus}}</div> <div>{{skill.system.item_bonus}}</div>
<div>{{skill.data.special_bonus_1}}</div> <div>{{skill.system.special_bonus_1}}</div>
<div>{{skill.data.special_bonus_2}}</div> <div>{{skill.system.special_bonus_2}}</div>
<div>{{skill.data.total_bonus}}</div> <div>{{skill.system.total_bonus}}</div>
<div> <div>
<a class="item-edit" title="Edit Skill" data-item-id="{{skill._id}}"><i class="fas fa-edit"></i></a> <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> <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> </div></th>
{{#each playerskill as |skill id|}} {{#each playerskill as |skill id|}}
<tr class="item" data-item-id="{{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"> <td><div class="skill-name">
<h4>{{skill.name}}</h4> <h4>{{skill.name}}</h4>
</div></td> </div></td>
<td><div class="skill-entry item-prop">{{skill.data.ranks}}</div></td> <td><div class="skill-entry item-prop">{{skill.system.ranks}}</div></td>
<td><div class="skill-entry item-prop">{{skill.data.new_ranks}}</div></td> <td><div class="skill-entry item-prop">{{skill.system.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.system.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.system.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.system.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.system.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.system.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.total_bonus}}</div></td>
<td><div class="skill-controls"> <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-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> <a class="skill-control item-delete" title="Delete Skill"><i class="fas fa-trash"></i></a>

View File

@ -16,27 +16,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.agility.stat_bonus}} {{system.stats.agility.stat_bonus}}
</div> </div>
</li> </li>
@ -46,27 +46,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.constitution.stat_bonus}} {{system.stats.constitution.stat_bonus}}
</div> </div>
</li> </li>
@ -76,27 +76,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.memory.stat_bonus}} {{system.stats.memory.stat_bonus}}
</div> </div>
</li> </li>
@ -106,27 +106,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.reasoning.stat_bonus}} {{system.stats.reasoning.stat_bonus}}
</div> </div>
</li> </li>
@ -136,27 +136,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.self_discipline.stat_bonus}} {{system.stats.self_discipline.stat_bonus}}
</div> </div>
</li> </li>
@ -166,27 +166,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.empathy.stat_bonus}} {{system.stats.empathy.stat_bonus}}
</div> </div>
</li> </li>
@ -196,27 +196,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.intuition.stat_bonus}} {{system.stats.intuition.stat_bonus}}
</div> </div>
</li> </li>
@ -226,27 +226,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.presence.stat_bonus}} {{system.stats.presence.stat_bonus}}
</div> </div>
</li> </li>
@ -256,27 +256,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.quickness.stat_bonus}} {{system.stats.quickness.stat_bonus}}
</div> </div>
</li> </li>
@ -286,27 +286,27 @@
</div> </div>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <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>
<div class="stat-name"> <div class="stat-name">
{{data.stats.strength.stat_bonus}} {{system.stats.strength.stat_bonus}}
</div> </div>
</li> </li>
</ol> </ol>

View File

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

View File

@ -14,23 +14,23 @@
<th>{{localize "rmss.armor.at"}}</th> <th>{{localize "rmss.armor.at"}}</th>
</tr> </tr>
<td> <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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.item.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -15,26 +15,26 @@
<th>{{localize "rmss.herb_or_poison.af"}}</th> <th>{{localize "rmss.herb_or_poison.af"}}</th>
</tr> </tr>
<td> <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>
<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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.item.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -13,20 +13,20 @@
<th>{{localize "rmss.item.prod_time"}}</th> <th>{{localize "rmss.item.prod_time"}}</th>
</tr> </tr>
<td> <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>
<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>
<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>
<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>
</table> </table>
{{localize "rmss.item.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -17,34 +17,34 @@
<th>{{localize "rmss.transport.offensive_bonus"}}</th> <th>{{localize "rmss.transport.offensive_bonus"}}</th>
</tr> </tr>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.item.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -18,33 +18,33 @@
</tr> </tr>
<td> <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>
<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>
<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>
<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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.item.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -1,25 +1,31 @@
<form class="{{cssClass}}" autocomplete="off"> <form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header"> <header class="sheet-header">
<img src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/> <img src="{{item.img}}" data-edit="img" title="{{item.name}}" height="64" width="64"/>
{{#if item.isOwned}}
<h1>{{item.name}}</h1>
{{else}}
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1> <h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
{{/if}}
</header> </header>
<div class="sheet-content"> <div class="sheet-content">
<div class="applicable-stats-grid-container"> <div class="applicable-stats-grid-container">
<div> <div>
Applicable Stat 1 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 }} {{selectOptions applicable_stat_list selected=applicable_stat_1_selected }}
</select> </select>
</div> </div>
<div> <div>
Applicable Stat 2 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 }} {{selectOptions applicable_stat_list selected=applicable_stat_2_selected }}
</select> </select>
</div> </div>
<div> <div>
Applicable Stat 2 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 }} {{selectOptions applicable_stat_list selected=applicable_stat_3_selected }}
</select> </select>
</div> </div>
@ -39,38 +45,38 @@
<th>{{localize "rmss.skill_category.total_bonus"}}</th> <th>{{localize "rmss.skill_category.total_bonus"}}</th>
</tr> </tr>
<td> <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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.skill_category.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -4,6 +4,12 @@
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1> <h1><input name="name" type="text" value="{{item.name}}" placeholder="{{ localize 'Name' }}"/></h1>
</header> </header>
<div class="sheet-content"> <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> <div>
<table> <table>
<tr> <tr>
@ -18,35 +24,35 @@
<th>{{localize "rmss.skill.total_bonus"}}</th> <th>{{localize "rmss.skill.total_bonus"}}</th>
</tr> </tr>
<td> <td>
<input type="checkbox" name="data.favorite" {{checked data.favorite}}/> <input type="checkbox" name="system.favorite" {{checked system.favorite}}/>
</td> </td>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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> </td>
</table> </table>
{{localize "rmss.skill.description"}} {{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>
</div> </div>
</form> </form>

View File

@ -16,27 +16,27 @@
</tr> </tr>
<td> <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>
<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>
<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>
<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>
<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>
<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>
</table> </table>
{{localize "rmss.spell.description"}} {{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>
</div> </div>
</form> </form>