diff --git a/modules/data/tedeum-schema-pj.js b/modules/data/tedeum-schema-pj.js new file mode 100644 index 0000000..e2c059f --- /dev/null +++ b/modules/data/tedeum-schema-pj.js @@ -0,0 +1,43 @@ +export default class TeDeumPJSchema extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + const requiredInteger = { required: true, nullable: false, integer: true }; + const schema = {}; + + schema.caracteristiques = new fields.SchemaField( + Object.values(SYSTEM.caracteristiques).reduce((obj, caracDef) => { + obj[caracDef.id] =new fields.SchemaField({ + value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1, max: 12 }), + experience: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 10000 }), + }); + return obj; + }, {}) + ); + + schema.localisation = new fields.SchemaField( + Object.values(LOCALISATION).reduce((obj, loc) => { + 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}); + schema.genre = new fields.StringField({ required: false, blank: true, initial: undefined }); + schema.age = new fields.StringField({ required: false, blank: true, initial: undefined }); + schema.origine = new fields.StringField({ required: false, blank: true, initial: undefined }); + schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined }); + + return schema; + } +}