- Add src/utils/responsive.js with fontSize() helper
- Mobile fonts scale 1.4x for better readability
- Update all scenes to use responsive font sizes
- Update deploy-k8s.sh with full deployment steps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove max scale bounds to support unlimited display sizes (4K, 8K, ultrawide)
- Remove duplicate width/height from scale config to fix desktop scaling
- Fix HuntingScene to default to mouse mode on all platforms (was incorrectly starting in keyboard mode on desktop)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implemented full mobile optimization to make the game mobile-ready:
**Core Mobile Support:**
- Updated viewport meta tag to prevent zoom and improve touch responsiveness
- Added mobile web app meta tags for iOS/Android standalone mode
- Enhanced CSS to prevent text selection, pull-to-refresh, and tap highlights
- Configured Phaser scale system with min/max bounds (320x240 to 1920x1080)
- Added fullscreen support for game container
**Touch Controls:**
- Added mobile device detection to HuntingScene
- Automatically default to touch controls on mobile devices
- Hide keyboard control instructions on mobile
- Only hide cursor on desktop (preserve default cursor on mobile)
- Adjusted messaging for mobile ("Tap to shoot" vs "Click to shoot")
**Touch Feedback:**
- Added pointerdown/pointerup handlers to all interactive buttons
- Buttons now scale down when pressed (0.95x) for tactile feedback
- Maintained hover effects for desktop compatibility
- Updated IntroScene "SET SAIL" button with touch feedback
- Updated MapScene location markers and close button
- Updated TransitionScene continue button
- All touch feedback works on both touch and mouse inputs
**Backward Compatibility:**
- All desktop functionality preserved
- Hover effects still work on desktop
- Keyboard controls available on desktop
- Touch and mouse inputs work seamlessly together
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Increased boundary margin: 60 → 100 pixels
- Push whale 20px away from edge when bouncing (not just clamping)
- Add random variation to bounce speed
- Randomize Y direction when hitting horizontal edges
- Tighter vertical bounds: 150-500 (was 120-550)
- Prevents whale from getting stuck near edges
- More natural swimming patterns in center area
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Body ellipse: 80x40 → 160x80
- Tail size and position doubled
- Fin size and position doubled
- Health bar: 60x6 → 120x12 (offset -70)
- Collision radius: 40 → 80
- Updated bodyWidth/bodyHeight data
- Whales now much more visible and easier to target
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added proper boundary margins (60px) for whale size and bobbing
- Clamps whale position to bounds when hitting edges
- Uses Math.abs() for reliable direction reversal
- Properly flips whale sprite when bouncing
- Bounds: X: 60-740, Y: 120-550
- Whale can no longer escape off screen
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Whales now swim across screen with directional movement
- Random horizontal speed (0.5-1.0) and vertical drift
- Bounces off screen edges and flips direction
- Diving behavior: dives every 3-7 seconds for 2 seconds
- Fades to 20% opacity when diving, full when surfaced
- Cannot be hit while diving (invulnerable)
- Shows dive/surface messages
- Combines swimming with bobbing animation
- Much more dynamic and challenging hunting
- Whales are now moving targets instead of stationary
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Restore default cursor in returnToMap() before scene transition
- Prevents cursor staying hidden when returning to map
- Cursor was set to 'none' for crosshair aiming but not restored
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Updated inventory display format from "Fuel: 80" to "Fuel: 80/100"
- Shows max capacity for all resources:
- Fuel: /100
- Whale Oil: /50 (cargo hold capacity)
- Penguins: /20
- Applied to HuntingScene, ShipDeckScene, and MapScene
- Players can now see remaining capacity at a glance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Changed whale spawn from center area to full screen
- X position: 100-700 (was 350-450)
- Y position: 150-500 (was 250-350)
- Each whale now appears in unpredictable location
- Keeps margins to avoid edge spawning
- Increases gameplay variety and challenge
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Replaced random shake with smooth sine/cosine oscillation
- Added crosshairShakeTime variable to track oscillation phase
- Uses different frequencies (3x and 2.5x) for natural circular motion
- Creates predictable, smooth shake pattern instead of jittery random
- More comfortable aiming experience while maintaining difficulty
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Increased horizontal whale movement from 15px to 30px
- Increased vertical whale movement from 10px to 20px
- Whale now bobs twice as much, increasing difficulty
- Makes targeting more challenging
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Set scrollFactor(0) on all UI elements to fix them to screen
- HUD, crosshair, harpoons, buttons, and messages now ignore camera sway
- Only whale and ocean background move with camera
- Updated collision detection to convert whale world position to screen space
- Harpoons shoot straight relative to screen, not world
- Creates stable aiming interface while ocean/whale sway dynamically
- Much better gameplay feel with separated control and world layers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Increased camera time increment from 0.01 to 0.1
- Ocean sway now completes full cycle in ~1 second (was ~10 seconds)
- Much more dynamic and challenging hunting conditions
- Simulates fast-moving rough seas
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Increased horizontal camera sway from 8px to 25px
- Increased vertical camera sway from 5px to 18px
- Creates much more challenging hunting conditions
- Simulates rougher seas
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Whale now spawns in center area (350-450 x, 250-350 y) instead of from sides
- Replaced linear whale movement with gentle bobbing oscillation
- Whale bobs 15 pixels horizontally and 10 pixels vertically
- Added camera sway to simulate ship rocking on ocean
- Camera moves 8 pixels horizontal and 5 pixels vertical in smooth sine waves
- Combined effects create realistic ship-based hunting experience
- Significantly increases difficulty - must compensate for crosshair shake, whale bobbing, and camera sway
- Natural ocean feel with continuous wave-like movement
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Changed to single whale spawning (one at a time)
- Added crosshair shake effect for increased difficulty (2px random shake)
- Implemented whale health system (3 hits to kill)
- Added dynamic health bar above whales (green -> yellow -> red)
- Visual feedback on hits: red flash, whale shake animation
- Health bar updates in real-time as whale takes damage
- New whales spawn 1.5 seconds after previous whale dies or leaves
- Separated hitWhale() and killWhale() functions for damage vs death
- Shows health status messages on each hit
- Much more challenging and engaging hunting gameplay
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Travel is now free (no fuel cost for sailing between locations)
- Fuel is only consumed for cooking whale oil (2 fuel per whale)
- Updated TransitionScene to show "The wind carries your sails..." when no fuel cost
- Removed fuel checks from MapScene travel methods
- Added fuel validation in HuntingScene - can't process whales without fuel
- This sets up the penguin burning mechanic for when cooking fuel runs low
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Created HuntingScene with mouse and keyboard controls
- Crosshair can be controlled by mouse or WASD/Arrow keys
- TAB key toggles between control modes
- Whales spawn and swim across screen from both directions
- Harpoon shooting mechanic (click or SPACE)
- Collision detection and whale hit animations
- Whale oil rewards (+1 per successful hunt)
- HUD displays fuel, oil, and whales hunted
- Return to map button
- Updated MapScene to transition to HuntingScene
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>