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}}