advanced-games-library
Version:
Advanced Gaming Library for React Native - Four Complete Games with iOS Compatibility Fixes
258 lines (244 loc) • 5.78 kB
text/typescript
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: 'השחקן נרשם בהצלחה',
};