feat: add secure troop management

This commit is contained in:
2026-07-25 08:44:44 +00:00
parent 790f4915ab
commit ae4cc31a16
25 changed files with 2232 additions and 48 deletions
+51
View File
@@ -52,8 +52,17 @@ export type TurnDaemonCommand =
| { type: 'resume'; requestId?: string; reason?: string }
| { type: 'shutdown'; requestId?: string; reason?: string }
| { type: 'getStatus'; requestId?: string }
| { type: 'troopCreate'; requestId?: string; generalId: number; troopName: string }
| { type: 'troopJoin'; requestId?: string; generalId: number; troopId: number }
| { type: 'troopExit'; requestId?: string; generalId: number }
| {
type: 'troopKick';
requestId?: string;
generalId: number;
troopId: number;
targetGeneralId: number;
}
| { type: 'troopRename'; requestId?: string; generalId: number; troopId: number; troopName: string }
| { type: 'dieOnPrestart'; requestId?: string; generalId: number }
| { type: 'buildNationCandidate'; requestId?: string; generalId: number }
| { type: 'instantRetreat'; requestId?: string; generalId: number }
@@ -204,6 +213,19 @@ export type TurnDaemonCommandResult =
auctionId: number;
reason: string;
}
| {
type: 'troopCreate';
ok: true;
generalId: number;
troopId: number;
troopName: string;
}
| {
type: 'troopCreate';
ok: false;
generalId: number;
reason: string;
}
| {
type: 'troopJoin';
ok: true;
@@ -229,6 +251,35 @@ export type TurnDaemonCommandResult =
generalId: number;
reason: string;
}
| {
type: 'troopKick';
ok: true;
generalId: number;
troopId: number;
targetGeneralId: number;
}
| {
type: 'troopKick';
ok: false;
generalId: number;
troopId: number;
targetGeneralId: number;
reason: string;
}
| {
type: 'troopRename';
ok: true;
generalId: number;
troopId: number;
troopName: string;
}
| {
type: 'troopRename';
ok: false;
generalId: number;
troopId: 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 }