From 8511bd7e1345536e20f9344264f286b682057f1b Mon Sep 17 00:00:00 2001 From: zhangyibo95 <690096405@qq.com> Date: Mon, 9 Nov 2026 17:23:37 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E4=BC=98=E5=8C=96=E5=B0=84?= =?UTF-8?q?=E7=AE=AD=E7=AA=97=E5=8F=A3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/team-battle/index.vue | 36 +++++---------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/src/pages/team-battle/index.vue b/src/pages/team-battle/index.vue index d51ce9a..984a4d5 100644 --- a/src/pages/team-battle/index.vue +++ b/src/pages/team-battle/index.vue @@ -46,7 +46,6 @@ const ROUND_TIP_DELAY = 800; const ROUND_TIP_WAIT_GRACE = 300; const PROGRESS_START_DELAY = 100; const PROGRESS_MIN_TICK_MS = 1; -const PROGRESS_ZERO_WAIT_GRACE = 120; const AUDIO_TIMEOUT_BASE = 3500; const AUDIO_TIMEOUT_PER_KEY = 2600; const AUDIO_TIMEOUT_MAX = 12000; @@ -335,26 +334,6 @@ function markProgressDeadline(countdown, delayMs = 0) { progressDeadlineAt = Date.now() + delayMs + countdown.durationMs; } -function waitForProgressZero() { - const waitMs = Math.ceil(progressDeadlineAt - Date.now()); - if (waitMs <= 0) return Promise.resolve(); - - return new Promise((resolve) => { - let settled = false; - const waiter = { - done: () => { - if (settled) return; - settled = true; - clearTimeout(timer); - progressZeroWaiters.delete(waiter); - resolve(); - }, - }; - const timer = setTimeout(waiter.done, waitMs + PROGRESS_ZERO_WAIT_GRACE); - progressZeroWaiters.add(waiter); - }); -} - function onProgressZero() { progressDeadlineAt = 0; clearProgressZeroWaiters(); @@ -934,17 +913,12 @@ async function runBattleStartTask(task, runId) { // 新射手任务:切换当前射手、播报提示,并启动这一箭的倒计时。 async function runToSomeoneShootTask(task, runId) { - // 新射手任务:先等上一轮倒计时归零,再更新展示、播轮次/射手语音、启动倒计时。 - const battleInfo = task.message; - const shouldEnterImmediately = showRoundTip.value; - if (shouldEnterImmediately) { - cancelRoundTipDisplay(); - progressDeadlineAt = 0; - clearProgressZeroWaiters(); - } else { - await waitForProgressZero(); - } if (!isQueueAlive(runId)) return; + // 后端换人消息表示上一箭已结束,立即停止旧计时,不再等待本地倒计时归零。 + const battleInfo = task.message; + progressDeadlineAt = 0; + clearProgressZeroWaiters(); + uni.$emit("update-remain", { stop: true }); applyBattleBase(battleInfo); start.value = true;