Files
Dune/game/alliance-victory-option.ts
T
Quintine e896570f07
Verify and publish checkpoint container / container (push) Successful in 11m2s
Add optional short alliance victory
2026-10-28 21:40:24 +11:00

23 lines
896 B
TypeScript

import {
controllerStrongholdTarget,
physicalControllerCount,
type TwoPlayerControllers,
} from './two-player-controllers';
/** GF9's optional two-member alliance / three-stronghold variant. The
* two-person four-stronghold rule still applies, as do ordinary solo targets.
* Callers add any separately agreed increase after this base target. */
export function allianceVictoryTarget(
seats: readonly string[],
controllers: TwoPlayerControllers | null | undefined,
allied: boolean,
shortAlliance?: boolean,
): 3 | 4 {
if (shortAlliance !== undefined && typeof shortAlliance !== 'boolean')
throw new TypeError('Choose whether the shorter alliance victory option is enabled.');
const target = controllerStrongholdTarget(seats, controllers, allied);
if (shortAlliance === true && allied && physicalControllerCount(seats, controllers) >= 3)
return 3;
return target;
}