Finding the Easter Egg
The application appears as a desktop icon with a tree/leaf image labeled ”???”. It’s intentionally mysterious and meant to be discovered by users exploring the desktop.Features
Daily Egg Collection
The easter egg allows you to collect one egg per day through an interactive dialogue sequence:- Time-gated mechanic: You can only receive an egg once every 24 hours
- Persistent storage: Eggs are saved to localStorage and persist across sessions
- Dialogue system: Undertale-style dialogue with YES/NO choices
- Floating eggs: Collected eggs float around your screen at random positions
Audio Experience
The application features:- Background music: Plays looping music during the experience (
music/man.ogg) - Sound effects: A sound plays when you receive an egg (
music/egg.mp3) - Volume integration: Respects the global volume settings from VolumeContext
- Autoplay handling: Gracefully handles browser autoplay restrictions
Visual Elements
Implementation Details
State Management
The egg application maintains several pieces of state:LocalStorage Keys
The application uses three localStorage keys:eggData: Stores the array of collected eggs with positionseggCount: Legacy key for backwards compatibilitylastEggTime: Timestamp of the last egg collection
Dialogue Flow
The dialogue system follows this sequence:- Step 0: Initial state (no dialogue)
- Step 1: “(Well, there is a man here.)”
- Step 2: “(He offered you something)”
- Step 3: YES/NO choice
- Step 4: “(You Received an Egg.)” (if YES)
- Step 5: ”(…)” (if NO)
- Step 7: “(Well, there is no man here…)” (if cooldown active)
- Step 8: “(Maybe he’ll be back tomorrow…)”
Egg Positioning
Eggs are positioned using global screen coordinates and tracked relative to the window:Typography
The application uses the DeterminationMono font (from Undertale) for authentic dialogue styling:User Interaction
Tree Click Handler
Egg Creation
When the user accepts the egg:Configuration
The Egg app is configured insrc/WinXP/apps/index.jsx:
Assets Required
assets/windowsIcons/egg.png- The egg imageassets/windowsIcons/tree.gif- The tree/character animationpublic/gifs/tree.gif- Public asset for the GIFpublic/music/man.ogg- Background musicpublic/music/egg.mp3- Egg collection sound effect
Styling
The component uses styled-components with:- Black background (
#000000) - White borders for dialogue boxes
- Yellow hover state for options
- Floating animation for eggs using CSS keyframes
- Pixelated rendering for retro aesthetic
This is an homage to Undertale’s “Egg Man” easter egg. The daily collection mechanic and dialogue style are inspired by that game’s quirky secrets.
Related Files
src/WinXP/apps/Egg/index.jsx- Main component implementationsrc/WinXP/apps/index.jsx:217-223- Icon configurationsrc/context/VolumeContext.jsx- Volume control integration
