référencement des ennemis dans les lieux d'une quête ou d'un chapitre
All checks were successful
Build & Push Images / build (brain) (push) Successful in 1m33s
Build & Push Images / build (core) (push) Successful in 1m58s
Build & Push Images / build-switcher (push) Successful in 17s
Build & Push Images / build (web) (push) Successful in 1m53s

This commit is contained in:
2026-06-13 11:08:16 +02:00
parent 6035df262d
commit c77c0bc994
3 changed files with 24 additions and 3 deletions

View File

@@ -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)';