fvtt-te-deum/modules/data/tedeum-schema-pj.js

53 lines
2.5 KiB
JavaScript
Raw Normal View History

2024-02-19 22:02:44 +01:00
export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
2023-12-11 21:41:55 +01:00
static defineSchema() {
const fields = foundry.data.fields;
const requiredInteger = { required: true, nullable: false, integer: true };
const schema = {};
schema.caracteristiques = new fields.SchemaField(
2024-05-06 12:33:28 +02:00
Object.values(game.system.tedeum.config.caracteristiques).reduce((obj, caracDef) => {
obj[caracDef.id] = new fields.SchemaField({
2023-12-11 21:41:55 +01:00
value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1, max: 12 }),
experience: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 10000 }),
});
return obj;
}, {})
);
2024-02-19 22:02:44 +01:00
schema.providence = new fields.SchemaField({
value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }),
});
schema.bienveillance = new fields.SchemaField({
value: new fields.NumberField({ ...requiredInteger, initial: 10, min: 0 }),
});
2023-12-11 21:41:55 +01:00
schema.localisation = new fields.SchemaField(
2024-05-06 12:33:28 +02:00
Object.values(game.system.tedeum.config.LOCALISATION).reduce((obj, loc) => {
2023-12-11 21:41:55 +01:00
obj[loc.id] =new fields.SchemaField({
blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })
});
return obj;
}, {})
);
schema.fortune = new fields.SchemaField({
"ecu": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
"livres": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
"sous": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
"deniers": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
});
schema.description = new fields.HTMLField({required: true, blank: true});
schema.connaissances = new fields.HTMLField({required: true, blank: true});
schema.vetements = new fields.HTMLField({required: true, blank: true});
2024-05-06 12:33:28 +02:00
schema.descriptiongraces = new fields.HTMLField({required: true, blank: true});
2024-02-19 22:02:44 +01:00
schema.genre = new fields.StringField({required: true, choices: ["Homme", "Femme"], initial: "Femme"});
2023-12-11 21:41:55 +01:00
schema.age = new fields.StringField({ required: false, blank: true, initial: undefined });
2024-05-06 12:33:28 +02:00
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined });
2023-12-11 21:41:55 +01:00
schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined });
return schema;
}
}