import { Faction } from '@staratlas/dev-profile-faction'; import type { Region, RiskZone } from './generated'; import { SafetyStatus } from './generated'; export type EffectiveRiskRegion = Pick< Region, 'owner' | 'riskZone' | 'safetyStatus' >; /** * Resolve the risk tier currently enforced by the SAGE program. * * `riskZone` is the authored/base tier. Authored Low Risk home territory is * immutable; a captured Medium or High Risk region is effectively Low Risk * while its dynamic safety status is `Safe`. */ export function resolveEffectiveRiskZone( region: EffectiveRiskRegion, ): RiskZone { if ( region.riskZone.__kind === 'LowRiskZone' || region.safetyStatus !== SafetyStatus.Safe || region.owner === Faction.Unaligned ) { return region.riskZone; } return { __kind: 'LowRiskZone', fields: [region.owner] }; }