40 lines
3.0 KiB
Markdown
40 lines
3.0 KiB
Markdown
# 미니게임 시스템 및 재련(Refinement) 구현 완료 보고서
|
|
|
|
- **날짜**: 2026-03-30
|
|
- **담당**: Antigravity (AI Assistant)
|
|
|
|
## 1. 개요 (Overview)
|
|
Kord 봇의 메인 기능 외에 즐길 거리를 제공하기 위해 **미니게임 관리 시스템**을 구축하고, 첫 번째 정식 게임으로 **재련(Refinement)** 미니게임을 구현했습니다. 또한 서버 활동량을 분석하여 보너스를 제공하는 **피버(Fever)** 시스템을 도입했습니다.
|
|
|
|
## 2. 주요 구현 내용
|
|
|
|
### 2.1. 미니게임 관리 인프라 (Core)
|
|
- **MiniGameRegistry**: 미니게임을 통합 등록하고 관리하는 구조를 설계했습니다.
|
|
- **Config Command**: `/minigame` 명령어를 통해 서버 관리자가 게임별 활성화(`toggle`), 전용 채널(`channel`), 상태(`status`)를 관리할 수 있습니다.
|
|
- **Prisma 7 Migration**: 봇의 DB 라이브러리를 Prisma 7.6.0으로 업그레이드하고, 새로운 엔진 구조에 맞춰 **Driver Adapter(PostgreSQL)** 설정을 완료했습니다.
|
|
|
|
### 2.2. 재련(Refinement) 미니게임
|
|
- **성장 시스템**: 0단계부터 20단계까지 무기를 강화할 수 있습니다.
|
|
- **확률 로직**: 단계가 올라갈수록 성공 확률이 감소하며, 실패 시 무기가 파괴될 위험이 존재합니다.
|
|
- **강화 효과**: 강화 성공 시 무기의 **내구도가 즉시 100% 회복**됩니다.
|
|
- **배틀 시스템**: 수락 절차 없이 일방적으로 공격하는 배틀 시스템을 구현했습니다. (내구도 소모 및 파괴 리스크 포함)
|
|
- **경제 시스템**: 일일 출석(`checkin`)과 강화 단계에 따른 무기 판매(`sell`) 기능을 통해 골드 선순환 구조를 만들었습니다.
|
|
|
|
### 2.3. 피버 타임 시스템 (Fever System)
|
|
- **활동 추적**: 모든 메시지 활동을 시간대별(Hour)로 집계하여 `ActivityLog`에 기록합니다.
|
|
- **피크 시간 분석**: 과거 데이터를 분석하여 서버가 가장 활발한 시간대를 찾아냅니다.
|
|
- **보너스**: 피버 타임(1시간) 동안 재련 성공 확률이 **+10%** 추가로 가산됩니다.
|
|
|
|
## 3. 기술적 변경 사항
|
|
- **DB 스키마**: `MiniGameConfig`, `RefinementProfile`, `ActivityLog`, `FeverState` 총 4개의 모델을 추가했습니다.
|
|
- **서비스 레이어**: `RefinementService`, `FeverService`, `ActivityTrackerService` 등 비즈니스 로직을 독립된 서비스로 분리했습니다.
|
|
- **인터랙션**: 재련 결과 임베드에서 버튼을 통해 즉시 다시 시도할 수 있는 UX를 구현했습니다.
|
|
|
|
## 4. 검증 결과 (Verification)
|
|
- **런타임 테스트**: `yarn run dev` 환경에서 Driver Adapter를 통한 DB 연결 및 봇 초기화 성공을 확인했습니다.
|
|
- **테스트 코드**: Prisma 7 초기화 이슈를 해결하여 기존 테스트 슈트(Voice, Config 등)가 정상 작동함을 확인했습니다.
|
|
- **명령어 동작**: `/minigame` 및 `/refine`의 모든 서브커맨드 응답 및 데이터 반영을 확인했습니다.
|
|
|
|
---
|
|
**보고서 끝.**
|