import { STRING, HTMLSTRING } from "../common/field-types.mjs";
import { statField, santeField, attributField, compteurField } from "./_actor-helpers.mjs";
const fields = foundry.data.fields;
export default class RdDModelCreature extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
carac: new fields.SchemaField({
taille: statField(10, "Taille"),
constitution: statField(10, "Constitution"),
force: statField(10, "Force"),
perception: statField(10, "Perception"),
volonte: statField(10, "Volonté"),
reve: statField(10, "Rêve"),
}),
sante: new fields.SchemaField({
vie: santeField(10, 10, "Vie"),
endurance: santeField(10, 10, "Endurance"),
bonusPotion: new fields.NumberField({ initial: 0, integer: true }),
}),
attributs: new fields.SchemaField({
plusdom: attributField(0, "+dom", true),
encombrement: attributField(0.0, "Encombrement", true),
vitesse: attributField(0, "Vitesse", false, true),
protection: attributField(0, "Protection naturelle", false),
}),
compteurs: new fields.SchemaField({
etat: compteurField(0, "Etat général"),
}),
description: new fields.HTMLField({ initial: "", ...HTMLSTRING }),
race: new fields.StringField({ initial: "", ...STRING }),
notesmj: new fields.HTMLField({ initial: "", ...HTMLSTRING }),
};
}
prepareDerivedData() {
const actor = this.parent;
this.sante.vie.max = Math.ceil((actor.getTaille() + actor.getConstitution()) / 2);
this.sante.vie.value = Math.min(this.sante.vie.value, this.sante.vie.max);
this.attributs.encombrement.value = actor.getEncombrementMax();
this.attributs.plusdom.value = actor.getBonusDegat();
this.sante.endurance.max = actor.getEnduranceMax();
this.sante.endurance.value = Math.min(this.sante.endurance.value, this.sante.endurance.max);
}
}