diff --git a/lang/en.json b/lang/en.json index 8058879..e076da4 100644 --- a/lang/en.json +++ b/lang/en.json @@ -86,11 +86,11 @@ "DG.Skills.AddTypedOrCustomSkill": "Add Typed/Custom Skill", "DG.Skills.AddSkill": "Add Skill", "DG.Skills.Apply": "Apply", - "DG.Skills.ApplySkillImprovements": "Apply Skill Improvements", - "DG.Skills.ApplySkillImprovementsChatFlavor": "Improved the following skills by", - "DG.Skills.ApplySkillImprovementsDialogLabel": "Improve skills by the following formula:", - "DG.Skills.ApplySkillImprovementsDialogEffectsFollowing": "Effects the following skills:", - "DG.Skills.ApplySkillImprovementsWarning": "No failed skills to improve.", + "DG.Skills.ApplySkillImprovements.Title": "Apply Skill Improvements", + "DG.Skills.ApplySkillImprovements.ChatFlavor": "Improved the following skills by", + "DG.Skills.ApplySkillImprovements.DialogLabel": "Improve skills by the following formula: {formula}", + "DG.Skills.ApplySkillImprovements.DialogEffectsFollowing": "Effects the following skills: {skillList}", + "DG.Skills.ApplySkillImprovements.Warning": "No failed skills to improve.", "DG.Skills.EditTypedOrCustomSkill": "Edit Typed or Custom Skill", "DG.Skills.EditSkill": "Edit Skill", "DG.Skills.SkillGroup": "Skill Group", diff --git a/module/config.js b/module/config.js index 9e06eae..e2b54eb 100644 --- a/module/config.js +++ b/module/config.js @@ -54,4 +54,8 @@ const DG = /** @type {const} */ ({ statistics: ["str", "con", "dex", "int", "pow", "cha"], }); +// Set base template path for single source of truth for hbs locations. +const BASE_TEMPLATE_PATH = /** @type {const} */ (`systems/${DG.ID}/templates`); + export default DG; +export { DG, BASE_TEMPLATE_PATH }; diff --git a/module/sheets/agent-sheet.js b/module/sheets/agent-sheet.js index 4d713b7..5708a38 100644 --- a/module/sheets/agent-sheet.js +++ b/module/sheets/agent-sheet.js @@ -1,5 +1,8 @@ +import { DG, BASE_TEMPLATE_PATH } from "../config.js"; import DGActorSheet from "./base-actor-sheet.js"; +const { renderTemplate } = foundry.applications.handlebars; + /** @extends {DGActorSheet} */ export default class DGAgentSheet extends DGActorSheet { /** @override */ @@ -84,7 +87,7 @@ export default class DGAgentSheet extends DGActorSheet { /* -------------------------------------------- */ - static _applySkillImprovements(event, target) { + static async _applySkillImprovements(event, target) { const failedSkills = Object.entries(this.actor.system.skills).filter( (skill) => skill[1].failure, ); @@ -92,11 +95,10 @@ export default class DGAgentSheet extends DGActorSheet { this.actor.system.typedSkills, ).filter((skill) => skill[1].failure); if (failedSkills.length === 0 && failedTypedSkills.length === 0) { - ui.notifications.warn("No Skills to Increase"); + ui.notifications.warn("DG.Skills.ApplySkillImprovements.Warning"); return; } - let htmlContent = ""; let failedSkillNames = ""; failedSkills.forEach(([skill], value) => { if (value === 0) { @@ -117,30 +119,20 @@ export default class DGAgentSheet extends DGActorSheet { } }); - const baseRollFormula = game.settings.get( - "deltagreen", - "skillImprovementFormula", + const baseRollFormula = game.settings.get(DG.ID, "skillImprovementFormula"); + + const content = await renderTemplate( + `${BASE_TEMPLATE_PATH}/dialog/apply-skill-improvements.html`, + { failedSkillNames, baseRollFormula }, ); - htmlContent += `