feat: pivot to island survival simulation with SQLite persistence

Phase 3 - "The Island" transformation:
- Add SQLAlchemy + SQLite for data persistence (database.py)
- Rewrite models.py with User, Agent, WorldState ORM models
- Refactor engine.py for survival mechanics (energy decay, starvation)
- Implement feed command (10 gold -> +20 energy)
- Auto-seed 3 NPCs on startup (Jack/Luna/Bob)
- Update frontend with agent card view and Chinese UI
- Remove old Boss/Player RPG mechanics
- Add .gitignore for database and cache files
- Fix SQLAlchemy session detachment issue

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
empty
2025-12-30 17:15:35 +08:00
parent 4c08b00832
commit cf1739b7f8
9 changed files with 676 additions and 613 deletions

View File

@@ -12,17 +12,16 @@ import time
class EventType(str, Enum):
"""Enumeration of all possible game event types."""
COMMENT = "comment"
AGENT_RESPONSE = "agent_response"
TICK = "tick"
SYSTEM = "system"
ERROR = "error"
# RPG-specific events
ATTACK = "attack"
HEAL = "heal"
STATUS = "status"
BOSS_UPDATE = "boss_update"
BOSS_DEFEATED = "boss_defeated"
PLAYER_UPDATE = "player_update"
# Island survival events
AGENTS_UPDATE = "agents_update" # All agents status broadcast
AGENT_DIED = "agent_died" # An agent has died
FEED = "feed" # User fed an agent
USER_UPDATE = "user_update" # User gold/status update
WORLD_UPDATE = "world_update" # World state update
CHECK = "check" # Status check response
class GameEvent(BaseModel):