1.8 KiB
1.8 KiB
2026-03-31 낚시 미니게임 Phase 1 구현
개요
낚시 미니게임의 1차 구현을 추가했습니다. 이번 단계에서는 전용 스레드 기반 세션, 실시간 버튼 조작, 거리/끊어짐 게이지, 성공 시 골드 지급, 종료 시 스레드 정리까지 MVP 범위를 구현했습니다.
구현 내용
fishing미니게임을 공용 미니게임 레지스트리에 등록/fishing cast명령 추가/fishing end명령 추가- 낚시 시작 시
UserName's Fishing Spot형식의 전용 스레드 생성 - 사용자당 1개 세션만 허용하는 메모리 기반 세션 관리 추가
⬅️,⏺️,➡️,🛌버튼 조작 추가- 1초 주기 상태 갱신 루프 추가
- 거리 게이지와 끊어짐 게이지 렌더링 추가
- 중앙 라인에 물고기 이모지 위치 표시 추가
- 방향 일치 시 거리 감소 및 끊어짐 게이지 증가 로직 구현
- 휴식 선택 시 끊어짐 게이지 회복 로직 구현
- 성공 시
RefinementProfile.gold기준 골드 지급 연동 - 성공/실패/강제 종료 시 버튼 비활성화 및 스레드 자동 정리 추가
주요 파일
src/commands/fishing.tssrc/services/FishingService.tssrc/events/interactionCreate.tssrc/services/MiniGameRegistry.tssrc/services/RefinementService.tssrc/i18n/types.tssrc/i18n/locales/en.tssrc/i18n/locales/ko.tstests/services/FishingService.test.ts
검증
tscjest tests/services/FishingService.test.ts --runInBand
비고
- Prisma Client는 최신 스키마 기준으로 다시 생성해 타입을 맞췄습니다.
ko.ts에 존재하던 일부 깨진 문자열은 빌드를 막는 구간 위주로 우선 복구했습니다.- 세션은 메모리 기반이므로 봇 재시작 시 진행 중 낚시 세션은 유지되지 않습니다.