From 5cefd8b36d1f9f869e686c7a0f591146ec07d2c6 Mon Sep 17 00:00:00 2001 From: kron Date: Thu, 6 Nov 2025 16:08:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BowTarget.vue | 11 ++++++----- src/components/HeaderProgress.vue | 18 ++++++++++++++++++ src/pages/team-battle.vue | 1 + 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue index c712db8..8cec850 100644 --- a/src/components/BowTarget.vue +++ b/src/components/BowTarget.vue @@ -234,10 +234,10 @@ onMounted(() => { } .hit { position: absolute; - width: 3.4%; - height: 3.4%; - min-width: 3.4%; - min-height: 3.4%; + width: 22rpx; + height: 22rpx; + min-width: 22rpx; + min-height: 22rpx; border-radius: 50%; border: 1px solid #fff; z-index: 1; @@ -251,11 +251,12 @@ onMounted(() => { /* transform: translate(-50%, -50%); */ } .hit > text { - transform: scaleX(0.7) translateY(-0.5px); + transform: scaleX(0.7); display: block; font-weight: bold; width: 100%; text-align: center; + line-height: 22rpx; } .header { width: 100%; diff --git a/src/components/HeaderProgress.vue b/src/components/HeaderProgress.vue index 4e35b50..0686f9d 100644 --- a/src/components/HeaderProgress.vue +++ b/src/components/HeaderProgress.vue @@ -57,6 +57,24 @@ async function onReceiveMessage(messages = []) { if (msg.constructor === MESSAGETYPES.ShootResult) { if (melee.value && msg.userId !== user.value.id) return; if (msg.userId === user.value.id) currentShot.value++; + if (msg.battleInfo && msg.userId === user.value.id) { + const players = [ + ...(msg.battleInfo.blueTeam || []), + ...(msg.battleInfo.redTeam || []), + ]; + const currentPlayer = players.find((p) => p.id === msg.userId); + currentShot.value = 0; + try { + if ( + currentPlayer && + currentPlayer.shotHistory && + currentPlayer.shotHistory[msg.battleInfo.currentRound] + ) { + currentShot.value = + currentPlayer.shotHistory[msg.battleInfo.currentRound].length; + } + } catch (_) {} + } if (!halfTime.value && msg.target) { currentSound.value = msg.target.ring ? `${msg.target.ring}环` diff --git a/src/pages/team-battle.vue b/src/pages/team-battle.vue index b6d6932..96cabe8 100644 --- a/src/pages/team-battle.vue +++ b/src/pages/team-battle.vue @@ -208,6 +208,7 @@ async function onReceiveMessage(messages = []) { roundResults.value[currentRound.value - 1][ isRed ? "redArrows" : "blueArrows" ].push({ ...msg.target }); + if (msg.battleInfo) recoverData(msg.battleInfo); } if (msg.constructor === MESSAGETYPES.CurrentRoundEnded) { const result = msg.preRoundResult;