From 734d4623a7d91d98535e62d4e7d54a312b8b03c3 Mon Sep 17 00:00:00 2001 From: Tarik Viehmann Date: Sat, 27 Jan 2024 23:36:26 +0100 Subject: [PATCH] store: only add points to list if not already received Otherwise it can happen that points are counted multiple times, especially when switching between views --- src/store/gameStore.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/store/gameStore.ts b/src/store/gameStore.ts index 40e02e3..6697193 100644 --- a/src/store/gameStore.ts +++ b/src/store/gameStore.ts @@ -205,16 +205,25 @@ export const useGameStore = defineStore('gameStore', () => { // -> add a reward function addReward(rewardArg: Reward) { - if (rewardArg.points > 0 && teamNameByColor.value(rewardArg.team) != '') { + const rewardExists = rewards.value.some(reward => { + return ( + reward.game_time === rewardArg.game_time && + reward.phase === rewardArg.phase && + reward.points === rewardArg.points && + reward.reason === rewardArg.reason && + reward.team === rewardArg.team + ); + }); + + // If the reward doesn't already exist, add it to the rewards array and log the event + if (!rewardExists && rewardArg.points > 0 && teamNameByColor.value(rewardArg.team) !== '') { eventStore.addEvent({ icon: 'fa-trophy', - msg: `${teamNameByColor.value(rewardArg.team)} received ${ - rewardArg.points - } points`, + msg: `${teamNameByColor.value(rewardArg.team)} received ${rewardArg.points} points`, team: rewardArg.team, - }) + }); + rewards.value.push(rewardArg); } - rewards.value.push(rewardArg) } // -> send a websocket message to ...