feat(game): 更新成都麻将游戏页面功能实现
- 移除静态背景图片导入,改为动态获取牌面图片 - 添加 MeldState 类型定义,支持副露状态管理 - 重构牌面图片获取逻辑,为不同座位创建独立配置文件 - 定义 TableTileImageType、WallTileItem 和 WallSeatState 接口 - 移除 selectedTile 响应式变量,优化手牌显示逻辑 - 创建 sortedVisibleHandTiles 计算属性替代原 visibleHandTiles - 添加 normalizeMeldType 和 normalizeMelds 函数处理副露数据标准化 - 在 PlayerState 中新增 handCount 和 hasHu 属性 - 更新房间玩家数据结构,同步处理手牌计数和胡牌状态 - 重构牌墙显示逻辑,实现动态渲染各座位手牌和副露 - 添加胡牌标识显示功能,改进牌面分组展示效果 - 优化 CSS 样式,调整牌墙布局和间距设置
This commit is contained in:
@@ -43,6 +43,7 @@ export const useGameStore = defineStore('game', {
|
||||
if (player.playerId === this.getMyPlayerId()) {
|
||||
player.handTiles.push(data.tile)
|
||||
}
|
||||
player.handCount += 1
|
||||
|
||||
// 剩余牌数减少
|
||||
this.remainingTiles = Math.max(0, this.remainingTiles - 1)
|
||||
@@ -75,6 +76,7 @@ export const useGameStore = defineStore('game', {
|
||||
player.handTiles.splice(index, 1)
|
||||
}
|
||||
}
|
||||
player.handCount = Math.max(0, player.handCount - 1)
|
||||
|
||||
// 加入出牌区
|
||||
player.discardTiles.push(data.tile)
|
||||
@@ -152,8 +154,10 @@ export const useGameStore = defineStore('game', {
|
||||
? missingSuitRaw
|
||||
: previous?.missingSuit,
|
||||
handTiles: previous?.handTiles ?? [],
|
||||
handCount: previous?.handCount ?? 0,
|
||||
melds: previous?.melds ?? [],
|
||||
discardTiles: previous?.discardTiles ?? [],
|
||||
hasHu: previous?.hasHu ?? false,
|
||||
score: previous?.score ?? 0,
|
||||
isReady:
|
||||
typeof readyRaw === 'boolean'
|
||||
@@ -175,8 +179,10 @@ export const useGameStore = defineStore('game', {
|
||||
avatarURL: previous?.avatarURL,
|
||||
missingSuit: previous?.missingSuit,
|
||||
handTiles: previous?.handTiles ?? [],
|
||||
handCount: previous?.handCount ?? 0,
|
||||
melds: previous?.melds ?? [],
|
||||
discardTiles: previous?.discardTiles ?? [],
|
||||
hasHu: previous?.hasHu ?? false,
|
||||
score: previous?.score ?? 0,
|
||||
isReady: previous?.isReady ?? false,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user