// Game data - tasks and consequences const gameData = { // Main tasks - these are the primary challenges mainTasks: [ { id: 1, text: "Hold your breath for 30 seconds while maintaining focus", difficulty: "Easy" }, { id: 2, text: "Close your eyes and count to 20 without rushing", difficulty: "Easy" }, { id: 3, text: "Keep your hands completely still for 45 seconds", difficulty: "Medium" }, { id: 4, text: "Stare at a fixed point without blinking for 30 seconds", difficulty: "Medium" }, { id: 5, text: "Take 10 slow, deep breaths while focusing on control", difficulty: "Easy" }, { id: 6, text: "Hold a stress position (arms extended) for 60 seconds", difficulty: "Medium" }, { id: 7, text: "Repeat 'I am learning self-control' 10 times slowly", difficulty: "Easy" }, { id: 8, text: "Maintain perfect posture for 2 minutes without moving", difficulty: "Medium" }, { id: 9, text: "Edge for 30 seconds then stop immediately", difficulty: "Easy" }, { id: 10, text: "Close your eyes and focus on breathing for 90 seconds", difficulty: "Easy" }, { id: 11, text: "Hold a challenging yoga pose for 60 seconds", difficulty: "Easy" }, { id: 12, text: "Count backwards from 100 by 7s without losing focus", difficulty: "Medium" }, { id: 13, text: "Edge for 2 minutes with 3 stops, then wait 30 seconds", difficulty: "Hard" }, { id: 14, text: "Hold a plank position for 3 minutes while edging", difficulty: "Hard" }, { id: 15, text: "Practice edging with varying speeds for 5 minutes", difficulty: "Hard" }, { id: 16, text: "Complete a 10-minute endurance session with no release", difficulty: "Hard" }, { id: 17, text: "Edge to near climax 5 times, then stop for 2 minutes", difficulty: "Hard" }, ], // Consequence tasks - these are triggered when main tasks are skipped consequenceTasks: [ { id: 101, text: "Hold the edge for 60 seconds without any movement" }, { id: 102, text: "Perform 50 squats while maintaining arousal" }, { id: 103, text: "Stay at the edge for 2 minutes with hands behind back" }, { id: 104, text: "Write 'I will practice self-control' 25 times" }, { id: 105, text: "Hold a wall sit for 3 minutes while edging" }, { id: 106, text: "Edge for 30 seconds then cold shower for 1 minute" }, { id: 107, text: "Maintain edge position for 5 minutes without touching" }, { id: 108, text: "Complete 100 push-ups in sets while staying aroused" }, { id: 109, text: "Kneel in stress position for 10 minutes, no relief" }, { id: 110, text: "Edge to near climax then stop for 5 minutes - repeat 3 times" }, { id: 111, text: "Perform degrading poses while edging for 3 minutes" }, { id: 112, text: "Worship your training material for 10 minutes, no touching" } ], // Image directory configuration taskImageDirectory: "images/tasks/", consequenceImageDirectory: "images/consequences/", supportedImageFormats: ['.jpg', '.jpeg', '.png', '.gif'], discoveredTaskImages: [], // Will be populated automatically discoveredConsequenceImages: [], // Will be populated automatically // Placeholder images for tasks that don't have specific images defaultImage: "images/placeholder.jpg", // Flash Message System - Training focused messages defaultFlashMessages: [ // Motivational messages { id: 1, text: "Your self-control is improving! Keep training!", category: "motivational", enabled: true }, { id: 2, text: "Every edge builds your endurance!", category: "motivational", enabled: true }, { id: 3, text: "Discipline over impulse!", category: "motivational", enabled: true }, { id: 4, text: "You're learning to control yourself! Stay focused!", category: "motivational", enabled: true }, { id: 5, text: "Small steps lead to better self-control!", category: "motivational", enabled: true }, // Encouraging messages { id: 6, text: "Your dedication to training is impressive!", category: "encouraging", enabled: true }, { id: 7, text: "Look how much your endurance has improved!", category: "encouraging", enabled: true }, { id: 8, text: "You're building incredible self-discipline!", category: "encouraging", enabled: true }, { id: 9, text: "Master your desires - you have the strength!", category: "encouraging", enabled: true }, { id: 10, text: "Your future self will appreciate this training!", category: "encouraging", enabled: true }, // Achievement messages { id: 11, text: "Excellent control on that task!", category: "achievement", enabled: true }, { id: 12, text: "You're on fire! Maintain that discipline!", category: "achievement", enabled: true }, { id: 13, text: "Another victory for self-control!", category: "achievement", enabled: true }, { id: 14, text: "Perfect execution!", category: "achievement", enabled: true }, { id: 15, text: "You're mastering your training goals!", category: "achievement", enabled: true }, // Persistence messages { id: 16, text: "Don't give in now - show your discipline!", category: "persistence", enabled: true }, { id: 17, text: "Every challenge strengthens your self-control!", category: "persistence", enabled: true }, { id: 18, text: "Push through - mastery awaits!", category: "persistence", enabled: true }, { id: 19, text: "You're stronger than any urge!", category: "persistence", enabled: true }, { id: 20, text: "True control is forged in moments like this!", category: "persistence", enabled: true } ], // Flash message configuration defaults defaultFlashConfig: { enabled: true, displayDuration: 3000, // 3 seconds intervalDelay: 45000, // 45 seconds position: 'center', animation: 'fade', fontSize: '24px', fontWeight: 'bold', color: '#ffffff', backgroundColor: 'rgba(0, 123, 255, 0.9)', borderRadius: '15px', padding: '20px 30px', maxWidth: '400px', zIndex: 10000 }, // Default Popup Image Configuration (Punishment System) defaultPopupImageConfig: { enabled: true, imageCount: 3, // Number of images to show imageCountMode: 'fixed', // 'fixed', 'random', 'range' minCount: 2, // For range mode maxCount: 10, // For range mode - increased from 5 displayDuration: 8000, // 8 seconds default durationMode: 'fixed', // 'fixed', 'random', 'range' minDuration: 5000, // For range mode (5s) maxDuration: 15000, // For range mode (15s) positioning: 'random', // 'random', 'cascade', 'grid', 'center' allowOverlap: true, fadeAnimation: true, blurBackground: true, preventClose: true, // Users cannot close these showTimer: true, // Show countdown timer triggerOnSkip: true, // Trigger when tasks are skipped intensity: 'medium', // 'low', 'medium', 'high' - affects default values // Size constraints for dynamic sizing minWidth: 200, maxWidth: 500, minHeight: 150, maxHeight: 400, viewportWidthRatio: 0.35, // Max 35% of viewport width viewportHeightRatio: 0.4 // Max 40% of viewport height } }; // Make gameData available globally window.gameData = gameData; // Add mirror task programmatically to avoid any parsing issues console.log('🔧 Adding mirror task programmatically...'); console.log('🔍 gameData.mainTasks before:', gameData.mainTasks.length); gameData.mainTasks.push({ id: 'mirror-humiliation-task', text: "Webcam Mirror Self-Humiliation", difficulty: "Medium", interactiveType: "mirror-task", story: "Look at yourself through your webcam and repeat degrading phrases: 'I am a pathetic toy', 'I exist for others' pleasure', 'I have no dignity'. Say each phrase 5 times while looking at yourself on camera.", mirrorInstructions: "Look directly at yourself through the webcam while speaking the degrading phrases", mirrorTaskText: "Repeat each phrase 5 times while maintaining eye contact with yourself: 'I am a pathetic toy', 'I exist for others' pleasure', 'I have no dignity'" }); console.log('🔍 gameData.mainTasks after:', gameData.mainTasks.length); console.log('✅ Mirror task added successfully');