daggerheart/module/data/groupRollData.mjs
2026-04-11 02:26:01 +02:00

40 lines
1.4 KiB
JavaScript

export default class GroupRollData extends foundry.abstract.DataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
leader: new fields.EmbeddedDataField(CharacterData, { nullable: true, initial: null }),
aidingCharacters: new fields.TypedObjectField(new fields.EmbeddedDataField(CharacterData))
};
}
get participants() {
return {
...(this.leader ? { [this.leader.id]: this.leader } : {}),
...this.aidingCharacters
};
}
}
export class CharacterData extends foundry.abstract.DataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
id: new fields.StringField({ required: true }),
name: new fields.StringField({ required: true }),
img: new fields.StringField({ required: true }),
rollChoice: new fields.StringField({
choices: CONFIG.DH.ACTOR.abilities,
initial: CONFIG.DH.ACTOR.abilities.agility.id
}),
rollData: new fields.JSONField({ nullable: true, initial: null }),
selected: new fields.BooleanField({ initial: false }),
successfull: new fields.BooleanField({ nullable: true, initial: null })
};
}
get roll() {
return this.rollData ? CONFIG.Dice.daggerheart.DualityRoll.fromData(this.rollData) : null;
}
}