diff --git a/css/deltagreen.css b/css/deltagreen.css index a33a910..9af56e7 100644 --- a/css/deltagreen.css +++ b/css/deltagreen.css @@ -1097,7 +1097,7 @@ input.item-sheet-short-input { margin: 5px; } -.apply-skill-improvements { +a[data-action="applySkillImprovements"] { float: right; } diff --git a/module/actor/actor-sheet.js b/module/actor/actor-sheet.js index 9c16a69..b4ee57e 100644 --- a/module/actor/actor-sheet.js +++ b/module/actor/actor-sheet.js @@ -21,6 +21,7 @@ export default class DeltaGreenActorSheet extends DGSheetMixin(ActorSheetV2) { resetBreakingPoint: DeltaGreenActorSheet._resetBreakingPoint, typedSkillAction: DeltaGreenActorSheet._onTypedSkillAction, specialTrainingAction: DeltaGreenActorSheet._onSpecialTrainingAction, + applySkillImprovements: DeltaGreenActorSheet._applySkillImprovements, }, }); @@ -626,6 +627,75 @@ export default class DeltaGreenActorSheet extends DGSheetMixin(ActorSheetV2) { } } + static _applySkillImprovements(event, target) { + const failedSkills = Object.entries(this.actor.system.skills).filter( + (skill) => skill[1].failure, + ); + const failedTypedSkills = Object.entries( + this.actor.system.typedSkills, + ).filter((skill) => skill[1].failure); + if (failedSkills.length === 0 && failedTypedSkills.length === 0) { + ui.notifications.warn("No Skills to Increase"); + return; + } + + let htmlContent = ""; + let failedSkillNames = ""; + failedSkills.forEach(([skill], value) => { + if (value === 0) { + failedSkillNames += game.i18n.localize(`DG.Skills.${skill}`); + } else { + failedSkillNames += `, ${game.i18n.localize(`DG.Skills.${skill}`)}`; + } + }); + failedTypedSkills.forEach(([skillName, skillData], value) => { + if (value === 0 && failedSkillNames === "") { + failedSkillNames += `${game.i18n.localize( + `DG.TypeSkills.${skillData.group.split(" ").join("")}`, + )} (${skillData.label})`; + } else { + failedSkillNames += `, ${game.i18n.localize( + `DG.TypeSkills.${skillData.group.split(" ").join("")}`, + )} (${skillData.label})`; + } + }); + + const baseRollFormula = game.settings.get( + "deltagreen", + "skillImprovementFormula", + ); + + htmlContent += `
`; + htmlContent += ` `; + htmlContent += `
`; + htmlContent += ` ${game.i18n.localize( + "DG.Skills.ApplySkillImprovementsDialogEffectsFollowing", + )} ${failedSkillNames} `; + htmlContent += `
`; + + new Dialog({ + content: htmlContent, + title: + game.i18n.translations.DG?.Skills?.ApplySkillImprovements ?? + "Apply Skill Improvements", + default: "add", + buttons: { + apply: { + label: game.i18n.translations.DG?.Skills?.Apply ?? "Apply", + callback: (btn) => { + this._applySkillImprovements( + baseRollFormula, + failedSkills, + failedTypedSkills, + ); + }, + }, + }, + }).render(true); + } + /** @override */ activateListeners(html) { super.activateListeners(html); @@ -657,77 +727,6 @@ export default class DeltaGreenActorSheet extends DGSheetMixin(ActorSheetV2) { }); } - html.find(".apply-skill-improvements").click((event) => { - event.preventDefault(); - - const failedSkills = Object.entries(this.actor.system.skills).filter( - (skill) => skill[1].failure, - ); - const failedTypedSkills = Object.entries( - this.actor.system.typedSkills, - ).filter((skill) => skill[1].failure); - if (failedSkills.length === 0 && failedTypedSkills.length === 0) { - ui.notifications.warn("No Skills to Increase"); - return; - } - - let htmlContent = ""; - let failedSkillNames = ""; - failedSkills.forEach(([skill], value) => { - if (value === 0) { - failedSkillNames += game.i18n.localize(`DG.Skills.${skill}`); - } else { - failedSkillNames += `, ${game.i18n.localize(`DG.Skills.${skill}`)}`; - } - }); - failedTypedSkills.forEach(([skillName, skillData], value) => { - if (value === 0 && failedSkillNames === "") { - failedSkillNames += `${game.i18n.localize( - `DG.TypeSkills.${skillData.group.split(" ").join("")}`, - )} (${skillData.label})`; - } else { - failedSkillNames += `, ${game.i18n.localize( - `DG.TypeSkills.${skillData.group.split(" ").join("")}`, - )} (${skillData.label})`; - } - }); - - const baseRollFormula = game.settings.get( - "deltagreen", - "skillImprovementFormula", - ); - - htmlContent += `
`; - htmlContent += ` `; - htmlContent += `
`; - htmlContent += ` ${game.i18n.localize( - "DG.Skills.ApplySkillImprovementsDialogEffectsFollowing", - )} ${failedSkillNames} `; - htmlContent += `
`; - - new Dialog({ - content: htmlContent, - title: - game.i18n.translations.DG?.Skills?.ApplySkillImprovements ?? - "Apply Skill Improvements", - default: "add", - buttons: { - apply: { - label: game.i18n.translations.DG?.Skills?.Apply ?? "Apply", - callback: (btn) => { - this._applySkillImprovements( - baseRollFormula, - failedSkills, - failedTypedSkills, - ); - }, - }, - }, - }).render(true); - }); - // Browse Weapon Compendiums html.find(".weapon-browse").click((ev) => { const dialog = new Dialog({ diff --git a/templates/actor/partials/custom-skills-partial.html b/templates/actor/partials/custom-skills-partial.html index 43285a1..6ed6cf0 100644 --- a/templates/actor/partials/custom-skills-partial.html +++ b/templates/actor/partials/custom-skills-partial.html @@ -13,7 +13,10 @@ {{localize 'DG.SpecialTraining.Dialog.CreateSpecialTraining'}} {{#if_eq actorType "agent" }} - {{localize 'DG.Skills.ApplySkillImprovements'}} + + {{localize 'DG.Skills.ApplySkillImprovements'}} + + {{/if_eq}}