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