diff --git a/module/actor/actor-sheet.js b/module/actor/actor-sheet.js index 71085ae..0dafc5b 100644 --- a/module/actor/actor-sheet.js +++ b/module/actor/actor-sheet.js @@ -50,13 +50,24 @@ export class DeltaGreenActorSheet extends ActorSheet { } /** @override */ - getData() { + async getData() { const data = super.getData(); // Prepare items. if (this.actor.type == 'agent') { this._prepareCharacterItems(data); } + + switch (this.actor.type) { + case "agent": + data.enrichedDescription = await TextEditor.enrichHTML(this.object.system.physicalDescription, {async: true}); + break; + case "npc": + case "unnatural": + data.enrichedDescription = await TextEditor.enrichHTML(this.object.system.notes, {async: true}); + break; + default: + } return data; } @@ -78,7 +89,7 @@ export class DeltaGreenActorSheet extends ActorSheet { // Iterate through items, allocating to containers // let totalWeight = 0; for (let i of sheetData.items) { - let item = i.data; + let item = i; i.img = i.img || DEFAULT_TOKEN; // Append to armor. if (i.type === 'armor') { @@ -211,9 +222,9 @@ export class DeltaGreenActorSheet extends ActorSheet { event.preventDefault(); let currentBreakingPoint = 0; - currentBreakingPoint = this.actor.data.data.sanity.value - this.actor.data.data.statistics.pow.value; + currentBreakingPoint = this.actor.system.sanity.value - this.actor.system.statistics.pow.value; - let updatedData = duplicate(this.actor.data.data); + let updatedData = duplicate(this.actor.system); updatedData.sanity.currentBreakingPoint = currentBreakingPoint; this.actor.update({"data": updatedData}); }); @@ -230,8 +241,8 @@ export class DeltaGreenActorSheet extends ActorSheet { event.preventDefault(); let targetskill = event.target.getAttribute("data-typedskill"); - let existingLabel = this.actor.data.data.typedSkills[targetskill].label; - let existingGroup = this.actor.data.data.typedSkills[targetskill].group; + let existingLabel = this.actor.system.typedSkills[targetskill].label; + let existingGroup = this.actor.system.typedSkills[targetskill].group; //this.actor.update({[`data.typedSkills.${targetskill}.label`]: 'test'}); @@ -245,7 +256,7 @@ export class DeltaGreenActorSheet extends ActorSheet { let targetskill = event.target.getAttribute("data-typedskill"); // many bothans died to bring us this information on how to delete a property on an entity - this.actor.update({[`data.typedSkills.-=${targetskill}`]: null}); + this.actor.update({[`system.typedSkills.-=${targetskill}`]: null}); }); @@ -399,7 +410,7 @@ export class DeltaGreenActorSheet extends ActorSheet { } _addNewTypedSkill(newSkillLabel, newSkillGroup){ - let updatedData = duplicate(this.actor.data.data); + let updatedData = duplicate(this.actor.system); let typedSkills = updatedData.typedSkills; let d = new Date(); @@ -416,7 +427,7 @@ export class DeltaGreenActorSheet extends ActorSheet { _updateTypedSkill(targetSkill, newSkillLabel, newSkillGroup){ if(newSkillLabel !== null && newSkillLabel !== "" && newSkillGroup !== null & newSkillGroup !== ""){ - let updatedData = duplicate(this.actor.data.data); + let updatedData = duplicate(this.actor.system); updatedData.typedSkills[targetSkill].label = newSkillLabel; updatedData.typedSkills[targetSkill].group = newSkillGroup; @@ -436,8 +447,10 @@ export class DeltaGreenActorSheet extends ActorSheet { const header = event.currentTarget; // Get the type of item to create. const type = header.dataset.type; + // Grab any data associated with this control. - const data = duplicate(header.dataset); + //const system = duplicate(header.dataset); Not really sure what this was doing here. Seems unnecessary. + // Initialize a default name. //const name = `New ${type.capitalize()}`; const name = game.i18n.localize("DG.ItemTypes.NewPrefix") + game.i18n.localize("DG.ItemTypes." + type) @@ -445,22 +458,22 @@ export class DeltaGreenActorSheet extends ActorSheet { const itemData = { name: name, type: type, - data: data + system: {} }; // Remove the type from the dataset since it's in the itemData.type prop. - delete itemData.data["type"]; + // delete itemData.data["type"]; if(type == "weapon"){ - itemData.data.skill = "firearms"; //default skill to firearms, since that will be most common - itemData.data.expense = "Standard"; + itemData.system.skill = "firearms"; //default skill to firearms, since that will be most common + itemData.system.expense = "Standard"; } else if(type == "armor"){ - itemData.data.armor = 3; - itemData.data.expense = "Standard"; + itemData.system.armor = 3; + itemData.system.expense = "Standard"; } else if(type == "bond"){ - itemData.data.score = this.object.data.data.statistics.cha.value; // Can vary, but at character creation starting bond score is usually agent's charisma + itemData.system.score = this.object.system.statistics.cha.value; // Can vary, but at character creation starting bond score is usually agent's charisma itemData.img = "icons/svg/mystery-man.svg" } @@ -509,40 +522,40 @@ export class DeltaGreenActorSheet extends ActorSheet { // otherwise roll a regular skill test if(targetVal === "dex"){ label = game.i18n.localize("DG.Attributes.dex").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.dex.x5; + targetVal = this.actor.system.statistics.dex.x5; } else if(targetVal === "int"){ label = game.i18n.localize("DG.Attributes.int").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.int.x5; + targetVal = this.actor.system.statistics.int.x5; } else if(targetVal === "str"){ label = game.i18n.localize("DG.Attributes.str").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.str.x5; + targetVal = this.actor.system.statistics.str.x5; } else if(targetVal === "con"){ label = game.i18n.localize("DG.Attributes.con").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.con.x5; + targetVal = this.actor.system.statistics.con.x5; } else if(targetVal === "pow"){ label = game.i18n.localize("DG.Attributes.pow").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.pow.x5; + targetVal = this.actor.system.statistics.pow.x5; } else if(targetVal === "cha"){ label = game.i18n.localize("DG.Attributes.cha").toUpperCase() + "x5"; - targetVal = this.actor.data.data.statistics.cha.x5; + targetVal = this.actor.system.statistics.cha.x5; } else{ label = game.i18n.localize("DG.Skills." + targetVal).toUpperCase() + "x5"; - targetVal = this.actor.data.data.skills[targetVal].proficiency; + targetVal = this.actor.system.skills[targetVal].proficiency; } } else if(dataset.target === "statistic.x5"){ - let stat = this.actor.data.data.statistics[key]; + let stat = this.actor.system.statistics[key]; targetVal = stat.x5; label = game.i18n.localize("DG.Attributes." + key).toUpperCase(); } else if(rollType === "sanity"){ - targetVal = this.actor.data.data.sanity.value; + targetVal = this.actor.system.sanity.value; label = game.i18n.localize("DG.Attributes.SAN").toUpperCase(); } else if(rollType === "damage"){ @@ -562,7 +575,7 @@ export class DeltaGreenActorSheet extends ActorSheet { let skillType = dataset.skill ? dataset.skill : ''; if(this.actor.type === 'agent' && (skillType === 'unarmed_combat' || skillType === 'melee_weapons')){ - diceFormula += this.actor.data.data.statistics.str.meleeDamageBonusFormula; + diceFormula += this.actor.system.statistics.str.meleeDamageBonusFormula; } if(requestedModifyRoll){ @@ -594,13 +607,13 @@ export class DeltaGreenActorSheet extends ActorSheet { let currentBreakingPoint = 0; - currentBreakingPoint = this.actor.data.data.sanity.value - this.actor.data.data.statistics.pow.value; + currentBreakingPoint = this.actor.system.sanity.value - this.actor.system.statistics.pow.value; if(currentBreakingPoint < 0){ currentBreakingPoint = 0; } - let updatedData = duplicate(this.actor.data.data); + let updatedData = duplicate(this.actor.system); updatedData.sanity.currentBreakingPoint = currentBreakingPoint; @@ -615,7 +628,7 @@ export class DeltaGreenActorSheet extends ActorSheet { try{ //const item = this.actor.getOwnedItem(dataset.id); const item = this.actor.items.get(dataset.id); - var isEquipped = item.data.data.equipped; + var isEquipped = item.system.equipped; isEquipped = !isEquipped; item.update({data:{equipped: isEquipped}}); } @@ -639,14 +652,14 @@ export class DeltaGreenActorSheet extends ActorSheet { if ( li.dataset.itemId ) { const item = this.actor.items.get(li.dataset.itemId); dragData.type = "Item"; - dragData.data = item.data; + dragData = item; } // Active Effect if ( li.dataset.effectId ) { const effect = this.actor.effects.get(li.dataset.effectId); dragData.type = "ActiveEffect"; - dragData.data = effect.data; + dragData = effect; } // Set data transfer diff --git a/module/actor/actor.js b/module/actor/actor.js index 66da155..c0f377f 100644 --- a/module/actor/actor.js +++ b/module/actor/actor.js @@ -11,9 +11,8 @@ export class DeltaGreenActor extends Actor { super.prepareData(); const actorData = this; - //const actorData = this.data; - //const data = actorData.data; - //const flags = actorData.flags; + const system = actorData.system; + const flags = actorData.flags; //console.log('actor.js prepareData'); //console.log(this); @@ -59,48 +58,47 @@ export class DeltaGreenActor extends Actor { } _prepareNpcData(actor){ - let actorData = actor.data; - const data = actorData.data; + const { system } = actor; // Loop through ability scores, and add their modifiers to our sheet output. - for (let [key, statistic] of Object.entries(data.statistics)) { + for (let [key, statistic] of Object.entries(system.statistics)) { // the x5 is just whatever the raw statistic is x 5 to turn it into a d100 percentile statistic.x5 = statistic.value * 5; } // initialize sanity, don't set these afterwards, as they need to be manually edited - if(actorData.data.sanity.value >= 100){ - actorData.data.sanity.value = actorData.data.statistics.pow.x5 - actorData.data.sanity.currentBreakingPoint = actorData.data.sanity.value - actorData.data.statistics.pow.value; + if(system.sanity.value >= 100){ + system.sanity.value = system.statistics.pow.x5 + system.sanity.currentBreakingPoint = system.sanity.value - system.statistics.pow.value; }; - actorData.data.sanity.max = 99 - actorData.data.skills.unnatural.proficiency; + system.sanity.max = 99 - system.skills.unnatural.proficiency; - actorData.data.skills.ritual = { + system.skills.ritual = { label: "Ritual", - proficiency: 99 - actorData.data.sanity.value, + proficiency: 99 - system.sanity.value, cannotBeImprovedByFailure: true, failure: false }; - if(actorData.data.skills.ritual.proficiency > 99){ - actorData.data.skills.ritual.proficiency = 99 + if(system.skills.ritual.proficiency > 99){ + system.skills.ritual.proficiency = 99 } - else if(actorData.data.skills.ritual.proficiency < 1){ - actorData.data.skills.ritual.proficiency = 1 + else if(system.skills.ritual.proficiency < 1){ + system.skills.ritual.proficiency = 1 } // calculate total armor rating let protection = 0; for (let i of actor.items) { if (i.type === 'armor') { - if(i.data.data.equipped === true){ - protection += i.data.data.protection; + if(i.system.equipped === true){ + protection += i.system.protection; } } } - actorData.data.health.protection = protection; + system.health.protection = protection; console.log(actor); } @@ -110,11 +108,10 @@ export class DeltaGreenActor extends Actor { * @param {*} agent */ _prepareUnnaturalData(actor){ - let actorData = actor.data; - const data = actorData.data; + const { system } = actor; // Loop through ability scores, and add their modifiers to our sheet output. - for (let [key, statistic] of Object.entries(data.statistics)) { + for (let [key, statistic] of Object.entries(system.statistics)) { // the x5 is just whatever the raw statistic is x 5 to turn it into a d100 percentile statistic.x5 = statistic.value * 5; } @@ -123,13 +120,13 @@ export class DeltaGreenActor extends Actor { let protection = 0; for (let i of actor.items) { if (i.type === 'armor') { - if(i.data.data.equipped === true){ - protection += i.data.data.protection; + if(i.system.equipped === true){ + protection += i.system.protection; } } } - actorData.data.health.protection = protection; + system.health.protection = protection; console.log(actor); } @@ -139,37 +136,36 @@ export class DeltaGreenActor extends Actor { */ _prepareAgentData(agent) { - let actorData = agent.data; - const data = actorData.data; + const { system } = agent; // Make modifications to data here. For example: // Loop through ability scores, and add their modifiers to our sheet output. - for (let [key, statistic] of Object.entries(data.statistics)) { + for (let [key, statistic] of Object.entries(system.statistics)) { // the x5 is just whatever the raw statistic is x 5 to turn it into a d100 percentile statistic.x5 = statistic.value * 5; } // The ritual skill is from the Handler's Guide, it is for activating a ritual and is always equal to 99 - current sanity. // The rules can be found on page 166, under 'Ritual Activation'. - actorData.data.skills.ritual = { + system.skills.ritual = { label: "Ritual", - proficiency: 99 - actorData.data.sanity.value, + proficiency: 99 - system.sanity.value, cannotBeImprovedByFailure: true, failure: false }; - if(actorData.data.skills.ritual.proficiency > 99){ - actorData.data.skills.ritual.proficiency = 99 + if(system.skills.ritual.proficiency > 99){ + system.skills.ritual.proficiency = 99 } - else if(actorData.data.skills.ritual.proficiency < 1){ - actorData.data.skills.ritual.proficiency = 1 + else if(system.skills.ritual.proficiency < 1){ + system.skills.ritual.proficiency = 1 } // The unnatural skill is sort of special // It cannot be improved via failure, so add in a special property to reflect this // Mostly to make it easy to deactivate the failure checkbox in the GUI - for (let [key, skill] of Object.entries(data.skills)){ + for (let [key, skill] of Object.entries(system.skills)){ if(key === 'unnatural'){ skill.cannotBeImprovedByFailure = true; } @@ -192,52 +188,52 @@ export class DeltaGreenActor extends Actor { } } - actorData.data.wp.max = actorData.data.statistics.pow.value; + system.wp.max = system.statistics.pow.value; - actorData.data.health.max = Math.ceil((actorData.data.statistics.con.value + actorData.data.statistics.str.value) / 2); + system.health.max = Math.ceil((system.statistics.con.value + system.statistics.str.value) / 2); // initialize sanity, don't set these afterwards, as they need to be manually edited - if(actorData.data.sanity.value >= 100){ - actorData.data.sanity.value = actorData.data.statistics.pow.x5 - actorData.data.sanity.currentBreakingPoint = actorData.data.sanity.value - actorData.data.statistics.pow.value; + if(system.sanity.value >= 100){ + system.sanity.value = system.statistics.pow.x5 + system.sanity.currentBreakingPoint = system.sanity.value - system.statistics.pow.value; }; - actorData.data.sanity.max = 99 - actorData.data.skills.unnatural.proficiency; + system.sanity.max = 99 - system.skills.unnatural.proficiency; // Sanity Loss Adaptations Logic - let adaptations = actorData.data.sanity.adaptations; + let adaptations = system.sanity.adaptations; if (adaptations.violence.incident1 && adaptations.violence.incident2 && adaptations.violence.incident3){ - actorData.data.sanity.adaptations.violence.isAdapted = true; + system.sanity.adaptations.violence.isAdapted = true; } else{ - actorData.data.sanity.adaptations.violence.isAdapted = false; + system.sanity.adaptations.violence.isAdapted = false; } if (adaptations.helplessness.incident1 && adaptations.helplessness.incident2 && adaptations.helplessness.incident3){ - actorData.data.sanity.adaptations.helplessness.isAdapted = true; + system.sanity.adaptations.helplessness.isAdapted = true; } else{ - actorData.data.sanity.adaptations.helplessness.isAdapted = false; + system.sanity.adaptations.helplessness.isAdapted = false; } // calculate total armor rating let protection = 0; for (let i of agent.items) { if (i.type === 'armor') { - if(i.data.data.equipped === true){ - protection += i.data.data.protection; + if(i.system.equipped === true){ + protection += i.system.protection; } } } - actorData.data.health.protection = protection; + system.health.protection = protection; // Damage Bonus/Malus From Strength in Hand-to-hand Combat (melee/unarmed) let bonus = 0; let sbonus = ""; - let strength = actorData.data.statistics.str; + let strength = system.statistics.str; if(strength.value < 5){ sbonus = "-2"; @@ -256,8 +252,8 @@ export class DeltaGreenActor extends Actor { bonus = 2; } - actorData.data.statistics.str.meleeDamageBonus = bonus; - actorData.data.statistics.str.meleeDamageBonusFormula = sbonus; + system.statistics.str.meleeDamageBonus = bonus; + system.statistics.str.meleeDamageBonusFormula = sbonus; console.log(agent); } @@ -278,7 +274,7 @@ export class DeltaGreenActor extends Actor { let alreadyAdded = false; - for(let item of this.data.items){ + for(let item of this.items){ let flag = await item.getFlag('deltagreen', 'SystemName'); @@ -299,7 +295,7 @@ export class DeltaGreenActor extends Actor { let _temp = await handToHandPack.getDocument(idx._id); if(_temp.name === 'Unarmed Attack'){ - toAdd.push(_temp.data); + toAdd.push(_temp); } } diff --git a/module/deltagreen.js b/module/deltagreen.js index cc67251..4ba5960 100644 --- a/module/deltagreen.js +++ b/module/deltagreen.js @@ -103,6 +103,8 @@ Hooks.once('init', async function() { } }); + + // Is this used anywhere? Handlebars.registerHelper('getActorSkillProp', function(actorData, skillName, prop) { try{ if(skillName != "" && prop != ""){ @@ -295,7 +297,7 @@ Hooks.on('createActor', async function(actor, options, userId){ // can put logic specific to a particular user session below if (userId != game.user.id) { return; }; - if(actor != null && actor.data != null && actor.data.type === 'agent'){ + if(actor != null && actor.type === 'agent'){ // update the default type skill of Art - Painting's labels to try to be localized // since I really backed myself into a corner on this with my implementation of it... console.log('createActor Hook'); @@ -303,7 +305,7 @@ Hooks.on('createActor', async function(actor, options, userId){ let artLabel = game.i18n.translations.DG?.TypeSkills?.Art ?? "Art"; let paintingLabel = game.i18n.translations.DG?.TypeSkills?.Subskills?.Painting ?? "Painting"; - let updatedData = duplicate(actor.data.data); + let updatedData = duplicate(actor.system); updatedData.typedSkills.tskill_01.group = artLabel; updatedData.typedSkills.tskill_01.label = paintingLabel; @@ -312,7 +314,7 @@ Hooks.on('createActor', async function(actor, options, userId){ // throw on an unarmed strike item for convenience actor.AddUnarmedAttackItemIfMissing(); } - else if(actor.data.type === 'unnatural'){ + else if(actor.type === 'unnatural'){ } @@ -336,7 +338,7 @@ Hooks.on('createActor', async function(actor, options, userId){ async function createDeltaGreenMacro(data, slot) { if (data.type !== "Item") return; if (!("data" in data)) return ui.notifications.warn("You can only create macro buttons for owned Items"); - const item = data.data; + const item = data.system; // Create the macro command let command = '// Uncomment line below to also roll skill check if desired.' @@ -390,9 +392,9 @@ function rollItemSkillCheckMacro(itemName) { const item = actor ? actor.items.find(i => i.name === itemName) : null; if (!item) return ui.notifications.warn(`Your controlled Actor does not have an item named ${itemName}`); - let skillName = item.data.data.skill.toString(); + let skillName = item.system.skill.toString(); - let skill = actor.data.data.skills[skillName]; + let skill = actor.system.skills[skillName]; let translatedSkillLabel = ""; try{ @@ -413,7 +415,7 @@ function rollSkillMacro(skillName) { if(!actor) return ui.notifications.warn('Must have an Actor selected first.'); - let skill = actor.data.data.skills[skillName]; + let skill = actor.system.skills[skillName]; if(!skill) return ui.notifications.warn('Bad skill name passed to macro.'); diff --git a/module/item/item-sheet.js b/module/item/item-sheet.js index 241144f..277eb31 100644 --- a/module/item/item-sheet.js +++ b/module/item/item-sheet.js @@ -19,14 +19,15 @@ export class DeltaGreenItemSheet extends ItemSheet { const path = "systems/deltagreen/templates/item"; // unique item sheet by type, like `weapon-sheet.html`. - return `${path}/item-${this.item.data.type}-sheet.html`; + return `${path}/item-${this.item.type}-sheet.html`; } /* -------------------------------------------- */ /** @override */ - getData() { + async getData() { const data = super.getData(); + data.enrichedDescription = await TextEditor.enrichHTML(this.object.system.description, {async: true}); return data; } diff --git a/module/item/item.js b/module/item/item.js index f35a700..3117210 100644 --- a/module/item/item.js +++ b/module/item/item.js @@ -12,9 +12,9 @@ export class DeltaGreenItem extends Item { super.prepareData(); // Get the Item's data - const itemData = this.data; - const actorData = this.actor ? this.actor.data : {}; - const data = itemData.data; + const itemData = this; + const actorData = this.actor || {}; + const system = itemData.system; } /** @@ -25,21 +25,21 @@ export class DeltaGreenItem extends Item { async roll() { // Basic template rendering data const token = this.actor.token; - const item = this.data; - const actorData = this.actor ? this.actor.data.data : {}; - const itemData = item.data; + const itemData = this; + const actorSystemData = this.actor.system || {}; + const { system } = itemData; - if(item.data.isLethal){ - sendLethalityTestToChat(this.actor, item.name, item.data.lethality, game.settings.get("core", "rollMode")) + if(system.isLethal){ + sendLethalityTestToChat(this.actor, item.name, system.lethality, game.settings.get("core", "rollMode")) } else{ // regular damage roll - let diceFormula = item.data.damage; - let skillType = item.data.skill; + let diceFormula = system.damage; + let skillType = system.skill; if(skillType === 'unarmed_combat' || skillType === 'melee_weapons'){ - diceFormula += this.actor.data.data.statistics.str.meleeDamageBonusFormula; + diceFormula += actorSystemData.statistics.str.meleeDamageBonusFormula; } sendDamageRollToChat(this.actor, item.name, diceFormula); diff --git a/module/roll/roll.js b/module/roll/roll.js index b37c37b..01e8009 100644 --- a/module/roll/roll.js +++ b/module/roll/roll.js @@ -2,7 +2,7 @@ import {localizeWithFallback} from "../other/utility-functions.js" export async function sendPercentileTestToChat(actor, skill, target, rollMode){ //let roll = new Roll('1D100', actor.data.data).evaluate(false); - let roll = new Roll('1D100', actor.data.data) + let roll = new Roll('1D100', actor.system) await roll.evaluate({async: true}); @@ -140,7 +140,7 @@ export function skillCheckResultIsCritical(rollResult){ export async function sendLethalityTestToChat(actor, weaponName, target, rollMode){ //let roll = new Roll('1D100', actor.data.data).evaluate(false); - let roll = new Roll('1D100', actor.data.data); + let roll = new Roll('1D100', actor.system); await roll.evaluate({async: true}); @@ -244,7 +244,7 @@ export async function sendDamageRollToChat(actor, label, diceFormula, rollMode){ //diceFormula += actor.data.data.statistics.str.meleeDamageBonusFormula; - let roll = new Roll(diceFormula, actor.data.data); + let roll = new Roll(diceFormula, actor.system); await roll.evaluate({async: true}); diff --git a/system.json b/system.json index 6d829e3..0d58da3 100644 --- a/system.json +++ b/system.json @@ -1,5 +1,5 @@ { - "name": "deltagreen", + "id": "deltagreen", "title": "Delta Green (Unofficial)", "description": "Fan-made Foundry VTT system for Delta Green: The Role Playing Game for Foundry VTT. Based on the rules in the Agent's Handbook (https://www.drivethrurpg.com/product/181674/Delta-Green-Agents-Handbook) [*NOT* Call of Cthulu]. Made with the permission of but neither affiliated with nor endorsed by Arc Dream Publishing or the Delta Green Partnership.", "author": "TheLastScrub (https://github.com/TheLastScrub)", @@ -8,8 +8,11 @@ "license": "LICENSE.txt", "flags": {}, "version": "1.0.6", - "minimumCoreVersion": "0.8.6", - "compatibleCoreVersion": "9", + "compatibility": { + "minimum": 10, + "verified": 10, + "maximum": 10 + }, "scripts": [], "esmodules": [ "module/deltagreen.js" @@ -101,8 +104,7 @@ "private": false } ], - "system": [], - "dependencies": [], + "relationships": {}, "socket": false, "manifest": "https://github.com/TheLastScrub/delta-green-foundry-vtt-system-unofficial/raw/master/system.json", "download": "https://github.com/TheLastScrub/delta-green-foundry-vtt-system-unofficial/archive/v1.0.6.zip", diff --git a/templates/actor/actor-sheet.html b/templates/actor/actor-sheet.html index d4694ab..08dd841 100644 --- a/templates/actor/actor-sheet.html +++ b/templates/actor/actor-sheet.html @@ -13,7 +13,7 @@

-

+

@@ -22,51 +22,51 @@ {{!-- HP --}}
- +
- + / - +
-
{{numberFormat actor.data.data.health.max decimals=0 sign=false}}
+
{{numberFormat actor.system.health.max decimals=0 sign=false}}
{{!-- WP --}}
- +
- + / - +
-
{{numberFormat actor.data.data.wp.max decimals=0 sign=false}}
+
{{numberFormat actor.system.wp.max decimals=0 sign=false}}
{{!-- Sanity --}}
-
{{#if (keepSanityPrivate)}} - + /
-
{{numberFormat actor.data.data.sanity.max decimals=0 sign=false}}
+
{{numberFormat actor.system.sanity.max decimals=0 sign=false}}
{{/if}} {{#unless (keepSanityPrivate)}} - + /
-
{{numberFormat actor.data.data.sanity.max decimals=0 sign=false}}
+
{{numberFormat actor.system.sanity.max decimals=0 sign=false}}
{{/unless}} @@ -94,10 +94,10 @@
- {{#each actor.data.data.skills as |skill key|}} + {{#each actor.system.skills as |skill key|}}
-
- {{#each actor.data.data.typedSkills as |skill key|}} + {{#each actor.system.typedSkills as |skill key|}}
- - + +
@@ -161,16 +161,16 @@ {{!-- Physical Statistics like STR, CON, etc. --}}
- {{#each actor.data.data.statistics as |statistic key|}} + {{#each actor.system.statistics as |statistic key|}}
- - + + ({{numberFormat statistic.x5 decimals=0 sign=false}}%)
- +
@@ -181,13 +181,13 @@ - +
- + - +
@@ -197,7 +197,7 @@
- + {{localize 'DG.Mental.Reset'}}
@@ -206,27 +206,27 @@
- - - + + + - - - + + + @@ -251,15 +251,15 @@
  • {{item.name}}

    - {{#if item.data.data.crossedOut}} -

    {{item.data.data.disorder}}

    + {{#if item.system.crossedOut}} +

    {{item.system.disorder}}

    {{/if}}
    @@ -305,32 +305,32 @@ class="item-name rollable" data-roll="d100" data-rolltype="weaponskill" - data-target="{{item.data.data.skill}}" - data-label="{{localizeWeaponSkill item.data.data.skill}}" - title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.data.data.skill}})" + data-target="{{item.system.skill}}" + data-label="{{localizeWeaponSkill item.system.skill}}" + title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.system.skill}})" > {{item.name}} - {{#unless item.data.data.isLethal}} + {{#unless item.system.isLethal}} - {{toUpperCase item.data.data.damage}}{{#if_eq item.data.data.skill 'unarmed_combat'}}{{actor.data.data.statistics.str.meleeDamageBonusFormula}}{{/if_eq}}{{#if_eq item.data.data.skill 'melee_weapons'}}{{actor.data.data.statistics.str.meleeDamageBonusFormula}}{{/if_eq}} + {{toUpperCase item.system.damage}}{{#if_eq item.system.skill 'unarmed_combat'}}{{actor.system.statistics.str.meleeDamageBonusFormula}}{{/if_eq}}{{#if_eq item.system.skill 'melee_weapons'}}{{actor.system.statistics.str.meleeDamageBonusFormula}}{{/if_eq}} {{/unless}} - {{#if item.data.data.isLethal}} - {{formatLethality item.data.data.lethality}} + >{{formatLethality item.system.lethality}} {{/if}} - {{item.data.data.armorPiercing}} + {{item.system.armorPiercing}}
    @@ -366,10 +366,10 @@
  • {{item.name}}

    - {{item.data.data.protection}} + {{item.system.protection}} - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} @@ -415,7 +415,7 @@ - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} @@ -463,8 +463,8 @@
  • {{item.name}}

    - {{item.data.data.relationship}} - {{item.data.data.score}} + {{item.system.relationship}} + {{item.system.score}}
    diff --git a/templates/actor/cv-partial.html b/templates/actor/cv-partial.html index aeeec1c..336975f 100644 --- a/templates/actor/cv-partial.html +++ b/templates/actor/cv-partial.html @@ -1,24 +1,24 @@
    {{localize 'DG.CV.Sex'}} - + {{localize 'DG.CV.AgeAndDoB'}} - +
    {{localize 'DG.CV.Employer'}} - + {{localize 'DG.CV.Nationality'}} - +
    {{localize 'DG.CV.Education'}} - +
    {{#if (playerHasGamemasterPrivileges)}} @@ -27,20 +27,20 @@ {{localize 'DG.ImpossibleLanscapes.IHaveSeenThe'}} {{localize 'DG.ImpossibleLanscapes.YellowSign'}} - + {{localize 'DG.ImpossibleLanscapes.CorruptionFirstHalf'}} {{localize 'DG.ImpossibleLanscapes.CorruptionSecondHalf'}} - +
    {{localize 'DG.ImpossibleLanscapes.Gift'}} - + {{localize 'DG.ImpossibleLanscapes.Insight'}} - +
    {{/if}} @@ -50,5 +50,5 @@
  • - {{editor content=actor.data.data.physicalDescription target="data.physicalDescription" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.physicalDescription" button=true owner=owner editable=editable}}
    \ No newline at end of file diff --git a/templates/actor/limited-sheet.html b/templates/actor/limited-sheet.html index 65af6a2..9400c44 100644 --- a/templates/actor/limited-sheet.html +++ b/templates/actor/limited-sheet.html @@ -13,7 +13,7 @@

    -

    +

    diff --git a/templates/actor/npc-sheet.html b/templates/actor/npc-sheet.html index 02805df..c0173a2 100644 --- a/templates/actor/npc-sheet.html +++ b/templates/actor/npc-sheet.html @@ -1,5 +1,4 @@
    - {{!-- Sheet Header --}}
    @@ -13,7 +12,7 @@

    -

    +

    @@ -22,33 +21,33 @@ {{!-- HP --}}
    - +
    - + / - +
    {{!-- WP --}}
    - +
    - + / - +
    {{!-- Sanity --}}
    -
    - + {{localize 'DG.NPCSheet.BreakPointAbbreviation'}}: - +
    @@ -58,15 +57,15 @@ {{!-- Physical Statistics like STR, CON, etc. --}}
    - {{#each actor.data.data.statistics as |statistic key|}} + {{#each actor.system.statistics as |statistic key|}}
    - - + + ({{numberFormat statistic.x5 decimals=0 sign=false}}%)
    - {{!--
    --}} + {{!--
    --}}
    {{/each}} @@ -90,22 +89,22 @@
    {{!-- Checkbox to hide/show skills that are at zero --}}
    - {{localize 'DG.UnnaturalSheet.HideUntrainedSkillsLabel'}}: - + {{localize 'DG.UnnaturalSheet.HideUntrainedSkillsLabel'}}: +
    - {{#each actor.data.data.skills as |skill key|}} + {{#each actor.system.skills as |skill key|}} - {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.data.data.showUntrainedSkills skill.proficiency)}} + {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.system.showUntrainedSkills skill.proficiency)}}
    - - +
    {{/if}} @@ -118,8 +117,8 @@ {{localize 'DG.Skills.AddTypedOrCustomSkill'}}
    - {{#each actor.data.data.typedSkills as |skill key|}} - {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.data.data.showUntrainedSkills skill.proficiency)}} + {{#each actor.system.typedSkills as |skill key|}} + {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.system.showUntrainedSkills skill.proficiency)}}
    - +
    @@ -143,7 +142,7 @@
    - {{editor content=actor.data.data.notes target="data.notes" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.notes" button=true owner=owner editable=editable}}
    @@ -180,32 +179,32 @@ class="item-name rollable" data-roll="d100" data-rolltype="weaponskill" - data-target="{{item.data.data.skill}}" - data-label="{{localizeWeaponSkill item.data.data.skill}}" - title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.data.data.skill}})" + data-target="{{item.system.skill}}" + data-label="{{localizeWeaponSkill item.system.skill}}" + title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.system.skill}})" > {{item.name}} - {{#unless item.data.data.isLethal}} + {{#unless item.system.isLethal}} - {{toUpperCase item.data.data.damage}} + {{toUpperCase item.system.damage}} {{/unless}} - {{#if item.data.data.isLethal}} - {{formatLethality item.data.data.lethality}} + >{{formatLethality item.system.lethality}} {{/if}} - {{item.data.data.armorPiercing}} + {{item.system.armorPiercing}}
    @@ -241,10 +240,10 @@
  • {{item.name}}

    - {{item.data.data.protection}} + {{item.system.protection}} - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} @@ -291,7 +290,7 @@ - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} diff --git a/templates/actor/unnatural-sheet.html b/templates/actor/unnatural-sheet.html index 54b62d5..f5f0c92 100644 --- a/templates/actor/unnatural-sheet.html +++ b/templates/actor/unnatural-sheet.html @@ -1,5 +1,4 @@ - {{!-- Sheet Header --}}
    @@ -13,7 +12,7 @@

  • -

    +

    @@ -22,31 +21,31 @@ {{!-- HP --}}
    - +
    - + / - +
    {{!-- WP --}}
    - +
    - + / - +
    {{!-- Sanity Damage --}}
    - +
    - + / - +
    @@ -56,12 +55,12 @@ {{!-- Physical Statistics like STR, CON, etc. --}}
    - {{#each actor.data.data.statistics as |statistic key|}} + {{#each actor.system.statistics as |statistic key|}}
    - - + + ({{numberFormat statistic.x5 decimals=0 sign=false}}%)
    @@ -87,22 +86,22 @@
    {{!-- Checkbox to hide/show skills that are at zero --}}
    - {{localize 'DG.UnnaturalSheet.HideUntrainedSkillsLabel'}}: - + {{localize 'DG.UnnaturalSheet.HideUntrainedSkillsLabel'}}: +
    - {{#each actor.data.data.skills as |skill key|}} + {{#each actor.system.skills as |skill key|}} - {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.data.data.showUntrainedSkills skill.proficiency)}} + {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.system.showUntrainedSkills skill.proficiency)}}
    - - +
    {{/if}} @@ -115,8 +114,8 @@ {{localize 'DG.Skills.AddTypedOrCustomSkill'}}
    - {{#each actor.data.data.typedSkills as |skill key|}} - {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.data.data.showUntrainedSkills skill.proficiency)}} + {{#each actor.system.typedSkills as |skill key|}} + {{#if (hideSkillBasedOnProficiencyAndUserChoice ../actor.system.showUntrainedSkills skill.proficiency)}}
    - +
    @@ -140,7 +139,7 @@
    - {{editor content=actor.data.data.notes target="data.notes" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.notes" button=true owner=owner editable=editable}}
    @@ -177,32 +176,32 @@ class="item-name rollable" data-roll="d100" data-rolltype="weaponskill" - data-target="{{item.data.data.skill}}" - data-label="{{localizeWeaponSkill item.data.data.skill}}" - title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.data.data.skill}})" + data-target="{{item.system.skill}}" + data-label="{{localizeWeaponSkill item.system.skill}}" + title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.system.skill}})" > {{item.name}} - {{#unless item.data.data.isLethal}} + {{#unless item.system.isLethal}} - {{toUpperCase item.data.data.damage}} + {{toUpperCase item.system.damage}} {{/unless}} - {{#if item.data.data.isLethal}} - {{formatLethality item.data.data.lethality}} + >{{formatLethality item.system.lethality}} {{/if}} - {{item.data.data.armorPiercing}} + {{item.system.armorPiercing}}
    @@ -238,10 +237,10 @@
  • {{item.name}}

    - {{item.data.data.protection}} + {{item.system.protection}} - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} @@ -288,7 +287,7 @@ - {{#if item.data.data.equipped}} + {{#if item.system.equipped}} {{else}} diff --git a/templates/item/item-armor-sheet.html b/templates/item/item-armor-sheet.html index c7a3d74..f89c01e 100644 --- a/templates/item/item-armor-sheet.html +++ b/templates/item/item-armor-sheet.html @@ -10,23 +10,23 @@ {{localize 'DG.ItemWindow.Armor.Expense'}}: - + + + + + {{localize 'DG.ItemWindow.Armor.Equipped'}}: - +
  • {{localize 'DG.ItemWindow.Armor.ArmorRating'}}: - +
    @@ -41,7 +41,7 @@ {{!-- Description Tab --}}
    - {{editor content=data.data.description target="data.description" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
    diff --git a/templates/item/item-bond-sheet.html b/templates/item/item-bond-sheet.html index a995800..4cb083b 100644 --- a/templates/item/item-bond-sheet.html +++ b/templates/item/item-bond-sheet.html @@ -9,12 +9,12 @@ {{localize 'DG.Bonds.Score'}}: - {{localize 'DG.Bonds.Relationship'}}: - +
    @@ -30,7 +30,7 @@ {{!-- Description Tab --}}
    - {{editor content=data.data.description target="data.description" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
    diff --git a/templates/item/item-gear-sheet.html b/templates/item/item-gear-sheet.html index 22660f7..2a816b3 100644 --- a/templates/item/item-gear-sheet.html +++ b/templates/item/item-gear-sheet.html @@ -11,16 +11,16 @@ {{localize 'DG.ItemWindow.Gear.Expense'}}: - + + + + + {{localize 'DG.ItemWindow.Gear.Equipped'}}: - +
    @@ -38,7 +38,7 @@ {{!-- Description Tab --}}
    - {{editor content=data.data.description target="data.description" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
    diff --git a/templates/item/item-motivation-sheet.html b/templates/item/item-motivation-sheet.html index 50a7956..94e8e2a 100644 --- a/templates/item/item-motivation-sheet.html +++ b/templates/item/item-motivation-sheet.html @@ -13,7 +13,7 @@
    {{localize 'DG.ItemWindow.Motivations.IsDisorder'}}: - @@ -25,7 +25,7 @@ title="{{localize 'DG.ItemWindow.Motivations.MotivationNameTooltip'}}" {{!-- If a motivation has been crossed off after a breaking point, do a strikeout on it and disable it. --}} - {{#if data.data.crossedOut}} + {{#if item.system.crossedOut}} style="text-decoration: line-through;" disabled {{/if}} @@ -33,17 +33,17 @@ {{!-- Only Show the Disorders Section if Motivation Lost Checked --}} - {{#if data.data.crossedOut}} + {{#if item.system.crossedOut}} {{localize 'DG.ItemWindow.Motivations.Disorder'}}: - {{localize 'DG.ItemWindow.Motivations.DisorderHasBeenCured'}}: - @@ -54,7 +54,7 @@
    - {{editor content=data.data.description target="data.description" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}
    diff --git a/templates/item/item-weapon-sheet.html b/templates/item/item-weapon-sheet.html index 2cb597e..c8e0c49 100644 --- a/templates/item/item-weapon-sheet.html +++ b/templates/item/item-weapon-sheet.html @@ -10,16 +10,16 @@ {{localize 'DG.ItemWindow.Weapons.Expense'}}: - + + + + + {{localize 'DG.ItemWindow.Gear.Equipped'}}: - +
    @@ -29,57 +29,57 @@
    {{localize 'DG.ItemWindow.Weapons.Skill'}}: - + + + + + + + + + + + + + {{localize 'DG.ItemWindow.Weapons.IsLethality'}}: - {{localize 'DG.ItemWindow.Weapons.KillRadius'}}: - +
    {{localize 'DG.ItemWindow.Weapons.Range'}}: - + {{!-- If a weapon is 'Lethal', need to show the d100% Lethality input, otherwise only show the regular Damage formula (e.g. 1D6, 1D4+2, etc...) --}} - {{#unless data.data.isLethal}} + {{#unless item.system.isLethal}} {{localize 'DG.ItemWindow.Weapons.Damage'}}: - + {{/unless}} - {{#if data.data.isLethal}} + {{#if item.system.isLethal}} {{localize 'DG.ItemWindow.Weapons.Lethality'}} %: - {{/if}} {{localize 'DG.ItemWindow.Weapons.ArmorPiercing'}}: - +
    @@ -87,7 +87,7 @@
    {{localize 'DG.ItemWindow.Weapons.Ammo'}}: - +
    @@ -103,7 +103,7 @@ {{!-- Description Tab --}}
    - {{editor content=data.data.description target="data.description" button=true owner=owner editable=editable}} + {{editor enrichedDescription target="system.description" button=true owner=owner editable=editable}}