개요

GGemCoTcgWeightedShuffleSettingsWeighted Shuffle 전략에서 사용되는 설정 ScriptableObject입니다.

덱 전체를 1차 랜덤 셔플한 뒤, **덱 앞부분 일부(FrontLoadedCount)**만 코스트 가중치 기반으로 재배열하여 초반 손패/드로우의 “마나 커브 적합성”을 높이는 목적을 가집니다.


1) 핵심 개념

용어 의미
Weighted Shuffle 덱을 랜덤으로 섞은 후, 일부 구간만 코스트 가중치로 재정렬하는 방식
FrontLoadedCount 가중치 재정렬이 적용되는 덱의 앞부분 카드 수
Cost Weight 특정 코스트 카드가 선택될 확률을 조절하는 가중치(룰렛 방식)
defaultCostWeight 엔트리가 없는 코스트에 적용되는 기본 가중치

2) 적용 범위(FrontLoadedCount) 동작

Weighted Shuffle은 일반적으로 다음 흐름으로 적용됩니다.

  1. 덱 전체를 1차 랜덤 셔플(Fisher–Yates)

  2. 덱 앞 FrontLoadedCount장만 추출

  3. 추출 구간을 “코스트 가중치 룰렛”으로 1장씩 선택하며 재배열

  4. 재배열 결과를 덱 앞부분에 덮어쓰기

    (FrontLoadedCount 이후 구간은 1차 셔플 결과 유지)


3) 항목(Inspector) 설명 표

3.1 FrontLoadedCount 결정 방식

항목 타입 기본값 범위/제약 설명
useManaCurveFrontLoadedCount bool true - FrontLoadedCount를 마나 커브 기반으로 자동 계산할지 여부
fixedFrontLoadedCount int 10 >= 0 (덱 크기로 Clamp) useManaCurveFrontLoadedCount == false일 때 사용할 고정 FrontLoadedCount

자동 계산이 의미하는 것

useManaCurveFrontLoadedCount = true이면 “최대 마나에 도달하기 전까지 드로우될 카드 수”를 추정하여 FrontLoadedCount로 사용합니다.

(즉, 초반 구간을 마나 커브/드로우 룰에 맞춰 자동으로 잡습니다.)