foundry-dsa41-game/src/module/data/activeeffect.mjs

53 lines
2.1 KiB
JavaScript

import BaseItem from "./base-item.mjs";
const {ArrayField, BooleanField, NumberField, AnyField, StringField, HTMLField} = foundry.data.fields;
export class ActiveEffectDataModel extends BaseItem {
static defineSchema() {
return {
name: new StringField({required: true}),
notes: new HTMLField(),
unique: new BooleanField({initial: false}),
effects: new AnyField()
}
/*
name: String, // Name of Vornachteil will be used for rendering and referencing by other Items
description: HTMLString, // only used for rendering
variant: [String]?, // variant name of Vornachteil e.g. "Mut" in the case of "Herausragende Eigenschaft"
levels: [Number]?, // available levels e.g. 1, 2 in the case of "Flink"
mods: [
{
level: Number?, // in reference to level of the Vornachteil, is null when it does not have any levels or is the only modification
field: String, // Reference to Actor Data e.g. "FF" maps to "FF.mod"
value: Number, // value of the Modification e.g. "+2" maps to 2
requirement: {
field: String // Reference to Actor Data e.g. "BE" maps "be.aktuell"
operation: String // Supported: "<=", ">"
value: Number // Target Value the referenced field has to compare against
}? // optional when the mod does not have an active requirement
}
]
*/
}
_onCreate(data, options, userId) {
super._onCreate(data, options, userId);
console.log(data);
if (this.parent.getEmbeddedCollection("ActiveEffect").contents.length === 0) {
this.parent.createEmbeddedDocuments("ActiveEffect", [{
name: data.name,
changes: data.system.effects,
duration: {},
icon: this.img,
}]);
console.log("added default activeffect");
}
}
}