完成新的个人练习流程调试

This commit is contained in:
kron
2026-02-07 18:30:16 +08:00
parent d35ff9335f
commit d9a2e53faf
8 changed files with 170 additions and 114 deletions

View File

@@ -50,14 +50,14 @@ onMounted(() => {
if (props.result.lvl > user.value.lvl) {
showUpgrade.value = true;
}
totalRing.value = (props.result.arrows || []).reduce(
totalRing.value = (props.result.details || []).reduce(
(last, next) => last + next.ring,
0
);
});
const validArrows = computed(() => {
return (props.result.arrows || []).filter(
return (props.result.details || []).filter(
(arrow) => arrow.x !== -30 && arrow.y !== -30
).length;
});
@@ -96,8 +96,8 @@ const getRing = (arrow) => {
</view>
<view :style="{ gridTemplateColumns: `repeat(${rowCount}, 1fr)` }">
<view v-for="(_, index) in new Array(total).fill(0)" :key="index">
{{ getRing(result.arrows[index])
}}<text v-if="getRing(result.arrows[index]) !== '-'"></text>
{{ getRing(result.details[index])
}}<text v-if="getRing(result.details[index]) !== '-'"></text>
</view>
</view>
<view>
@@ -133,7 +133,7 @@ const getRing = (arrow) => {
}}</text
>环的成绩所有箭支上靶后的平均点间距为<text
:style="{ color: '#fed847' }"
>{{ Number(result.average_distance.toFixed(2)) }}</text
>{{ Number((result.average_distance || 0).toFixed(2)) }}</text
>{{
result.spreadEvaluation === "Dispersed"
? "还需要持续改进哦~"
@@ -161,7 +161,7 @@ const getRing = (arrow) => {
</ScreenHint>
<BowData
:total="result.completed_arrows"
:arrows="result.arrows"
:arrows="result.details"
:show="showBowData"
:onClose="() => (showBowData = false)"
/>

View File

@@ -128,14 +128,17 @@ async function onReceiveMessage(msg) {
} else if (msg.type === MESSAGETYPESV2.BattleEnd) {
audioManager.play("比赛结束");
} else if (msg.type === MESSAGETYPESV2.ShootResult) {
if (msg.shootData.playerId !== user.value.id) return;
if (msg.shootData) {
let key = [];
key.push(msg.shootData.ring ? `${msg.shootData.ring}` : "未上靶");
if (!msg.shootData.ring)
key.push(`${getDirectionText(msg.shootData.angle)}调整`);
audioManager.play(key, false);
let arrow = {};
if (msg.details && Array.isArray(msg.details)) {
arrow = msg.details[msg.details.length - 1];
} else {
if (msg.shootData.playerId !== user.value.id) return;
if (msg.shootData) arrow = msg.shootData;
}
let key = [];
key.push(arrow.ring ? `${arrow.ring}` : "未上靶");
if (!arrow.ring) key.push(`${getDirectionText(arrow.angle)}调整`);
audioManager.play(key, false);
} else if (msg.type === MESSAGETYPESV2.HalfRest) {
halfTime.value = true;
audioManager.play("中场休息");