BoL DataModels
Ce dossier contient les DataModels pour le système Barbarians of Lemuria (BoL).
Structure
Actors DataModels
-
character.mjs : Personnages joueurs
- Attributs (Vigor, Agility, Mind, Appeal)
- Aptitudes (Initiative, Mêlée, Distance, Défense)
- Ressources (HP, Hero Points, Faith, Power, Alchemy, Astrology)
- XP et création
- Bougette (argent)
-
encounter.mjs : PNJ et créatures
- Mêmes attributs que character
- Champs spécifiques : chartype (tough/villain), isundead, size, environment
-
horde.mjs : Hordes de créatures
- Mêmes attributs de base
- Champs spécifiques : hordesize, hordebasehp, hasdamagerule, damagerule
-
vehicle.mjs : Véhicules (navires, chars, etc.)
- Attributs véhicules : hull, crew, resources
- Champs spécifiques : vehicletype, row, spur, status
Items DataModels
-
item.mjs : Équipements et objets
- Propriétés (weapon, armor, magical, etc.)
- Équipement (quantity, weight, price, worn)
- Category et subtype
-
feature.mjs : Capacités, traits, sorts
- Rank (niveau/rang)
- Description
- Category et subtype
Architecture
Tous les DataModels héritent de foundry.abstract.TypeDataModel et définissent leur schéma via defineSchema().
Exemple de structure :
export default class BoLCharacterDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
const requiredInteger = { required: true, nullable: false, integer: true };
return {
// Définition des champs
};
}
static LOCALIZATION_PREFIXES = ["BOL.Character"];
// Méthodes personnalisées (à ajouter)
}
Types de champs utilisés
StringField: Chaînes de caractèresNumberField: Nombres (avec optioninteger: truepour entiers)BooleanField: BooléensHTMLField: HTML enrichi (descriptions, biographies)ArrayField: TableauxSchemaField: Objets imbriqués
Export
Le fichier _module.mjs exporte tous les DataModels :
export { default as BoLCharacter } from "./character.mjs"
export { default as BoLEncounter } from "./encounter.mjs"
export { default as BoLHorde } from "./horde.mjs"
export { default as BoLVehicle } from "./vehicle.mjs"
export { default as BoLItem } from "./item.mjs"
export { default as BoLFeature } from "./feature.mjs"
Configuration dans bol.js
Les DataModels sont enregistrés dans CONFIG :
CONFIG.Actor.dataModels = {
character: models.BoLCharacter,
encounter: models.BoLEncounter,
horde: models.BoLHorde,
vehicle: models.BoLVehicle
}
CONFIG.Item.dataModels = {
item: models.BoLItem,
feature: models.BoLFeature
}
Compatibilité
Les DataModels sont compatibles avec le template.json existant. La migration est transparente pour les données existantes.
Prochaines étapes
- Ajouter
prepareDerivedData()pour les calculs automatiques - Migrer la logique métier depuis actor.js
- Ajouter des validations personnalisées
- Documenter avec JSDoc