Skip to content

Commit

Permalink
Disallow only optional win conditions.
Browse files Browse the repository at this point in the history
GitOrigin-RevId: 2f1e2d8b10b038a567799fa14b990cf92022a642
  • Loading branch information
cpojer committed Jun 2, 2024
1 parent 0bf5c28 commit 5771fcb
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 261 deletions.
31 changes: 22 additions & 9 deletions athena/WinConditions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -759,17 +759,30 @@ export function validateWinCondition(map: MapData, condition: WinCondition) {

export function validateWinConditions(map: MapData) {
const { winConditions } = map.config;
if (Array.isArray(winConditions) && winConditions.length <= 32) {
if (
winConditions.filter(({ type }) => type === WinCriteria.Default).length >
1
) {
return false;
}
return winConditions.every(validateWinCondition.bind(null, map));
if (
!Array.isArray(winConditions) ||
winConditions.length > 32 ||
winConditions.filter(({ type }) => type === WinCriteria.Default).length > 1
) {
return false;
}

return false;
if (
winConditions.filter(({ type }) => type === WinCriteria.Default).length > 1
) {
return false;
}

if (
winConditions.every(
(condition) =>
condition.type !== WinCriteria.Default && condition.optional,
)
) {
return false;
}

return winConditions.every(validateWinCondition.bind(null, map));
}

export function resetWinConditions(
Expand Down
Loading

0 comments on commit 5771fcb

Please sign in to comment.