feat(game): 添加成都麻将房间配置和桌面牌面显示功能
- 在房间创建接口中添加总回合数配置选项 - 实现桌面弃牌区域的可视化展示,区分各玩家的弃牌和组合 - 添加缺门标识显示,帮助玩家识别缺门牌组起始位置 - 优化牌面操作状态管理,增加弃牌等待状态和超时处理机制 - 更新样式布局适配新的桌面牌面区域,调整墙体和桌面对齐方式 - 修复多处牌面状态同步问题,确保游戏流程中的界面一致性
This commit is contained in:
@@ -4,7 +4,7 @@ import {
|
||||
type GameState,
|
||||
type PendingClaimState,
|
||||
} from '../types/state'
|
||||
import type { RoomPlayerUpdatePayload } from '../game/actions'
|
||||
import type { RoomPlayerUpdatePayload, RoomTrusteePayload } from '../game/actions'
|
||||
|
||||
import type { Tile } from '../types/tile'
|
||||
|
||||
@@ -157,6 +157,7 @@ export const useGameStore = defineStore('game', {
|
||||
typeof avatarUrlRaw === 'string'
|
||||
? avatarUrlRaw
|
||||
: previous?.avatarURL,
|
||||
isTrustee: previous?.isTrustee ?? false,
|
||||
missingSuit:
|
||||
typeof missingSuitRaw === 'string' || missingSuitRaw === null
|
||||
? missingSuitRaw
|
||||
@@ -185,6 +186,7 @@ export const useGameStore = defineStore('game', {
|
||||
seatIndex: previous?.seatIndex ?? index,
|
||||
displayName: previous?.displayName ?? playerId,
|
||||
avatarURL: previous?.avatarURL,
|
||||
isTrustee: previous?.isTrustee ?? false,
|
||||
missingSuit: previous?.missingSuit,
|
||||
handTiles: previous?.handTiles ?? [],
|
||||
handCount: previous?.handCount ?? 0,
|
||||
@@ -200,6 +202,23 @@ export const useGameStore = defineStore('game', {
|
||||
this.players = nextPlayers
|
||||
},
|
||||
|
||||
onRoomTrustee(payload: RoomTrusteePayload) {
|
||||
const playerId =
|
||||
(typeof payload.player_id === 'string' && payload.player_id) ||
|
||||
(typeof payload.playerId === 'string' && payload.playerId) ||
|
||||
''
|
||||
if (!playerId) {
|
||||
return
|
||||
}
|
||||
|
||||
const player = this.players[playerId]
|
||||
if (!player) {
|
||||
return
|
||||
}
|
||||
|
||||
player.isTrustee = typeof payload.trustee === 'boolean' ? payload.trustee : true
|
||||
},
|
||||
|
||||
// 清理操作窗口
|
||||
clearPendingClaim() {
|
||||
this.pendingClaim = undefined
|
||||
|
||||
Reference in New Issue
Block a user