diff --git a/src/components/ShootProgress.vue b/src/components/ShootProgress.vue
index db81b29..2b600a4 100644
--- a/src/components/ShootProgress.vue
+++ b/src/components/ShootProgress.vue
@@ -44,7 +44,6 @@ const sound = ref(true);
const currentSound = ref("");
const currentRound = ref(props.currentRound);
const currentRoundEnded = ref(!props.battleId);
-const halfTimeTip = ref(false);
const ended = ref(false);
watch(
@@ -143,11 +142,10 @@ async function onReceiveMessage(messages = []) {
} else if (msg.constructor === MESSAGETYPES.AllReady) {
audioManager.play("比赛开始");
} else if (msg.constructor === MESSAGETYPES.MeleeAllReady) {
- if (!halfTimeTip.value) audioManager.play("比赛开始");
+ audioManager.play("比赛开始");
} else if (msg.constructor === MESSAGETYPES.CurrentRoundEnded) {
currentRoundEnded.value = true;
} else if (msg.constructor === MESSAGETYPES.HalfTimeOver) {
- halfTimeTip.value = true;
audioManager.play("中场休息");
} else if (msg.constructor === MESSAGETYPES.MatchOver) {
audioManager.play("比赛结束");
diff --git a/src/constants.js b/src/constants.js
index 2b59b36..f1894f3 100644
--- a/src/constants.js
+++ b/src/constants.js
@@ -88,3 +88,75 @@ export const directionAdjusts = {
AdjustUpperRight: "向右上方调瞄",
AdjustRight: "向右侧调瞄",
};
+
+export const getBattleResultTips = (
+ gameMode,
+ mode,
+ { rank = 0, score = 0, win = false }
+) => {
+ const getRandomIndex = (len) => Math.floor(Math.random() * len);
+ if (gameMode === 1) {
+ if (mode === 1) {
+ if (win) {
+ const tests = [
+ "你是朋友中的佼佼者哟!",
+ "你成功击败好友,成为大赢家!",
+ "你将好友“一举拿下”,超神无疑!",
+ ];
+ return tests[getRandomIndex(3)];
+ } else {
+ const tests = [
+ "失误啦失误啦,再多来几局吧~",
+ "惜败好友,下次再战定能反超!",
+ "友谊第一,下场胜利属于你!",
+ ];
+ return tests[getRandomIndex(3)];
+ }
+ } else if (mode === 2) {
+ if (score > 0) {
+ const tests = [
+ "王者一定属于你!",
+ "高光时刻!继续保持!",
+ "射灵世界的佼佼者!",
+ ];
+ return tests[getRandomIndex(3)];
+ } else {
+ const tests = [
+ "再来一次,定能脱颖而出!",
+ "加强练习,争取越战越勇",
+ "人生走过的每一步都算数",
+ ];
+ return tests[getRandomIndex(3)];
+ }
+ }
+ } else if (gameMode === 2) {
+ if (mode === 1) {
+ if (win) {
+ const tests = [
+ "你已经奔跑在通向王者的路上了!",
+ "射灵星球最闪耀的前进者!",
+ "赞!你真是越战越勇",
+ ];
+ return tests[getRandomIndex(3)];
+ } else {
+ const tests = [
+ "失败是成功之母,儿子在等你!",
+ "人生得意须尽欢,不过此关心不甘!",
+ "这回一定是打开方式不对。再来!",
+ ];
+ return tests[getRandomIndex(3)];
+ }
+ } else if (mode === 2) {
+ if (rank <= 3) {
+ const tests = [
+ "好成绩!全国排位赛等着你!",
+ "持续练习,就会迎来更多高光时刻!",
+ ];
+ return tests[getRandomIndex(2)];
+ } else {
+ return "每日练习打卡,争取下次脱颖而出!";
+ }
+ }
+ }
+ return "";
+};
diff --git a/src/pages/battle-result.vue b/src/pages/battle-result.vue
index 2e26795..da1d716 100644
--- a/src/pages/battle-result.vue
+++ b/src/pages/battle-result.vue
@@ -3,7 +3,7 @@ import { ref, onMounted } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import Avatar from "@/components/Avatar.vue";
import { getGameAPI, getHomeData } from "@/apis";
-import { topThreeColors } from "@/constants";
+import { topThreeColors, getBattleResultTips } from "@/constants";
import useStore from "@/store";
import { storeToRefs } from "pinia";
const store = useStore();
@@ -13,6 +13,7 @@ const { updateUser, getLvlName } = store;
const ifWin = ref(false);
const data = ref({});
const totalPoints = ref(0);
+const rank = ref(0);
// onLoad(async (options) => {
// battleId.value = options.battleId;
@@ -40,9 +41,11 @@ function exit() {
}
onMounted(async () => {
const battleInfo = uni.getStorageSync("last-battle");
- console.log("----battleInfo", battleInfo);
+ // console.log("----battleInfo", battleInfo);
data.value = battleInfo;
const mine = battleInfo.playerStats.find((p) => p.id === user.value.id);
+ rank.value =
+ battleInfo.playerStats.findIndex((p) => p.id === user.value.id) + 1;
if (mine) {
if (battleInfo.mode === 1) {
totalPoints.value = mine.roundStats.reduce(
@@ -172,12 +175,15 @@ const checkBowData = () => {
积分 {{ totalPoints > 0 ? "+" + totalPoints : totalPoints }}
- {{
- ifWin ? "你已经奔跑在通向王者的路上了!" : "失败是成功之母,儿子在等你!"
- }}
- 好成绩!全国排位赛等着你!
+
+ {{
+ getBattleResultTips(data.battleMode, data.mode, {
+ win: ifWin,
+ score: totalPoints,
+ rank,
+ })
+ }}
+
查看靶纸
退出
diff --git a/src/pages/melee-match.vue b/src/pages/melee-match.vue
index 6fd9078..c76d0d6 100644
--- a/src/pages/melee-match.vue
+++ b/src/pages/melee-match.vue
@@ -59,6 +59,7 @@ onLoad(async (options) => {
if (battleInfo) {
battleId.value = battleInfo.id;
start.value = true;
+ startCount.value = true;
tips.value = "请连续射出6支箭";
players.value = [...battleInfo.blueTeam, ...battleInfo.redTeam];
players.value.forEach((p) => {
@@ -72,11 +73,8 @@ onLoad(async (options) => {
}, 300);
} else if (remain > 90 && remain <= 110) {
halfTimeTip.value = true;
- total.value = 20;
+ startCount.value = false;
tips.value = "准备下半场";
- setTimeout(() => {
- uni.$emit("update-ramain", 110 - remain);
- }, 300);
} else if (remain > 110) {
setTimeout(() => {
uni.$emit("update-ramain", remain - 110);
@@ -135,7 +133,6 @@ async function onReceiveMessage(messages = []) {
timerSeq.value = 0;
tips.value = "请连续射出6支箭";
scores.value = [];
- total.value = 90;
}
if (msg.constructor === MESSAGETYPES.ShootResult) {
if (msg.userId === user.value.id) {
@@ -147,7 +144,6 @@ async function onReceiveMessage(messages = []) {
if (msg.constructor === MESSAGETYPES.HalfTimeOver) {
startCount.value = false;
halfTimeTip.value = true;
- total.value = 20;
tips.value = "准备下半场";
}
if (msg.constructor === MESSAGETYPES.MatchOver) {
@@ -210,7 +206,7 @@ onUnmounted(() => {
:currentRound="scores.length"
:totalRound="start ? 12 : 0"
:scores="scores"
- :stop="halfTimeTip && !startCount"
+ :stop="!startCount"
/>
{
-
+
(showSeasonList = false)">