Files
huajishe-tts/apps/web/e2e/holdem-3p-allin.spec.ts
e2hang bc374350c4 fix(holdem+pig): 筹码不足修复 + 拱猪墩满 3 秒延迟 + 真实姓名同步 + 联机 E2E
- holdem 引擎与 UI:筹码不足大盲的「坐板凳」状态补全
  * eligibleCount 从 seatedWithChips 改用 seatedCanPlay(只看筹码足够大盲的玩家)
  * broke 判定从 stack <= 0 改为 stack < bigBlind(短筹码也能补码)
  * 座位卡新增「筹码不足」徽章(提示玩家补码)
  * 行动者切换时 raiseAmt 重置(避免上一位玩家拖动的值残留)
  * WaitingControls 接收 gameover prop,便于 UI 显示结算

- holdem.test.ts:覆盖新逻辑(broke / eligible / 补码 / 行动者切换 raise 重置)

- pig 引擎与 UI:墩满 3 秒延迟收牌 + 玩家名同步
  * G.trickWinner 字段:满墩但未收牌期间用于 UI 高亮;3 秒后由 collectTrick 收牌推进
  * G.playerNames 字段:setName move 写入,server join 时 best-effort 派发 + 客户端 mount 兜底
  * pig.test.ts:新增 trickWinner / collectTrick / setName 单测

- PigBoard.tsx:座位卡显示真实姓名(优先 G.playerNames → prop → 玩家N 回退)
  * 挂载时调 setName 把本人真实名写入引擎,广播后所有人可见
  * 墩满时显示赢家高亮 + 3 秒倒计时收牌

- rooms.ts:注释说明 join 阶段 setName 派发为 best-effort(boardgame.io 对非 active
  玩家在 stateID=0 拦截 move),真实可靠的姓名来自客户端连上后的 setName

- 新增联机 E2E(playwright):
  * holdem-3p-allin.spec.ts:3 人德州 all-in 流局 + 边池分配
  * holdem-allin-repro.spec.ts:all-in 重现回归
  * pig-names-and-trick-delay.spec.ts:拱猪 4 人真实姓名显示 + 墩满延迟收牌

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-05 22:15:50 +08:00

4.8 KiB