UNPKG

advanced-games-library

Version:

Advanced Gaming Library for React Native - Four Complete Games with iOS Compatibility Fixes

258 lines (244 loc) 5.78 kB
import { GameTheme, LibraryConfig } from '../types'; // Default theme configuration export const DEFAULT_THEME: GameTheme = { name: 'default', colors: { primary: '#007AFF', secondary: '#5856D6', accent: '#FF9500', background: '#FFFFFF', surface: '#F2F2F7', text: '#000000', textSecondary: '#8E8E93', success: '#34C759', warning: '#FF9500', error: '#FF3B30', }, fonts: { regular: 'System', bold: 'System-Bold', title: 'System-Heavy', }, spacing: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, }, }; // Dark theme configuration export const DARK_THEME: GameTheme = { name: 'dark', colors: { primary: '#0A84FF', secondary: '#5E5CE6', accent: '#FF9F0A', background: '#000000', surface: '#1C1C1E', text: '#FFFFFF', textSecondary: '#8E8E93', success: '#30D158', warning: '#FF9F0A', error: '#FF453A', }, fonts: { regular: 'System', bold: 'System-Bold', title: 'System-Heavy', }, spacing: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, }, }; // High contrast theme for accessibility export const HIGH_CONTRAST_THEME: GameTheme = { name: 'high-contrast', colors: { primary: '#0000FF', secondary: '#800080', accent: '#FF8C00', background: '#FFFFFF', surface: '#F5F5F5', text: '#000000', textSecondary: '#333333', success: '#008000', warning: '#FFA500', error: '#FF0000', }, fonts: { regular: 'System', bold: 'System-Bold', title: 'System-Heavy', }, spacing: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, }, }; // Large text theme for accessibility export const LARGE_TEXT_THEME: GameTheme = { ...DEFAULT_THEME, name: 'large-text', fonts: { regular: 'System', bold: 'System-Bold', title: 'System-Heavy', }, spacing: { xs: 6, sm: 12, md: 20, lg: 32, xl: 48, }, }; // Default library configuration export const DEFAULT_CONFIG: LibraryConfig = { enableAnalytics: true, enableStorage: true, defaultTheme: DEFAULT_THEME, customization: { defaultLanguage: 'he', supportedLanguages: ['he', 'en', 'ar'], }, }; // Game constants export const GAME_CONSTANTS = { MAX_PLAYER_NAME_LENGTH: 50, MAX_PHONE_NUMBER_LENGTH: 15, MAX_ID_NUMBER_LENGTH: 20, MIN_AGE: 0, MAX_AGE: 150, SESSION_TIMEOUT: 30 * 60 * 1000, // 30 minutes AUTO_SAVE_INTERVAL: 10 * 1000, // 10 seconds MAX_SCORE_HISTORY: 100, MAX_ACHIEVEMENT_CACHE: 50, }; // Analytics events configuration export const ANALYTICS_EVENTS = { LIBRARY_INITIALIZED: 'library_initialized', GAME_LAUNCHED: 'game_launched', GAME_COMPLETED: 'game_completed', GAME_ABANDONED: 'game_abandoned', SCORE_ACHIEVED: 'score_achieved', ACHIEVEMENT_UNLOCKED: 'achievement_unlocked', ERROR_OCCURRED: 'error_occurred', PLAYER_REGISTERED: 'player_registered', THEME_CHANGED: 'theme_changed', CUSTOM_EVENT: 'custom_event', }; // Storage keys export const STORAGE_KEYS = { PLAYER_DATA: '@games_library_player', GAME_RESULTS: '@games_library_results', LIBRARY_CONFIG: '@games_library_config', CURRENT_SESSION: '@games_library_session', ACHIEVEMENTS: '@games_library_achievements', CUSTOM_THEMES: '@games_library_themes', ANALYTICS_QUEUE: '@games_library_analytics', }; // Game categories and metadata export const GAME_CATEGORIES = { MEMORY: { id: 'memory', name: 'זיכרון', description: 'משחקי זיכרון וריכוז', icon: '🧠', color: '#007AFF', }, PUZZLE: { id: 'puzzle', name: 'פאזל', description: 'משחקי חשיבה והגיון', icon: '🧩', color: '#5856D6', }, QUIZ: { id: 'quiz', name: 'חידון', description: 'שאלות ותשובות', icon: '❓', color: '#FF9500', }, REACTION: { id: 'reaction', name: 'תגובה', description: 'מהירות ורפלקסים', icon: '⚡', color: '#34C759', }, STRATEGY: { id: 'strategy', name: 'אסטרטגיה', description: 'תכנון ואסטרטגיה', icon: '♟️', color: '#8E8E93', }, ARCADE: { id: 'arcade', name: 'ארקייד', description: 'משחקים מהירים ומהנים', icon: '🎮', color: '#FF3B30', }, }; // Validation rules export const VALIDATION_RULES = { PLAYER_ID: { MIN_LENGTH: 3, MAX_LENGTH: 50, PATTERN: /^[a-zA-Z0-9_-]+$/, }, PHONE_NUMBER: { PATTERN: /^[0-9+\-\s()]+$/, }, EMAIL: { PATTERN: /^[^\s@]+@[^\s@]+\.[^\s@]+$/, }, ID_NUMBER: { PATTERN: /^[0-9A-Za-z]+$/, }, SCORE: { MIN: 0, MAX: 1000000, }, TIME: { MIN: 0, MAX: 24 * 60 * 60 * 1000, // 24 hours in milliseconds }, }; // Performance thresholds export const PERFORMANCE_THRESHOLDS = { GAME_LOAD_TIME_WARNING: 3000, // 3 seconds GAME_LOAD_TIME_ERROR: 10000, // 10 seconds MEMORY_WARNING: 100 * 1024 * 1024, // 100MB FPS_WARNING: 30, FPS_ERROR: 15, }; // Error messages export const ERROR_MESSAGES = { GAME_NOT_FOUND: 'המשחק לא נמצא', INVALID_PLAYER_DATA: 'נתוני השחקן לא תקינים', INITIALIZATION_FAILED: 'אתחול הספרייה נכשל', STORAGE_ERROR: 'שגיאה בשמירת נתונים', NETWORK_ERROR: 'שגיאת רשת', GAME_ALREADY_RUNNING: 'המשחק כבר פועל', INVALID_CONFIG: 'הגדרות לא תקינות', PERMISSION_DENIED: 'אין הרשאה', }; // Success messages export const SUCCESS_MESSAGES = { GAME_COMPLETED: 'המשחק הושלם בהצלחה!', HIGH_SCORE: 'שיא חדש!', ACHIEVEMENT_UNLOCKED: 'הישג חדש נפתח!', LEVEL_COMPLETED: 'השלב הושלם!', PLAYER_REGISTERED: 'השחקן נרשם בהצלחה', };