Migration datamodels !

This commit is contained in:
2026-01-11 22:40:06 +01:00
parent 8d3fdbd009
commit fc7c51e369
238 changed files with 16947 additions and 2539 deletions

17
modules/models/armecc.mjs Normal file
View File

@@ -0,0 +1,17 @@
/**
* Data model pour les armes de corps à corps
*/
export default class ArmeccDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
equipe: new fields.BooleanField({ initial: false }),
degat: new fields.NumberField({ initial: 0, integer: true }),
solidite: new fields.NumberField({ initial: 0, integer: true }),
enc: new fields.NumberField({ initial: 0, integer: true }),
valeur: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,18 @@
/**
* Data model pour les armes à distance
*/
export default class ArmedistDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
equipe: new fields.BooleanField({ initial: false }),
degat: new fields.NumberField({ initial: 0, integer: true }),
solidite: new fields.NumberField({ initial: 0, integer: true }),
enc: new fields.NumberField({ initial: 0, integer: true }),
portee: new fields.StringField({ initial: "" }),
valeur: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

16
modules/models/armure.mjs Normal file
View File

@@ -0,0 +1,16 @@
/**
* Data model pour les armures
*/
export default class ArmureDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
equipe: new fields.BooleanField({ initial: false }),
protection: new fields.StringField({ initial: "" }),
enc: new fields.NumberField({ initial: 0, integer: true }),
valeur: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,11 @@
/**
* Data model pour les blessures
*/
export default class BlessureDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,18 @@
/**
* Data model pour les boucliers
*/
export default class BouclierDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
equipe: new fields.BooleanField({ initial: false }),
defensebonus: new fields.NumberField({ initial: 0, integer: true }),
enc: new fields.NumberField({ initial: 0, integer: true }),
enccomb: new fields.NumberField({ initial: 0, integer: true }),
solidite: new fields.NumberField({ initial: 0, integer: true }),
valeur: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,16 @@
/**
* Data model pour les compétences
*/
export default class CompetenceDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
isspecialisation: new fields.BooleanField({ initial: false }),
categorie: new fields.StringField({ initial: "" }),
specialisation: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" }),
niveau: new fields.NumberField({ initial: 0, integer: true }),
niveauunrequis: new fields.BooleanField({ initial: false })
};
}
}

11
modules/models/don.mjs Normal file
View File

@@ -0,0 +1,11 @@
/**
* Data model pour les dons
*/
export default class DonDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,12 @@
/**
* Data model pour les effets magiques
*/
export default class EffetmagiqueDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
origine: new fields.StringField({ initial: "" }),
effet: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,15 @@
/**
* Data model pour l'équipement
*/
export default class EquipementDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
equipe: new fields.BooleanField({ initial: false }),
enc: new fields.NumberField({ initial: 0, integer: true }),
valeur: new fields.NumberField({ initial: 0, integer: true }),
quantite: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,11 @@
/**
* Data model pour les faiblesses
*/
export default class FaiblesseDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,87 @@
/**
* Data model pour les figurants
*/
export default class FigurantDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
biodata: new fields.SchemaField({
age: new fields.NumberField({ initial: 0, integer: true }),
taille: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" }),
poids: new fields.NumberField({ initial: 0, integer: true }),
notes: new fields.HTMLField({ initial: "" })
}),
attributs: new fields.SchemaField({
conflit: new fields.SchemaField({
values: new fields.SchemaField({
offensif: new fields.SchemaField({
label: new fields.StringField({ initial: "Offensif" }),
value: new fields.NumberField({ initial: 0, integer: true }),
degats: new fields.BooleanField({ initial: true })
}),
defensif: new fields.SchemaField({
label: new fields.StringField({ initial: "Défensif" }),
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: false }),
label: new fields.StringField({ initial: "Conflit" })
}),
relationnel: new fields.SchemaField({
values: new fields.SchemaField({
defaut: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: true }),
label: new fields.StringField({ initial: "Relationnel" })
}),
physique: new fields.SchemaField({
values: new fields.SchemaField({
defaut: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: true }),
label: new fields.StringField({ initial: "Physique" })
}),
mental: new fields.SchemaField({
values: new fields.SchemaField({
defaut: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: true }),
label: new fields.StringField({ initial: "Mental" })
}),
mystique: new fields.SchemaField({
values: new fields.SchemaField({
actif: new fields.SchemaField({
label: new fields.StringField({ initial: "Actif" }),
value: new fields.NumberField({ initial: 0, integer: true })
}),
passif: new fields.SchemaField({
label: new fields.StringField({ initial: "Passif" }),
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: false }),
label: new fields.StringField({ initial: "Mystique" })
}),
vitalite: new fields.SchemaField({
values: new fields.SchemaField({
defaut: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true })
})
}),
rollable: new fields.BooleanField({ initial: false }),
label: new fields.StringField({ initial: "Vitalité" })
})
}),
etat: new fields.SchemaField({
etat: new fields.StringField({ initial: "fringant" })
})
};
}
}

27
modules/models/index.mjs Normal file
View File

@@ -0,0 +1,27 @@
/**
* Index des DataModels pour Yggdrasill
* Ce fichier centralise tous les exports des modèles de données
*/
// Modèles d'acteurs
export { default as PersonnageDataModel } from './personnage.mjs';
export { default as FigurantDataModel } from './figurant.mjs';
// Modèles d'items
export { default as CompetenceDataModel } from './competence.mjs';
export { default as DonDataModel } from './don.mjs';
export { default as FaiblesseDataModel } from './faiblesse.mjs';
export { default as BlessureDataModel } from './blessure.mjs';
export { default as MaladieDataModel } from './maladie.mjs';
export { default as PoisonDataModel } from './poison.mjs';
export { default as ProuesseDataModel } from './prouesse.mjs';
export { default as SortsejdrDataModel } from './sortsejdr.mjs';
export { default as SortgaldrDataModel } from './sortgaldr.mjs';
export { default as RuneDataModel } from './rune.mjs';
export { default as ArmeccDataModel } from './armecc.mjs';
export { default as ArmedistDataModel } from './armedist.mjs';
export { default as ArmureDataModel } from './armure.mjs';
export { default as BouclierDataModel } from './bouclier.mjs';
export { default as EquipementDataModel } from './equipement.mjs';
export { default as MonnaieDataModel } from './monnaie.mjs';
export { default as EffetmagiqueDataModel } from './effetmagique.mjs';

View File

@@ -0,0 +1,13 @@
/**
* Data model pour les maladies
*/
export default class MaladieDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
periode: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,13 @@
/**
* Data model pour la monnaie
*/
export default class MonnaieDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
quantite: new fields.NumberField({ initial: 0, integer: true }),
enc: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,158 @@
/**
* Data model pour les personnages
*/
export default class PersonnageDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
biodata: new fields.SchemaField({
nom: new fields.StringField({ initial: "" }),
archetype: new fields.StringField({ initial: "" }),
profession: new fields.StringField({ initial: "" }),
royaume: new fields.StringField({ initial: "" }),
age: new fields.NumberField({ initial: 0, integer: true }),
taille: new fields.NumberField({ initial: 0, integer: true }),
poids: new fields.NumberField({ initial: 0, integer: true }),
don: new fields.StringField({ initial: "" }),
faiblesse: new fields.StringField({ initial: "" }),
pointlegende: new fields.NumberField({ initial: 0, integer: true }),
renomee: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }),
tiragerunes: new fields.StringField({ initial: "" }),
gmnotes: new fields.HTMLField({ initial: "" })
}),
carac: new fields.SchemaField({
corps: new fields.SchemaField({
label: new fields.StringField({ initial: "Corps" }),
carac: new fields.SchemaField({
puissance: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Puissance" }),
categorie: new fields.StringField({ initial: "corps" }),
abbrev: new fields.StringField({ initial: "pui" })
}),
vigueur: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Vigueur" }),
categorie: new fields.StringField({ initial: "corps" }),
abbrev: new fields.StringField({ initial: "vig" })
}),
agilite: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Agilité" }),
categorie: new fields.StringField({ initial: "corps" }),
abbrev: new fields.StringField({ initial: "agi" })
})
})
}),
esprit: new fields.SchemaField({
label: new fields.StringField({ initial: "Esprit" }),
carac: new fields.SchemaField({
intellect: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Intellect" }),
categorie: new fields.StringField({ initial: "esprit" }),
abbrev: new fields.StringField({ initial: "int" })
}),
perception: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Perception" }),
categorie: new fields.StringField({ initial: "esprit" }),
abbrev: new fields.StringField({ initial: "per" })
}),
tenacite: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Tenacité" }),
categorie: new fields.StringField({ initial: "esprit" }),
abbrev: new fields.StringField({ initial: "ten" })
})
})
}),
ame: new fields.SchemaField({
label: new fields.StringField({ initial: "Ame" }),
carac: new fields.SchemaField({
charisme: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Charisme" }),
categorie: new fields.StringField({ initial: "ame" }),
abbrev: new fields.StringField({ initial: "cha" })
}),
communication: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Communication" }),
categorie: new fields.StringField({ initial: "ame" }),
abbrev: new fields.StringField({ initial: "com" })
}),
instinct: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Instinct" }),
categorie: new fields.StringField({ initial: "ame" }),
abbrev: new fields.StringField({ initial: "ins" })
})
})
})
}),
furor: new fields.SchemaField({
value: new fields.NumberField({ initial: 1, integer: true }),
max: new fields.NumberField({ initial: 1, integer: true }),
label: new fields.StringField({ initial: "Furor" })
}),
xp: new fields.SchemaField({
total: new fields.NumberField({ initial: 1, integer: true }),
current: new fields.NumberField({ initial: 1, integer: true }),
label: new fields.StringField({ initial: "XP" })
}),
renommee: new fields.SchemaField({
value: new fields.NumberField({ initial: 1, integer: true }),
label: new fields.StringField({ initial: "Renommée" })
}),
status: new fields.SchemaField({
epuise: new fields.BooleanField({ initial: false }),
blesse: new fields.BooleanField({ initial: false }),
meurtri: new fields.BooleanField({ initial: false })
}),
caracsecondaire: new fields.SchemaField({
reaction: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
max: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Réaction" }),
abbrev: new fields.StringField({ initial: "rea" })
}),
defensephy: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
bonusmalus: new fields.NumberField({ initial: 0, integer: true }),
max: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Défense Physique" }),
abbrev: new fields.StringField({ initial: "dp" })
}),
defensemen: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
bonusmalus: new fields.NumberField({ initial: 0, integer: true }),
max: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Défense Mentale" }),
abbrev: new fields.StringField({ initial: "dm" })
}),
deplacement: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
max: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Déplacement" }),
abbrev: new fields.StringField({ initial: "dep" })
}),
capaenc: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true }),
max: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Capacité d'Encombrement" }),
abbrev: new fields.StringField({ initial: "cpe" })
}),
pv: new fields.SchemaField({
value: new fields.NumberField({ initial: 10, integer: true }),
max: new fields.NumberField({ initial: 10, integer: true }),
min: new fields.NumberField({ initial: 0, integer: true }),
label: new fields.StringField({ initial: "Points de Vie" }),
abbrev: new fields.StringField({ initial: "pv" })
})
})
};
}
}

13
modules/models/poison.mjs Normal file
View File

@@ -0,0 +1,13 @@
/**
* Data model pour les poisons
*/
export default class PoisonDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
type: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,16 @@
/**
* Data model pour les prouesses
*/
export default class ProuesseDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
categorie: new fields.StringField({ initial: "" }),
niveau: new fields.NumberField({ initial: 0, integer: true }),
armes: new fields.StringField({ initial: "" }),
prerequis: new fields.StringField({ initial: "" }),
modificateur: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

12
modules/models/rune.mjs Normal file
View File

@@ -0,0 +1,12 @@
/**
* Data model pour les runes
*/
export default class RuneDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
niveau: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,13 @@
/**
* Data model pour les sorts Galdr
*/
export default class SortgaldrDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
voie: new fields.StringField({ initial: "" }),
sd: new fields.NumberField({ initial: 0, integer: true }),
description: new fields.HTMLField({ initial: "" })
};
}
}

View File

@@ -0,0 +1,17 @@
/**
* Data model pour les sorts Sejdr
*/
export default class SortsejdrDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
forme: new fields.StringField({ initial: "" }),
preparation: new fields.StringField({ initial: "" }),
niveau: new fields.NumberField({ initial: 0, integer: true }),
malus: new fields.NumberField({ initial: 0, integer: true }),
duree: new fields.StringField({ initial: "" }),
zone: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" })
};
}
}