feat: reroll 一键重刷

This commit is contained in:
Siornya committed 2026-10-08 19:38:53 +08:00
1 parent 3eced7bdba
commit 816d9dffcc
21 files changed
+709 -27

No files matched your search

+5 -1
View File
@@ -331,6 +331,9 @@ export const C2S = {
// host confirmed — a seat that changed hands meanwhile is refused
'room.kick': { seat: (v) => isInt(v, 0, MAX_SEATS - 1), playerId: isId },
'room.start': {},
// INFO_CHECK: the host proposes a full setup reroll; all human seats must consent.
'room.rerollSetup': { setupRevision: (v) => isInt(v, 0, 2 ** 31) },
'room.cancelReroll': { voteId: (v) => isInt(v, 1, 2 ** 31) },
// operator loadout (DESIGN §16): stored per session/seat; accepted until the match leaves INFO_CHECK
'room.loadout': { entries: isLoadoutEntries },
// operator ownership (干员持有, 0.2.0 补位): stored per session / seat; a match takes the list its seat had when it
@@ -346,7 +349,8 @@ export const C2S = {
'room.removeSpectator': { playerId: isId },
// match
'g.infoReady': {},
'g.infoReady': { setupRevision: (v) => isInt(v, 0, 2 ** 31), $optional: ['setupRevision'] },
'g.rerollVote': { voteId: (v) => isInt(v, 1, 2 ** 31), agree: isBool },
'g.band': { bandId: isId },
'g.bandSkip': {},
// the strategy highlighted in the draft screen (user playtest #4 item 4): a turn that runs out takes it while it is