From dc181862650799bf2d705cab49feb0357525540c Mon Sep 17 00:00:00 2001 From: mudabbir-ahmad Date: Thu, 9 Apr 2026 22:57:24 +0100 Subject: [PATCH] Refactor claim distance and update cache claiming logic in GlobalMapScreen and usePlayerGame --- src/components/screens/global/GlobalMapScreen.js | 4 ++-- src/hooks/usePlayerGame.js | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/screens/global/GlobalMapScreen.js b/src/components/screens/global/GlobalMapScreen.js index 1c4028e..c29fcd9 100644 --- a/src/components/screens/global/GlobalMapScreen.js +++ b/src/components/screens/global/GlobalMapScreen.js @@ -78,6 +78,7 @@ const GlobalMapScreen = ({ navigation, route }) => { claimableCaches, GLOBAL_CLAIM_DISTANCE_METERS, selectedCacheId, + false, ); // Handlers ---------------------------- @@ -132,12 +133,11 @@ const GlobalMapScreen = ({ navigation, route }) => { setIsClaiming(false); if (result) { - const points = Number(claimedCache?.CachePoints ?? 10); const cacheName = claimedCache?.CacheName || "Cache"; setFoundCacheIds((prev) => prev.includes(cacheId) ? prev : [...prev, cacheId], ); - setClaimedPopupMessage(`${cacheName} claimed! You gained +${points} points.`); + setClaimedPopupMessage(`${cacheName} claimed! You gained +10 points.`); setClaimedPopupVisible(true); setTimeout(() => setClaimedPopupVisible(false), 3000); } diff --git a/src/hooks/usePlayerGame.js b/src/hooks/usePlayerGame.js index de464fa..56ec65e 100644 --- a/src/hooks/usePlayerGame.js +++ b/src/hooks/usePlayerGame.js @@ -1,7 +1,7 @@ import {useEffect, useRef, useState} from 'react'; import {isInClaimCone} from '../utils/geoMath'; -const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId) => { +const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId, preferSelectedCache = true) => { const [visibleCaches, setVisibleCaches] = useState([]); const [isClaiming, setIsClaiming] = useState(false); const prevIdRef = useRef(''); @@ -17,7 +17,9 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc } const caches = activeCaches || []; - let selected = selectedCacheId ? caches.find((c) => c.id === selectedCacheId) : null; + let selected = (preferSelectedCache && selectedCacheId) + ? caches.find((c) => c.id === selectedCacheId) + : null; let visible = selected && isInClaimCone(playerHeading, playerLocation, selected.coordinates, claimDistance); if (!visible) { @@ -36,7 +38,7 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc setVisibleCaches([]); setIsClaiming(false); } - }, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId]); + }, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId, preferSelectedCache]); return {visibleCaches, isClaiming, setIsClaiming}; };