53 lines
2.1 KiB
JavaScript
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");
|
|
}
|
|
}
|
|
|
|
}
|