Fix skills and multiple maneuvers per weapons

This commit is contained in:
2025-11-29 11:14:16 +01:00
parent 7dfffcb855
commit 58d9b10251
8 changed files with 233 additions and 97 deletions
+37 -1
View File
@@ -24,8 +24,44 @@ export default class PrismRPGWeaponSheet extends PrismRPGItemSheet {
const context = await super._prepareContext()
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
context.enrichedPassiveDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.passiveDescription, { async: true })
context.enrichedManeuverDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.maneuverDescription, { async: true })
// Enrich descriptions for all maneuvers
context.enrichedManeuvers = await Promise.all(
this.document.system.maneuvers.map(async (maneuver) => ({
...maneuver,
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(maneuver.description, { async: true })
}))
)
return context
}
/** @override */
_onRender(context, options) {
super._onRender(context, options)
// Add event listeners for maneuver management
this.element.querySelectorAll('[data-action="add-maneuver"]').forEach(el => {
el.addEventListener("click", this._onAddManeuver.bind(this))
})
this.element.querySelectorAll('[data-action="delete-maneuver"]').forEach(el => {
el.addEventListener("click", this._onDeleteManeuver.bind(this))
})
}
async _onAddManeuver(event) {
event.preventDefault()
const maneuvers = [...this.document.system.maneuvers]
maneuvers.push({ name: "", description: "" })
await this.document.update({ "system.maneuvers": maneuvers })
}
async _onDeleteManeuver(event) {
event.preventDefault()
const index = parseInt(event.currentTarget.closest("[data-maneuver-index]").dataset.maneuverIndex)
const maneuvers = this.document.system.maneuvers.filter((_, i) => i !== index)
await this.document.update({ "system.maneuvers": maneuvers })
}
}