#!/bin/bash # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' NC='\033[0m' # No Color echo "" echo -e "${PURPLE}๐Ÿ“ฆ Gooner Training Academy - Distribution Packager${NC}" echo -e "${PURPLE}==================================================${NC}" echo "" # Set distribution info DIST_NAME="Gooner-Training-Academy-v0.50-Beta" BUILD_DATE=$(date +%Y-%m-%d) OUTPUT_DIR="../${DIST_NAME}" echo -e "${CYAN}๐ŸŽฏ Creating distribution package: ${DIST_NAME}${NC}" echo -e "${CYAN}๐Ÿ“… Build Date: ${BUILD_DATE}${NC}" echo -e "${CYAN}๐Ÿ“ Output Directory: ${OUTPUT_DIR}${NC}" echo "" # Clean previous build if [ -d "$OUTPUT_DIR" ]; then echo -e "${YELLOW}๐Ÿงน Cleaning previous build...${NC}" rm -rf "$OUTPUT_DIR" fi # Create distribution directory echo -e "${BLUE}๐Ÿ“‚ Creating distribution directory...${NC}" mkdir -p "$OUTPUT_DIR" # Copy core files echo -e "${BLUE}๐Ÿ“„ Copying core application files...${NC}" cp index.html quick-play.html training-academy.html campaign.html porn-cinema.html "$OUTPUT_DIR/" cp player-stats.html user-profile.html library.html package.json "$OUTPUT_DIR/" # Copy documentation echo -e "${BLUE}๐Ÿ“š Copying documentation...${NC}" mkdir -p "$OUTPUT_DIR/docs" cp README.md "$OUTPUT_DIR/" # Copy main docs if [ -f docs/INSTALLATION_GUIDE.md ]; then cp docs/INSTALLATION_GUIDE.md "$OUTPUT_DIR/docs/" fi if [ -f docs/TESTER_GUIDE.md ]; then cp docs/TESTER_GUIDE.md "$OUTPUT_DIR/docs/" fi if [ -f docs/README.md ]; then cp docs/README.md "$OUTPUT_DIR/docs/" fi # Copy campaign/academy documentation if [ -f docs/ACADEMY_PHASE1_COMPLETE.md ]; then cp docs/ACADEMY_PHASE1_COMPLETE.md "$OUTPUT_DIR/docs/" fi if [ -f docs/TRAINING_MODULES.md ]; then cp docs/TRAINING_MODULES.md "$OUTPUT_DIR/docs/" fi if [ -f docs/MODULE_RANK_SYSTEM.md ]; then cp docs/MODULE_RANK_SYSTEM.md "$OUTPUT_DIR/docs/" fi if [ -f docs/GAME_STATS_PANEL_FIX.md ]; then cp docs/GAME_STATS_PANEL_FIX.md "$OUTPUT_DIR/docs/" fi # Copy training game redesign docs if they exist if [ -d docs/training-game-redesign ]; then cp -r docs/training-game-redesign "$OUTPUT_DIR/docs/" fi # Copy setup scripts echo -e "${BLUE}๐Ÿ”ง Copying setup scripts...${NC}" cp scripts/setup.bat scripts/setup.sh "$OUTPUT_DIR/" if [ -f scripts/Start-webgame.bat ]; then cp scripts/Start-webgame.bat "$OUTPUT_DIR/" fi # Copy source code (excluding user data) echo -e "${BLUE}๐Ÿ’ป Copying source code...${NC}" cp -r src "$OUTPUT_DIR/" # Copy assets (clean) echo -e "${BLUE}๐ŸŽจ Copying clean assets...${NC}" if [ -d assets ]; then cp -r assets "$OUTPUT_DIR/" fi # Copy empty directories for user content echo -e "${BLUE}๐Ÿ“ Creating user content directories...${NC}" mkdir -p "$OUTPUT_DIR/images/tasks" mkdir -p "$OUTPUT_DIR/images/consequences" mkdir -p "$OUTPUT_DIR/audio" mkdir -p "$OUTPUT_DIR/videos" mkdir -p "$OUTPUT_DIR/backups" # Copy sample audio (if exists) if [ -d audio ] && [ "$(ls -A audio 2>/dev/null)" ]; then echo -e "${BLUE}๐ŸŽต Copying sample audio files...${NC}" cp -r audio/* "$OUTPUT_DIR/audio/" 2>/dev/null || true fi # Create placeholder files echo -e "${BLUE}๐Ÿ“ Creating placeholder files...${NC}" cat > "$OUTPUT_DIR/images/tasks/README.md" << EOF # User Task Images Upload your custom task images here. Supported formats: JPG, PNG, WebP Maximum 50 images, recommended resolution: 1600x1200 These images are displayed during task scenarios and training sessions. EOF cat > "$OUTPUT_DIR/images/consequences/README.md" << EOF # User Consequence Images Upload your custom consequence images here. Supported formats: JPG, PNG, WebP These images are used for punishment scenarios when tasks are skipped or failed. Organize your content to enhance the training experience. EOF cat > "$OUTPUT_DIR/audio/README.md" << EOF # Background Music Place your background music files here. Supported formats: MP3, WAV, OGG Files will be automatically detected and added to the playlist. Music enhances the immersive training experience across all game modes. EOF cat > "$OUTPUT_DIR/videos/README.md" << EOF # Video Directory Link external video directories here or place video files directly. Supported formats: MP4, WebM, AVI, MOV For best performance, use MP4 format with H.264 codec. Videos can be used as background content during training sessions. EOF # Create distribution info file echo -e "${BLUE}๐Ÿ“‹ Creating distribution info...${NC}" cat > "$OUTPUT_DIR/DISTRIBUTION_INFO.txt" << EOF # Gooner Training Academy - Distribution Info Version: 4.0 Beta Build Date: ${BUILD_DATE} Package Type: Beta Testing Build INSTALLATION: 1. Run setup.sh (Mac/Linux) or setup.bat (Windows) 2. Follow setup prompts 3. Launch with 'npm start' DOCUMENTATION: - TESTER_GUIDE.md: Testing instructions - INSTALLATION_GUIDE.md: Detailed setup help - README.md: Complete documentation REQUIREMENTS: - Node.js 16+ - Modern browser (Chrome 90+, Firefox 88+) - Webcam for full functionality - 100MB+ free storage TESTING FOCUS: - Campaign Mode: All 30 levels progression - Training Modules: Photo Session and Humiliation modules - Core game modes functionality - Webcam integration stability - Performance during extended sessions - Cross-platform compatibility - Media library management - XP and progression tracking CAMPAIGN MODE: - 30 structured levels across 6 arcs - Progressive feature unlocks - Level-specific interactive tasks - Story-driven progression - Preference checkpoints at key levels TRAINING MODULES: - 8 focused training sessions (2 currently available) - Photo Session: Webcam photography challenges - Humiliation: Interactive story-driven degradation - 6 additional modules coming soon SUPPORT: Report issues with detailed reproduction steps and system information. Include console logs when possible (F12 in browser). EOF # Set executable permissions echo -e "${BLUE}๐Ÿ” Setting permissions...${NC}" chmod +x "$OUTPUT_DIR/setup.sh" # Clean up any development files that may have been copied echo -e "${YELLOW}๐Ÿงน Final cleanup...${NC}" rm -rf "$OUTPUT_DIR/.git" 2>/dev/null || true rm -rf "$OUTPUT_DIR/node_modules" 2>/dev/null || true rm -f "$OUTPUT_DIR/.DS_Store" 2>/dev/null || true rm -f "$OUTPUT_DIR/package-lock.json" 2>/dev/null || true rm -f "$OUTPUT_DIR/.gitignore" 2>/dev/null || true # File count summary echo "" echo -e "${GREEN}๐Ÿ“Š Distribution Summary:${NC}" echo -e "${GREEN}=====================${NC}" FILE_COUNT=$(find "$OUTPUT_DIR" -type f | wc -l) echo -e "Total Files: ${FILE_COUNT}" # Calculate directory size DIR_SIZE=$(du -sh "$OUTPUT_DIR" | cut -f1) echo -e "Directory Size: ${DIR_SIZE}" echo "" echo -e "${GREEN}โœ… Distribution package created successfully!${NC}" echo -e "${GREEN}๐Ÿ“ Location: ${OUTPUT_DIR}${NC}" echo "" echo -e "${CYAN}๐ŸŽฏ Next Steps:${NC}" echo "1. Test the distribution package on a clean system" echo "2. Verify all features work correctly" echo "3. Create archive for distribution (tar.gz/zip)" echo "4. Share with testers" echo "" read -p "๐Ÿ“ฆ Create TAR.GZ archive for distribution? (y/n): " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then echo "" echo -e "${BLUE}๐Ÿ—œ๏ธ Creating TAR.GZ archive...${NC}" cd .. tar -czf "${DIST_NAME}.tar.gz" "${DIST_NAME}/" cd - > /dev/null if [ -f "../${DIST_NAME}.tar.gz" ]; then echo -e "${GREEN}โœ… TAR.GZ archive created: ${DIST_NAME}.tar.gz${NC}" ARCHIVE_SIZE=$(du -sh "../${DIST_NAME}.tar.gz" | cut -f1) echo -e "${GREEN}๐Ÿ“ Archive Size: ${ARCHIVE_SIZE}${NC}" else echo -e "${RED}โŒ Failed to create TAR.GZ archive${NC}" echo "Try creating manually with: tar -czf ${DIST_NAME}.tar.gz ${DIST_NAME}/" fi fi echo "" echo -e "${GREEN}๐ŸŽ‰ Distribution packaging complete!${NC}" echo ""