[WL] #937-6 이력 주석 분리 나머지 — 배열형 표 파일 건너뜀 · _history 키 제거(맵형 로더 보호) · 전체 JSON 파싱 확인

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-10-19 00:12:13 +09:00
parent 48e04f48db
commit c421d272fc
40 changed files with 1690 additions and 326 deletions

View File

@ -7,6 +7,5 @@
"ignoreOverButtons": 1,
"allowDuringSkill": 1,
"minDirDistance": 0.3,
"dustScale": 0.6,
"_history": "Docs/WLJsonHistory/WLDoubleTapDodge.history.md"
"dustScale": 0.6
}

View File

@ -292,6 +292,5 @@
"Projectile_10401",
"Projectile_10402"
]
},
"_history": "Docs/WLJsonHistory/WLImpactFx.history.md"
}
}

View File

@ -1,6 +1,5 @@
{
"enabled": 1,
"minGap": 0.1,
"groundPad": 0.0,
"_history": "Docs/WLJsonHistory/WLFlyingHitbox.history.md"
"groundPad": 0.0
}

View File

@ -13,6 +13,5 @@
"knockbackScale": 0.0,
"staggerSeconds": 0.0
}
],
"_history": "Docs/WLJsonHistory/WLSkillHitFeel.history.md"
]
}

View File

@ -2,6 +2,5 @@
"enabled": 1,
"turnDegPerSec": 1440,
"snapAtHitbox": 1,
"minDistance": 0.05,
"_history": "Docs/WLJsonHistory/WLAttackFacing.history.md"
"minDistance": 0.05
}

View File

@ -20,6 +20,5 @@
"monsterId": 104,
"aggressive": 1
}
],
"_history": "Docs/WLJsonHistory/WLMobAI.history.md"
]
}

View File

@ -92,6 +92,5 @@
"stunAfterKnockback": true,
"knockbackMaxWait": 0.6
}
],
"_history": "Docs/WLJsonHistory/WLStatus.history.md"
]
}

View File

@ -57,6 +57,5 @@
"Body",
"Arm"
],
"bodyOnTopWeapon": 0,
"_history": "Docs/WLJsonHistory/WLBladeStorm.history.md"
"bodyOnTopWeapon": 0
}

View File

@ -72,6 +72,5 @@
"pathFxNativeLength": 8.5,
"pathFxLife": 2.5,
"pathFxWidth": 1.0,
"pathFxLength": 1.5,
"_history": "Docs/WLJsonHistory/WLGreatWave.history.md"
"pathFxLength": 1.5
}

View File

@ -124,6 +124,5 @@
"stage": 3,
"frontReach": 1.76
}
],
"_history": "Docs/WLJsonHistory/WLHitboxFit.history.md"
]
}

View File

@ -9,6 +9,5 @@
"landAt": 0.8,
"crossFade": 0.08
}
],
"_history": "Docs/WLJsonHistory/WLJumpSlam.history.md"
]
}

View File

@ -55,6 +55,5 @@
"hitScale": 0.3,
"hitLife": 1.5
}
],
"_history": "Docs/WLJsonHistory/WLProjectileVisual.history.md"
]
}

View File

@ -37,6 +37,5 @@
"aimBody": 1,
"chargeBlocksMove": 1,
"holdThroughShots": 1,
"holdMaxSeconds": 3.0,
"_history": "Docs/WLJsonHistory/WLRapidShot.history.md"
"holdMaxSeconds": 3.0
}

View File

@ -18,6 +18,5 @@
"clipHoldSeconds": 0.2,
"crossFade": 0.06
}
],
"_history": "Docs/WLJsonHistory/WLSkillApproach.history.md"
]
}

View File

@ -15,6 +15,5 @@
"Skill_DashSlash"
],
"holdUntilFire": 1,
"holdMaxSeconds": 1.5,
"_history": "Docs/WLJsonHistory/WLSkillCancel.history.md"
"holdMaxSeconds": 1.5
}

View File

@ -3,6 +3,5 @@
"delay": 0.12,
"cancelTrigger": 1,
"maxWait": 1.0,
"minRange": 4.0,
"_history": "Docs/WLJsonHistory/WLSkillChain.history.md"
"minRange": 4.0
}

View File

@ -10,6 +10,5 @@
"startGraceSeconds": 0.5,
"inputDeadzone": 0.2,
"faceTarget": 1,
"deferBrake": 1,
"_history": "Docs/WLJsonHistory/WLSkillFollow.history.md"
"deferBrake": 1
}

View File

@ -9,6 +9,5 @@
"messageTopRatio": 0.18,
"key2": "E",
"slot2": 2,
"ignoreRange": 1,
"_history": "Docs/WLJsonHistory/WLSkillHotkey.history.md"
"ignoreRange": 1
}

View File

@ -230,6 +230,5 @@
"multiHitInterval": 0.11,
"lifeSeconds": 3.2
}
],
"_history": "Docs/WLJsonHistory/WLSkillVfx.history.md"
]
}

View File

@ -101,6 +101,5 @@
"from": "sl-g01g3",
"to": "WL/Fx/Stab930/sl-g01g3_S"
}
],
"_history": "Docs/WLJsonHistory/WLSlashFlurry.history.md"
]
}

View File

@ -129,6 +129,5 @@
"launchHeight": 1.5,
"launchSeconds": 0.6,
"stunSeconds": 0.5
},
"_history": "Docs/WLJsonHistory/WLStaffEarth.history.md"
}
}

View File

@ -38,6 +38,5 @@
"knockbackDistance": 2.0,
"wallBounce": 1
}
],
"_history": "Docs/WLJsonHistory/WLStageHitReaction.history.md"
]
}

View File

@ -13,6 +13,5 @@
9008
],
"synergyPartners": 1,
"equipPartners": 0,
"_history": "Docs/WLJsonHistory/WLStarterKit.history.md"
"equipPartners": 0
}

View File

@ -30,6 +30,5 @@
"scale": 0.01,
"name": "치명타 피해량"
}
],
"_history": "Docs/WLJsonHistory/WLWeaponAxis.history.md"
]
}

View File

@ -112,6 +112,5 @@
0
]
}
],
"_history": "Docs/WLJsonHistory/WLWeaponClasses.history.md"
]
}

View File

@ -2,6 +2,5 @@
"enabled": 1,
"messageSeconds": 2.5,
"messageFontScale": 0.028,
"messageTopRatio": 0.12,
"_history": "Docs/WLJsonHistory/WLWeaponGradeCheat.history.md"
"messageTopRatio": 0.12
}

View File

@ -1,17 +1,30 @@
{
"_note_pd": "PD 2026-10-09 원문: 「50회 달성 시 S급 천장, 10회마다 에픽급 확정」 · 「전설 = S」 · 열쇠 가격은 재화 가치 산정 후(보류)",
"_note_lead": "Lead 해석·제안(PD 미지정): epicEvery = 누적 개봉 수 기준(10·20·30…회째) · sPity = 마지막 S급 뒤 개봉 수 기준(자연 S급이 나오면 리셋) · 천장과 에픽 확정이 같은 회차면 천장 우선 · tierWeights = 등급별 출현 가중치(제안값 · 불멸·신화는 상자 미출현 = 합성 승급만) · keyCost = 열쇠 개수만",
"boxes": [
{
"id": 1,
"name": "장비 상자",
"keyCost": 1,
"tierWeights": [
{ "tier": 1, "weight": 55 },
{ "tier": 2, "weight": 25 },
{ "tier": 3, "weight": 12 },
{ "tier": 4, "weight": 6 },
{ "tier": 5, "weight": 2 }
{
"tier": 1,
"weight": 55
},
{
"tier": 2,
"weight": 25
},
{
"tier": 3,
"weight": 12
},
{
"tier": 4,
"weight": 6
},
{
"tier": 5,
"weight": 2
}
],
"epicEvery": 10,
"epicTier": 4,

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +1,192 @@
{
"_note_pd": "PD 2026-10-09 원문: 등급 7단계 일반(회색) 10 % · 고급(녹색) 25 % · 희귀(파란색) 50 % · 에픽(보라색) 80 % · 전설(주황색) 120 % · 불멸(붉은색) 200 % · 신화(하늘색) 400 % = 「기본 수치 + 스텟 N % 비중」 · 전설 = S · 배율 상한 없음",
"_note_lead": "Lead 해석·제안(PD 미지정): 스탯 = 직업 주스탯(힘·민첩·지능) · 기본 수치 = FR 레벨표 값 × levelStatScale · 색 hex 값 · frMap = FR 이식 데이터 14단계 → WL 등급 대응(정식 데이터 재작성 때 1단계=1등급으로 재정렬 가능) · parts.statFactor = 주스탯 1당 환산 계수(제안값) · 공식 = 기본 수치 + 주스탯 × statPercent/100 × statFactor",
"tiers": [
{ "tier": 1, "name": "일반", "color": "#A8A8A8", "statPercent": 10, "isS": 0 },
{ "tier": 2, "name": "고급", "color": "#4CAF50", "statPercent": 25, "isS": 0 },
{ "tier": 3, "name": "희귀", "color": "#42A5F5", "statPercent": 50, "isS": 0 },
{ "tier": 4, "name": "에픽", "color": "#AB47BC", "statPercent": 80, "isS": 0 },
{ "tier": 5, "name": "전설", "color": "#FF9800", "statPercent": 120, "isS": 1 },
{ "tier": 6, "name": "불멸", "color": "#E53935", "statPercent": 200, "isS": 0 },
{ "tier": 7, "name": "신화", "color": "#4DD0E1", "statPercent": 400, "isS": 0 }
{
"tier": 1,
"name": "일반",
"color": "#A8A8A8",
"statPercent": 10,
"isS": 0
},
{
"tier": 2,
"name": "고급",
"color": "#4CAF50",
"statPercent": 25,
"isS": 0
},
{
"tier": 3,
"name": "희귀",
"color": "#42A5F5",
"statPercent": 50,
"isS": 0
},
{
"tier": 4,
"name": "에픽",
"color": "#AB47BC",
"statPercent": 80,
"isS": 0
},
{
"tier": 5,
"name": "전설",
"color": "#FF9800",
"statPercent": 120,
"isS": 1
},
{
"tier": 6,
"name": "불멸",
"color": "#E53935",
"statPercent": 200,
"isS": 0
},
{
"tier": 7,
"name": "신화",
"color": "#4DD0E1",
"statPercent": 400,
"isS": 0
}
],
"frMap": [
{ "frGrade": 0, "gradeLv": 0, "tier": 1, "plus": 0 },
{ "frGrade": 1, "gradeLv": 0, "tier": 2, "plus": 0 },
{ "frGrade": 2, "gradeLv": 0, "tier": 3, "plus": 0 },
{ "frGrade": 3, "gradeLv": 0, "tier": 4, "plus": 0 },
{ "frGrade": 3, "gradeLv": 1, "tier": 4, "plus": 1 },
{ "frGrade": 3, "gradeLv": 2, "tier": 4, "plus": 2 },
{ "frGrade": 4, "gradeLv": 0, "tier": 5, "plus": 0 },
{ "frGrade": 4, "gradeLv": 1, "tier": 5, "plus": 1 },
{ "frGrade": 4, "gradeLv": 2, "tier": 5, "plus": 2 },
{ "frGrade": 4, "gradeLv": 3, "tier": 5, "plus": 3 },
{ "frGrade": 5, "gradeLv": 0, "tier": 6, "plus": 0 },
{ "frGrade": 5, "gradeLv": 1, "tier": 6, "plus": 1 },
{ "frGrade": 5, "gradeLv": 2, "tier": 7, "plus": 0 },
{ "frGrade": 5, "gradeLv": 3, "tier": 7, "plus": 1 }
{
"frGrade": 0,
"gradeLv": 0,
"tier": 1,
"plus": 0
},
{
"frGrade": 1,
"gradeLv": 0,
"tier": 2,
"plus": 0
},
{
"frGrade": 2,
"gradeLv": 0,
"tier": 3,
"plus": 0
},
{
"frGrade": 3,
"gradeLv": 0,
"tier": 4,
"plus": 0
},
{
"frGrade": 3,
"gradeLv": 1,
"tier": 4,
"plus": 1
},
{
"frGrade": 3,
"gradeLv": 2,
"tier": 4,
"plus": 2
},
{
"frGrade": 4,
"gradeLv": 0,
"tier": 5,
"plus": 0
},
{
"frGrade": 4,
"gradeLv": 1,
"tier": 5,
"plus": 1
},
{
"frGrade": 4,
"gradeLv": 2,
"tier": 5,
"plus": 2
},
{
"frGrade": 4,
"gradeLv": 3,
"tier": 5,
"plus": 3
},
{
"frGrade": 5,
"gradeLv": 0,
"tier": 6,
"plus": 0
},
{
"frGrade": 5,
"gradeLv": 1,
"tier": 6,
"plus": 1
},
{
"frGrade": 5,
"gradeLv": 2,
"tier": 7,
"plus": 0
},
{
"frGrade": 5,
"gradeLv": 3,
"tier": 7,
"plus": 1
}
],
"_note_parts_879": "#879 PD 10-16 원문 「무기 : 무기 타입별 공격력 · 갑옷 : 방어력 · 장갑 : 생명력(PD 확정 · 원문 벨트 = 장갑) · 부츠 : 이동속도 · 반지 : 근접 공격력과 원거리 공격력 중 랜덤 · 목걸이 : 랜덤 스텟」 + 슬롯 벨트 → 반지. FR 레벨표는 무기 · 장갑 · 목걸이 = 공격 칸 · 갑옷 · 벨트 · 신발 = 체력 칸뿐이라 levelFactor 로 환산(제안값). RING = 근접/원거리 중 하나(무기 계열이 맞을 때만 공격력) · MOVE · RANDOM = Resources/WL/PartSkill/WLPartStats.json(배율 · 등급별)",
"_note_895": "#895 (2026-10-17) PD 「모든 무기의 일반(회색) 등급은 아무런 효과가 없어야 하고」 → parts 무기 noEffectTiers [1] = 일반 무기는 능력치(기본 수치 · 주스탯 %) · 파츠 스킬이 0 (WLEquipGrades.NoEffect · WLEquipStats · WLPartSkillState)",
"parts": [
{ "equipType": 1, "name": "무기", "output": "ATK", "levelField": "Attack", "levelFactor": 1.0, "statFactor": 1.0, "noEffectTiers": [1] },
{ "equipType": 2, "name": "목걸이", "output": "RANDOM", "levelField": "Attack", "levelFactor": 0.0, "statFactor": 0.0 },
{ "equipType": 3, "name": "장갑", "output": "MaxHP", "levelField": "Attack", "levelFactor": 5.0, "statFactor": 5.0 },
{ "equipType": 4, "name": "갑옷", "output": "DEF", "levelField": "Health", "levelFactor": 0.1, "statFactor": 0.5 },
{ "equipType": 5, "name": "반지", "output": "RING", "levelField": "Health", "levelFactor": 0.2, "statFactor": 1.0 },
{ "equipType": 6, "name": "신발", "output": "MOVE", "levelField": "Health", "levelFactor": 0.0, "statFactor": 0.0 }
{
"equipType": 1,
"name": "무기",
"output": "ATK",
"levelField": "Attack",
"levelFactor": 1.0,
"statFactor": 1.0,
"noEffectTiers": [
1
]
},
{
"equipType": 2,
"name": "목걸이",
"output": "RANDOM",
"levelField": "Attack",
"levelFactor": 0.0,
"statFactor": 0.0
},
{
"equipType": 3,
"name": "장갑",
"output": "MaxHP",
"levelField": "Attack",
"levelFactor": 5.0,
"statFactor": 5.0
},
{
"equipType": 4,
"name": "갑옷",
"output": "DEF",
"levelField": "Health",
"levelFactor": 0.1,
"statFactor": 0.5
},
{
"equipType": 5,
"name": "반지",
"output": "RING",
"levelField": "Health",
"levelFactor": 0.2,
"statFactor": 1.0
},
{
"equipType": 6,
"name": "신발",
"output": "MOVE",
"levelField": "Health",
"levelFactor": 0.0,
"statFactor": 0.0
}
]
}

View File

@ -5,29 +5,88 @@
"transitionSeconds": 0.15,
"mobs": [
{
"monsterId": 101, "role": "근접 · 선공", "prefab": "WL/RPG_Bat", "scale": 0.38,
"monsterId": 101,
"role": "근접 · 선공",
"prefab": "WL/RPG_Bat",
"scale": 0.38,
"source": "Assets/RPGMonsterBundlePBR/CommonStuffs/Prefab/Wave01/CharacterPBR/BatPBRDefault.prefab",
"run": "FlyFWD", "idle": "IdleBattle", "attack": "Attack01", "hit": "GetHit", "die": "Die", "stun": "Dizzy", "casting": "Taunting", "castingEnd": "Attack02",
"attackEvent": -1, "skillEvent": -1, "attackExit": 0.9, "hitExit": 0.85, "colliderWidthScale": 0.8, "agentRadiusRatio": 0.3
"run": "FlyFWD",
"idle": "IdleBattle",
"attack": "Attack01",
"hit": "GetHit",
"die": "Die",
"stun": "Dizzy",
"casting": "Taunting",
"castingEnd": "Attack02",
"attackEvent": -1,
"skillEvent": -1,
"attackExit": 0.9,
"hitExit": 0.85,
"colliderWidthScale": 0.8,
"agentRadiusRatio": 0.3
},
{
"monsterId": 102, "role": "원거리 · 비선공", "prefab": "WL/RPG_MonsterPlant", "scale": 0.33,
"monsterId": 102,
"role": "원거리 · 비선공",
"prefab": "WL/RPG_MonsterPlant",
"scale": 0.33,
"source": "Assets/RPGMonsterBundlePBR/CommonStuffs/Prefab/Wave01/CharacterPBR/MonsterPlantPBRDefault.prefab",
"run": "RunFWD", "idle": "IdleNormal", "attack": "Attack01", "hit": "GetHit", "die": "Die", "stun": "Dizzy", "casting": "Taunt", "castingEnd": "Attack02",
"attackEvent": -1, "skillEvent": -1, "attackExit": 0.9, "hitExit": 0.85, "colliderWidthScale": 0.8, "agentRadiusRatio": 0.3
"run": "RunFWD",
"idle": "IdleNormal",
"attack": "Attack01",
"hit": "GetHit",
"die": "Die",
"stun": "Dizzy",
"casting": "Taunt",
"castingEnd": "Attack02",
"attackEvent": -1,
"skillEvent": -1,
"attackExit": 0.9,
"hitExit": 0.85,
"colliderWidthScale": 0.8,
"agentRadiusRatio": 0.3
},
{
"monsterId": 103, "role": "근접 · 비선공", "prefab": "WL/RPG_Slime", "scale": 0.5,
"monsterId": 103,
"role": "근접 · 비선공",
"prefab": "WL/RPG_Slime",
"scale": 0.5,
"source": "Assets/RPGMonsterBundlePBR/CommonStuffs/Prefab/Wave01/CharacterPBR/SlimePBRDefault.prefab",
"run": "RunFWD", "idle": "IdleNormal", "attack": "Attack01", "hit": "GetHit", "die": "Die", "stun": "Dizzy", "casting": "Taunt", "castingEnd": "Attack02",
"attackEvent": -1, "skillEvent": -1, "attackExit": 0.9, "hitExit": 0.85, "colliderWidthScale": 0.8, "agentRadiusRatio": 0.3
"run": "RunFWD",
"idle": "IdleNormal",
"attack": "Attack01",
"hit": "GetHit",
"die": "Die",
"stun": "Dizzy",
"casting": "Taunt",
"castingEnd": "Attack02",
"attackEvent": -1,
"skillEvent": -1,
"attackExit": 0.9,
"hitExit": 0.85,
"colliderWidthScale": 0.8,
"agentRadiusRatio": 0.3
},
{
"monsterId": 104, "role": "원거리 · 선공", "prefab": "WL/RPG_EvilMage", "scale": 0.42,
"monsterId": 104,
"role": "원거리 · 선공",
"prefab": "WL/RPG_EvilMage",
"scale": 0.42,
"source": "Assets/RPGMonsterBundlePBR/CommonStuffs/Prefab/Wave01/CharacterPBR/EvilMagePBRDefault.prefab",
"run": "RunFWD", "idle": "IdleBattle", "attack": "Attack01", "hit": "GetHit", "die": "Die", "stun": "Dizzy", "casting": "Taunting", "castingEnd": "Attack02",
"attackEvent": -1, "skillEvent": -1, "attackExit": 0.9, "hitExit": 0.85, "colliderWidthScale": 0.8, "agentRadiusRatio": 0.3
"run": "RunFWD",
"idle": "IdleBattle",
"attack": "Attack01",
"hit": "GetHit",
"die": "Die",
"stun": "Dizzy",
"casting": "Taunting",
"castingEnd": "Attack02",
"attackEvent": -1,
"skillEvent": -1,
"attackExit": 0.9,
"hitExit": 0.85,
"colliderWidthScale": 0.8,
"agentRadiusRatio": 0.3
}
],
"note": "#907 PD 「RPG Monster BUNDLE PBR 몬스터 에셋으로 기본 몬스터 구성」 — 섬 기본 몹 101~104(스포너 1)를 번들 몬스터로 교체 · 역할(근접/원거리 · 선공/비선공)은 기존 101~104 그대로(WLMobAI.json aggro) · prefab = 표 s_MonsterPrefab 대체(Assets/Res_Addr/Mobs/ 아래) · scale = 표 f_DefaultScale 대체(실제 크기 = scale × WLGameplaySettings.mobBodyScale 1.5 · #816 — 박쥐 0.57 · 플랜트 0.50 · 슬라임 0.75 · 메이지 0.63 · PC 와 비슷한 크기로 Play 캡처 확인) · 나머지(source · 상태별 클립 · 판정 시점 · 전이)는 에디터 생성기 WLMobBuilder(메뉴 WL/Mobs/Build Lineup) 입력 · 대기 클립 = 선공 IdleBattle / 비선공 IdleNormal(선공 여부가 자세로 보이게) · 기존 Suriyun 박쥐 프리팹은 그대로 둠(PD 보류) · 되돌리기 = enabled 0"
]
}

View File

@ -1,21 +1,37 @@
{
"_note": "WL 장비 파츠 스킬 설정 (PD 지시 #879 · 2026-10-16) — 코드 상수 0(C45). 값은 제안값(PD 확인 전). 기획 정본 = 조직 레포 공유/기획팀_산출물/WL/파츠스킬_FR이식분류_2026-10-15/WL_파츠스킬_FR이식분류_v2.pptx",
"_note_levels": "레벨표 = FR 원본에서 만든 WLPartSkillLevels.csv(Tools/PartSkill/build_partskill_levels.py) + WL 변형 스킬 WLPartSkillLevelsWL.csv. 패시브 = WLPartPassiveLevels.csv",
"_note_defs": "WLPartSkillDefs.csv 열: v1~v3 = 동작별 보조 값 — earth_wall v1 방벽 크기(m) v2 방벽 높이(m · 바위 = 바닥 기준 0) · heal_heart v1 하트 유지(초) v2/v3 떨어지는 거리 최소/최대(m) · whirlwind v1 감속 비율 v2 감속(초) v3 띄움 기절(초) · water_spirit v1 감속 비율 v2 감속(초) · giant_hand v1 내리치기 지연(초) · tentacle v1 끌어당김 속도(m/s) · plague v1 병 비행(초) v2 시너지 감속 비율 v3 시너지 감속(초) · blades v1 시너지 추적 회전(도/초) · spin_axe v1 튕김 반경(m) v2 넉백(초) · p_breath v1 회복 주기(초) · 무기 시너지 v1 발동 확률 v2 N타마다 v3 최소 간격(초)",
"enabled": 1,
"verbose": 1,
"defsCsv": "WL/PartSkill/WLPartSkillDefs",
"itemMapCsv": "WL/PartSkill/WLPartSkillItemMap",
"levelCsvs": [ "WL/PartSkill/WLPartSkillLevels", "WL/PartSkill/WLPartSkillLevelsWL" ],
"levelCsvs": [
"WL/PartSkill/WLPartSkillLevels",
"WL/PartSkill/WLPartSkillLevelsWL"
],
"passiveCsv": "WL/PartSkill/WLPartPassiveLevels",
"statsJson": "WL/PartSkill/WLPartStats",
"fxFolder": "WL/PartSkill/Fx/",
"iconFolder": "WL/PartSkill/Icons/",
"_note_tier": "등급(1 일반 … 7 신화) → 스킬 단계 · 수치 배율(PD 10-16 「등급에 따라 개방 · 레벨 증가」 · 불멸 ×1.2 · 신화 ×1.5 = 제안값). 0 번 칸은 비움",
"tierLevel": [ 0, 1, 2, 3, 4, 5, 5, 5 ],
"tierMult": [ 1, 1, 1, 1, 1, 1, 1.2, 1.5 ],
"tierLevel": [
0,
1,
2,
3,
4,
5,
5,
5
],
"tierMult": [
1,
1,
1,
1,
1,
1,
1.2,
1.5
],
"synergyLevel": 5,
"_note_scale": "FR 거리·속도 단위 → WL 미터 환산(FR 검 사거리 3.3 · 활 9 ↔ WL 1.5 · 6 사이 제안값). intervalUnit = FR SpawnInterval 칸 1 의 초(추정)",
"distanceScale": 0.6,
"speedScale": 0.6,
"minRadius": 0.6,
@ -42,30 +58,81 @@
"corpseMemorySec": 4.0,
"axeTiltDeg": 90,
"axeSpinDegPerSec": 900,
"_note_clone": "#881 해머 무기 시너지 분신(PD 10-16 「분신이 나와서 공격」) — tint = RGBA(반투명 푸른빛) · life = 분신이 서 있는 초 · impactSec = 내려찍는 순간(이때 파동 피해) · fadeSec = 사라지는 초 · offset = 대상 옆 거리(m) · impactForward = 분신 앞 몇 m 에서 터지나 · spawnFx · spawnFxRadius = 나타날 때 반짝임 이펙트 · 반경(m) · maxAlive = 동시에 있을 수 있는 분신 수(모바일) · stripChildren = 복제에서 뺄 PC 자식(HUD) · shaderNames = 분신 재질 셰이더 후보(앞에서부터)",
"clone": {
"tint": [ 0.55, 0.8, 1.0, 0.55 ],
"tint": [
0.55,
0.8,
1.0,
0.55
],
"_note_timing": "파괴자 Attack3(클립 Attack3_S_10501 1.97 s · 상태 길이 1.51 s) 의 Projectile 이벤트 0.88 s → 상태 시간 0.67 s 에 타격(2026-10-16 Play 실측)",
"life": 1.0, "impactSec": 0.67, "fadeSec": 0.4, "offset": 1.3, "animSpeed": 1.0, "impactForward": 0.9,
"spawnFx": "fx_hit_star", "spawnFxRadius": 0.8, "maxAlive": 2,
"stripChildren": [ "HUD_HP", "HUD_Dmg", "HUD_Top" ],
"shaderNames": [ "Universal Render Pipeline/Unlit", "Unlit/Color", "Sprites/Default" ]
"life": 1.0,
"impactSec": 0.67,
"fadeSec": 0.4,
"offset": 1.3,
"animSpeed": 1.0,
"impactForward": 0.9,
"spawnFx": "fx_hit_star",
"spawnFxRadius": 0.8,
"maxAlive": 2,
"stripChildren": [
"HUD_HP",
"HUD_Dmg",
"HUD_Top"
],
"shaderNames": [
"Universal Render Pipeline/Unlit",
"Unlit/Color",
"Sprites/Default"
]
},
"fxHide": {
"fx_firewall": [
"BottomDecLight"
]
},
"_note_fx": "이펙트 키 = Resources/WL/PartSkill/Fx/<키>.prefab(원본 = Tools/PartSkill/partskill_assets.json) · fxRadius = 배율 1 일 때 그 이펙트의 반경(m · 스킬 범위에 맞춰 크기 계산 · 2026-10-16 Play 실측(파티클 위치 90 % 분위 + 캡처 대조)으로 맞춘 값)",
"_note_fxHide": "이펙트 키 → 켤 때 끌 하위 오브젝트 이름(바닥 빛이 지나치게 넓은 것 · Play 캡처 대조 2026-10-16)",
"fxHide": { "fx_firewall": [ "BottomDecLight" ] },
"fxRadius": {
"fx_sigil": 2.2, "fx_wall": 0.72, "fx_shield": 12.0, "fx_heart": 1.5, "fx_shockwave": 4.0,
"fx_spirit_fire": 1.5, "fx_breath_fire": 5.0, "fx_spirit_water": 1.5, "fx_frost": 2.2, "fx_king": 2.7,
"fx_meteor": 8.0, "fx_blizzard": 12.0, "fx_bolt": 3.0, "fx_bolt_hit": 12.0, "fx_soul": 1.5,
"fx_soul_boom": 6.0, "fx_blade": 3.0, "fx_blade_hit": 4.5, "fx_firewall": 2.2, "fx_tornado": 2.6,
"fx_plague_pool": 2.2, "fx_boom_poison": 5.0, "fx_plague_bottle": 2.0, "fx_spike": 8.0, "fx_boom_stone": 5.0,
"fx_thorn": 4.5, "fx_hand": 2.2, "fx_boom_toon": 4.2, "fx_axe": 5.3, "fx_axe_small": 0.4,
"fx_beam": 3.0, "fx_quake": 6.0, "fx_arrow": 1.5, "fx_bomb": 2.0, "fx_boom_small": 4.0,
"fx_hit_star": 4.5, "fx_heal": 2.0, "fx_shield_break": 3.0, "fx_synergy": 1.3,
"fx_sigil": 2.2,
"fx_wall": 0.72,
"fx_shield": 12.0,
"fx_heart": 1.5,
"fx_shockwave": 4.0,
"fx_spirit_fire": 1.5,
"fx_breath_fire": 5.0,
"fx_spirit_water": 1.5,
"fx_frost": 2.2,
"fx_king": 2.7,
"fx_meteor": 8.0,
"fx_blizzard": 12.0,
"fx_bolt": 3.0,
"fx_bolt_hit": 12.0,
"fx_soul": 1.5,
"fx_soul_boom": 6.0,
"fx_blade": 3.0,
"fx_blade_hit": 4.5,
"fx_firewall": 2.2,
"fx_tornado": 2.6,
"fx_plague_pool": 2.2,
"fx_boom_poison": 5.0,
"fx_plague_bottle": 2.0,
"fx_spike": 8.0,
"fx_boom_stone": 5.0,
"fx_thorn": 4.5,
"fx_hand": 2.2,
"fx_boom_toon": 4.2,
"fx_axe": 5.3,
"fx_axe_small": 0.4,
"fx_beam": 3.0,
"fx_quake": 6.0,
"fx_arrow": 1.5,
"fx_bomb": 2.0,
"fx_boom_small": 4.0,
"fx_hit_star": 4.5,
"fx_heal": 2.0,
"fx_shield_break": 3.0,
"fx_synergy": 1.3,
"fx_hit_hammer": 3.2
},
"_note_936": "#936 fx_hit_hammer = 해머 각성 대지 분쇄 피격(VFX_Klaus FX_Shoot_Bomb_01_hit 사본 · 연기 알파 0.4 · WLImpactFx 의 WL_Hit_HammerSkill 과 같은 이펙트) · 반경 3.2 = 편집 모드 실측 p75 지름 6.74 m 의 절반 근사 → hitFxScale 0.7 ÷ 3.2 = 배율 0.22(지름 약 1.5 m)",
"hud": {
"enabled": 1,
"sortingOrder": 30,
@ -80,13 +147,48 @@
"bannerFontPx": 56,
"bannerY": -420,
"colors": {
"bg": [ 0.08, 0.07, 0.12, 0.78 ],
"ring": [ 0.95, 0.85, 0.35, 1 ],
"cool": [ 0, 0, 0, 0.62 ],
"synergy": [ 1, 0.78, 0.2, 1 ],
"text": [ 1, 1, 1, 1 ],
"passive": [ 0.55, 0.85, 1, 1 ],
"banner": [ 1, 0.86, 0.3, 1 ]
"bg": [
0.08,
0.07,
0.12,
0.78
],
"ring": [
0.95,
0.85,
0.35,
1
],
"cool": [
0,
0,
0,
0.62
],
"synergy": [
1,
0.78,
0.2,
1
],
"text": [
1,
1,
1,
1
],
"passive": [
0.55,
0.85,
1,
1
],
"banner": [
1,
0.86,
0.3,
1
]
}
}
}

View File

@ -1,29 +1,210 @@
{
"_note": "장비 부위 기본 능력치 (PD 10-16 원문: 무기 = 무기 타입별 공격력 · 갑옷 = 방어력 · 장갑 = 생명력(PD 확정) · 신발 = 이동속도 · 반지 = 근접/원거리 공격력 중 랜덤 · 목걸이 = 랜덤 스탯). 수치 = 제안값(PD 확인 전) · 코드 상수 0(C45). 기본 수치 = FR 레벨표 값(levelField) × levelFactor + 주스탯 × 등급 % × statFactor(WLEquipStats 기존 식).",
"_note_units": "힘민지 스탯 단위: ATK_Multiplier · HP_Multiplier · DEF_Multiplier · MOVE(=WL 이동 배율) · PART_* = 0.1 이 10% · CRI 100 = 1% · CRI_DMG_Multiplier 100 = 1% · ATK_SPD_Multiplier · HP_REGEN_Multiplier = 실측 후 확정(아래 값은 0.1 = 10% 가정)",
"partStatNames": { "1": "무기 타입별 공격력", "2": "랜덤 스탯", "3": "생명력", "4": "방어력", "5": "근접/원거리 공격력", "6": "이동 속도" },
"meleeFamilies": [ "Sword", "Hammer", "Dagger", "Greatsword", "Spear" ],
"rangedFamilies": [ "Bow", "Staff" ],
"partStatNames": {
"1": "무기 타입별 공격력",
"2": "랜덤 스탯",
"3": "생명력",
"4": "방어력",
"5": "근접/원거리 공격력",
"6": "이동 속도"
},
"meleeFamilies": [
"Sword",
"Hammer",
"Dagger",
"Greatsword",
"Spear"
],
"rangedFamilies": [
"Bow",
"Staff"
],
"ringKinds": [
{ "id": "melee", "name": "근접 공격력" },
{ "id": "ranged", "name": "원거리 공격력" }
{
"id": "melee",
"name": "근접 공격력"
},
{
"id": "ranged",
"name": "원거리 공격력"
}
],
"renameItems": [
{ "equipType": 5, "from": "벨트", "to": "반지" }
{
"equipType": 5,
"from": "벨트",
"to": "반지"
}
],
"shoesMovePerTier": [
0,
0.02,
0.03,
0.04,
0.06,
0.08,
0.1,
0.12
],
"_note_ring": "반지 = 근접 · 원거리 중 하나(아이템 고유 번호로 결정) · 지금 무기 계열(WLWeaponAttackTable family)과 맞을 때만 공격력에 더한다",
"_note_tier": "perTier · shoesMovePerTier = 등급(0 비움 · 1 일반 … 7 신화)별 값",
"shoesMovePerTier": [ 0, 0.02, 0.03, 0.04, 0.06, 0.08, 0.10, 0.12 ],
"necklacePool": [
{ "id": "atk", "name": "공격력", "stat": "ATK_Multiplier", "perTier": [ 0, 0.02, 0.03, 0.05, 0.07, 0.10, 0.13, 0.16 ], "pct": 100 },
{ "id": "hp", "name": "생명력", "stat": "HP_Multiplier", "perTier": [ 0, 0.03, 0.05, 0.07, 0.10, 0.14, 0.18, 0.22 ], "pct": 100 },
{ "id": "def", "name": "방어력", "stat": "DEF_Multiplier", "perTier": [ 0, 0.03, 0.05, 0.07, 0.10, 0.14, 0.18, 0.22 ], "pct": 100 },
{ "id": "cri", "name": "치명타 확률", "stat": "CRI", "perTier": [ 0, 100, 150, 200, 300, 400, 500, 600 ], "pct": 0.01 },
{ "id": "cridmg", "name": "치명타 피해", "stat": "CRI_DMG_Multiplier", "perTier": [ 0, 500, 800, 1200, 1600, 2000, 2500, 3000 ], "pct": 0.01 },
{ "id": "aspd", "name": "공격 속도", "stat": "ATK_SPD_Multiplier", "perTier": [ 0, 0.02, 0.03, 0.04, 0.05, 0.07, 0.09, 0.11 ], "pct": 100 },
{ "id": "move", "name": "이동 속도", "stat": "MOVE", "perTier": [ 0, 0.02, 0.03, 0.04, 0.05, 0.06, 0.08, 0.10 ], "pct": 100 },
{ "id": "skill", "name": "스킬 피해", "stat": "PART_SKILL_DMG", "perTier": [ 0, 0.04, 0.06, 0.08, 0.11, 0.15, 0.19, 0.24 ], "pct": 100 },
{ "id": "cool", "name": "스킬 쿨 감소", "stat": "PART_SKILL_COOL", "perTier": [ 0, 0.02, 0.03, 0.04, 0.06, 0.08, 0.10, 0.12 ], "pct": 100 },
{ "id": "regen", "name": "생명력 재생", "stat": "HP_REGEN_Multiplier", "perTier": [ 0, 0.05, 0.08, 0.12, 0.16, 0.22, 0.28, 0.35 ], "pct": 100 }
{
"id": "atk",
"name": "공격력",
"stat": "ATK_Multiplier",
"perTier": [
0,
0.02,
0.03,
0.05,
0.07,
0.1,
0.13,
0.16
],
"pct": 100
},
{
"id": "hp",
"name": "생명력",
"stat": "HP_Multiplier",
"perTier": [
0,
0.03,
0.05,
0.07,
0.1,
0.14,
0.18,
0.22
],
"pct": 100
},
{
"id": "def",
"name": "방어력",
"stat": "DEF_Multiplier",
"perTier": [
0,
0.03,
0.05,
0.07,
0.1,
0.14,
0.18,
0.22
],
"pct": 100
},
{
"id": "cri",
"name": "치명타 확률",
"stat": "CRI",
"perTier": [
0,
100,
150,
200,
300,
400,
500,
600
],
"pct": 0.01
},
{
"id": "cridmg",
"name": "치명타 피해",
"stat": "CRI_DMG_Multiplier",
"perTier": [
0,
500,
800,
1200,
1600,
2000,
2500,
3000
],
"pct": 0.01
},
{
"id": "aspd",
"name": "공격 속도",
"stat": "ATK_SPD_Multiplier",
"perTier": [
0,
0.02,
0.03,
0.04,
0.05,
0.07,
0.09,
0.11
],
"pct": 100
},
{
"id": "move",
"name": "이동 속도",
"stat": "MOVE",
"perTier": [
0,
0.02,
0.03,
0.04,
0.05,
0.06,
0.08,
0.1
],
"pct": 100
},
{
"id": "skill",
"name": "스킬 피해",
"stat": "PART_SKILL_DMG",
"perTier": [
0,
0.04,
0.06,
0.08,
0.11,
0.15,
0.19,
0.24
],
"pct": 100
},
{
"id": "cool",
"name": "스킬 쿨 감소",
"stat": "PART_SKILL_COOL",
"perTier": [
0,
0.02,
0.03,
0.04,
0.06,
0.08,
0.1,
0.12
],
"pct": 100
},
{
"id": "regen",
"name": "생명력 재생",
"stat": "HP_REGEN_Multiplier",
"perTier": [
0,
0.05,
0.08,
0.12,
0.16,
0.22,
0.28,
0.35
],
"pct": 100
}
]
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
# WLEquipBoxTable — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/Equip/Resources/WL/WLEquipBoxTable.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## _note_pd
PD 2026-10-09 원문: 「50회 달성 시 S급 천장, 10회마다 에픽급 확정」 · 「전설 = S」 · 열쇠 가격은 재화 가치 산정 후(보류)
## _note_lead
Lead 해석·제안(PD 미지정): epicEvery = 누적 개봉 수 기준(10·20·30…회째) · sPity = 마지막 S급 뒤 개봉 수 기준(자연 S급이 나오면 리셋) · 천장과 에픽 확정이 같은 회차면 천장 우선 · tierWeights = 등급별 출현 가중치(제안값 · 불멸·신화는 상자 미출현 = 합성 승급만) · keyCost = 열쇠 개수만

View File

@ -0,0 +1,19 @@
# WLEquipGui — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/Equip/Resources/WL/WLEquipGui.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## _note_pd
PD 2026-10-12: 장비 화면을 첨부 레퍼런스 형태(캐릭터 중심 + 좌우 장착 슬롯 6 + 하단 부위 탭/합성 버튼 + 5열 그리드)로 재설계 · 「대장간」 대신 「합성」 · FR ComposePopup 흐름 · Layer Lab 활용 → 같은 날 2차 「캐릭터가 밝은데 배경이 너무 어둡다 · 레이어랩 캐주얼 게임 비주얼(SuperCasual 장비 화면 첨부)처럼 더 밝은 톤의 이미지 리소스로 교체」
## _note_lead
UI 그림 = Layer Lab GUI Pro-SuperCasual(EerieVillage 프로젝트 보유분 → Assets/WL/UI/LayerLabCasual/Resources/WLLayerLabCasual · 111장 · 커밋 대상). 캐주얼 키트에 없는 부위 아이콘·열쇠·강화석·초상은 판타지 키트(uiFallbackFolder) · 무기 아이콘은 XP Hero 로컬 더미(refFolder). 등급 칸 = 등급마다 색 칸 그림(tierSprites · tintTierBg 0). 치수 = 1080×1920 기준 px
## _note_colors
캐주얼 톤 — 상단 보라 띠 · 무대 파랑 · 아래 남색 패널 · 글자 흰색 + 진남색 외곽선(textOutline) (colors 안에는 문자열 키를 넣지 말 것 · float[] 사전)
## _note_tierSprites
등급마다 SuperCasual 색 칸(ItemFrame01_Single_*) — 일반 회색 · 고급 초록 · 희귀 파랑 · 에픽 보라 · 전설(S) 노랑 · 불멸 빨강 · 신화 홀로그램 (WLGradeTable.json 색 순서와 같은 계열)
## _note_weaponIcons
FR 무기 그룹 → XP Hero 무기 아이콘(등급 7단계 순서대로 변형 번호 · 로컬 더미 · ComfyUI 제작분으로 교체 대상)

View File

@ -0,0 +1,16 @@
# WLGradeTable — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/Equip/Resources/WL/WLGradeTable.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## _note_pd
PD 2026-10-09 원문: 등급 7단계 일반(회색) 10 % · 고급(녹색) 25 % · 희귀(파란색) 50 % · 에픽(보라색) 80 % · 전설(주황색) 120 % · 불멸(붉은색) 200 % · 신화(하늘색) 400 % = 「기본 수치 + 스텟 N % 비중」 · 전설 = S · 배율 상한 없음
## _note_lead
Lead 해석·제안(PD 미지정): 스탯 = 직업 주스탯(힘·민첩·지능) · 기본 수치 = FR 레벨표 값 × levelStatScale · 색 hex 값 · frMap = FR 이식 데이터 14단계 → WL 등급 대응(정식 데이터 재작성 때 1단계=1등급으로 재정렬 가능) · parts.statFactor = 주스탯 1당 환산 계수(제안값) · 공식 = 기본 수치 + 주스탯 × statPercent/100 × statFactor
## _note_parts_879
#879 PD 10-16 원문 「무기 : 무기 타입별 공격력 · 갑옷 : 방어력 · 장갑 : 생명력(PD 확정 · 원문 벨트 = 장갑) · 부츠 : 이동속도 · 반지 : 근접 공격력과 원거리 공격력 중 랜덤 · 목걸이 : 랜덤 스텟」 + 슬롯 벨트 → 반지. FR 레벨표는 무기 · 장갑 · 목걸이 = 공격 칸 · 갑옷 · 벨트 · 신발 = 체력 칸뿐이라 levelFactor 로 환산(제안값). RING = 근접/원거리 중 하나(무기 계열이 맞을 때만 공격력) · MOVE · RANDOM = Resources/WL/PartSkill/WLPartStats.json(배율 · 등급별)
## _note_895
#895 (2026-10-17) PD 「모든 무기의 일반(회색) 등급은 아무런 효과가 없어야 하고」 → parts 무기 noEffectTiers [1] = 일반 무기는 능력치(기본 수치 · 주스탯 %) · 파츠 스킬이 0 (WLEquipGrades.NoEffect · WLEquipStats · WLPartSkillState)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
# WLMobLineup — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/Mobs/Resources/WL/WLMobLineup.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## note
#907 PD 「RPG Monster BUNDLE PBR 몬스터 에셋으로 기본 몬스터 구성」 — 섬 기본 몹 101~104(스포너 1)를 번들 몬스터로 교체 · 역할(근접/원거리 · 선공/비선공)은 기존 101~104 그대로(WLMobAI.json aggro) · prefab = 표 s_MonsterPrefab 대체(Assets/Res_Addr/Mobs/ 아래) · scale = 표 f_DefaultScale 대체(실제 크기 = scale × WLGameplaySettings.mobBodyScale 1.5 · #816 — 박쥐 0.57 · 플랜트 0.50 · 슬라임 0.75 · 메이지 0.63 · PC 와 비슷한 크기로 Play 캡처 확인) · 나머지(source · 상태별 클립 · 판정 시점 · 전이)는 에디터 생성기 WLMobBuilder(메뉴 WL/Mobs/Build Lineup) 입력 · 대기 클립 = 선공 IdleBattle / 비선공 IdleNormal(선공 여부가 자세로 보이게) · 기존 Suriyun 박쥐 프리팹은 그대로 둠(PD 보류) · 되돌리기 = enabled 0

View File

@ -0,0 +1,31 @@
# WLPartSkill — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartSkill.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## _note
WL 장비 파츠 스킬 설정 (PD 지시 #879 · 2026-10-16) — 코드 상수 0(C45). 값은 제안값(PD 확인 전). 기획 정본 = 조직 레포 공유/기획팀_산출물/WL/파츠스킬_FR이식분류_2026-10-15/WL_파츠스킬_FR이식분류_v2.pptx
## _note_levels
레벨표 = FR 원본에서 만든 WLPartSkillLevels.csv(Tools/PartSkill/build_partskill_levels.py) + WL 변형 스킬 WLPartSkillLevelsWL.csv. 패시브 = WLPartPassiveLevels.csv
## _note_defs
WLPartSkillDefs.csv 열: v1~v3 = 동작별 보조 값 — earth_wall v1 방벽 크기(m) v2 방벽 높이(m · 바위 = 바닥 기준 0) · heal_heart v1 하트 유지(초) v2/v3 떨어지는 거리 최소/최대(m) · whirlwind v1 감속 비율 v2 감속(초) v3 띄움 기절(초) · water_spirit v1 감속 비율 v2 감속(초) · giant_hand v1 내리치기 지연(초) · tentacle v1 끌어당김 속도(m/s) · plague v1 병 비행(초) v2 시너지 감속 비율 v3 시너지 감속(초) · blades v1 시너지 추적 회전(도/초) · spin_axe v1 튕김 반경(m) v2 넉백(초) · p_breath v1 회복 주기(초) · 무기 시너지 v1 발동 확률 v2 N타마다 v3 최소 간격(초)
## _note_tier
등급(1 일반 … 7 신화) → 스킬 단계 · 수치 배율(PD 10-16 「등급에 따라 개방 · 레벨 증가」 · 불멸 ×1.2 · 신화 ×1.5 = 제안값). 0 번 칸은 비움
## _note_scale
FR 거리·속도 단위 → WL 미터 환산(FR 검 사거리 3.3 · 활 9 ↔ WL 1.5 · 6 사이 제안값). intervalUnit = FR SpawnInterval 칸 1 의 초(추정)
## _note_clone
#881 해머 무기 시너지 분신(PD 10-16 「분신이 나와서 공격」) — tint = RGBA(반투명 푸른빛) · life = 분신이 서 있는 초 · impactSec = 내려찍는 순간(이때 파동 피해) · fadeSec = 사라지는 초 · offset = 대상 옆 거리(m) · impactForward = 분신 앞 몇 m 에서 터지나 · spawnFx · spawnFxRadius = 나타날 때 반짝임 이펙트 · 반경(m) · maxAlive = 동시에 있을 수 있는 분신 수(모바일) · stripChildren = 복제에서 뺄 PC 자식(HUD) · shaderNames = 분신 재질 셰이더 후보(앞에서부터)
## _note_fx
이펙트 키 = Resources/WL/PartSkill/Fx/<키>.prefab(원본 = Tools/PartSkill/partskill_assets.json) · fxRadius = 배율 1 일 때 그 이펙트의 반경(m · 스킬 범위에 맞춰 크기 계산 · 2026-10-16 Play 실측(파티클 위치 90 % 분위 + 캡처 대조)으로 맞춘 값)
## _note_fxHide
이펙트 키 → 켤 때 끌 하위 오브젝트 이름(바닥 빛이 지나치게 넓은 것 · Play 캡처 대조 2026-10-16)
## _note_936
#936 fx_hit_hammer = 해머 각성 대지 분쇄 피격(VFX_Klaus FX_Shoot_Bomb_01_hit 사본 · 연기 알파 0.4 · WLImpactFx 의 WL_Hit_HammerSkill 과 같은 이펙트) · 반경 3.2 = 편집 모드 실측 p75 지름 6.74 m 의 절반 근사 → hitFxScale 0.7 ÷ 3.2 = 배율 0.22(지름 약 1.5 m)

View File

@ -0,0 +1,16 @@
# WLPartStats — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19)
값 파일 = `Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartStats.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다.
## _note
장비 부위 기본 능력치 (PD 10-16 원문: 무기 = 무기 타입별 공격력 · 갑옷 = 방어력 · 장갑 = 생명력(PD 확정) · 신발 = 이동속도 · 반지 = 근접/원거리 공격력 중 랜덤 · 목걸이 = 랜덤 스탯). 수치 = 제안값(PD 확인 전) · 코드 상수 0(C45). 기본 수치 = FR 레벨표 값(levelField) × levelFactor + 주스탯 × 등급 % × statFactor(WLEquipStats 기존 식).
## _note_units
힘민지 스탯 단위: ATK_Multiplier · HP_Multiplier · DEF_Multiplier · MOVE(=WL 이동 배율) · PART_* = 0.1 이 10% · CRI 100 = 1% · CRI_DMG_Multiplier 100 = 1% · ATK_SPD_Multiplier · HP_REGEN_Multiplier = 실측 후 확정(아래 값은 0.1 = 10% 가정)
## _note_ring
반지 = 근접 · 원거리 중 하나(아이템 고유 번호로 결정) · 지금 무기 계열(WLWeaponAttackTable family)과 맞을 때만 공격력에 더한다
## _note_tier
perTier · shoesMovePerTier = 등급(0 비움 · 1 일반 … 7 신화)별 값