19 lines
647 B
TypeScript
19 lines
647 B
TypeScript
export interface DungeonLeaderboardDifficultyRule {
|
|
readonly bossIds: readonly string[];
|
|
readonly finalBossId: string;
|
|
readonly finalBossIds?: readonly string[];
|
|
}
|
|
|
|
export function leaderboardFinalBossIds(rule: DungeonLeaderboardDifficultyRule): readonly string[] {
|
|
return rule.finalBossIds?.length ? rule.finalBossIds : [rule.finalBossId];
|
|
}
|
|
|
|
export function isLeaderboardFullClear(
|
|
rule: DungeonLeaderboardDifficultyRule,
|
|
killedBossIds: readonly string[],
|
|
): boolean {
|
|
return rule.finalBossIds?.length
|
|
? rule.finalBossIds.some((id) => killedBossIds.includes(id))
|
|
: rule.bossIds.every((id) => killedBossIds.includes(id));
|
|
}
|