fix: 出牌记录玩家名错位bug,改为从消息字符串解析玩家名
This commit is contained in:
parent
cdfcce357d
commit
570d96c5c0
@ -160,8 +160,6 @@ fun LocalGameScreen(
|
||||
var pendingDrawStateForWild by remember { mutableStateOf<GameState?>(null) }
|
||||
var pendingDrawCardIdxForWild by remember { mutableIntStateOf(-1) }
|
||||
var gameLog by remember { mutableStateOf(listOf<String>()) }
|
||||
// 记录每条日志对应的玩家名,用于行着色
|
||||
var gameLogPlayers by remember { mutableStateOf(listOf<String>()) }
|
||||
var showLogDialog by remember { mutableStateOf(false) }
|
||||
var showSwapTargetPicker by remember { mutableStateOf(false) }
|
||||
var pendingSwapState by remember { mutableStateOf<GameState?>(null) }
|
||||
@ -177,8 +175,6 @@ fun LocalGameScreen(
|
||||
if (state.message.isNotEmpty()) {
|
||||
// 倒序插入,最新在上
|
||||
gameLog = listOf(state.message) + gameLog
|
||||
// 记录该消息对应的操作玩家(消息格式: "玩家名 出了..." 或 "玩家名 摸了...")
|
||||
gameLogPlayers = listOf(state.currentPlayer.name) + gameLogPlayers
|
||||
}
|
||||
if (state.isGameOver) {
|
||||
isGameOver = true
|
||||
@ -420,7 +416,7 @@ fun LocalGameScreen(
|
||||
modifier = Modifier.fillMaxSize()
|
||||
) {
|
||||
itemsIndexed(gameLog) { index, msg ->
|
||||
val playerName = gameLogPlayers.getOrElse(index) { parsePlayerName(msg) }
|
||||
val playerName = parsePlayerName(msg)
|
||||
val avatar = getBotAvatar(playerName)
|
||||
val colorText = parseColorText(msg)
|
||||
val cardColor = cardColorMap[colorText]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user