mirror of
https://github.com/mudabbir-ahmad/MAD-Treasure-Hunt.git
synced 2026-10-07 19:00:20 +00:00
Refactor claim distance and update cache claiming logic in GlobalMapScreen and usePlayerGame
This commit is contained in:
1 parent
1948fb4d90
commit
dc18186265
2 files changed
+7
-5
No files matched your search
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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};
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user