Commit Graph

28 Commits

Author SHA1 Message Date
root eb639bf562 feat(server): integrate persistence into GameLoop and main.ts
Wire SaveManager into game startup/shutdown: constructor now checks for
existing save file and loads or creates new world accordingly. Add
autosave every 30s, final save on stop, and graceful shutdown signals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:34:03 +00:00
root 9f77a84d6f feat(server): add pickup system for NPC stockpile material retrieval
NPCs can now retrieve crafting materials from stockpiles instead of
always gathering raw resources. The industry system checks if a
stockpile has needed materials before falling back to gathering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 02:52:37 +00:00
root 60c6d7808d feat(server): emit stockpile log events from dropoffSystem
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 02:49:24 +00:00
root 188a915732 feat(server): wire StockpileLog into GameLoop and SocketServer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 02:48:23 +00:00
root 1271fc1d7f feat(server): emit invention-event and invention-history socket events
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:43:03 +00:00
root 857c7bc899 feat(game): wire inventionSystem and inventionTimeline into game loop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 23:53:38 +00:00
root c7fd106011 feat(game): wire industrySystem, craftingSystem, buildingSystem, dropoffSystem into game loop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 23:27:57 +00:00
root 25d842e367 feat(systems): pause movement during gathering, wire gathering into game loop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 22:50:48 +00:00
root 096597e7e5 feat(loop): register ItemRegistry and load resource tiles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 22:44:59 +00:00
root 1db8935de3 feat(memory): integrate event memory into thought generation context
Replace the simple last-2-narration-events approach with smart selection
of up to 5 memory events, preferring types relevant to the thought trigger
(social events for post-interaction, need events for need-critical).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 22:04:46 +00:00
root 1a83814a0f feat(memory): record need crisis, recovery, and goal change events
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:59:42 +00:00
root 1b114a1897 feat(memory): record tier changes and bond dissolution events
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:58:09 +00:00
root ef7a792750 feat(memory): record spawned, social, proposal, and bond events
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:56:42 +00:00
root 2c4a0d1f75 feat(memory): wire EventMemoryService into GameLoop and SocketServer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:54:56 +00:00
root b515f7195f feat(thought): integrate ThoughtSystem into game loop and socket broadcast
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:10:00 +00:00
root 87946bcb5c feat: add social interaction narration system (task 1.3)
Implements LLM-powered narration for NPC social interactions:
- Rate limits updated to 20 RPM / 1000 per day (OpenRouter free tier)
- NarrationEvent type with template fallback text generator
- NarrationService with rolling event buffer and LLM priority queuing
- Narration emitter wired between social and relationship systems
- Socket.io events for real-time narration delivery
- Tabbed left panel (Stats + Events) replacing old Superlatives panel
- Recent events section in NPC info panel
- Follow tracking via socket for LLM narration priority

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 19:29:43 +00:00
root 94e4f4b9c2 fix: restore superlatives methods, fix event update rebuild, remove dead method
- Restore subscribeSuperlatives/unsubscribeSuperlatives/onSuperlativesUpdate
  on SocketClient (lost during Task 5 refactor)
- Fix EventsFeed.updateEvent to rebuild entire element when LLM narration
  arrives (names may be in different positions)
- Remove dead setFollowedEntity method from GameLoop (replaced by
  SocketServer.rebuildFollowedEntityIds)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:38:06 +00:00
root 541b70b781 feat: wire narration emitter into social system and GameLoop
Add narrationEmitter system that reads completed interactions from
socialState.lastOutcome and feeds them to the NarrationService. It runs
between socialSystem and relationshipSystem to capture outcomes before
they are cleared. Includes pair deduplication, proposal detection,
priority marking for followed NPCs and high-value relationships, and
personality formatting for LLM prompts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:02:59 +00:00
root 8c793578ae feat: wire backstory generation into NPC spawn flow
Trigger fire-and-forget backstory generation whenever an NPC spawns,
both during initial spawn and via player spawn-npc requests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:52:13 +00:00
root 3a86e09e39 feat(llm): wire LLM service into GameLoop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:30:32 +00:00
root a778bee58d fix: round cycleTicks to prevent float precision drift
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 03:08:05 +00:00
root f5857f72d8 feat: server tracks and broadcasts game time
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 03:04:08 +00:00
root 4a2819695b feat: procedural tilemap with river, ponds, dirt, and trees
Replace colored-rectangle world rendering with a proper tilemap system
using a 16x16 RPG tileset scaled 3x. Server generates terrain via seeded
procedural generation (river, ponds, dirt patches, tree decorations) and
sends it to clients. Client renders 3-layer Phaser tilemap with
8-neighbor autotiling for water/dirt edges.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:45:09 +00:00
root db808bca86 feat: initialize bond registry singleton and update spawner
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:21:54 +00:00
root 97c2176b75 feat: wire relationship system into spawner, game loop, and serializer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:35:59 +00:00
root c5d75fa0b0 feat: wire stats into NPC spawner and game loop
Add stats and statModifiers components to spawnNPC, and run
statModifierSystem as the first system in the GameLoop update cycle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:20:43 +00:00
root 8daecfaa3f feat: wire socialSystem into game loop, spawner, and state serializer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:06:08 +00:00
andy ca05d36bc0 feat: add game loop with NPC spawning and system execution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 18:53:19 -05:00