fix(logic): 징병과 모병에 추가 통솔 상한을 반영한다
병력 여유 제약이 실제 통솔 계산기를 사용하도록 연결하고, 명마 보정이 적용되는 징병·모병 회귀 테스트를 추가한다.
This commit is contained in:
@@ -432,7 +432,8 @@ export const allowJoinDestNation = (relYear: number): Constraint => ({
|
||||
|
||||
export const reqGeneralCrewMargin = (
|
||||
getCrewTypeId: (ctx: ConstraintContext, view: StateView) => number | null,
|
||||
requirements: RequirementKey[] = []
|
||||
requirements: RequirementKey[] = [],
|
||||
getMaxCrew?: (ctx: ConstraintContext, view: StateView) => number | null
|
||||
): Constraint => ({
|
||||
name: 'reqGeneralCrewMargin',
|
||||
requires: (ctx) => [{ kind: 'general', id: ctx.actorId }, ...requirements],
|
||||
@@ -453,7 +454,10 @@ export const reqGeneralCrewMargin = (
|
||||
if (crewTypeId !== general.crewTypeId) {
|
||||
return allow();
|
||||
}
|
||||
const maxCrew = general.stats.leadership * 100;
|
||||
const maxCrew = getMaxCrew ? getMaxCrew(ctx, view) : general.stats.leadership * 100;
|
||||
if (maxCrew === null) {
|
||||
return unknownOrDeny(ctx, requirements, '장수 정보가 없습니다.');
|
||||
}
|
||||
if (maxCrew > general.crew) {
|
||||
return allow();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user