feat: 장수 관련 명령어 처리 및 설정 기능 추가

This commit is contained in:
2026-01-04 16:51:58 +00:00
parent ef2ced5f5e
commit 0e06ae9c38
9 changed files with 699 additions and 152 deletions
+45 -2
View File
@@ -27,6 +27,8 @@ export interface TurnRunResult {
durationMs: number;
partial: boolean;
checkpoint?: TurnCheckpoint;
deletedGenerals?: number[];
deletedTroops?: number[];
}
export interface TurnDaemonStatus {
@@ -55,7 +57,39 @@ export type TurnDaemonCommand =
| { type: 'shutdown'; reason?: string }
| { type: 'getStatus'; requestId?: string }
| { type: 'troopJoin'; requestId?: string; generalId: number; troopId: number }
| { type: 'troopExit'; requestId?: string; generalId: number };
| { type: 'troopExit'; requestId?: string; generalId: number }
| { type: 'dieOnPrestart'; requestId?: string; generalId: number }
| { type: 'buildNationCandidate'; requestId?: string; generalId: number }
| { type: 'instantRetreat'; requestId?: string; generalId: number }
| { type: 'vacation'; requestId?: string; generalId: number }
| {
type: 'setMySetting';
requestId?: string;
generalId: number;
settings: {
tnmt?: number;
defence_train?: number;
use_treatment?: number;
use_auto_nation_turn?: number;
};
}
| { type: 'dropItem'; requestId?: string; generalId: number; itemType: string }
| {
type: 'changePermission';
requestId?: string;
generalId: number;
isAmbassador: boolean;
targetGeneralIds: number[];
}
| { type: 'kick'; requestId?: string; generalId: number; destGeneralId: number }
| {
type: 'appoint';
requestId?: string;
generalId: number;
destGeneralId: number;
destCityId: number;
officerLevel: number;
};
export type TurnDaemonCommandResult =
| {
@@ -82,7 +116,16 @@ export type TurnDaemonCommandResult =
ok: false;
generalId: number;
reason: string;
};
}
| { type: 'dieOnPrestart'; ok: boolean; generalId: number; reason?: string }
| { type: 'buildNationCandidate'; ok: boolean; generalId: number; reason?: string }
| { type: 'instantRetreat'; ok: boolean; generalId: number; reason?: string }
| { type: 'vacation'; ok: boolean; generalId: number; reason?: string }
| { type: 'setMySetting'; ok: boolean; generalId: number; reason?: string }
| { type: 'dropItem'; ok: boolean; generalId: number; reason?: string }
| { type: 'changePermission'; ok: boolean; generalId: number; reason?: string }
| { type: 'kick'; ok: boolean; generalId: number; reason?: string }
| { type: 'appoint'; ok: boolean; generalId: number; reason?: string };
export type TurnDaemonEvent =
| { type: 'status'; requestId?: string; status: TurnDaemonStatus }