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,
|
claimableCaches,
|
||||||
GLOBAL_CLAIM_DISTANCE_METERS,
|
GLOBAL_CLAIM_DISTANCE_METERS,
|
||||||
selectedCacheId,
|
selectedCacheId,
|
||||||
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Handlers ----------------------------
|
// Handlers ----------------------------
|
||||||
@@ -132,12 +133,11 @@ const GlobalMapScreen = ({ navigation, route }) => {
|
|||||||
setIsClaiming(false);
|
setIsClaiming(false);
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
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(`${cacheName} claimed! You gained +${points} points.`);
|
setClaimedPopupMessage(`${cacheName} claimed! You gained +10 points.`);
|
||||||
setClaimedPopupVisible(true);
|
setClaimedPopupVisible(true);
|
||||||
setTimeout(() => setClaimedPopupVisible(false), 3000);
|
setTimeout(() => setClaimedPopupVisible(false), 3000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import {useEffect, useRef, useState} from 'react';
|
import {useEffect, useRef, useState} from 'react';
|
||||||
import {isInClaimCone} from '../utils/geoMath';
|
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 [visibleCaches, setVisibleCaches] = useState([]);
|
||||||
const [isClaiming, setIsClaiming] = useState(false);
|
const [isClaiming, setIsClaiming] = useState(false);
|
||||||
const prevIdRef = useRef('');
|
const prevIdRef = useRef('');
|
||||||
@@ -17,7 +17,9 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc
|
|||||||
}
|
}
|
||||||
|
|
||||||
const caches = activeCaches || [];
|
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);
|
let visible = selected && isInClaimCone(playerHeading, playerLocation, selected.coordinates, claimDistance);
|
||||||
|
|
||||||
if (!visible) {
|
if (!visible) {
|
||||||
@@ -36,7 +38,7 @@ const usePlayerGame = (playerLocation, playerHeading, activeCaches, claimDistanc
|
|||||||
setVisibleCaches([]);
|
setVisibleCaches([]);
|
||||||
setIsClaiming(false);
|
setIsClaiming(false);
|
||||||
}
|
}
|
||||||
}, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId]);
|
}, [playerLocation, playerHeading, activeCaches, claimDistance, selectedCacheId, preferSelectedCache]);
|
||||||
|
|
||||||
return {visibleCaches, isClaiming, setIsClaiming};
|
return {visibleCaches, isClaiming, setIsClaiming};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in new issue
Block a user