feat: 로그 항목 및 에너지 상태 추가

This commit is contained in:
2026-01-23 17:42:27 +00:00
parent 8ea709d7e9
commit f540808514
4 changed files with 173 additions and 24 deletions
@@ -58,6 +58,24 @@ const zMatch = z.object({
defenderId: z.number().int().positive(),
winnerId: z.number().int().positive().optional(),
log: z.array(z.string()).optional(),
logEntries: z
.array(
z.object({
phase: z.number().int().min(0),
attackerEnergy: z.number().int(),
defenderEnergy: z.number().int(),
attackerDamage: z.number().int(),
defenderDamage: z.number().int(),
text: z.string(),
})
)
.optional(),
lastEnergy: z
.object({
attacker: z.number().int(),
defender: z.number().int(),
})
.optional(),
});
const zBetEntry = z.object({
+12
View File
@@ -35,6 +35,18 @@ export interface TournamentMatchEntry {
defenderId: number;
winnerId?: number;
log?: string[];
logEntries?: Array<{
phase: number;
attackerEnergy: number;
defenderEnergy: number;
attackerDamage: number;
defenderDamage: number;
text: string;
}>;
lastEnergy?: {
attacker: number;
defender: number;
};
}
export interface TournamentBetEntry {
+6
View File
@@ -227,10 +227,16 @@ const applyBattle = async (
baseSeed,
});
const lastLogEntry = result.logEntries[result.logEntries.length - 1] ?? null;
const updatedMatch: TournamentMatchEntry = {
...target,
winnerId: result.winnerId ?? undefined,
log: result.log,
logEntries: result.logEntries,
lastEnergy: lastLogEntry
? { attacker: lastLogEntry.attackerEnergy, defender: lastLogEntry.defenderEnergy }
: undefined,
};
const nextMatches = matches.map((entry) => (entry.id === target.id ? updatedMatch : entry));