/** * Extend the base Actor document by defining a custom roll data structure which is ideal for the Simple system. * @extends {Actor} */ export class Shadowrun6Actor extends Actor { /** @override */ prepareData() { // Prepare data for the actor. Calling the super version of this executes // the following, in order: data reset (to clear active effects), // prepareBaseData(), prepareEmbeddedDocuments() (including active effects), // prepareDerivedData(). super.prepareData(); } /** @override */ prepareBaseData() { // Data modifications in this step occur before processing embedded // documents or derived data. } /** * @override * Augment the actor source data with additional dynamic data that isn't * handled by the actor's DataModel. Data calculated in this step should be * available both inside and outside of character sheets (such as if an actor * is queried and has a roll executed directly from it). */ prepareDerivedData() { const actorData = this; const flags = actorData.flags.shadowrun6eultimate || {}; } /** * * @override * Augment the actor's default getRollData() method by appending the data object * generated by the its DataModel's getRollData(), or null. This polymorphic * approach is useful when you have actors & items that share a parent Document, * but have slightly different data preparation needs. */ getRollData() { return { ...super.getRollData(), ...this.system.getRollData?.() ?? null }; } }