Skip to content

가챠 카드게임 Spirit Summon(소환진) UI 리디자인#366

Open
sumi-0011 wants to merge 9 commits intomainfrom
feat/spirit-game
Open

가챠 카드게임 Spirit Summon(소환진) UI 리디자인#366
sumi-0011 wants to merge 9 commits intomainfrom
feat/spirit-game

Conversation

@sumi-0011
Copy link
Copy Markdown
Member

💻 작업 내용

기존 FanDrawingGame(부채꼴 펼침 방식)을 Spirit Summon(소환진 수렴 의식) 컨셉의 새로운 카드 뽑기 UI로 완전 교체했습니다.

변경 전 → 변경 후

  • 이전: 카드 7장이 부채꼴로 펼쳐지고, 선택한 카드가 뒤집히며 결과 공개
  • 이후: 마법진 위에 카드 7장이 원형으로 소환되고, 선택 시 중앙으로 수렴 → 파쇄 → 충격파와 함께 결과 카드 등장

신규 파일 (4개)

파일 역할
SummonDrawingGame/RitualCircle.tsx 동심원 회전 마법진 (8개 룬 포인트, 센터 글로우, 가속 모드)
SummonDrawingGame/SummonMotion.tsx 6개 모션 컴포넌트: 원형 소환+플로팅, spring 수렴, 머지(펄스+흔들림), clip-path 파쇄(6조각), 충격파 링, overshoot spring 결과 등장
SummonDrawingGame/SummonDrawingGame.tsx 메인 상태 머신 (ready→drawing→revealing→selected), cos/sin 원형 좌표 계산, 모바일 반응형
SummonDrawingGame/index.ts re-export

수정 파일 (1개)

  • OnePet.tsx: import 경로를 FanDrawingGameSummonDrawingGame으로 변경

주요 구현 사항

  • 상태 머신: readydrawingrevealingselected 4단계 전환
  • 마법진: animateSpin 키프레임 활용, 반대 방향 동심원 회전, revealing 시 가속
  • 카드 배치: cos/sin으로 원형 좌표 계산 (데스크톱 반지름 140px, 모바일 90px)
  • 모션: framer-motion spring/stagger 애니메이션 적극 활용
  • 반응형: 카드 크기 데스크톱 100×124px / 모바일 72×89px, 결과 카드 320px (max 80vw)
  • 닫기 UX: 백드롭 분리 + 카드/텍스트 직접 클릭 핸들러로 확실한 닫기 동작
  • 메모리 관리: setTimeout을 ref로 추적, 언마운트 시 cleanup

Props interface 변경 없음

기존 CardDrawingGameProps 그대로 유지하여 OnePet.tsx에서 import 경로만 변경.

📸 스크린샷

데스크톱 (1280px) - 카드 소환 상태

마법진 동심원 위에 카드 7장이 원형으로 배치, 플로팅 애니메이션 적용

데스크톱 - 결과 카드 공개

충격파 + overshoot spring으로 결과 카드 등장 (HAMSTER_SANTA A+)

모바일 (400px) - 카드 소환 상태

모바일 반응형으로 카드/마법진 크기 축소

모바일 - 결과 카드 공개

모바일에서도 적절한 크기의 결과 카드 표시 (CAPYBARA_CARROT B-)

sumi-0011 and others added 9 commits March 25, 2026 14:07
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
마법진(소환진) 컨셉의 새로운 카드 뽑기 UI로 전환.
- RitualCircle: 동심원 회전 마법진 + 룬 포인트
- SummonMotion: 원형 소환, 수렴, 파쇄, 충격파 모션
- SummonDrawingGame: 상태 머신 (ready→drawing→revealing→selected)
- 모바일 반응형 대응 (카드 크기, 원 반지름 조정)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 게임 카드: 220×272 → 100×124 (데스크톱), 140×173 → 72×89 (모바일)
- 결과 카드: width 320px + maxWidth 80vw 제한 추가
- 파쇄 컨테이너: 카드 크기에 맞게 조정 + 모바일 대응

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 백드롭을 별도 div로 분리하여 클릭 이벤트 확실히 전달
- 결과 카드, 닫기 메시지에도 직접 closeGame 핸들러 추가
- 오버레이 어디를 클릭해도 닫히도록 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- revealTimerRef로 타이머 관리, 언마운트 시 cleanup
- 닫기 메시지에 cursor: pointer 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 30, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 02275ebb-06c1-425e-9f37-3fc2b1b9a8a3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/spirit-game

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Base automatically changed from dev to main March 30, 2026 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant