feat: 로그 항목 및 에너지 상태 추가
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user