xiaomaodiaoyu/public/client.js

52 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

2022-08-18 08:38:43 +00:00
const player = io()
2022-08-20 08:10:01 +00:00
let my_number = 0
let auto_play = false
2022-08-18 08:38:43 +00:00
2022-08-20 08:10:01 +00:00
buttonAuto.addEventListener('click', () => {
auto_play = !auto_play
if (auto_play) player.emit('go')
buttonAuto.style.color = auto_play ? 'red' : 'black'
2022-08-18 08:38:43 +00:00
})
2022-08-20 08:10:01 +00:00
player.on('online', (number) => (online.innerText = number))
player.on('players', (number) => (players.innerText = number))
2022-08-18 08:38:43 +00:00
2022-08-20 08:10:01 +00:00
player.on('alert', (message) => {
const alert = document.createElement('li')
alert.innerText = message
messages.appendChild(alert)
while (messages.childElementCount > 5) messages.childNodes[0].remove()
2022-08-18 08:38:43 +00:00
})
player.on('join', (number) => {
2022-08-20 08:10:01 +00:00
my_number = number
player_number.innerText = number
buttonJoin.innerText = number ? '退出' : '加入'
buttonJoin.style.color = number ? 'black' : 'red'
2022-08-18 08:38:43 +00:00
})
player.on('status', (status) => {
const { players, cards, current } = status
2022-08-20 08:10:01 +00:00
// 更新玩家剩余牌数的显示
2022-08-18 17:59:55 +00:00
player1.innerText = '🎴'.repeat(players[0] || 0)
player2.innerText = '🎴'.repeat(players[1] || 0)
player3.innerText = '🎴'.repeat(players[2] || 0)
2022-08-20 08:10:01 +00:00
// 更新桌面上牌的显示
table.innerHTML = ''
2022-08-18 17:59:55 +00:00
for (let cid of cards) {
let card = document.createElement('card-t')
card.setAttribute('cid', cid)
card.setAttribute('backtext', 'JOKER')
2022-08-20 08:10:01 +00:00
card.setAttribute('backcolor', cid[1] == 1 ? 'black' : 'red')
table.appendChild(card)
2022-08-18 17:59:55 +00:00
}
2022-08-20 08:10:01 +00:00
// 依据当前玩家更新相关显示
currentPlayerNumber.innerText = current
if (my_number > 0 && my_number == current) {
if (auto_play) player.emit('go')
else buttonGo.style.color = 'red'
2022-08-18 09:03:18 +00:00
} else {
2022-08-20 08:10:01 +00:00
buttonGo.style.color = 'black'
2022-08-18 09:03:18 +00:00
}
})