Import initial

This commit is contained in:
2026-05-02 09:16:24 +02:00
parent e4b91948d2
commit 839b2b606e
76 changed files with 10025 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class ArmeDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
category: new fields.StringField({ initial: "melee" }),
origin: new fields.StringField({ initial: "petitPeuple" }),
sizeMode: new fields.StringField({ initial: "variable" }),
sizeValue: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
sizeModifier: new fields.NumberField({ initial: 0, integer: true }),
damage: new fields.StringField({ initial: "" }),
range: new fields.StringField({ initial: "" }),
properties: new fields.ArrayField(new fields.StringField(), { initial: [] }),
restrictedRace: new fields.StringField({ initial: "" }),
quantity: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
price: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
equipped: new fields.BooleanField({ initial: false }),
}
}
}
+17
View File
@@ -0,0 +1,17 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class ArmureDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
state: new fields.StringField({ initial: "protege" }),
protection: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
physicalPenalty: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
initiativePenalty: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
quantity: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
price: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
equipped: new fields.BooleanField({ initial: false }),
}
}
}
+11
View File
@@ -0,0 +1,11 @@
export class BaseItemDataModel extends foundry.abstract.TypeDataModel {
static defineBaseSchema() {
const fields = foundry.data.fields
return {
description: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }),
source: new fields.StringField({ initial: "Livre de règles Les Oubliés" }),
tags: new fields.ArrayField(new fields.StringField(), { initial: [] }),
}
}
}
+26
View File
@@ -0,0 +1,26 @@
export default class CompagnieDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
description: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }),
captainId: new fields.StringField({ initial: "" }),
memberIds: new fields.ArrayField(new fields.StringField(), { initial: [] }),
ombreDuTourmentId: new fields.StringField({ initial: "" }),
power: new fields.SchemaField({
name: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" }),
sharedDreamPoints: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
activationCondition: new fields.StringField({ initial: "À portée de vue du capitaine" }),
captainVisible: new fields.BooleanField({ initial: true }),
captainNeedsWitness: new fields.BooleanField({ initial: true }),
}),
links: new fields.ArrayField(new fields.SchemaField({
sourceId: new fields.StringField({ initial: "" }),
targetId: new fields.StringField({ initial: "" }),
label: new fields.StringField({ initial: "" }),
details: new fields.StringField({ initial: "" }),
}), { initial: [] }),
}
}
}
+18
View File
@@ -0,0 +1,18 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class CompetenceDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
key: new fields.StringField({ initial: "" }),
profileKey: new fields.StringField({ initial: "" }),
base: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
closed: new fields.BooleanField({ initial: false }),
domainSkill: new fields.BooleanField({ initial: false }),
domains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
fixedDomains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
exampleDomains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
}
}
}
+52
View File
@@ -0,0 +1,52 @@
export default class CreatureDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
biodata: new fields.SchemaField({
categorie: new fields.StringField({ initial: "autre" }),
habitat: new fields.HTMLField({ initial: "" }),
motscles: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }),
gmnotes: new fields.HTMLField({ initial: "" }),
}),
size: new fields.SchemaField({
value: new fields.NumberField({ initial: 2, integer: true, min: 1, max: 8 }),
label: new fields.StringField({ initial: "" }),
}),
profils: new fields.SchemaField({
artiste: new fields.NumberField({ initial: 0, integer: true }),
athlete: new fields.NumberField({ initial: 0, integer: true }),
chasseur: new fields.NumberField({ initial: 0, integer: true }),
faiseur: new fields.NumberField({ initial: 0, integer: true }),
forceNature: new fields.NumberField({ initial: 0, integer: true }),
guerrier: new fields.NumberField({ initial: 0, integer: true }),
mystique: new fields.NumberField({ initial: 0, integer: true }),
ombre: new fields.NumberField({ initial: 0, integer: true }),
savant: new fields.NumberField({ initial: 0, integer: true }),
}),
songes: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
points: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
cauchemar: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
points: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
hp: new fields.SchemaField({
value: new fields.NumberField({ initial: 8, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 8, integer: true, min: 0 }),
display: new fields.StringField({ initial: "" }),
}),
protection: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
statblock: new fields.SchemaField({
damage: new fields.HTMLField({ initial: "" }),
special: new fields.HTMLField({ initial: "" }),
spellSonges: new fields.HTMLField({ initial: "" }),
spellCauchemar: new fields.HTMLField({ initial: "" }),
}),
}
}
}
+18
View File
@@ -0,0 +1,18 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class EquipementDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
category: new fields.StringField({ initial: "survie" }),
quantity: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
price: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
bonus: new fields.StringField({ initial: "" }),
usage: new fields.StringField({ initial: "" }),
lifespan: new fields.StringField({ initial: "" }),
equipped: new fields.BooleanField({ initial: false }),
consumable: new fields.BooleanField({ initial: false }),
}
}
}
+13
View File
@@ -0,0 +1,13 @@
export { BaseItemDataModel } from "./base-item.mjs"
export { default as PersonnageDataModel } from "./personnage.mjs"
export { default as CompagnieDataModel } from "./compagnie.mjs"
export { default as CreatureDataModel } from "./creature.mjs"
export { default as RaceDataModel } from "./race.mjs"
export { default as TribuDataModel } from "./tribu.mjs"
export { default as MetierDataModel } from "./metier.mjs"
export { default as CompetenceDataModel } from "./competence.mjs"
export { default as SortilegeDataModel } from "./sortilege.mjs"
export { default as ArmeDataModel } from "./arme.mjs"
export { default as ArmureDataModel } from "./armure.mjs"
export { default as EquipementDataModel } from "./equipement.mjs"
export { default as PouvoirCompagnieDataModel } from "./pouvoir-compagnie.mjs"
+39
View File
@@ -0,0 +1,39 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class MetierDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
specialRules: new fields.HTMLField({ initial: "" }),
roleplayNotes: new fields.HTMLField({ initial: "" }),
skillBonuses: new fields.ArrayField(new fields.SchemaField({
key: new fields.StringField({ initial: "" }),
alternativeKeys: new fields.ArrayField(new fields.StringField(), { initial: [] }),
base: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
domainsGranted: new fields.ArrayField(new fields.StringField(), { initial: [] }),
domainsToChoose: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
domainsChoiceText: new fields.StringField({ initial: "" }),
}), { initial: [] }),
startingEquipment: new fields.ArrayField(new fields.SchemaField({
name: new fields.StringField({ initial: "" }),
type: new fields.StringField({ initial: "equipement" }),
quantity: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
details: new fields.StringField({ initial: "" }),
choiceText: new fields.StringField({ initial: "" }),
ecorces: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}), { initial: [] }),
spellGrants: new fields.ArrayField(new fields.SchemaField({
tradition: new fields.StringField({ initial: "" }),
skillKey: new fields.StringField({ initial: "" }),
polarity: new fields.StringField({ initial: "" }),
amount: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}), { initial: [] }),
revenues: new fields.SchemaField({
beginner: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
intermediate: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
expert: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
}
}
}
+66
View File
@@ -0,0 +1,66 @@
export default class PersonnageDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
biodata: new fields.SchemaField({
age: new fields.NumberField({ initial: 20, integer: true, min: 0 }),
sexe: new fields.StringField({ initial: "" }),
motscles: new fields.StringField({ initial: "" }),
description: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }),
gmnotes: new fields.HTMLField({ initial: "" }),
}),
references: new fields.SchemaField({
raceId: new fields.StringField({ initial: "" }),
tribuId: new fields.StringField({ initial: "" }),
metierId: new fields.StringField({ initial: "" }),
compagnieId: new fields.StringField({ initial: "" }),
}),
size: new fields.SchemaField({
value: new fields.NumberField({ initial: 2, integer: true, min: 1, max: 4 }),
label: new fields.StringField({ initial: "" }),
}),
profils: new fields.SchemaField({
artiste: new fields.NumberField({ initial: 0, integer: true }),
athlete: new fields.NumberField({ initial: 0, integer: true }),
chasseur: new fields.NumberField({ initial: 0, integer: true }),
faiseur: new fields.NumberField({ initial: 0, integer: true }),
forceNature: new fields.NumberField({ initial: 0, integer: true }),
guerrier: new fields.NumberField({ initial: 0, integer: true }),
mystique: new fields.NumberField({ initial: 0, integer: true }),
ombre: new fields.NumberField({ initial: 0, integer: true }),
savant: new fields.NumberField({ initial: 0, integer: true }),
}),
songes: new fields.SchemaField({
value: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
points: new fields.NumberField({ initial: 2, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 2, integer: true, min: 0 }),
debt: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
xpCredit: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
cauchemar: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
points: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
debt: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
xpCredit: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
hp: new fields.SchemaField({
value: new fields.NumberField({ initial: 8, integer: true, min: 0 }),
max: new fields.NumberField({ initial: 8, integer: true, min: 0 }),
bonus: new fields.NumberField({ initial: 0, integer: true }),
}),
experience: new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
money: new fields.SchemaField({
ecorces: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
}),
flagsNarratifs: new fields.SchemaField({
ombreDuTourment: new fields.BooleanField({ initial: false }),
isCaptain: new fields.BooleanField({ initial: false }),
}),
visions: new fields.HTMLField({ initial: "" }),
}
}
}
+18
View File
@@ -0,0 +1,18 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class PouvoirCompagnieDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
scope: new fields.StringField({ initial: "compagnie" }),
effectMode: new fields.StringField({ initial: "" }),
ruleText: new fields.HTMLField({ initial: "" }),
limitedUses: new fields.StringField({ initial: "" }),
resourceImpact: new fields.StringField({ initial: "" }),
activationCondition: new fields.StringField({ initial: "À portée de vue du capitaine" }),
captainVisible: new fields.BooleanField({ initial: true }),
captainNeedsWitness: new fields.BooleanField({ initial: true }),
}
}
}
+30
View File
@@ -0,0 +1,30 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class RaceDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
size: new fields.NumberField({ initial: 2, integer: true, min: 1, max: 4 }),
lifeExpectancy: new fields.NumberField({ initial: 50, integer: true, min: 0 }),
keywords: new fields.ArrayField(new fields.StringField(), { initial: [] }),
mainTribes: new fields.ArrayField(new fields.StringField(), { initial: [] }),
language: new fields.StringField({ initial: "" }),
languageDomains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
specialRules: new fields.HTMLField({ initial: "" }),
appearance: new fields.HTMLField({ initial: "" }),
roleplayHints: new fields.ArrayField(new fields.StringField(), { initial: [] }),
profiles: new fields.SchemaField({
artiste: new fields.NumberField({ initial: 0, integer: true }),
athlete: new fields.NumberField({ initial: 0, integer: true }),
chasseur: new fields.NumberField({ initial: 0, integer: true }),
faiseur: new fields.NumberField({ initial: 0, integer: true }),
forceNature: new fields.NumberField({ initial: 0, integer: true }),
guerrier: new fields.NumberField({ initial: 0, integer: true }),
mystique: new fields.NumberField({ initial: 0, integer: true }),
ombre: new fields.NumberField({ initial: 0, integer: true }),
savant: new fields.NumberField({ initial: 0, integer: true }),
}),
}
}
}
+25
View File
@@ -0,0 +1,25 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class SortilegeDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
tradition: new fields.StringField({ initial: "" }),
skillKey: new fields.StringField({ initial: "" }),
polarity: new fields.StringField({ initial: "songes" }),
cost: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
costFormula: new fields.StringField({ initial: "" }),
variableCost: new fields.BooleanField({ initial: false }),
preparation: new fields.StringField({ initial: "" }),
duration: new fields.StringField({ initial: "" }),
range: new fields.StringField({ initial: "" }),
area: new fields.StringField({ initial: "" }),
stacking: new fields.StringField({ initial: "" }),
requiredDomains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
artsDomains: new fields.ArrayField(new fields.StringField(), { initial: [] }),
effectsText: new fields.HTMLField({ initial: "" }),
ruleTags: new fields.ArrayField(new fields.StringField(), { initial: [] }),
}
}
}
+30
View File
@@ -0,0 +1,30 @@
import { BaseItemDataModel } from "./base-item.mjs"
export default class TribuDataModel extends BaseItemDataModel {
static defineSchema() {
const fields = foundry.data.fields
return {
...this.defineBaseSchema(),
keywords: new fields.ArrayField(new fields.StringField(), { initial: [] }),
mainRace: new fields.StringField({ initial: "" }),
spokenLanguage: new fields.StringField({ initial: "" }),
philosophy: new fields.StringField({ initial: "" }),
pride: new fields.StringField({ initial: "" }),
mythNature: new fields.StringField({ initial: "" }),
mythEdenia: new fields.StringField({ initial: "" }),
territory: new fields.StringField({ initial: "" }),
specialRules: new fields.HTMLField({ initial: "" }),
roleplayNotes: new fields.HTMLField({ initial: "" }),
restrictedJobs: new fields.ArrayField(new fields.StringField(), { initial: [] }),
allowedJobs: new fields.ArrayField(new fields.StringField(), { initial: [] }),
skillBonuses: new fields.ArrayField(new fields.SchemaField({
key: new fields.StringField({ initial: "" }),
alternativeKeys: new fields.ArrayField(new fields.StringField(), { initial: [] }),
base: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
domainsGranted: new fields.ArrayField(new fields.StringField(), { initial: [] }),
domainsToChoose: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
domainsChoiceText: new fields.StringField({ initial: "" }),
}), { initial: [] }),
}
}
}