diff --git a/web/src/app/campaigns/scene/scene-edit/scene-edit.component.html b/web/src/app/campaigns/scene/scene-edit/scene-edit.component.html
index 2c1907c..2c0ae40 100644
--- a/web/src/app/campaigns/scene/scene-edit/scene-edit.component.html
+++ b/web/src/app/campaigns/scene/scene-edit/scene-edit.component.html
@@ -258,6 +258,8 @@
diff --git a/web/src/app/campaigns/scene/scene-view/scene-view.component.html b/web/src/app/campaigns/scene/scene-view/scene-view.component.html
index dfa8e50..a375835 100644
--- a/web/src/app/campaigns/scene/scene-view/scene-view.component.html
+++ b/web/src/app/campaigns/scene/scene-view/scene-view.component.html
@@ -151,10 +151,22 @@
- @if (r.enemies?.trim()) {
+ @if (r.enemies?.trim() || roomLinkedEnemies(r).length > 0) {
⚔️ Ennemis
-
{{ r.enemies }}
+ @if (roomLinkedEnemies(r).length > 0) {
+
+ }
+ @if (r.enemies?.trim()) {
+
{{ r.enemies }}
+ }
}
@if (r.loot?.trim()) {
diff --git a/web/src/app/campaigns/scene/scene-view/scene-view.component.ts b/web/src/app/campaigns/scene/scene-view/scene-view.component.ts
index a6a12fd..d38b69b 100644
--- a/web/src/app/campaigns/scene/scene-view/scene-view.component.ts
+++ b/web/src/app/campaigns/scene/scene-view/scene-view.component.ts
@@ -13,7 +13,7 @@ import { EnemyService } from '../../../services/enemy.service';
import { PageService } from '../../../services/page.service';
import { LayoutService } from '../../../services/layout.service';
import { PageTitleService } from '../../../services/page-title.service';
-import { Scene } from '../../../services/campaign.model';
+import { Scene, Room } from '../../../services/campaign.model';
import { Page } from '../../../services/page.model';
import { Enemy } from '../../../services/enemy.model';
import { loadCampaignTreeData, buildCampaignSidebarConfig } from '../../campaign-tree.helper';
@@ -119,6 +119,13 @@ export class SceneViewComponent implements OnInit, OnDestroy {
return level ? `${enemy.name} (${level})` : enemy.name;
}
+ /** Fiches du bestiaire liées à une pièce (IDs orphelins ignorés). */
+ roomLinkedEnemies(room: Room): Enemy[] {
+ return (room.enemyIds ?? [])
+ .map(id => this.availableEnemies.find(e => e.id === id))
+ .filter((e): e is Enemy => !!e);
+ }
+
/** Résout le nom d'une pièce cible (pour afficher les sorties inter-pièces). */
roomNameById(scene: Scene | null, roomId: string): string {
return scene?.rooms?.find(r => r.id === roomId)?.name ?? '(pièce supprimée)';