Update GlobalMapScreen and usePlayerGame logic for improved cache claiming feedback

This commit is contained in:
bobbert committed 2026-04-09 22:52:12 +01:00
1 parent bb7e46cf4b
commit ac7d89c0c5
2 files changed
+7 -5

No files matched your search

@@ -132,14 +132,12 @@ const GlobalMapScreen = ({ navigation, route }) => {
setIsClaiming(false); setIsClaiming(false);
if (result) { if (result) {
const points = Number(claimedCache?.CachePoints ?? 0); const points = Number(claimedCache?.CachePoints ?? 10);
const cacheName = claimedCache?.CacheName || "Cache"; const cacheName = claimedCache?.CacheName || "Cache";
setFoundCacheIds((prev) => setFoundCacheIds((prev) =>
prev.includes(cacheId) ? prev : [...prev, cacheId], prev.includes(cacheId) ? prev : [...prev, cacheId],
); );
setClaimedPopupMessage( setClaimedPopupMessage(`${cacheName} claimed! You gained +${points} points.`);
`${cacheName} claimed! You received ${points} points.`,
);
setClaimedPopupVisible(true); setClaimedPopupVisible(true);
setTimeout(() => setClaimedPopupVisible(false), 3000); setTimeout(() => setClaimedPopupVisible(false), 3000);
} }
+5 -1
View File
@@ -7,7 +7,7 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc
const prevIdRef = useRef(''); const prevIdRef = useRef('');
useEffect(() => { useEffect(() => {
if (!playerLocation || playerHeading === null || playerHeading === undefined || !selectedCacheId) { if (!playerLocation || playerHeading === null || playerHeading === undefined) {
if (prevIdRef.current !== '') { if (prevIdRef.current !== '') {
prevIdRef.current = ''; prevIdRef.current = '';
setVisibleCaches([]); setVisibleCaches([]);
@@ -31,6 +31,10 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc
prevIdRef.current = newId; prevIdRef.current = newId;
setVisibleCaches(visible ? [selected] : []); setVisibleCaches(visible ? [selected] : []);
setIsClaiming(Boolean(visible)); setIsClaiming(Boolean(visible));
} else if (!visible && prevIdRef.current !== '') {
prevIdRef.current = '';
setVisibleCaches([]);
setIsClaiming(false);
} }
}, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId]); }, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId]);