턴 제한 피해 측정 콘텐츠

체력이 없는 보스를 상대로 제한된 턴 동안 누적 피해량을 측정하고, 결과 등급에 따라 회차 보상과 일일 획득 상한을 계산하는 콘텐츠다.

01 · 전투 규칙

피해량 측정을 위한 진입과 종료 조건.

도전 횟수보다 한 번의 결과를 기록

진입과 종료
항목처리
진입 비용별도 입장 재화를 소모하지 않는다.
도전 횟수반복 도전할 수 있다.
측정값전투 종료 시점까지 보스에게 가한 누적 피해량.
정상 종료보스가 설정된 턴에 도달하면 클리어로 처리한다.
조기 종료아군 전멸 또는 게임 내 중도 이탈도 클리어로 처리한다.
강제 종료앱 종료와 통신 단절 시 완료 정책을 별도로 정의한다.

02 · 보상 데이터

등급 판정과 지급에 필요한 대표 항목.

대표 항목과 역할

대표 항목
항목컬럼명형식용도
보상 등급reward_gradeinteger피해량 기준으로 결정되는 결과 단계.
등급 도달 기준score_thresholdinteger해당 등급에 필요한 최소 피해량.
회차 지급 배수reward_multiplierinteger이번 클리어에서 지급을 시도할 횟수.
일일 획득 상한daily_reward_limitinteger해당 일자에 누적 지급할 수 있는 최대 횟수.

03 · 보상 정산

최고 기록과 이번 결과를 다른 기준으로 사용.

상한과 회차 지급량의 기준 분리

적용 기준
계산 대상적용 기준
일일 획득 상한해당 일자의 최고 기록 등급.
이번 지급 배수이번 도전에서 획득한 등급.

남은 지급 가능 횟수는 일일 상한에서 누적 지급 횟수를 뺀 값이다. 실제 지급 횟수는 이번 지급 배수와 남은 지급 가능 횟수 중 작은 값을 사용한다. 지급 배수는 반복 플레이를 줄이기 위한 편의 기능이며, 상한을 넘은 횟수는 이월하지 않는다.

정산 예시
도전지급 배수진입 전 누적실제 지급지급 후 누적
1회차5배수0회5회5회
2회차5배수5회5회10회
추가 재진입5배수10회0회10회

04 · 일일 초기화

서버 업데이트 시점에 일일 상태를 초기화.

서버 기준 Daily 초기화

초기화 처리
시점처리
Daily 초기화서버 기준 Daily 초기화 업데이트 시점에 일일 상태와 보상 누적값을 초기화한다.
초기화 직전 진입종료 시각이 아니라 전투 시작 시점의 일일 상태로 정산한다.

05 · 처리 위치

클라이언트와 서버의 담당 범위.

결과 산출과 지급 처리

클라이언트

  • 전투 종료까지 누적 대미지를 선계산한다.
  • 적의 실드 버프가 흡수한 피해는 누적 피해량에 포함하지 않는다.
  • 독·출혈 등 디버프 피해는 누적 피해량에 포함한다.
  • 선계산한 대미지와 결과를 패킷으로 전송한다.

서버

  • 클라이언트의 대미지 결과 패킷을 받아 이용자 정보를 갱신한다.
  • 최고 기록과 누적 지급 상태를 갱신한다.
  • 남은 상한을 반영해 보상을 지급한다.
처리 순서: 클라이언트 대미지 선계산 → 결과 패킷 전송 → 서버 이용자 정보 갱신.

06 · 테스트 케이스(QA)

결과 패킷과 지급 상태의 검증 항목.

테스트 케이스(QA)

결과 검증
검사판정
deck_id가 비어 있는가캐릭터를 편성하지 않은 상태에서는 클리어할 수 없으므로 유효하지 않은 결과로 처리.
turn_count가 0인가0턴 클리어는 존재할 수 없으므로 유효하지 않은 결과로 처리.
같은 완료 요청이 재전송되는가이미 반영한 요청은 중복 지급하지 않음.
최고 기록으로 상한이 증가했는가기존 누적 지급량을 차감한 남은 횟수만 지급.
Daily 초기화 직전에 진입했는가전투 시작 시점의 일일 상태로 정산.