55 lines
1.3 KiB
JavaScript
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
|
|
})
|
|
}
|
|
}
|