Files
healer-man/src/game/dungeonContentSource.ts
T
2026-09-20 18:08:43 -04:00

27 lines
1.2 KiB
TypeScript

export const STORMWIND_STOCKADE_DUNGEON_ID = "stormwind-stockade";
export const BITE_SIZED_STOCKADES_DUNGEON_ID = "bite-sized-stormwind-stockade";
export const RANDOMIZED_BITE_SIZED_STOCKADES_DUNGEON_ID = "randomized-bite-sized-stormwind-stockade";
export const RANDOMIZED_BITE_SIZED_CONTENT_PACK_ID = "activity:randomized-bite-sized";
const DUNGEON_CONTENT_SOURCE_IDS: Readonly<Record<string, string>> = Object.freeze({
[BITE_SIZED_STOCKADES_DUNGEON_ID]: STORMWIND_STOCKADE_DUNGEON_ID,
[RANDOMIZED_BITE_SIZED_STOCKADES_DUNGEON_ID]: STORMWIND_STOCKADE_DUNGEON_ID,
});
export function isDerivedStockadesDungeonId(dungeonId: string): boolean {
return dungeonId === BITE_SIZED_STOCKADES_DUNGEON_ID
|| dungeonId === RANDOMIZED_BITE_SIZED_STOCKADES_DUNGEON_ID;
}
/** Derived dungeon variants share the installed assets of their source dungeon. */
export function dungeonContentSourceId(dungeonId: string): string {
return DUNGEON_CONTENT_SOURCE_IDS[dungeonId] ?? dungeonId;
}
export function dungeonContentPackId(dungeonId: string): string {
if (dungeonId === RANDOMIZED_BITE_SIZED_STOCKADES_DUNGEON_ID) {
return RANDOMIZED_BITE_SIZED_CONTENT_PACK_ID;
}
return `dungeon:${dungeonContentSourceId(dungeonId)}`;
}