Files
fvtt-adventures-with-emmy/module/documents/actor.mjs
T
2026-03-05 22:50:53 +01:00

55 lines
1.3 KiB
JavaScript

import AwERoll from "./roll.mjs"
export default class AwEActor extends Actor {
/** @override */
prepareData() {
super.prepareData()
}
/** @override */
prepareBaseData() {}
/** @override */
prepareDerivedData() {
const actorData = this
this._prepareCharacterData(actorData)
this._prepareCreatureData(actorData)
}
/**
* Prepare character data.
* @param {object} actorData - The actor data.
*/
_prepareCharacterData(actorData) {
if (actorData.type !== "character") return
}
/**
* Prepare creature data.
* @param {object} actorData - The actor data.
*/
_prepareCreatureData(actorData) {
if (actorData.type !== "creature") return
}
/**
* Roll an attribute check.
* @param {string} attributeId - The attribute to roll.
* @param {object} options - Roll options (passed through to AwERoll.prompt).
* @returns {Promise<AwERoll|null>} The evaluated roll, or null if cancelled.
*/
async rollAttribute(attributeId, options = {}) {
const attribute = this.system.attributes[attributeId]
if (!attribute) return null
return AwERoll.prompt({
attributeKey: attributeId,
modifier: attribute.mod ?? 0,
actorId: this.id,
actorName: this.name,
actorImage: this.img,
...options
})
}
}