Covers shared types, stat generation, modifier system, system
integrations (needs decay, social), serialization, and UI display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two-tier stat system (Physical + Personality) using 3d6 generation,
transient modifiers, slow baseline drift, and integration points
for needs decay, brain, and social systems.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a method that searches outward from a center position in Manhattan
distance rings to find the nearest walkable tile within a given radius.
Returns null if no walkable tile is found. Includes 5 tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two bugs fixed:
1. NPC sprites not fully rendering: createEntitySprite is async but was
called without await from handleStateUpdate. Concurrent state updates
triggered multiple simultaneous creation calls for the same entity.
The second call composited before textures loaded, producing empty
spritesheets. Fixed with a creatingEntities guard set.
2. Interaction emojis not appearing after first use: animationend
listener was attached during removal (when animation had already
completed), so it never fired. Ghost entries in activeEmojis map
blocked future emoji creation. Fixed by self-cleaning via
animationend listener attached at creation time.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Process phase transitions per-pair instead of per-entity to avoid
double-processing (latent bug for future side effects)
- Restore independent outcome rolls per NPC (as designed)
- Let emoji CSS animation finish before removing DOM element, preventing
visual pop when server broadcast timing doesn't align with animation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9-task TDD plan covering shared types, socialSystem, brain/movement
guards, game loop wiring, state serialization, client emoji overlay,
and info panel integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers awareness zone, interaction state machine, cooldowns,
brain/movement guards, broadcast format, and client emoji overlay.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Document follow mode panel feature and controls
- Add Traefik reverse proxy deployment instructions
- Add security note about vite dev vs production serving
- Update CLAUDE.md with new entry points, test count, and conventions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- getNpcIds() now excludes player-controlled entities
- Remove double updateNeeds call in handleStateUpdate (updateInfo already calls it)
- Mode text shows NPC name instead of just ID
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10-task TDD plan covering shared types, appearance generator,
name generator, portrait compositor, HTML/CSS panel, GameScene
integration, and EarthBound-inspired styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design for follow-mode NPC info panel with composited portraits,
EarthBound-inspired UI, live-updating needs bars, and name generator.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add follow mode (F key) to cycle camera between NPCs
- Make server URL configurable via VITE_SERVER_URL env var
- Add comprehensive README with Debian LXC deployment guide
- Add character sprite assets to repo
- Add design docs and implementation plans
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add three ECS systems for NPC simulation:
- needsDecaySystem: decrements hunger/energy each tick, clamped at 0
- npcBrainSystem: goal selection based on need thresholds with pathfinding
- movementSystem: advances entities along computed paths
Includes 8 passing tests covering decay, goal prioritization, and movement.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>