아이템 시트
본 문서는 아이템 마스터 시트들을 코드 DTO 기준으로 정리한다. 각 시트는 한 아이템 카테고리에 대응하며, 모든 아이템 시트는 공통 베이스(ItemTableData)를 상속한다.
연결 시스템: 아이템·루팅·드랍, 전투, 인벤토리·창고, 파츠.
1. 공통 베이스 — ItemTableData
섹션 제목: “1. 공통 베이스 — ItemTableData”모든 아이템 시트가 공유하는 컬럼.
| 컬럼 | 타입 | 의미 |
|---|---|---|
id | string | 아이템 고유 식별자 |
category2 | string | 세부 카테고리 (ItemManager.Category2 enum 문자열) |
name | string | 표시명 키 (현지화) |
grade | int | 등급 (ItemGrade enum 값, 1=Poor ~ 7=Artifact) |
inventorySize | int[] | 격자 점유 [sizeX, sizeY] |
EntityTags | string[] | 의미 시너지 태그 (지역·컨셉·문화 등). 카테고리·등급·슬롯은 태그에 넣지 않는다. 운영은 태그 시스템 참조. |
price | int | 기준가 (푼 단위). 0이면 거래 불가 |
worthRarity | int | 가치 가중치 (드랍 추첨용) |
weight | float | 휴대 무게 |
noiseLevel | float | 사용·휘두름 시 발생 소음 |
durability | float | 내구도 (방어구·무기·파츠) |
연결: Category1은 시트 분리로 표현되고, category2 컬럼이 세부 분류.
2. 무기 — WeaponTableData
섹션 제목: “2. 무기 — WeaponTableData”ItemTableData를 상속하며 전투 관련 컬럼이 추가된다.
| 컬럼 | 타입 | 의미 |
|---|---|---|
availableParts | string[] | 호환 가능한 파츠 ID·태그 |
attackType | string | 공격 타입 (베기/찌르기/때리기 등) |
damageType | string | 데미지 타입 (물리/마법/원거리 등) |
attackRating01 ~ 05 | int | 콤보 단계별 또는 데미지 슬롯별 공격등급 |
damageDeviation | float | 데미지 분산 |
hittedValue01 ~ 05 | int | 피격 부여 게이지 5단계 |
hittedDeviation | float | 피격 분산 |
stunValue01 ~ 05 | int | 스턴 부여 게이지 5단계 |
stunDeviation | float | 스턴 분산 |
criticalRate | float | 치명타 발동률 |
clriticalDeviation | float | 치명타 분산 (sic — 코드 오탈자) |
frontFatalDamageRate | float | 앞잡 데미지 배수 |
backFatalDamageRate | float | 뒤잡 데미지 배수 |
sprintAttackDamageRate | float | 질주 공격 데미지 배수 |
chargeAttackDamageRate | float | 차지 공격 데미지 배수 |
elementType | string | 속성 타입 |
elementDamage | int | 속성 데미지 |
range | float | 공격 사거리 |
attacksPerSecond | float | APS (초당 공격 횟수) |
staminaCost | int | 1회 공격당 스태미너 소모 |
combatSkill | string | 무기 종속 콤보 스킬 식별자 |
3. 방어구 — ArmorTableData
섹션 제목: “3. 방어구 — ArmorTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
defense | float | 기본 방어력 |
slashDefense | float | 베기 방어 |
strikeDefense | float | 타격 방어 |
pierceDefense | float | 찌르기 방어 |
physicsAbsorption | float | 물리 흡수율 |
elementAbsorption | float | 속성 흡수율 |
staggerValue | float | 경직 저항 |
guardStability | float | 가드 안정도 (전투 — 막기의 s 값) |
parts | string[] | 호환 파츠 |
방패도 ArmorTableData로 운영되며 guardStability가 패링·막기 모델의 안정도 입력이다.
4. 액세서리 — AccessoryTableData
섹션 제목: “4. 액세서리 — AccessoryTableData”상속만 받고 추가 컬럼 없음. 효과는 Affix로 부여된다.
5. 가방 — BagTableData
섹션 제목: “5. 가방 — BagTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
extraSlotRowColumn | int[] | 가방 장착 시 인벤토리에 추가되는 [rows, columns] |
이로써 인벤토리 §5 Bag 슬롯 열린 질문이었던 “Bag이 인벤토리 칸을 늘리는지 별도 영역인지”가 칸 추가형으로 확정된다.
6. 벨트 — BeltTableData
섹션 제목: “6. 벨트 — BeltTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
slotCount | int | 벨트가 제공하는 단축 슬롯 개수 |
벨트는 단축 슬롯(Quick) 개수를 결정한다. 인벤토리 §5 열린 질문 해소.
7. 소모품 — UtilityTableData
섹션 제목: “7. 소모품 — UtilityTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
stack | int | 한 칸 최대 스택 |
preDelay | float | 사용 전 딜레이 (캐스팅) |
effectDuration | float | 효과 지속 시간 |
optionType1 | string[] | 효과 옵션 종류 배열 |
optionValue1 | float[] | 효과 옵션 수치 배열 |
optionType1/optionValue1은 같은 길이의 병렬 배열로 운영된다.
8. 재료 — MaterialTableData
섹션 제목: “8. 재료 — MaterialTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
stack | int | 한 칸 최대 스택 |
9. 화폐 — MoneyTableData
섹션 제목: “9. 화폐 — MoneyTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
stack | int | 한 칸 최대 스택 |
화폐가 일반 아이템 슬롯에서 스택형으로 운영됨이 확정된다 (인벤토리 — 휴대 인벤토리 참조).
10. 파츠 — PartsTableData
섹션 제목: “10. 파츠 — PartsTableData”| 컬럼 | 타입 | 의미 |
|---|---|---|
partsType | string | 파츠 슬롯 타입 (MainParts/SubParts 또는 세부) |
availableParts | string[] | 호환 무기 카테고리·태그 |
상세 운영은 파츠 시스템 참조.
11. 무기 공격 파라미터 — WeaponAttackParameterTableData
섹션 제목: “11. 무기 공격 파라미터 — WeaponAttackParameterTableData”무기 카테고리별 Δ-더블 힐 곡선.
| 컬럼 | 타입 | 의미 |
|---|---|---|
category2 | string | 무기 세부 카테고리 |
name | string | 표시명 |
tier | int | 티어 |
strengthDelta1 ~ strengthN2 | float | STR 곡선 6개 파라미터 (Δ1·Δ2·k1·k2·n1·n2) |
agilityDelta1 ~ agilityN2 | float | AGI 곡선 6개 파라미터 |
이 시트가 무기 카테고리별로 다른 보정 곡선을 만든다. (전투 — 공격력 산식)
12. 파츠 공격 파라미터 — PartsAttackParameterTableData
섹션 제목: “12. 파츠 공격 파라미터 — PartsAttackParameterTableData”파츠가 부착될 때 더하는 Δ-더블 힐 보정. 컬럼 구조는 위와 동일.
13. 접사 — ItemAffixTableData
섹션 제목: “13. 접사 — ItemAffixTableData”아이템 등급·카테고리별 접사 풀 정의.
| 컬럼 | 타입 | 의미 |
|---|---|---|
category1 | string | 적용 대상 상위 카테고리 |
category2 | string | 적용 대상 세부 카테고리 |
grade | int | 적용 대상 등급 |
ableQuantity | int | 동시 부여 가능 접사 개수 |
factor | float | 접사 값 보정 계수 |
minimumOffset | float | 최소 보정 오프셋 |
option1 | string | 1번 옵션 타입 (EquipmentStatusBonusType enum) |
minValue1, maxValue1 | float | 1번 옵션 값 범위 |
option2 ~ option5 | string | 2~5번 옵션 |
minValue2~5, maxValue2~5 | float | 2~5번 옵션 값 범위 |
접사는 등급·카테고리별로 다른 옵션 풀과 값 범위를 가진다. 5개 옵션 슬롯이 정의되며, ableQuantity가 실제 부여 개수를 결정한다.
이로써 아이템·루팅·드랍 §10 열린 질문이었던 “접사 개수·종류 추첨 규칙”이 시트 구조 기준으로 해소된다.
14. 드랍 티어 — DropTierTableData
섹션 제목: “14. 드랍 티어 — DropTierTableData”아이템·루팅·드랍 §1.1에서 풀이한 시트. 컬럼 요약.
| 컬럼 그룹 | 컬럼 |
|---|---|
| 키 | tier |
| 드랍 그룹 키 | dropEquipKindsValue, dropPartsRateValue, dropMiscKindsValue, dropGradeValue, dropMoneyValue |
| 무기 추첨 | weaponKinds0Value, weaponKinds1Value (0/1 무기) |
| 파츠 비율 | partsRate20Value, partsRate40Value, partsRate60Value, partsRate80Value, partsRate100Value |
| 방어구 개수 | armorKinds0Value ~ armorKinds4Value (0~4 방어구) |
| 잡템 개수 | miscKinds0Value ~ miscKinds6Value (0~6 잡템) |
| 등급 확률 | itemGradePoorRate ~ itemGradeArtifactRate (7등급) |
| 골드 | noneMoneyRate, minMoney, maxMoney |
| 상자 종류 | woodChestValue, jewelChestValue, lockedChestValue |
15. 상자 그룹 — ChestGroupTableData
섹션 제목: “15. 상자 그룹 — ChestGroupTableData”맵 모듈 §6에서 상세. 컬럼 요약.
| 컬럼 그룹 | 컬럼 |
|---|---|
| 키 | groupID |
| 인스턴스 수 | count |
| 드랍 키 | dropWorthValue, dropEquipKindsValue, dropPartsRateValue, dropMiscKindsValue, dropGradeValue, dropMoneyValue |
| 스택 | dropStackCountValue, dropStackCountAlpha |
| 후보 필터 | weaponQueryTags, mainPartsQueryTags, subPartsQueryTags, armorQueryTags, miscQueryTags |
16. 아이템 그룹 — ItemGroupTableData
섹션 제목: “16. 아이템 그룹 — ItemGroupTableData”상자 그룹과 동일 컬럼 (단 count 없음). 아이템·루팅·드랍 §1.3 참조.
17. 시트 사이 관계
섹션 제목: “17. 시트 사이 관계”ItemTableData (베이스) ├─ WeaponTableData ─── WeaponAttackParameterTableData (category2별 곡선) ├─ ArmorTableData (방패 포함) ├─ AccessoryTableData ├─ BagTableData ├─ BeltTableData ├─ UtilityTableData ├─ MaterialTableData ├─ MoneyTableData └─ PartsTableData ─── PartsAttackParameterTableData
ItemAffixTableData ─── (category1, category2, grade)로 위 아이템에 부여
DropTierTableData (티어별 추첨 확률) ─── 몹 tier로 조회ChestGroupTableData / ItemGroupTableData ─── 그룹별 후보 필터18. 본문에서 사용되지 않는 컬럼 (확인 필요)
섹션 제목: “18. 본문에서 사용되지 않는 컬럼 (확인 필요)”WeaponTableData.elementType/elementDamage— 속성 시스템은 전투 시스템에 명시되지 않음. 별도 시스템 작성 필요.WeaponTableData.criticalRate/clriticalDeviation— 일반 치명타 (앞·뒤잡과 별개) 시스템 미문서화.ArmorTableData.physicsAbsorption/elementAbsorption— 방어력 산식과 별개의 흡수율 — 흐름 문서화 필요.UtilityTableData.preDelay— 캐스팅 시간 운영 미문서화.
이들은 risks에 “기획서 누락 — 코드에는 있음” 항목으로 추가한다.