Possibilité d'importer un template de monstre depuis le systeme qu'on utilise sur Foundry pour forcer le template. Lors de l'export, le monstre est automatiquement adapté comme ça.
All checks were successful
Build & Push Images / build (brain) (push) Successful in 1m25s
Build & Push Images / build (web) (push) Successful in 1m54s
Build & Push Images / build (core) (push) Successful in 3m29s
Build & Push Images / build-switcher (push) Successful in 17s

à l'import des monstres depuis foundry : on garde la structure originelle utilisée sur foundry également
This commit is contained in:
2026-06-25 16:50:27 +02:00
parent 9bd66613b6
commit b999aa54ad
45 changed files with 590 additions and 41 deletions

View File

@@ -19,6 +19,8 @@ export interface Enemy {
order?: number;
/** UUID de l'acteur de compendium Foundry d'origine (monstre importé). Null sinon. */
foundryRef?: string | null;
/** Instantané figé des stats Foundry (aplati clé→valeur), pour affichage en prep. */
foundryStats?: Record<string, string>;
}
export interface EnemyCreate {

View File

@@ -15,6 +15,8 @@ export interface GameSystem {
characterTemplate?: TemplateField[];
npcTemplate?: TemplateField[];
enemyTemplate?: TemplateField[];
/** Type d'acteur Foundry pour l'export d'ennemis maison typés (import de structure). */
foundryActorType?: string | null;
author?: string | null;
isPublic?: boolean;
}
@@ -52,6 +54,7 @@ export interface GameSystemCreate {
characterTemplate?: TemplateField[];
npcTemplate?: TemplateField[];
enemyTemplate?: TemplateField[];
foundryActorType?: string | null;
author?: string | null;
isPublic: boolean;
}

View File

@@ -40,6 +40,14 @@ export class GameSystemService {
return this.http.get<GameSystem[]>(`${this.apiUrl}/search`, { params });
}
/**
* Importe une structure d'acteur Foundry (exportée par le module) : remplace le
* template ennemi par les champs mappés + pose le type d'acteur. Renvoie le système.
*/
importFoundryStructure(id: string, structure: unknown): Observable<GameSystem> {
return this.http.post<GameSystem>(`${this.apiUrl}/${id}/import-foundry-structure`, structure);
}
/**
* Importe un PDF de règles : renvoie une PROPOSITION de sections (titre →
* markdown). Rien n'est persisté côté serveur — l'appelant injecte les

View File

@@ -35,6 +35,8 @@ export interface TemplateField {
* KEY_VALUE_LIST = libelles des lignes ; TABLE = noms des colonnes.
*/
labels?: string[] | null;
/** Chemin Foundry du champ (system.<path>) quand le template est calqué Foundry. */
foundryPath?: string | null;
}
/**