5.3 KiB
5.3 KiB
Hunt Feature Documentation
Overview
The Hunt feature is a gamified treasure hunt system that challenges users to find specific locations in their city using mystery clues. It combines augmented reality hints, location-based gaming, and social leaderboards.
Features
1. Card Selection System
- Point-based Cards: Each card has different point values (sorted by highest points first)
- Category System: Cards are categorized (Coffee Shop, Restaurant, Fashion Store, etc.)
- Animated Cards: Smooth flip animations when selected
- Mystery Questions: Each card contains a riddle about a specific location
2. Hunt Mechanics
- 12-Hour Time Limit: Players have 12 hours to complete their hunt
- Real-time Timer: Countdown timer with visual indicators
- Location Monitoring: Automatic detection when player reaches target location
- Success Celebration: Sound effects and animations upon completion
3. AR Hint System
- Camera Integration: Uses device camera for AR experience
- Location-based Hints: AR markers appear at specific coordinates
- Visual Feedback: Scanning animations and hint discovery notifications
- Permission Handling: Proper camera and location permission requests
4. Leaderboard System
- Real-time Rankings: Shows player position based on total points
- User Highlighting: Current user is highlighted in the leaderboard
- Point Tracking: Displays individual and total points earned
- Animated Updates: Smooth animations when rank changes
Technical Implementation
State Management
- Uses Provider pattern for state management
HuntStateclass manages all game state- Real-time updates for location monitoring
- Proper cleanup of resources
Location Services
- Geolocator integration for precise location tracking
- Permission handling for location access
- Distance calculation between current and target locations
- Background location monitoring during active hunts
Sound & Haptics
- Card flip sound effects
- Success celebration sounds
- Hint discovery feedback
- Vibration patterns for different actions
Camera Integration
- Mobile Scanner for camera access
- AR overlay rendering
- Real-time location-based hint detection
- Custom AR UI elements
File Structure
lib/screens/mains/hunt/
├── hunt.dart # Main hunt screen
├── models/
│ └── hunt_card.dart # Data models
├── providers/
│ └── hunt_provider.dart # State management
├── services/
│ ├── location_service.dart # Location handling
│ └── game_sound_service.dart # Audio feedback
└── widgets/
├── hunt_card_widget.dart # Card UI component
├── leaderboard_widget.dart # Leaderboard UI
├── hint_camera_widget.dart # AR camera interface
└── hunt_timer_widget.dart # Timer components
Game Flow
-
Card Selection
- Player sees sorted cards by points
- Selects a card to reveal the mystery
- Card flips with animation to show the riddle
-
Hunt Activation
- 12-hour timer starts
- Location monitoring begins
- Player can use hints if needed
-
Hint System
- Opens AR camera view
- Shows scanning interface
- Detects when player is near hint location
- Provides additional clues
-
Hunt Completion
- Automatic detection when player reaches target
- Success animation and sound effects
- Points added to player's total
- Leaderboard position updated
Mock Data
The feature includes comprehensive mock data:
- 5 different hunt cards with varying difficulties
- Fake leaderboard with 6 players
- Location coordinates set to:
32.62501010252744, 51.72622026956878 - Point values ranging from 100-200 points
UI/UX Features
Animations
- Card flip animations (800ms duration)
- Scale animations on card selection
- Slide transitions between game states
- Pulse animations for active elements
- Confetti effect on completion
Dark/Light Mode Support
- Dynamic color switching based on theme
- Proper contrast ratios for both modes
- Theme-aware icons and illustrations
Professional Design
- Modern card-based interface
- Gradient backgrounds and shadows
- Proper spacing and typography
- Consistent iconography
- Responsive layout
Permissions Required
- Location Permission: For hunt location tracking
- Camera Permission: For AR hint feature
- Vibration: For haptic feedback (optional)
Future Enhancements
- API Integration: Replace mock data with real backend
- Multiple Hunt Modes: Daily challenges, team hunts, etc.
- Photo Verification: Require photos at hunt locations
- Social Features: Share achievements, invite friends
- Reward System: Unlock special cards or prizes
- Map Integration: Show hunt locations on map view
Testing Notes
- Location is currently set to a fixed coordinate for testing
- All hunt cards use the same target location
- Success detection has a 50-meter radius
- Hint detection has a 100-meter radius
- Permissions are properly handled with user-friendly dialogs
Performance Considerations
- Efficient location monitoring (5-second intervals)
- Proper animation disposal to prevent memory leaks
- Optimized AR camera rendering
- Background task cleanup on screen disposal
- Resource-conscious timer implementations