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

62 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-02-19 22:02:44 +01:00
export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
2023-12-11 22:24:19 +01:00
static defineSchema() {
const fields = foundry.data.fields;
const requiredInteger = { required: true, nullable: false, integer: true };
2024-02-29 22:35:12 +01:00
const requiredDouble = { required: true, nullable: false, integer: false };
2023-12-11 22:24:19 +01:00
const schema = {};
2024-02-19 22:02:44 +01:00
schema.typeArme = new fields.StringField({required: true, choices: ["melee", "tir"], initial: "melee"});
2024-06-04 21:05:54 +02:00
schema.allonge = new fields.StringField({required: true, choices: ["courte", "moyenne", "longue", "treslongue"], initial: "courte"});
2024-02-19 22:02:44 +01:00
2023-12-11 22:24:19 +01:00
schema.specificites = new fields.SchemaField(
2024-02-29 22:35:12 +01:00
Object.values((game.system.tedeum.config.ARME_SPECIFICITE)).reduce((obj, spec) => {
2023-12-11 22:24:19 +01:00
obj[spec.id] = new fields.SchemaField({
hasSpec: new fields.BooleanField({initial: false}),
});
return obj;
}, {})
);
2024-06-04 21:05:54 +02:00
schema.portees = new fields.SchemaField(
Object.values((game.system.tedeum.config.ARME_PORTEES)).reduce((obj, spec) => {
obj[spec.id] = new fields.SchemaField({
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
});
return obj;
}, {})
);
2023-12-11 22:24:19 +01:00
schema.degatsArmure = new fields.SchemaField( {
sansarmure : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
cuir : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
plates : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
mailles : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
});
2024-06-04 21:05:54 +02:00
schema.tempsRecharge = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
2024-07-10 22:59:38 +02:00
schema.competenceRecharge = new fields.StringField({ required: false, choices:["aucune", "archerie", "arquebusade"], initial: "aucune", blank: true });
2024-06-04 21:05:54 +02:00
schema.valeurEchecCritique = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
2023-12-11 22:24:19 +01:00
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
2024-09-13 22:14:21 +02:00
schema.degats = new fields.StringField({ required: false, blank: true, initial: "0" });
schema.degatscrosse = new fields.StringField({ required: false, blank: true, initial: "0" });
2024-06-04 21:05:54 +02:00
let comp = []
for (let key of Object.keys(game.system.tedeum.config.armeCompetences)) {
comp.push(key);
}
schema.competence = new fields.StringField({ required: true, choices:comp, initial: "bagarre" });
schema.competence2 = new fields.StringField({ required: false, choices:comp, initial: "", blank: true });
2024-02-29 22:35:12 +01:00
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
schema.equipe = new fields.BooleanField({initial: false}),
2023-12-11 22:24:19 +01:00
schema.description = new fields.HTMLField({ required: true, blank: true });
return schema;
}
}