feat(phase3): Implement complete game logic with WebSocket events
Timer System: - Add TimerManager service with asyncio for server-side timers - Support steal time reduction (50% time) - Automatic timer cancellation on answer Question Loading: - Add QuestionService to load daily questions from PostgreSQL - Generate 8×5 board (categories × difficulties) - Filter by date_active and approved status Database Integration: - Create GameSession in PostgreSQL when game starts - Update scores during game and on finish - Store db_session_id in Redis for cross-reference Replay Integration: - Save all game events: question_selected, answer_submitted, steal_attempted, steal_passed, game_finished - Generate unique replay code on game finish Achievement Integration: - Initialize PlayerStats in Redis when joining room - Update stats on every answer (streak, category, speed, etc.) - Check achievements on game finish for all players Game Finish: - Automatic finish when all questions answered - Manual finish by host - Emit game_finished with winner, scores, replay_code, achievements Phase 3 tasks completed: - F3.1: Timer manager with asyncio - F3.2: Question service for board loading - F3.3: GameSession PostgreSQL integration - F3.4: Replay event saving - F3.5: Achievement stats tracking - F3.6: Complete game finish flow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,8 @@ from app.services.game_manager import GameManager
|
||||
from app.services.room_manager import RoomManager
|
||||
from app.services.replay_manager import ReplayManager
|
||||
from app.services.achievement_manager import AchievementManager
|
||||
from app.services.timer_manager import TimerManager, timer_manager
|
||||
from app.services.question_service import QuestionService, question_service
|
||||
|
||||
__all__ = [
|
||||
"AIValidator",
|
||||
@@ -12,4 +14,8 @@ __all__ = [
|
||||
"RoomManager",
|
||||
"ReplayManager",
|
||||
"AchievementManager",
|
||||
"TimerManager",
|
||||
"timer_manager",
|
||||
"QuestionService",
|
||||
"question_service",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user