GGemCoTcgWeightedShuffleSettings는 Weighted Shuffle 전략에서 사용되는 설정 ScriptableObject입니다.덱 전체를 1차 랜덤 셔플한 뒤, **덱 앞부분 일부(FrontLoadedCount)**만 코스트 가중치 기반으로 재배열하여 초반 손패/드로우의 “마나 커브 적합성”을 높이는 목적을 가집니다.
| 용어 | 의미 |
|---|---|
| Weighted Shuffle | 덱을 랜덤으로 섞은 후, 일부 구간만 코스트 가중치로 재정렬하는 방식 |
| FrontLoadedCount | 가중치 재정렬이 적용되는 덱의 앞부분 카드 수 |
| Cost Weight | 특정 코스트 카드가 선택될 확률을 조절하는 가중치(룰렛 방식) |
| defaultCostWeight | 엔트리가 없는 코스트에 적용되는 기본 가중치 |
Weighted Shuffle은 일반적으로 다음 흐름으로 적용됩니다.
덱 전체를 1차 랜덤 셔플(Fisher–Yates)
덱 앞 FrontLoadedCount장만 추출
추출 구간을 “코스트 가중치 룰렛”으로 1장씩 선택하며 재배열
재배열 결과를 덱 앞부분에 덮어쓰기
(FrontLoadedCount 이후 구간은 1차 셔플 결과 유지)
| 항목 | 타입 | 기본값 | 범위/제약 | 설명 |
|---|---|---|---|---|
| useManaCurveFrontLoadedCount | bool | true | - | FrontLoadedCount를 마나 커브 기반으로 자동 계산할지 여부 |
| fixedFrontLoadedCount | int | 10 | >= 0 (덱 크기로 Clamp) |
useManaCurveFrontLoadedCount == false일 때 사용할 고정 FrontLoadedCount |
useManaCurveFrontLoadedCount = true이면 “최대 마나에 도달하기 전까지 드로우될 카드 수”를 추정하여 FrontLoadedCount로 사용합니다.
(즉, 초반 구간을 마나 커브/드로우 룰에 맞춰 자동으로 잡습니다.)