From a650fc2daac38489750bb79f2a8dbbef7741a3d9 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Tue, 30 Dec 2025 00:11:25 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20add=20JosaUtil=20for=20Korean=20grammat?= =?UTF-8?q?ical=20handling=20in=20=EC=9D=98=EB=B3=91=EB=AA=A8=EC=A7=91=20a?= =?UTF-8?q?nd=20=EC=9D=B8=EC=9E=AC=ED=83=90=EC=83=89=20actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/logic/src/actions/turn/general/che_의병모집.ts | 6 +++++- packages/logic/src/actions/turn/general/che_인재탐색.ts | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/logic/src/actions/turn/general/che_의병모집.ts b/packages/logic/src/actions/turn/general/che_의병모집.ts index 842e91f..8a84681 100644 --- a/packages/logic/src/actions/turn/general/che_의병모집.ts +++ b/packages/logic/src/actions/turn/general/che_의병모집.ts @@ -33,6 +33,7 @@ import { } from '../../engine.js'; import { LogCategory, LogFormat, LogScope } from '../../../logging/types.js'; import { buildRecruitmentGeneral } from './recruitment.js'; +import { JosaUtil } from '@sammo-ts/common'; export interface VolunteerRecruitArgs {} @@ -275,9 +276,12 @@ export class ActionResolver< ); if (nation?.id) { + const generalName = context.general.name; + const generalJosa = JosaUtil.pick(generalName, '이'); + const actionJosa = JosaUtil.pick(ACTION_NAME, '을'); effects.push( createLogEffect( - `${context.general.name}이 ${ACTION_NAME}을 발동했습니다.`, + `${generalName}${generalJosa} ${ACTION_NAME}${actionJosa} 발동했습니다.`, { scope: LogScope.NATION, category: LogCategory.HISTORY, diff --git a/packages/logic/src/actions/turn/general/che_인재탐색.ts b/packages/logic/src/actions/turn/general/che_인재탐색.ts index 5d64aff..9703b8b 100644 --- a/packages/logic/src/actions/turn/general/che_인재탐색.ts +++ b/packages/logic/src/actions/turn/general/che_인재탐색.ts @@ -31,6 +31,7 @@ import { } from '../../engine.js'; import { LogCategory, LogFormat, LogScope } from '../../../logging/types.js'; import { buildRecruitmentGeneral } from './recruitment.js'; +import { JosaUtil } from '@sammo-ts/common'; export interface TalentScoutArgs {} @@ -394,22 +395,24 @@ export class ActionResolver< }); effects.push(createGeneralAddEffect(newGeneral)); + const nameObjJosa = JosaUtil.pick(name, '을'); + const nameSubjJosa = JosaUtil.pick(name, '이'); effects.push( - createLogEffect(`인재 ${name}를 발견했습니다.`, { + createLogEffect(`인재 ${name}${nameObjJosa} 발견했습니다.`, { scope: LogScope.GENERAL, category: LogCategory.ACTION, format: LogFormat.MONTH, }) ); effects.push( - createLogEffect(`인재 ${name}가 등장했습니다.`, { + createLogEffect(`인재 ${name}${nameSubjJosa} 등장했습니다.`, { scope: LogScope.SYSTEM, category: LogCategory.SUMMARY, format: LogFormat.MONTH, }) ); effects.push( - createLogEffect(`인재 ${name}를 발견했습니다.`, { + createLogEffect(`인재 ${name}${nameObjJosa} 발견했습니다.`, { scope: LogScope.GENERAL, category: LogCategory.HISTORY, format: LogFormat.YEAR_MONTH,