Commit Graph

15 Commits

Author SHA1 Message Date
dilgenfritz 243d037924 rebrand: Transform to 'Edge & Punishment' - The Ultimate Edging Challenge
Complete rebranding from generic task game to focused edging experience:

- Updated app name: 'Task Challenge Game'  'Edge & Punishment'
- Added tagline: 'How long can you last?'
- Rebranded package.json with adult-focused keywords (edging, adult, nsfw, punishment)
- Updated Electron app title and product name
- Redesigned main heading with stylized tagline
- Added elegant tagline CSS styling (italic, subtle color)
- Completely rewrote README.md focusing on edging/punishment features
- Updated desktop README with NSFW content management focus
- Enhanced descriptions to emphasize the consequence flooding system
- Added adult content keywords for discoverability

 Perfect positioning for the adult gaming market with clear value proposition:
'An edging challenge game where skipping tasks floods your screen with consequences'
2025-09-28 22:19:25 -05:00
dilgenfritz 7824629631 feat: Increase maximum popup images to 40 with smart performance optimizations
- Updated image count slider max from 8 to 40
- Increased range mode max from 10 to 40
- Updated random mode from 1-5 to 1-10 images
- Added dynamic delay calculation: faster delays for larger popup counts
- Added performance warning for counts >20 popups
- Enhanced UI with warning indicators and updated help text
- Added smart timing to prevent long delays with many popups
2025-09-28 22:01:44 -05:00
dilgenfritz 22a1642faa feat: Add dynamic aspect ratio sizing to punishment popups
- Modified PopupImageManager to calculate popup size based on image aspect ratio
- Added size configuration options (min/max width/height, viewport ratios)
- Enhanced popup positioning to handle variable-sized popups with collision detection
- Added comprehensive size controls to Annoyance Management interface
- Implemented asynchronous image loading to determine proper dimensions
- Added padding between popups to prevent visual overlap
- Updated default configuration with size constraints and viewport ratio settings
2025-09-28 21:53:58 -05:00
dilgenfritz 6fad5af73f feat: Phase 2 - Advanced Flash Message System & Annoyance Management
- Added comprehensive FlashMessageManager class with full CRUD operations
- Implemented 4-tab Annoyance Management interface (Messages, Appearance, Behavior, Import/Export)
- Enhanced message management: add/edit/delete/enable/disable with categories and priorities
- Advanced appearance controls: position, animation, colors, fonts, opacity
- Sophisticated behavior settings: timing, variation, event-based triggers
- Complete import/export system with merge/replace modes and reset options
- Added 20 default encouraging messages across 4 categories
- Integrated flash messages into game events (task completion, streaks, skips)
- Added responsive CSS with animations and professional styling
- Enhanced data persistence and error handling
- Game integration: messages start/pause/resume with game state

Phase 1-2 Complete: Core infrastructure + Advanced management ready for Phase 3
2025-09-28 21:33:54 -05:00
fritzsenpai f1f88d5f23 Implement streak bonus system with visual feedback
- Added streak tracking: currentStreak, totalStreakBonuses, lastStreakMilestone
- 10 bonus points awarded every 10 consecutive completed regular tasks
- Streak resets to 0 when task is skipped (consequence tasks don't affect streak)
- Real-time streak display in game stats with fire emoji and milestone highlighting
- Animated streak bonus notification with fire icon and gradient background
- Final stats display includes best streak and total streak bonus points earned
- Enhanced visual feedback with glowing effects for streak milestones (10+)
- Auto-save functionality preserves streak data across game sessions
2025-09-26 11:47:40 -05:00
fritzsenpai a74fefd1a3 Add custom options to game mode dropdowns with user-defined values - Added Custom option to time limit and score target dropdowns - Updated score presets to 100, 200, 300 points - Fixed JavaScript handlers for custom inputs 2025-09-26 11:39:34 -05:00
fritzsenpai 25d855c813 Implement compact interface design with hover-expandable controls
- Clean centered header with prominent title
- Compact timer in top-right corner with subtle styling
- Hover-expandable music controls replacing cluttered header layout
- Single music icon () expands to full control panel on hover
- Organized controls: play/loop/shuffle, track selection, volume
- Modern design with backdrop blur and smooth animations
- Maintains all functionality while dramatically reducing visual clutter
- Fixed textarea input issues in task management
2025-09-26 11:31:21 -05:00
fritzsenpai cc853ad667 Implement 3 Game Modes: Complete All, Timed Challenge, and Score Target
Complete game mode system with dynamic UI and win conditions:

##  Three Game Modes:

### 1. Complete All Tasks (Default)
- Finish every main task in the game
- Original gameplay experience
- Game ends when all tasks completed

### 2. Timed Challenge
- Race against the clock to complete as many tasks as possible
- Configurable time limits: 5, 10, 15, 20, or 30 minutes
- Countdown timer with color warnings (red < 30s, orange < 60s)
- Game ends when time runs out

### 3. Score Target
- Reach a target score to win
- Configurable targets: 500, 1000, 1500, 2000, or 3000 points
- Game ends immediately when target reached
- Strategic gameplay focusing on high-value tasks

##  Enhanced UI Features:

### Game Mode Selection:
- Beautiful radio button interface on start screen
- Mode-specific configuration options (time/score targets)
- Dynamic show/hide of relevant settings
- Visual feedback with hover effects and selection states

### Smart Timer Display:
- Elapsed time for Complete All and Score Target modes
- Countdown timer for Timed Challenge mode
- Color-coded time warnings (red/orange when running low)
- Dynamic timer status indicators

### Dynamic Game Over Screen:
- Mode-specific victory messages and titles
- Shows selected game mode in final stats
- Different celebration text based on completion reason
- Comprehensive final statistics display

##  Technical Implementation:

### Game State Enhancement:
- Added gameMode, timeLimit, scoreTarget to gameState
- Proper game state reset handling for all modes
- Mode persistence and configuration management

### Win Condition Logic:
- Score target checking on task completion
- Timer countdown with automatic game end
- Complete-all detection (existing functionality preserved)
- Multiple end game reasons ('time', 'score-target', 'complete-all')

### Event System:
- Game mode selection event listeners
- Dynamic configuration updates
- Real-time UI state management
- Mode-specific timer updates

**Ready to challenge yourself in 3 different ways! **
2025-09-25 22:00:44 -05:00
fritzsenpai 9c8876b89f Implement Phase 2: Complete Audio Management UI
Major audio management interface implementation:

HTML Structure (index.html):
- Added complete audio-management-screen after image management
- Audio import buttons for background/ambient/effects categories
- Audio gallery with tabbed interface (background, ambient, effects)
- Audio preview section with HTML5 audio player
- Gallery controls: select all, deselect all, delete, preview
- Manage Audio button added to main start screen
- Professional layout matching image management design

CSS Styling (styles.css):
- Complete audio management styling system
- Audio gallery grid layout with 280px cards
- Audio item cards with icons, titles, controls
- Tabbed interface styling with active states
- Audio preview section with integrated player
- Category-specific icons ( background,  ambient,  effects)
- Hover effects, selection states, and responsive design
- Consistent with image management visual patterns

JavaScript Functionality (game.js):
- showAudioManagement() - main screen initialization
- setupAudioManagementEventListeners() - comprehensive event handling
- loadAudioGallery() - populate all three category galleries
- Audio tab switching (background/ambient/effects)
- Audio selection/deselection with click handlers
- Audio preview system with HTML5 player integration
- Delete functionality for selected audio files
- Enable/disable audio file toggles
- Audio storage info modal with desktop/web mode details
- Complete event listener management with duplicate prevention
- Audio discovery initialization in constructor

Features:
- Three-category audio organization (background, ambient, effects)
- Click-to-select audio items with visual feedback
- Preview selected audio files with integrated player
- Bulk operations: select all, deselect all, delete selected
- Enable/disable individual audio files
- Desktop file management integration
- Automatic audio directory scanning
- Storage information with category breakdowns
- Professional gallery layout with metadata display

Ready for Phase 3: Integration with MusicManager for playlist functionality
2025-09-25 21:27:21 -05:00
fritzsenpai aa3b7d8a1c Fix game freeze with no images loaded
Critical fix for desktop startup:
- Fixed startGame() function to properly handle new customImages object format
- Previously trying to call .length on object instead of array
- Added proper backward compatibility checking for both old array and new object formats
- Added comprehensive logging to debug image management screen freeze
- Now correctly counts custom images from both task and consequence categories

Fixes error where:
- User clicks Start Game with no images
- Game redirects to image management screen but freezes
- TypeError: customImages.length when customImages is {task: [], consequence: []}

Error resolved with proper object structure handling and logging.
2025-09-25 21:03:12 -05:00
fritzsenpai 0a7bcc91e9 Final interface cleanup and improvements
Interface updates:
- Removed 'Open Image Folders' button - functionality wasn't implemented
- Updated Storage Info to show desktop vs web-specific information
- Desktop mode now shows unlimited storage info with file system details
- Web mode shows traditional browser storage limitations

Storage Info improvements:
- Shows image counts by category (tasks/consequences)
- Desktop version highlights unlimited storage benefits
- Clearer information about native file system vs browser storage
- Better visual organization with emojis and sections

.gitignore updates:
- Added comprehensive image file exclusions (jpg, png, gif, webp, etc.)
- Added audio file exclusions (mp3, wav, ogg, m4a, etc.)
- Excluded user imported images directories (images/tasks/*, images/consequences/*)
- Prevents user content from being committed to repo

Benefits:
- Cleaner interface with fewer non-functional buttons
- Context-aware storage information based on platform
- Better repository hygiene by excluding user content files
2025-09-25 20:28:48 -05:00
fritzsenpai 18d0f8bba2 Clean up image management interface
Automatic scanning and button cleanup:
- Added automatic directory scanning on desktop app startup
- Removed manual 'Scan Image Directories' button - no longer needed
- Removed 'Clear Image Cache' button - functionality not useful in desktop mode
- Updated scan info text to reflect automatic scanning behavior
- Cleaned up setupImageManagementEventListeners by removing unused button handlers

Benefits:
- Cleaner, more streamlined interface
- Images automatically available without manual intervention
- Reduced cognitive load - fewer buttons to understand
- More professional desktop application experience
2025-09-25 20:24:57 -05:00
fritzsenpai 45adf1b757 Fix desktop application errors
Security and functionality fixes:
- Added Content Security Policy to index.html to address Electron security warning
- Fixed function name errors: updateImageGallery() -> updateImageGalleryControls()
- Enhanced error handling in desktop-file-manager.js path operations
- Added null checks for directory initialization to prevent undefined path errors
- Fixed category mapping for task/consequence directory access
- Improved error logging and user feedback for file operations

Fixes resolve:
- Electron CSP security warnings
- TypeError with undefined path arguments
- Missing function reference errors
- Desktop import button functionality
2025-09-25 20:17:30 -05:00
fritzsenpai 8e7cf0d4bf Refactor to desktop application with Electron
Major Changes:
- Convert web game to cross-platform desktop app using Electron
- Add complete desktop file management system
- Implement native file dialogs and unlimited storage
- Create secure IPC bridge for file operations

New Files Added:
- main.js: Electron main process with native OS integration
- preload.js: Secure IPC bridge between main and renderer
- desktop-file-manager.js: Full file system access and operations
- package.json: Electron dependencies and build configuration
- setup.bat/setup.sh: Installation scripts for all platforms
- README-DESKTOP.md: Comprehensive desktop application guide

Desktop Features:
- Native file import dialogs (no browser limitations)
- Unlimited disk space for image storage
- Direct folder access and file management
- Cross-platform builds (Windows/Mac/Linux)
- Full offline functionality
- Native performance without web constraints

Benefits:
- Solves browser security sandbox limitations
- Unlimited image storage using file system
- Professional native application experience
- Easy installation and distribution
- True cross-platform compatibility
2025-09-25 20:07:45 -05:00
fritzsenpai 1879a8970f Initial commit: Task Challenge Game v1.4
Core Features:
- Complete task management game with point system
- Theme system with multiple visual styles
- Background music with playlist controls
- Comprehensive keyboard shortcuts (Enter/Ctrl/Shift+Ctrl/Space/P/M/H/Escape)

Image Management System:
- Categorized upload system (Task/Consequence images)
- High-quality image processing (1600x1200, 95% quality)
- Batch operations (select all, delete multiple)
- Storage quota management (50 image limit)
- Support for JPG/PNG/WebP up to 20MB

Technical Architecture:
- DataManager class for localStorage management
- TaskChallengeGame main controller
- Canvas-based image compression
- Cross-browser compatibility
- No dependencies - pure HTML/CSS/JS

Data Management:
- Local storage with auto-migration
- Export/import functionality
- Statistics tracking
- Game state persistence
2025-09-25 19:41:06 -05:00