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) => {
|
2024-07-08 07:54:53 +02:00
|
|
|
obj[loc.id] = new fields.SchemaField({
|
|
|
|
armure: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }),
|
|
|
|
touche: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }),
|
2023-12-11 21:41:55 +01:00
|
|
|
blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })
|
|
|
|
});
|
|
|
|
return obj;
|
|
|
|
}, {})
|
|
|
|
);
|
|
|
|
|
|
|
|
schema.fortune = new fields.SchemaField({
|
2025-02-03 23:00:59 +01:00
|
|
|
"ecus": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
2023-12-11 21:41:55 +01:00
|
|
|
"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});
|
2025-02-22 22:44:00 +01:00
|
|
|
schema.histoire = new fields.HTMLField({required: true, blank: true});
|
2023-12-11 21:41:55 +01:00
|
|
|
schema.vetements = new fields.HTMLField({required: true, blank: true});
|
2025-02-03 23:00:59 +01:00
|
|
|
schema.equipmentfree = new fields.HTMLField({required: true, blank: true});
|
|
|
|
|
2025-02-04 21:20:54 +01:00
|
|
|
schema.genre = new fields.StringField({required: true, choices: game.system.tedeum.config.genre, 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 });
|
2024-06-06 17:16:40 +02:00
|
|
|
schema.religion = new fields.StringField({ required: false, blank: true, initial: undefined });
|
|
|
|
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: undefined });
|
|
|
|
|
2023-12-11 21:41:55 +01:00
|
|
|
return schema;
|
|
|
|
}
|
|
|
|
}
|