diff --git a/app/game-api/src/turns/commandTable.ts b/app/game-api/src/turns/commandTable.ts index f708f0b..31e2211 100644 --- a/app/game-api/src/turns/commandTable.ts +++ b/app/game-api/src/turns/commandTable.ts @@ -50,7 +50,7 @@ interface CommandEntry { category: string; definition: GeneralActionDefinition; reqArg: boolean; - args: unknown; + availabilityArgs: Readonly>; evaluate?: (ctx: ConstraintContext, view: StateView) => AvailabilityCore; } @@ -370,7 +370,7 @@ const buildEntries = (env: CommandEnv, specs: TurnCommandSpec[]): CommandEntry[] category: spec.category, definition, reqArg: spec.reqArg, - args: spec.args, + availabilityArgs: spec.reqArg ? spec.availabilityArgs : {}, }; if (spec.key === 'che_포상') { @@ -401,7 +401,7 @@ const buildGroups = (entries: CommandEntry[], ctx: ConstraintContext, view: Stat for (const entry of entries) { const availability = entry.evaluate ? entry.evaluate(ctx, view) - : evaluateDefinition(entry.definition, ctx, view, entry.reqArg, entry.args); + : evaluateDefinition(entry.definition, ctx, view, entry.reqArg, entry.availabilityArgs); const value: TurnCommandAvailability = { key: entry.definition.key, name: entry.definition.name, diff --git a/packages/logic/src/actions/turn/commandModule.ts b/packages/logic/src/actions/turn/commandModule.ts index c9f27c2..6343c3a 100644 --- a/packages/logic/src/actions/turn/commandModule.ts +++ b/packages/logic/src/actions/turn/commandModule.ts @@ -7,7 +7,7 @@ export interface TurnCommandSpecWithArgs { key: TKey; category: string; reqArg: true; - args: Record; + availabilityArgs: Readonly>; argsSchema: ZodType>; createDefinition(env: TurnCommandEnv): GeneralActionDefinition; } @@ -16,7 +16,6 @@ export interface TurnCommandSpecWithoutArgs { key: TKey; category: string; reqArg: false; - args: Record; argsSchema?: undefined; createDefinition(env: TurnCommandEnv): GeneralActionDefinition; } diff --git a/packages/logic/src/actions/turn/general/che_NPC능동.ts b/packages/logic/src/actions/turn/general/che_NPC능동.ts index d8a2bdc..c926229 100644 --- a/packages/logic/src/actions/turn/general/che_NPC능동.ts +++ b/packages/logic/src/actions/turn/general/che_NPC능동.ts @@ -116,7 +116,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_NPC능동', category: '특수', // Valid category? Legacy didn't specify category in static prop usually, handled by mapping. Defaulting to '특수'. reqArg: true, - args: { optionText: '', destCityId: 0 }, + availabilityArgs: { optionText: '', destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_강행.ts b/packages/logic/src/actions/turn/general/che_강행.ts index f9ff159..104dd9f 100644 --- a/packages/logic/src/actions/turn/general/che_강행.ts +++ b/packages/logic/src/actions/turn/general/che_강행.ts @@ -195,7 +195,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_강행', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_거병.ts b/packages/logic/src/actions/turn/general/che_거병.ts index d0732c0..41c49c0 100644 --- a/packages/logic/src/actions/turn/general/che_거병.ts +++ b/packages/logic/src/actions/turn/general/che_거병.ts @@ -131,6 +131,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_거병', category: '전략', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_건국.ts b/packages/logic/src/actions/turn/general/che_건국.ts index 832bdf3..c261231 100644 --- a/packages/logic/src/actions/turn/general/che_건국.ts +++ b/packages/logic/src/actions/turn/general/che_건국.ts @@ -165,7 +165,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_건국', category: '전략', reqArg: true, - args: { + availabilityArgs: { nationName: 'string', nationType: 'string', colorType: 'number', diff --git a/packages/logic/src/actions/turn/general/che_견문.ts b/packages/logic/src/actions/turn/general/che_견문.ts index 3076f46..d670e0d 100644 --- a/packages/logic/src/actions/turn/general/che_견문.ts +++ b/packages/logic/src/actions/turn/general/che_견문.ts @@ -230,6 +230,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_견문', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_군량매매.ts b/packages/logic/src/actions/turn/general/che_군량매매.ts index 03a7484..a31fe4f 100644 --- a/packages/logic/src/actions/turn/general/che_군량매매.ts +++ b/packages/logic/src/actions/turn/general/che_군량매매.ts @@ -118,7 +118,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_군량매매', category: '개인', reqArg: true, - args: { + availabilityArgs: { buyRice: 'boolean', amount: 'number', }, diff --git a/packages/logic/src/actions/turn/general/che_귀환.ts b/packages/logic/src/actions/turn/general/che_귀환.ts index 83456d1..349a1f3 100644 --- a/packages/logic/src/actions/turn/general/che_귀환.ts +++ b/packages/logic/src/actions/turn/general/che_귀환.ts @@ -187,6 +187,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_귀환', category: '군사', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_기술연구.ts b/packages/logic/src/actions/turn/general/che_기술연구.ts index 1bdd173..ce40a7d 100644 --- a/packages/logic/src/actions/turn/general/che_기술연구.ts +++ b/packages/logic/src/actions/turn/general/che_기술연구.ts @@ -91,7 +91,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_기술연구', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ costGold: env.develCost, diff --git a/packages/logic/src/actions/turn/general/che_내정특기초기화.ts b/packages/logic/src/actions/turn/general/che_내정특기초기화.ts index b2b322e..3482924 100644 --- a/packages/logic/src/actions/turn/general/che_내정특기초기화.ts +++ b/packages/logic/src/actions/turn/general/che_내정특기초기화.ts @@ -65,6 +65,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_내정특기초기화', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_농지개간.ts b/packages/logic/src/actions/turn/general/che_농지개간.ts index a20e4b3..8c0f668 100644 --- a/packages/logic/src/actions/turn/general/che_농지개간.ts +++ b/packages/logic/src/actions/turn/general/che_농지개간.ts @@ -29,6 +29,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_농지개간', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_단련.ts b/packages/logic/src/actions/turn/general/che_단련.ts index 468567f..cc2393b 100644 --- a/packages/logic/src/actions/turn/general/che_단련.ts +++ b/packages/logic/src/actions/turn/general/che_단련.ts @@ -170,7 +170,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_단련', category: '군사', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost, diff --git a/packages/logic/src/actions/turn/general/che_등용.ts b/packages/logic/src/actions/turn/general/che_등용.ts index 4f612d4..32bd350 100644 --- a/packages/logic/src/actions/turn/general/che_등용.ts +++ b/packages/logic/src/actions/turn/general/che_등용.ts @@ -204,7 +204,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_등용', category: '인사', reqArg: true, - args: { destGeneralId: 0 }, + availabilityArgs: { destGeneralId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/general/che_등용수락.ts b/packages/logic/src/actions/turn/general/che_등용수락.ts index 416bef4..742b144 100644 --- a/packages/logic/src/actions/turn/general/che_등용수락.ts +++ b/packages/logic/src/actions/turn/general/che_등용수락.ts @@ -220,7 +220,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_등용수락', category: '인사', reqArg: true, - args: { + availabilityArgs: { destNationId: 'number', destGeneralId: 'number', }, diff --git a/packages/logic/src/actions/turn/general/che_모병.ts b/packages/logic/src/actions/turn/general/che_모병.ts index c9796ad..c6d4c00 100644 --- a/packages/logic/src/actions/turn/general/che_모병.ts +++ b/packages/logic/src/actions/turn/general/che_모병.ts @@ -26,7 +26,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_모병', category: '군사', reqArg: true, - args: { + availabilityArgs: { crewType: 'number', amount: 'number', }, diff --git a/packages/logic/src/actions/turn/general/che_물자조달.ts b/packages/logic/src/actions/turn/general/che_물자조달.ts index ba14eae..b20d949 100644 --- a/packages/logic/src/actions/turn/general/che_물자조달.ts +++ b/packages/logic/src/actions/turn/general/che_물자조달.ts @@ -188,6 +188,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_물자조달', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/general/che_방랑.ts b/packages/logic/src/actions/turn/general/che_방랑.ts index bfae457..0920deb 100644 --- a/packages/logic/src/actions/turn/general/che_방랑.ts +++ b/packages/logic/src/actions/turn/general/che_방랑.ts @@ -205,6 +205,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_방랑', category: '군사', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_사기진작.ts b/packages/logic/src/actions/turn/general/che_사기진작.ts index f9225bf..e885057 100644 --- a/packages/logic/src/actions/turn/general/che_사기진작.ts +++ b/packages/logic/src/actions/turn/general/che_사기진작.ts @@ -72,7 +72,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_사기진작', category: '군사', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ atmosDelta: env.atmosDelta, diff --git a/packages/logic/src/actions/turn/general/che_상업투자.ts b/packages/logic/src/actions/turn/general/che_상업투자.ts index 5a29341..b12e873 100644 --- a/packages/logic/src/actions/turn/general/che_상업투자.ts +++ b/packages/logic/src/actions/turn/general/che_상업투자.ts @@ -322,6 +322,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_상업투자', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? [], env), }; diff --git a/packages/logic/src/actions/turn/general/che_선동.ts b/packages/logic/src/actions/turn/general/che_선동.ts index d3d8599..dcac00c 100644 --- a/packages/logic/src/actions/turn/general/che_선동.ts +++ b/packages/logic/src/actions/turn/general/che_선동.ts @@ -169,7 +169,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_선동', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/general/che_성벽보수.ts b/packages/logic/src/actions/turn/general/che_성벽보수.ts index 6241f2e..eac6690 100644 --- a/packages/logic/src/actions/turn/general/che_성벽보수.ts +++ b/packages/logic/src/actions/turn/general/che_성벽보수.ts @@ -29,6 +29,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_성벽보수', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_소집해제.ts b/packages/logic/src/actions/turn/general/che_소집해제.ts index 4ff84f8..661200f 100644 --- a/packages/logic/src/actions/turn/general/che_소집해제.ts +++ b/packages/logic/src/actions/turn/general/che_소집해제.ts @@ -57,6 +57,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_소집해제', category: '군사', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_수비강화.ts b/packages/logic/src/actions/turn/general/che_수비강화.ts index 379ab9d..dc05bb6 100644 --- a/packages/logic/src/actions/turn/general/che_수비강화.ts +++ b/packages/logic/src/actions/turn/general/che_수비강화.ts @@ -29,6 +29,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_수비강화', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_숙련전환.ts b/packages/logic/src/actions/turn/general/che_숙련전환.ts index 0dd572d..9e8e017 100644 --- a/packages/logic/src/actions/turn/general/che_숙련전환.ts +++ b/packages/logic/src/actions/turn/general/che_숙련전환.ts @@ -94,7 +94,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_숙련전환', category: '군사', reqArg: true, - args: { srcArmType: 0, destArmType: 0 }, + availabilityArgs: { srcArmType: 0, destArmType: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_요양.ts b/packages/logic/src/actions/turn/general/che_요양.ts index 0458766..9db4e4b 100644 --- a/packages/logic/src/actions/turn/general/che_요양.ts +++ b/packages/logic/src/actions/turn/general/che_요양.ts @@ -65,6 +65,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_요양', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_은퇴.ts b/packages/logic/src/actions/turn/general/che_은퇴.ts index b70ab60..d7e15eb 100644 --- a/packages/logic/src/actions/turn/general/che_은퇴.ts +++ b/packages/logic/src/actions/turn/general/che_은퇴.ts @@ -129,6 +129,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_은퇴', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_이동.ts b/packages/logic/src/actions/turn/general/che_이동.ts index 27843de..8dde473 100644 --- a/packages/logic/src/actions/turn/general/che_이동.ts +++ b/packages/logic/src/actions/turn/general/che_이동.ts @@ -191,7 +191,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_이동', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_인재탐색.ts b/packages/logic/src/actions/turn/general/che_인재탐색.ts index e8c022d..7e4b8e6 100644 --- a/packages/logic/src/actions/turn/general/che_인재탐색.ts +++ b/packages/logic/src/actions/turn/general/che_인재탐색.ts @@ -397,6 +397,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_인재탐색', category: '인사', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? [], env), }; diff --git a/packages/logic/src/actions/turn/general/che_임관.ts b/packages/logic/src/actions/turn/general/che_임관.ts index 47f9ec3..c6232f9 100644 --- a/packages/logic/src/actions/turn/general/che_임관.ts +++ b/packages/logic/src/actions/turn/general/che_임관.ts @@ -73,7 +73,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_임관', category: '전략', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_전투특기초기화.ts b/packages/logic/src/actions/turn/general/che_전투특기초기화.ts index 764e46b..87f945b 100644 --- a/packages/logic/src/actions/turn/general/che_전투특기초기화.ts +++ b/packages/logic/src/actions/turn/general/che_전투특기초기화.ts @@ -65,6 +65,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_전투특기초기화', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_정착장려.ts b/packages/logic/src/actions/turn/general/che_정착장려.ts index 501128b..a11a0bb 100644 --- a/packages/logic/src/actions/turn/general/che_정착장려.ts +++ b/packages/logic/src/actions/turn/general/che_정착장려.ts @@ -79,6 +79,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_정착장려', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_주민선정.ts b/packages/logic/src/actions/turn/general/che_주민선정.ts index d5aed02..6739b46 100644 --- a/packages/logic/src/actions/turn/general/che_주민선정.ts +++ b/packages/logic/src/actions/turn/general/che_주민선정.ts @@ -29,6 +29,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_주민선정', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_집합.ts b/packages/logic/src/actions/turn/general/che_집합.ts index 47e0387..6d04346 100644 --- a/packages/logic/src/actions/turn/general/che_집합.ts +++ b/packages/logic/src/actions/turn/general/che_집합.ts @@ -101,6 +101,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_집합', category: '군사', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_징병.ts b/packages/logic/src/actions/turn/general/che_징병.ts index 0b30597..b2a9a3d 100644 --- a/packages/logic/src/actions/turn/general/che_징병.ts +++ b/packages/logic/src/actions/turn/general/che_징병.ts @@ -536,7 +536,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_징병', category: '내정', reqArg: true, - args: {}, + availabilityArgs: {}, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? [], {}), }; diff --git a/packages/logic/src/actions/turn/general/che_첩보.ts b/packages/logic/src/actions/turn/general/che_첩보.ts index 079ecdf..eef6fa2 100644 --- a/packages/logic/src/actions/turn/general/che_첩보.ts +++ b/packages/logic/src/actions/turn/general/che_첩보.ts @@ -166,7 +166,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_첩보', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_출병.ts b/packages/logic/src/actions/turn/general/che_출병.ts index 9f48a8c..8cac45f 100644 --- a/packages/logic/src/actions/turn/general/che_출병.ts +++ b/packages/logic/src/actions/turn/general/che_출병.ts @@ -538,7 +538,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_출병', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.warActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/general/che_치안강화.ts b/packages/logic/src/actions/turn/general/che_치안강화.ts index 30fd18f..84097c7 100644 --- a/packages/logic/src/actions/turn/general/che_치안강화.ts +++ b/packages/logic/src/actions/turn/general/che_치안강화.ts @@ -29,6 +29,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_치안강화', category: '내정', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ develCost: env.develCost }), }; diff --git a/packages/logic/src/actions/turn/general/che_탈취.ts b/packages/logic/src/actions/turn/general/che_탈취.ts index 305513d..b5b5961 100644 --- a/packages/logic/src/actions/turn/general/che_탈취.ts +++ b/packages/logic/src/actions/turn/general/che_탈취.ts @@ -239,7 +239,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_탈취', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/general/che_파괴.ts b/packages/logic/src/actions/turn/general/che_파괴.ts index bd892f2..a8616ca 100644 --- a/packages/logic/src/actions/turn/general/che_파괴.ts +++ b/packages/logic/src/actions/turn/general/che_파괴.ts @@ -166,7 +166,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_파괴', category: '군사', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/general/che_하야.ts b/packages/logic/src/actions/turn/general/che_하야.ts index 2f41b8a..43fd534 100644 --- a/packages/logic/src/actions/turn/general/che_하야.ts +++ b/packages/logic/src/actions/turn/general/che_하야.ts @@ -120,6 +120,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: ACTION_KEY, category: '인사', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_헌납.ts b/packages/logic/src/actions/turn/general/che_헌납.ts index bc641ed..34ae73e 100644 --- a/packages/logic/src/actions/turn/general/che_헌납.ts +++ b/packages/logic/src/actions/turn/general/che_헌납.ts @@ -114,7 +114,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_헌납', category: '내정', reqArg: true, - args: { isGold: true, amount: 0 }, + availabilityArgs: { isGold: true, amount: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/general/che_화계.ts b/packages/logic/src/actions/turn/general/che_화계.ts index 99a6763..e3792cb 100644 --- a/packages/logic/src/actions/turn/general/che_화계.ts +++ b/packages/logic/src/actions/turn/general/che_화계.ts @@ -393,7 +393,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_화계', category: '계략', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? [], env), }; diff --git a/packages/logic/src/actions/turn/general/che_훈련.ts b/packages/logic/src/actions/turn/general/che_훈련.ts index 1b2b1f7..d6ed324 100644 --- a/packages/logic/src/actions/turn/general/che_훈련.ts +++ b/packages/logic/src/actions/turn/general/che_훈련.ts @@ -72,7 +72,7 @@ export const commandSpec: GeneralTurnCommandSpec = { key: 'che_훈련', category: '군사', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition({ trainDelta: env.trainDelta, diff --git a/packages/logic/src/actions/turn/general/휴식.ts b/packages/logic/src/actions/turn/general/휴식.ts index fd4a7fb..5a745bf 100644 --- a/packages/logic/src/actions/turn/general/휴식.ts +++ b/packages/logic/src/actions/turn/general/휴식.ts @@ -59,6 +59,6 @@ export const commandSpec: GeneralTurnCommandSpec = { key: '휴식', category: '개인', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_감축.ts b/packages/logic/src/actions/turn/nation/che_감축.ts index a9b68be..af5d91d 100644 --- a/packages/logic/src/actions/turn/nation/che_감축.ts +++ b/packages/logic/src/actions/turn/nation/che_감축.ts @@ -181,6 +181,6 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_감축', category: '국가', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/che_국기변경.ts b/packages/logic/src/actions/turn/nation/che_국기변경.ts index 6dfaf94..8ab42e9 100644 --- a/packages/logic/src/actions/turn/nation/che_국기변경.ts +++ b/packages/logic/src/actions/turn/nation/che_국기변경.ts @@ -161,7 +161,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_국기변경', category: '국가', reqArg: true, - args: { colorType: 0 }, + availabilityArgs: { colorType: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_국호변경.ts b/packages/logic/src/actions/turn/nation/che_국호변경.ts index 681a147..6bdd96f 100644 --- a/packages/logic/src/actions/turn/nation/che_국호변경.ts +++ b/packages/logic/src/actions/turn/nation/che_국호변경.ts @@ -120,7 +120,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_국호변경', category: '국가', reqArg: true, - args: { nationName: '' }, + availabilityArgs: { nationName: '' }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_급습.ts b/packages/logic/src/actions/turn/nation/che_급습.ts index 78443ce..3f1cd07 100644 --- a/packages/logic/src/actions/turn/nation/che_급습.ts +++ b/packages/logic/src/actions/turn/nation/che_급습.ts @@ -228,7 +228,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_급습', category: '외교', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/che_몰수.ts b/packages/logic/src/actions/turn/nation/che_몰수.ts index 6eb8c33..b11a855 100644 --- a/packages/logic/src/actions/turn/nation/che_몰수.ts +++ b/packages/logic/src/actions/turn/nation/che_몰수.ts @@ -161,7 +161,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_몰수', category: '인사', reqArg: true, - args: { isGold: false, amount: 0, destGeneralID: 0 }, + availabilityArgs: { isGold: false, amount: 0, destGeneralID: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/che_무작위수도이전.ts b/packages/logic/src/actions/turn/nation/che_무작위수도이전.ts index 5e9e98d..00fe71a 100644 --- a/packages/logic/src/actions/turn/nation/che_무작위수도이전.ts +++ b/packages/logic/src/actions/turn/nation/che_무작위수도이전.ts @@ -205,6 +205,6 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_무작위수도이전', category: '국가', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_물자원조.ts b/packages/logic/src/actions/turn/nation/che_물자원조.ts index ca0967e..51b57e5 100644 --- a/packages/logic/src/actions/turn/nation/che_물자원조.ts +++ b/packages/logic/src/actions/turn/nation/che_물자원조.ts @@ -202,7 +202,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_물자원조', category: '외교', reqArg: true, - args: { destNationId: 0, amountList: [0, 0] }, + availabilityArgs: { destNationId: 0, amountList: [0, 0] }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/che_발령.ts b/packages/logic/src/actions/turn/nation/che_발령.ts index 72924b5..0d23695 100644 --- a/packages/logic/src/actions/turn/nation/che_발령.ts +++ b/packages/logic/src/actions/turn/nation/che_발령.ts @@ -202,7 +202,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_발령', category: '인사', reqArg: true, - args: { destGeneralId: 0, destCityId: 0 }, + availabilityArgs: { destGeneralId: 0, destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition({}), }; diff --git a/packages/logic/src/actions/turn/nation/che_백성동원.ts b/packages/logic/src/actions/turn/nation/che_백성동원.ts index 03da8f2..0990d50 100644 --- a/packages/logic/src/actions/turn/nation/che_백성동원.ts +++ b/packages/logic/src/actions/turn/nation/che_백성동원.ts @@ -192,7 +192,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_백성동원', category: '전략', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/che_부대탈퇴지시.ts b/packages/logic/src/actions/turn/nation/che_부대탈퇴지시.ts index 5814550..a0c4cef 100644 --- a/packages/logic/src/actions/turn/nation/che_부대탈퇴지시.ts +++ b/packages/logic/src/actions/turn/nation/che_부대탈퇴지시.ts @@ -113,7 +113,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_부대탈퇴지시', category: '인사', reqArg: true, - args: { destGeneralId: 0 }, + availabilityArgs: { destGeneralId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_불가침제의.ts b/packages/logic/src/actions/turn/nation/che_불가침제의.ts index 1c03218..a91abcc 100644 --- a/packages/logic/src/actions/turn/nation/che_불가침제의.ts +++ b/packages/logic/src/actions/turn/nation/che_불가침제의.ts @@ -138,7 +138,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_불가침제의', category: '외교', reqArg: true, - args: { destNationId: 0, year: 0, month: 0 }, + availabilityArgs: { destNationId: 0, year: 0, month: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_불가침파기제의.ts b/packages/logic/src/actions/turn/nation/che_불가침파기제의.ts index 334971f..d3ff046 100644 --- a/packages/logic/src/actions/turn/nation/che_불가침파기제의.ts +++ b/packages/logic/src/actions/turn/nation/che_불가침파기제의.ts @@ -74,7 +74,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_불가침파기제의', category: '외교', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_선전포고.ts b/packages/logic/src/actions/turn/nation/che_선전포고.ts index 8a0ae28..71fbe99 100644 --- a/packages/logic/src/actions/turn/nation/che_선전포고.ts +++ b/packages/logic/src/actions/turn/nation/che_선전포고.ts @@ -181,7 +181,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_선전포고', category: '외교', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_수몰.ts b/packages/logic/src/actions/turn/nation/che_수몰.ts index d3c0903..f802ab9 100644 --- a/packages/logic/src/actions/turn/nation/che_수몰.ts +++ b/packages/logic/src/actions/turn/nation/che_수몰.ts @@ -226,7 +226,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_수몰', category: '전략', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/che_의병모집.ts b/packages/logic/src/actions/turn/nation/che_의병모집.ts index 7e30b0f..23135cf 100644 --- a/packages/logic/src/actions/turn/nation/che_의병모집.ts +++ b/packages/logic/src/actions/turn/nation/che_의병모집.ts @@ -369,6 +369,6 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_의병모집', category: '전략', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? [], env), }; diff --git a/packages/logic/src/actions/turn/nation/che_이호경식.ts b/packages/logic/src/actions/turn/nation/che_이호경식.ts index 0c4cbf5..8293ac1 100644 --- a/packages/logic/src/actions/turn/nation/che_이호경식.ts +++ b/packages/logic/src/actions/turn/nation/che_이호경식.ts @@ -238,7 +238,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_이호경식', category: '외교', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/che_종전제의.ts b/packages/logic/src/actions/turn/nation/che_종전제의.ts index d4c316c..26dd9cb 100644 --- a/packages/logic/src/actions/turn/nation/che_종전제의.ts +++ b/packages/logic/src/actions/turn/nation/che_종전제의.ts @@ -77,7 +77,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_종전제의', category: '외교', reqArg: true, - args: { destNationId: 0 }, + availabilityArgs: { destNationId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_증축.ts b/packages/logic/src/actions/turn/nation/che_증축.ts index 2aeae2c..693560f 100644 --- a/packages/logic/src/actions/turn/nation/che_증축.ts +++ b/packages/logic/src/actions/turn/nation/che_증축.ts @@ -184,6 +184,6 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_증축', category: '국가', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/che_천도.ts b/packages/logic/src/actions/turn/nation/che_천도.ts index 79d4953..8e09115 100644 --- a/packages/logic/src/actions/turn/nation/che_천도.ts +++ b/packages/logic/src/actions/turn/nation/che_천도.ts @@ -217,7 +217,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_천도', category: '국가', reqArg: true, - args: { destCityID: 0 }, + availabilityArgs: { destCityID: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/che_초토화.ts b/packages/logic/src/actions/turn/nation/che_초토화.ts index d4fcaa2..bf41798 100644 --- a/packages/logic/src/actions/turn/nation/che_초토화.ts +++ b/packages/logic/src/actions/turn/nation/che_초토화.ts @@ -265,7 +265,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_초토화', category: '특수', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_포상.ts b/packages/logic/src/actions/turn/nation/che_포상.ts index 3b3ec6b..6b2cd52 100644 --- a/packages/logic/src/actions/turn/nation/che_포상.ts +++ b/packages/logic/src/actions/turn/nation/che_포상.ts @@ -239,7 +239,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_포상', category: '인사', reqArg: true, - args: { isGold: true, amount: 1, destGeneralId: 0 }, + availabilityArgs: { isGold: true, amount: 1, destGeneralId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => { const maxAmount = diff --git a/packages/logic/src/actions/turn/nation/che_피장파장.ts b/packages/logic/src/actions/turn/nation/che_피장파장.ts index 849ac13..0148942 100644 --- a/packages/logic/src/actions/turn/nation/che_피장파장.ts +++ b/packages/logic/src/actions/turn/nation/che_피장파장.ts @@ -258,7 +258,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_피장파장', category: '전략', reqArg: true, - args: { destNationId: 0, commandType: '' }, + availabilityArgs: { destNationId: 0, commandType: '' }, argsSchema: ARGS_SCHEMA, createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), }; diff --git a/packages/logic/src/actions/turn/nation/che_필사즉생.ts b/packages/logic/src/actions/turn/nation/che_필사즉생.ts index 8128ba5..9f749aa 100644 --- a/packages/logic/src/actions/turn/nation/che_필사즉생.ts +++ b/packages/logic/src/actions/turn/nation/che_필사즉생.ts @@ -187,6 +187,6 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_필사즉생', category: '전략', reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/che_허보.ts b/packages/logic/src/actions/turn/nation/che_허보.ts index 36a946a..ec60f59 100644 --- a/packages/logic/src/actions/turn/nation/che_허보.ts +++ b/packages/logic/src/actions/turn/nation/che_허보.ts @@ -239,7 +239,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'che_허보', category: '전략', reqArg: true, - args: { destCityId: 0 }, + availabilityArgs: { destCityId: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env.generalActionModules ?? []), }; diff --git a/packages/logic/src/actions/turn/nation/cr_인구이동.ts b/packages/logic/src/actions/turn/nation/cr_인구이동.ts index 6a20b2a..0a722cc 100644 --- a/packages/logic/src/actions/turn/nation/cr_인구이동.ts +++ b/packages/logic/src/actions/turn/nation/cr_인구이동.ts @@ -168,7 +168,7 @@ export const commandSpec: NationTurnCommandSpec = { key: 'cr_인구이동', category: '특수', reqArg: true, - args: { destCityId: 0, amount: 0 }, + availabilityArgs: { destCityId: 0, amount: 0 }, argsSchema: ARGS_SCHEMA, createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/eventResearch.ts b/packages/logic/src/actions/turn/nation/eventResearch.ts index b959cd7..ee5717c 100644 --- a/packages/logic/src/actions/turn/nation/eventResearch.ts +++ b/packages/logic/src/actions/turn/nation/eventResearch.ts @@ -142,7 +142,7 @@ export const createEventResearchCommand = (config: EventResearchConfig): { key: config.key as NationTurnCommandSpec['key'], category: CATEGORY, reqArg: false, - args: {}, + createDefinition: (env: TurnCommandEnv) => new ActionDefinition(env), }; diff --git a/packages/logic/src/actions/turn/nation/휴식.ts b/packages/logic/src/actions/turn/nation/휴식.ts index 6b81dff..53da8ba 100644 --- a/packages/logic/src/actions/turn/nation/휴식.ts +++ b/packages/logic/src/actions/turn/nation/휴식.ts @@ -62,6 +62,6 @@ export const commandSpec: NationTurnCommandSpec = { key: '휴식', category: '휴식', reqArg: false, - args: {}, + createDefinition: (_env: TurnCommandEnv) => new ActionDefinition(), };