add applySkillImprovements action
This commit is contained in:
+1
-1
@@ -1097,7 +1097,7 @@ input.item-sheet-short-input {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.apply-skill-improvements {
|
||||
a[data-action="applySkillImprovements"] {
|
||||
float: right;
|
||||
}
|
||||
|
||||
|
||||
+70
-71
@@ -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 += `<div>`;
|
||||
htmlContent += ` <label>${game.i18n.localize(
|
||||
"DG.Skills.ApplySkillImprovementsDialogLabel",
|
||||
)} <b>+${baseRollFormula}%</b></label>`;
|
||||
htmlContent += ` <hr>`;
|
||||
htmlContent += ` <span> ${game.i18n.localize(
|
||||
"DG.Skills.ApplySkillImprovementsDialogEffectsFollowing",
|
||||
)} <b>${failedSkillNames}</b> </span>`;
|
||||
htmlContent += `</div>`;
|
||||
|
||||
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 += `<div>`;
|
||||
htmlContent += ` <label>${game.i18n.localize(
|
||||
"DG.Skills.ApplySkillImprovementsDialogLabel",
|
||||
)} <b>+${baseRollFormula}%</b></label>`;
|
||||
htmlContent += ` <hr>`;
|
||||
htmlContent += ` <span> ${game.i18n.localize(
|
||||
"DG.Skills.ApplySkillImprovementsDialogEffectsFollowing",
|
||||
)} <b>${failedSkillNames}</b> </span>`;
|
||||
htmlContent += `</div>`;
|
||||
|
||||
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({
|
||||
|
||||
@@ -13,7 +13,10 @@
|
||||
{{localize 'DG.SpecialTraining.Dialog.CreateSpecialTraining'}}
|
||||
</a>
|
||||
{{#if_eq actorType "agent" }}
|
||||
<a class="item-control apply-skill-improvements action-pill">{{localize 'DG.Skills.ApplySkillImprovements'}}<i class="fas fa-dice"></i></a>
|
||||
<a class="item-control action-pill" data-action="applySkillImprovements">
|
||||
{{localize 'DG.Skills.ApplySkillImprovements'}}
|
||||
<i class="fas fa-dice"></i>
|
||||
</a>
|
||||
{{/if_eq}}
|
||||
</div>
|
||||
<div class="grid-2col">
|
||||
|
||||
Reference in New Issue
Block a user