Add fishing rarity rewards and result art #5

Merged
myong merged 1 commits from myong_dev into main 2026-04-01 08:20:43 +00:00
Collaborator

요약

이번 PR에서는 낚시 미니게임에 레어도 시스템과 결과 아트 연출을 추가했습니다.

주요 포함 내용:

  • 물고기 데이터와 별도로 레어도 데이터 레이어 추가
  • 같은 물고기라도 서로 다른 레어도로 등장 가능
  • 레어도에 따라 추가 보상 및 난이도 보정 적용
  • 낚시 성공 시 레어도 기반 배경색이 합성된 결과 이미지 전송
  • 성공 메시지에 레어도 표시 강화

변경 사항

  • resource/data/fishing/fish_rarities.json 추가
    • 레어도별 등장 확률
    • 보상 배수
    • 반응 시간 보정
    • 끊어짐 게이지 보정
    • 결과 이미지 배경색
  • FishingService 업데이트
    • 물고기와 별도로 레어도 추첨
    • 레어도에 따른 보상 증가
    • 레어도에 따른 반응 시간/난이도 조정
    • 성공 시 레어도 배경색과 물고기 PNG를 합성한 결과 이미지 전송
    • 이미지 전송 실패 시에도 텍스트 결과는 반드시 전송되도록 fallback 처리
    • 성공 결과 메시지에 레어도 제목/본문/필드 표시
  • sharp 의존성 추가
    • 낚시 결과 PNG 배경 합성 처리용
  • EN/KO i18n 업데이트
    • 성공 메시지에 레어도 문구 반영
    • 낚시 결과 Embed 필드 확장

레어도 동작 방식

  • 물고기 종은 기존 fish_catalog.json 기준으로 선택
  • 이후 fish_rarities.json 기준으로 레어도 추가 추첨
  • 레어도 높을수록
    • 등장 확률 감소
    • 골드 보상 증가
    • 반응 시간 더 짧아짐
    • 끊어짐 게이지 부담 증가

UI 변경 사항

  • 성공 결과 제목에 레어도 뱃지 표시
  • 성공 본문에 레어도 포함
  • 결과 Embed에 레어도 필드 추가
  • 결과 이미지에 레어도별 배경색 적용

검증

  • yarn build
  • yarn test --runInBand

두 명령 모두 정상 통과했습니다.

참고 사항

  • fish_catalog.json은 그대로 유지하고, 레어도는 별도 JSON로 분리했습니다.
  • 이미지 합성 실패 시에도 낚시 성공 결과 텍스트는 전송됩니다.
  • 중복 봇 인스턴스로 인해 이전 코드가 섞여 응답하던 문제를 정리하고 최신 인스턴스 기준으로 동작 확인했습니다.
## 요약 이번 PR에서는 낚시 미니게임에 레어도 시스템과 결과 아트 연출을 추가했습니다. 주요 포함 내용: - 물고기 데이터와 별도로 레어도 데이터 레이어 추가 - 같은 물고기라도 서로 다른 레어도로 등장 가능 - 레어도에 따라 추가 보상 및 난이도 보정 적용 - 낚시 성공 시 레어도 기반 배경색이 합성된 결과 이미지 전송 - 성공 메시지에 레어도 표시 강화 ## 변경 사항 - `resource/data/fishing/fish_rarities.json` 추가 - 레어도별 등장 확률 - 보상 배수 - 반응 시간 보정 - 끊어짐 게이지 보정 - 결과 이미지 배경색 - `FishingService` 업데이트 - 물고기와 별도로 레어도 추첨 - 레어도에 따른 보상 증가 - 레어도에 따른 반응 시간/난이도 조정 - 성공 시 레어도 배경색과 물고기 PNG를 합성한 결과 이미지 전송 - 이미지 전송 실패 시에도 텍스트 결과는 반드시 전송되도록 fallback 처리 - 성공 결과 메시지에 레어도 제목/본문/필드 표시 - `sharp` 의존성 추가 - 낚시 결과 PNG 배경 합성 처리용 - EN/KO i18n 업데이트 - 성공 메시지에 레어도 문구 반영 - 낚시 결과 Embed 필드 확장 ## 레어도 동작 방식 - 물고기 종은 기존 `fish_catalog.json` 기준으로 선택 - 이후 `fish_rarities.json` 기준으로 레어도 추가 추첨 - 레어도 높을수록 - 등장 확률 감소 - 골드 보상 증가 - 반응 시간 더 짧아짐 - 끊어짐 게이지 부담 증가 ## UI 변경 사항 - 성공 결과 제목에 레어도 뱃지 표시 - 성공 본문에 레어도 포함 - 결과 Embed에 `레어도` 필드 추가 - 결과 이미지에 레어도별 배경색 적용 ## 검증 - `yarn build` - `yarn test --runInBand` 두 명령 모두 정상 통과했습니다. ## 참고 사항 - `fish_catalog.json`은 그대로 유지하고, 레어도는 별도 JSON로 분리했습니다. - 이미지 합성 실패 시에도 낚시 성공 결과 텍스트는 전송됩니다. - 중복 봇 인스턴스로 인해 이전 코드가 섞여 응답하던 문제를 정리하고 최신 인스턴스 기준으로 동작 확인했습니다.
myong added 1 commit 2026-04-01 08:20:39 +00:00
myong merged commit 80e104a9f4 into main 2026-04-01 08:20:43 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: art/Kord#5
No description provided.