Skip to content

Comments

feat: 피버타임 아이템 구현 마무리#389

Merged
nijuy merged 4 commits intodevelopfrom
feat/fever-time
Jan 27, 2026
Merged

feat: 피버타임 아이템 구현 마무리#389
nijuy merged 4 commits intodevelopfrom
feat/fever-time

Conversation

@nijuy
Copy link
Collaborator

@nijuy nijuy commented Jan 27, 2026

💻 개요

  • 신규 피처

📋 변경 및 추가 사항

  • 피버타임 중에도 기존과 동일하게 스트릭을 누적해서 보내도록 변경사항 #388을 revert 했습니다.

  • GameScreen에서 아이템 선택/선택 해제 로직을 selectItem()/releaseItem()로 분리했습니다

  • 스낵게임 Biz에는 아이템 기능이 없지만, 스트릭 검증 시 StreaksRequest라는 공통 스키마를 사용하고 있어서
    요청 형식을 맞추기 위해 로직을 일부 수정했습니다


  • PausePopup이 닫힐 때, 비활성화 된 내부 버튼을 다시 활성화하도록 코드를 추가했습니다

    • 별도로 브랜치 파기엔 작은 작업이라 요기 끼웠습니다

      before after
      before after
      PausePopup을 처음 열 때만 버튼을 쓸 수 있는 문제

💬 To. 리뷰어

@nijuy nijuy self-assigned this Jan 27, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @nijuy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 피버타임 아이템 구현을 마무리하고, 게임 내 아이템 처리 로직을 개선하며, 관련 버그를 수정하는 데 중점을 둡니다. 주요 변경사항은 피버타임 중 스트릭 누적 방식을 조정하고, 아이템 선택 및 해제 로직을 명확히 분리하며, PausePopup의 버튼 활성화 문제를 해결하는 것입니다. 이를 통해 게임의 안정성과 아이템 기능의 일관성을 확보합니다.

Highlights

  • 피버타임 스트릭 처리 로직 변경: 피버타임 중에도 스트릭이 누적되도록 기존 변경사항을 되돌렸습니다.
  • 아이템 선택/해제 로직 분리: GameScreen에서 아이템 선택 및 해제 로직을 selectItem()과 releaseItem() 메서드로 분리하여 코드 가독성과 재사용성을 높였습니다.
  • 스낵게임 Biz 스트릭 요청 형식 조정: 아이템 기능이 없는 스낵게임 Biz에서도 공통 StreaksRequest 스키마를 사용하기 위해 요청 형식을 StreakWithMeta로 맞추었습니다.
  • PausePopup 버튼 활성화 수정: PausePopup이 닫힐 때 비활성화되었던 내부 버튼들이 다시 활성화되도록 수정하여 사용자 경험을 개선했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 피버타임 아이템 기능을 마무리하고, 아이템 선택/해제 로직을 리팩토링하며, 일시정지 팝업의 버그를 수정하는 등 여러 개선 사항을 포함하고 있습니다. 전반적으로 코드의 구조가 개선되고 버그가 수정된 점이 좋습니다.

몇 가지 부분에서 에러 처리와 코드 안정성을 높일 수 있는 제안을 드렸습니다. 특히 PausePopup에서 비동기 작업 중 에러가 발생했을 때 UI가 멈추는 현상을 방지하고, GameScreen에서 아이템 사용 시 발생할 수 있는 에러를 처리하는 것이 중요해 보입니다. 또한, 코드 가독성을 높이기 위한 작은 제안도 포함했습니다. 리뷰 코멘트를 확인해주세요.

Comment on lines 154 to 159
if (type === 'FEVER_TIME') {
await this.itemHandlers.fever();
this.feverTimer.start(30, () => {
this.snackGame.setSelectedItem(null);
this.releaseItem();
});
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

itemHandlers.fever() 호출이 실패할 경우를 대비한 에러 처리가 필요합니다. 현재 구현에서는 await된 프로미스가 reject되면 unhandled promise rejection이 발생할 수 있습니다. 또한, 에러가 발생하면 아이템이 선택된 상태로 잠겨있게 되어 사용자가 다른 행동을 할 수 없게 됩니다.

try...catch 블록을 추가하여 에러를 처리하고, 에러 발생 시 releaseItem()을 호출하여 아이템 선택을 해제하는 것이 좋습니다.

            if (type === 'FEVER_TIME') {
              try {
                await this.itemHandlers.fever();
                this.feverTimer.start(30, () => {
                  this.releaseItem();
                });
              } catch (error) {
                this.app.setError(error);
                this.releaseItem();
              }
            }

@nijuy nijuy merged commit 4637cf5 into develop Jan 27, 2026
1 check passed
@nijuy nijuy deleted the feat/fever-time branch January 27, 2026 12:42
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