import catalog from "../game/generated/dungeonLeaderboardCatalog.generated.json"; import type { DungeonRunMember } from "../game/dungeonRunTypes"; import { bossDifficultyLabel } from "../game/dungeonDifficulty"; import { leaderboardFinalBossIds } from "../game/dungeonLeaderboardRules"; const className = (id: string) => catalog.classes.find((entry) => entry.id === id)?.name ?? id; export function DungeonRunDetails({ dungeonId, difficultyId, bossDifficulty, party, killedBossIds }: { readonly bossDifficulty?: number; readonly dungeonId: string; readonly difficultyId: string; readonly party: readonly DungeonRunMember[]; readonly killedBossIds: readonly string[]; }) { const dungeon = catalog.dungeons.find((entry) => entry.id === dungeonId); const difficulty = dungeon?.difficulties.find((entry) => entry.id === difficultyId); const variant = difficulty && leaderboardFinalBossIds(difficulty).length > 1; const ids = variant ? killedBossIds : difficulty?.bossIds ?? []; const bosses = dungeon?.bosses.filter((boss) => ids.includes(boss.id)) ?? []; return
{bossDifficultyLabel(bossDifficulty)} · {difficultyId === "heroic" ? "Heroic" : "Normal"}