From c421d272fc798995a29667118d1c87f42d1e6342 Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 19 Oct 2026 00:12:13 +0900 Subject: [PATCH] =?UTF-8?q?[WL]=20#937-6=20=EC=9D=B4=EB=A0=A5=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D=20=EB=B6=84=EB=A6=AC=20=EB=82=98=EB=A8=B8=EC=A7=80=20?= =?UTF-8?q?=E2=80=94=20=EB=B0=B0=EC=97=B4=ED=98=95=20=ED=91=9C=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EA=B1=B4=EB=84=88=EB=9C=80=20=C2=B7=20=5Fhistory?= =?UTF-8?q?=20=ED=82=A4=20=EC=A0=9C=EA=B1=B0(=EB=A7=B5=ED=98=95=20?= =?UTF-8?q?=EB=A1=9C=EB=8D=94=20=EB=B3=B4=ED=98=B8)=20=C2=B7=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20JSON=20=ED=8C=8C=EC=8B=B1=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- .../Dodge/Resources/WL/WLDoubleTapDodge.json | 3 +- .../Impact/Resources/WL/WLImpactFx.json | 3 +- .../Reaction/Resources/WL/WLFlyingHitbox.json | 3 +- .../Reaction/Resources/WL/WLSkillHitFeel.json | 3 +- .../Combat/Resources/WL/WLAttackFacing.json | 3 +- .../Combat/Settings/Resources/WL/WLMobAI.json | 3 +- .../Combat/Status/Resources/WL/WLStatus.json | 3 +- .../Weapon/Resources/WL/WLBladeStorm.json | 3 +- .../Weapon/Resources/WL/WLGreatWave.json | 3 +- .../Weapon/Resources/WL/WLHitboxFit.json | 3 +- .../Weapon/Resources/WL/WLJumpSlam.json | 3 +- .../Resources/WL/WLProjectileVisual.json | 3 +- .../Weapon/Resources/WL/WLRapidShot.json | 3 +- .../Weapon/Resources/WL/WLSkillApproach.json | 3 +- .../Weapon/Resources/WL/WLSkillCancel.json | 3 +- .../Weapon/Resources/WL/WLSkillChain.json | 3 +- .../Weapon/Resources/WL/WLSkillFollow.json | 3 +- .../Weapon/Resources/WL/WLSkillHotkey.json | 3 +- .../Weapon/Resources/WL/WLSkillVfx.json | 3 +- .../Weapon/Resources/WL/WLSlashFlurry.json | 3 +- .../Weapon/Resources/WL/WLStaffEarth.json | 3 +- .../Resources/WL/WLStageHitReaction.json | 3 +- .../Weapon/Resources/WL/WLStarterKit.json | 3 +- .../Weapon/Resources/WL/WLWeaponAxis.json | 3 +- .../Weapon/Resources/WL/WLWeaponClasses.json | 3 +- .../Resources/WL/WLWeaponGradeCheat.json | 3 +- .../Equip/Resources/WL/WLEquipBoxTable.json | 27 +- Assets/WL/Equip/Resources/WL/WLEquipGui.json | 1091 ++++++++++++++--- .../WL/Equip/Resources/WL/WLGradeTable.json | 215 +++- Assets/WL/Mobs/Resources/WL/WLMobLineup.json | 87 +- .../Resources/WL/PartSkill/WLPartSkill.json | 168 ++- .../Resources/WL/PartSkill/WLPartStats.json | 223 +++- .../PartSkill/Resources/WL/WLHammerQuake.json | 21 +- Docs/WLJsonHistory/WLEquipBoxTable.history.md | 10 + Docs/WLJsonHistory/WLEquipGui.history.md | 19 + Docs/WLJsonHistory/WLGradeTable.history.md | 16 + Docs/WLJsonHistory/WLHammerQuake.history.md | 7 + Docs/WLJsonHistory/WLMobLineup.history.md | 7 + Docs/WLJsonHistory/WLPartSkill.history.md | 31 + Docs/WLJsonHistory/WLPartStats.history.md | 16 + 40 files changed, 1690 insertions(+), 326 deletions(-) create mode 100644 Docs/WLJsonHistory/WLEquipBoxTable.history.md create mode 100644 Docs/WLJsonHistory/WLEquipGui.history.md create mode 100644 Docs/WLJsonHistory/WLGradeTable.history.md create mode 100644 Docs/WLJsonHistory/WLHammerQuake.history.md create mode 100644 Docs/WLJsonHistory/WLMobLineup.history.md create mode 100644 Docs/WLJsonHistory/WLPartSkill.history.md create mode 100644 Docs/WLJsonHistory/WLPartStats.history.md diff --git a/Assets/WL/Combat/Dodge/Resources/WL/WLDoubleTapDodge.json b/Assets/WL/Combat/Dodge/Resources/WL/WLDoubleTapDodge.json index 154535761..e5dc2ab4d 100644 --- a/Assets/WL/Combat/Dodge/Resources/WL/WLDoubleTapDodge.json +++ b/Assets/WL/Combat/Dodge/Resources/WL/WLDoubleTapDodge.json @@ -7,6 +7,5 @@ "ignoreOverButtons": 1, "allowDuringSkill": 1, "minDirDistance": 0.3, - "dustScale": 0.6, - "_history": "Docs/WLJsonHistory/WLDoubleTapDodge.history.md" + "dustScale": 0.6 } diff --git a/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json b/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json index 8260f6ef3..8f3c47e55 100644 --- a/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json +++ b/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json @@ -292,6 +292,5 @@ "Projectile_10401", "Projectile_10402" ] - }, - "_history": "Docs/WLJsonHistory/WLImpactFx.history.md" + } } diff --git a/Assets/WL/Combat/Reaction/Resources/WL/WLFlyingHitbox.json b/Assets/WL/Combat/Reaction/Resources/WL/WLFlyingHitbox.json index 429aed47b..17ef03932 100644 --- a/Assets/WL/Combat/Reaction/Resources/WL/WLFlyingHitbox.json +++ b/Assets/WL/Combat/Reaction/Resources/WL/WLFlyingHitbox.json @@ -1,6 +1,5 @@ { "enabled": 1, "minGap": 0.1, - "groundPad": 0.0, - "_history": "Docs/WLJsonHistory/WLFlyingHitbox.history.md" + "groundPad": 0.0 } diff --git a/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json b/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json index 5490907ab..68b7c6b94 100644 --- a/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json +++ b/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json @@ -13,6 +13,5 @@ "knockbackScale": 0.0, "staggerSeconds": 0.0 } - ], - "_history": "Docs/WLJsonHistory/WLSkillHitFeel.history.md" + ] } diff --git a/Assets/WL/Combat/Resources/WL/WLAttackFacing.json b/Assets/WL/Combat/Resources/WL/WLAttackFacing.json index 20d2a41f1..67f092834 100644 --- a/Assets/WL/Combat/Resources/WL/WLAttackFacing.json +++ b/Assets/WL/Combat/Resources/WL/WLAttackFacing.json @@ -2,6 +2,5 @@ "enabled": 1, "turnDegPerSec": 1440, "snapAtHitbox": 1, - "minDistance": 0.05, - "_history": "Docs/WLJsonHistory/WLAttackFacing.history.md" + "minDistance": 0.05 } diff --git a/Assets/WL/Combat/Settings/Resources/WL/WLMobAI.json b/Assets/WL/Combat/Settings/Resources/WL/WLMobAI.json index 82687c010..56c2a42d2 100644 --- a/Assets/WL/Combat/Settings/Resources/WL/WLMobAI.json +++ b/Assets/WL/Combat/Settings/Resources/WL/WLMobAI.json @@ -20,6 +20,5 @@ "monsterId": 104, "aggressive": 1 } - ], - "_history": "Docs/WLJsonHistory/WLMobAI.history.md" + ] } diff --git a/Assets/WL/Combat/Status/Resources/WL/WLStatus.json b/Assets/WL/Combat/Status/Resources/WL/WLStatus.json index ebfa5dbe0..657812002 100644 --- a/Assets/WL/Combat/Status/Resources/WL/WLStatus.json +++ b/Assets/WL/Combat/Status/Resources/WL/WLStatus.json @@ -92,6 +92,5 @@ "stunAfterKnockback": true, "knockbackMaxWait": 0.6 } - ], - "_history": "Docs/WLJsonHistory/WLStatus.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLBladeStorm.json b/Assets/WL/Combat/Weapon/Resources/WL/WLBladeStorm.json index c1ba6d387..b02d04c44 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLBladeStorm.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLBladeStorm.json @@ -57,6 +57,5 @@ "Body", "Arm" ], - "bodyOnTopWeapon": 0, - "_history": "Docs/WLJsonHistory/WLBladeStorm.history.md" + "bodyOnTopWeapon": 0 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLGreatWave.json b/Assets/WL/Combat/Weapon/Resources/WL/WLGreatWave.json index 6cebd032b..6dcfb8f3d 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLGreatWave.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLGreatWave.json @@ -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 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLHitboxFit.json b/Assets/WL/Combat/Weapon/Resources/WL/WLHitboxFit.json index 8847fc529..9f7e04f89 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLHitboxFit.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLHitboxFit.json @@ -124,6 +124,5 @@ "stage": 3, "frontReach": 1.76 } - ], - "_history": "Docs/WLJsonHistory/WLHitboxFit.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLJumpSlam.json b/Assets/WL/Combat/Weapon/Resources/WL/WLJumpSlam.json index e2a7feb51..96535a0b4 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLJumpSlam.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLJumpSlam.json @@ -9,6 +9,5 @@ "landAt": 0.8, "crossFade": 0.08 } - ], - "_history": "Docs/WLJsonHistory/WLJumpSlam.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json b/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json index 7514a9af4..4835c4c14 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json @@ -55,6 +55,5 @@ "hitScale": 0.3, "hitLife": 1.5 } - ], - "_history": "Docs/WLJsonHistory/WLProjectileVisual.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLRapidShot.json b/Assets/WL/Combat/Weapon/Resources/WL/WLRapidShot.json index ded7c401c..3be375fcc 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLRapidShot.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLRapidShot.json @@ -37,6 +37,5 @@ "aimBody": 1, "chargeBlocksMove": 1, "holdThroughShots": 1, - "holdMaxSeconds": 3.0, - "_history": "Docs/WLJsonHistory/WLRapidShot.history.md" + "holdMaxSeconds": 3.0 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillApproach.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillApproach.json index 8c891dee9..2bab11d25 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillApproach.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillApproach.json @@ -18,6 +18,5 @@ "clipHoldSeconds": 0.2, "crossFade": 0.06 } - ], - "_history": "Docs/WLJsonHistory/WLSkillApproach.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillCancel.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillCancel.json index ad063d706..72f05811f 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillCancel.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillCancel.json @@ -15,6 +15,5 @@ "Skill_DashSlash" ], "holdUntilFire": 1, - "holdMaxSeconds": 1.5, - "_history": "Docs/WLJsonHistory/WLSkillCancel.history.md" + "holdMaxSeconds": 1.5 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillChain.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillChain.json index e112cee1f..ab62cc013 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillChain.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillChain.json @@ -3,6 +3,5 @@ "delay": 0.12, "cancelTrigger": 1, "maxWait": 1.0, - "minRange": 4.0, - "_history": "Docs/WLJsonHistory/WLSkillChain.history.md" + "minRange": 4.0 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillFollow.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillFollow.json index 40e4858da..c6a5f8dc5 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillFollow.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillFollow.json @@ -10,6 +10,5 @@ "startGraceSeconds": 0.5, "inputDeadzone": 0.2, "faceTarget": 1, - "deferBrake": 1, - "_history": "Docs/WLJsonHistory/WLSkillFollow.history.md" + "deferBrake": 1 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillHotkey.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillHotkey.json index e46fa4ae4..02c8831d8 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillHotkey.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillHotkey.json @@ -9,6 +9,5 @@ "messageTopRatio": 0.18, "key2": "E", "slot2": 2, - "ignoreRange": 1, - "_history": "Docs/WLJsonHistory/WLSkillHotkey.history.md" + "ignoreRange": 1 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillVfx.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillVfx.json index 5ec4c1db5..018c58a4a 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillVfx.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillVfx.json @@ -230,6 +230,5 @@ "multiHitInterval": 0.11, "lifeSeconds": 3.2 } - ], - "_history": "Docs/WLJsonHistory/WLSkillVfx.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSlashFlurry.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSlashFlurry.json index e7f7b62b9..3fd0db061 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLSlashFlurry.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSlashFlurry.json @@ -101,6 +101,5 @@ "from": "sl-g01g3", "to": "WL/Fx/Stab930/sl-g01g3_S" } - ], - "_history": "Docs/WLJsonHistory/WLSlashFlurry.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLStaffEarth.json b/Assets/WL/Combat/Weapon/Resources/WL/WLStaffEarth.json index 94ac777d7..86dd940ec 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLStaffEarth.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLStaffEarth.json @@ -129,6 +129,5 @@ "launchHeight": 1.5, "launchSeconds": 0.6, "stunSeconds": 0.5 - }, - "_history": "Docs/WLJsonHistory/WLStaffEarth.history.md" + } } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLStageHitReaction.json b/Assets/WL/Combat/Weapon/Resources/WL/WLStageHitReaction.json index 8e3ec698a..f85016394 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLStageHitReaction.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLStageHitReaction.json @@ -38,6 +38,5 @@ "knockbackDistance": 2.0, "wallBounce": 1 } - ], - "_history": "Docs/WLJsonHistory/WLStageHitReaction.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLStarterKit.json b/Assets/WL/Combat/Weapon/Resources/WL/WLStarterKit.json index 943205aa2..3579aa92c 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLStarterKit.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLStarterKit.json @@ -13,6 +13,5 @@ 9008 ], "synergyPartners": 1, - "equipPartners": 0, - "_history": "Docs/WLJsonHistory/WLStarterKit.history.md" + "equipPartners": 0 } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponAxis.json b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponAxis.json index 4c70d61f0..f6d49a7b8 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponAxis.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponAxis.json @@ -30,6 +30,5 @@ "scale": 0.01, "name": "치명타 피해량" } - ], - "_history": "Docs/WLJsonHistory/WLWeaponAxis.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponClasses.json b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponClasses.json index 95185c79f..93bdcf057 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponClasses.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponClasses.json @@ -112,6 +112,5 @@ 0 ] } - ], - "_history": "Docs/WLJsonHistory/WLWeaponClasses.history.md" + ] } diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponGradeCheat.json b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponGradeCheat.json index eea59e15a..1f0f21d61 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponGradeCheat.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLWeaponGradeCheat.json @@ -2,6 +2,5 @@ "enabled": 1, "messageSeconds": 2.5, "messageFontScale": 0.028, - "messageTopRatio": 0.12, - "_history": "Docs/WLJsonHistory/WLWeaponGradeCheat.history.md" + "messageTopRatio": 0.12 } diff --git a/Assets/WL/Equip/Resources/WL/WLEquipBoxTable.json b/Assets/WL/Equip/Resources/WL/WLEquipBoxTable.json index ffbfaac60..5f8f5486f 100644 --- a/Assets/WL/Equip/Resources/WL/WLEquipBoxTable.json +++ b/Assets/WL/Equip/Resources/WL/WLEquipBoxTable.json @@ -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, diff --git a/Assets/WL/Equip/Resources/WL/WLEquipGui.json b/Assets/WL/Equip/Resources/WL/WLEquipGui.json index 22ec8aa47..5fe6666bd 100644 --- a/Assets/WL/Equip/Resources/WL/WLEquipGui.json +++ b/Assets/WL/Equip/Resources/WL/WLEquipGui.json @@ -1,6 +1,4 @@ { - "_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", "uiFolder": "WLLayerLabCasual", "uiFallbackFolder": "WLLayerLab", "refFolder": "XPHeroRef", @@ -9,204 +7,971 @@ "tintTierBg": 0, "textOutline": 0.22, "hub": { - "edge": 24, "topBarH": 150, - "autoBtnW": 230, "autoBtnH": 96, "autoFontPx": 34, - "pillW": 200, "pillH": 72, "pillIcon": 70, "pillFontPx": 32, "pillGap": 10, "pillAddBtn": 58, - "stageTop": 230, "stageH": 680, - "previewW": 760, "previewH": 760, "previewY": 60, - "glowW": 760, "glowH": 760, "glowY": 30, "platformW": 300, "platformH": 64, "platformY": 0, "shadowAtFeet": 1, - "slotSize": 190, "slotGap": 34, "slotX": 30, "slotTop": 10, "slotIconInset": 30, "slotFontPx": 28, "slotLvH": 44, "slotBadge": 64, "slotNameFontPx": 0, - "statPillW": 300, "statPillH": 84, "statIcon": 72, "statFontPx": 40, "statGap": 24, "statY": -52, - "tabTop": 1004, "tabH": 92, "tabGap": 8, "tabIcon": 70, "composeBtnW": 230, "composeBtnH": 104, "composeFontPx": 40, - "gridTop": 1112, "gridBottom": 1780, "gridCols": 5, - "gridCell": 180, "gridGap": 14, "gridPad": 20, "cellIconInset": 24, "cellPin": 54, "cellFontPx": 28, "cellTagH": 44, "cellLvH": 40, "cellRim": 0, "slotRim": 0, - "backBtn": 110, "backY": 24, "cheatBtnW": 220, "cheatBtnH": 80, "messageFontPx": 26, - "previewRtW": 768, "previewRtH": 800, - "camOrtho": 1.25, "camY": 0.95, "camDist": 6, "modelYaw": 180, "lightIntensity": 0, "lightPitch": 40, "lightYaw": -30, "rigY": -2000, - "topBarFill": 120, "lowerPanelTop": 990, "tabStripPad": 10, "tabLineH": 8, "backFlushLeft": 1, "backBtnW": 150, + "edge": 24, + "topBarH": 150, + "autoBtnW": 230, + "autoBtnH": 96, + "autoFontPx": 34, + "pillW": 200, + "pillH": 72, + "pillIcon": 70, + "pillFontPx": 32, + "pillGap": 10, + "pillAddBtn": 58, + "stageTop": 230, + "stageH": 680, + "previewW": 760, + "previewH": 760, + "previewY": 60, + "glowW": 760, + "glowH": 760, + "glowY": 30, + "platformW": 300, + "platformH": 64, + "platformY": 0, + "shadowAtFeet": 1, + "slotSize": 190, + "slotGap": 34, + "slotX": 30, + "slotTop": 10, + "slotIconInset": 30, + "slotFontPx": 28, + "slotLvH": 44, + "slotBadge": 64, + "slotNameFontPx": 0, + "statPillW": 300, + "statPillH": 84, + "statIcon": 72, + "statFontPx": 40, + "statGap": 24, + "statY": -52, + "tabTop": 1004, + "tabH": 92, + "tabGap": 8, + "tabIcon": 70, + "composeBtnW": 230, + "composeBtnH": 104, + "composeFontPx": 40, + "gridTop": 1112, + "gridBottom": 1780, + "gridCols": 5, + "gridCell": 180, + "gridGap": 14, + "gridPad": 20, + "cellIconInset": 24, + "cellPin": 54, + "cellFontPx": 28, + "cellTagH": 44, + "cellLvH": 40, + "cellRim": 0, + "slotRim": 0, + "backBtn": 110, + "backY": 24, + "cheatBtnW": 220, + "cheatBtnH": 80, + "messageFontPx": 26, + "previewRtW": 768, + "previewRtH": 800, + "camOrtho": 1.25, + "camY": 0.95, + "camDist": 6, + "modelYaw": 180, + "lightIntensity": 0, + "lightPitch": 40, + "lightYaw": -30, + "rigY": -2000, + "topBarFill": 120, + "lowerPanelTop": 990, + "tabStripPad": 10, + "tabLineH": 8, + "backFlushLeft": 1, + "backBtnW": 150, "_note_slotTypes_879": "#879 PD 10-16 슬롯 배치 — 자리 순서 왼쪽 위 · 가운데 · 아래 / 오른쪽 위 · 가운데 · 아래 = 무기(1) · 장갑(3) · 반지(5) / 갑옷(4) · 신발(6) · 목걸이(2) · 탭 · 그리드는 장착 스킬 줄 자리만큼 아래로(1000 → 1150 · 1130 → 1280)", - "slotTypes": [1, 3, 5, 4, 6, 2], + "slotTypes": [ + 1, + 3, + 5, + 4, + 6, + 2 + ], "_note_ref_881": "#881 PD 레퍼런스(인벤토리 화면) — 능력치 알약 = 무대 위(statY 음수) · 슬롯 아래 글자 없음(slotNameFontPx 0 · 부위 = 핀) · 부위 탭 대신 「정렬 · 나의 장비 · 합성」 머리줄 · 그리드 = 장착분 제외 · 칸 = Lv 오른쪽 위 · S 왼쪽 아래 · +단계 마름모", - "headerMode": 1, "headerH": 92, "headerBtnW": 230, "headerFontPx": 44, "headerBtnFontPx": 34, - "gridHideEquipped": 1, "slotPin": 1, "cellRefLayout": 1, "plusSize": 40, "plusFontPx": 24, - "sortLabels": ["등급순", "레벨순"], "gridTitle": "나의 장비" + "headerMode": 1, + "headerH": 92, + "headerBtnW": 230, + "headerFontPx": 44, + "headerBtnFontPx": 34, + "gridHideEquipped": 1, + "slotPin": 1, + "cellRefLayout": 1, + "plusSize": 40, + "plusFontPx": 24, + "sortLabels": [ + "등급순", + "레벨순" + ], + "gridTitle": "나의 장비" }, "itemPopup": { "_note": "#881 PD 레퍼런스 장비 팝업 — 등급 리본 · 제목 띠 · 아이콘 + 레벨 · 능력치(+다음 레벨) · 합성/강등 작은 버튼 · 짧은 설명 · 등급 스킬(등급 색 점 · 잠긴 등급 자물쇠) · 비용 · 버튼 3", "enabled": 1, - "w": 900, "h": 1220, "ribbonW": 300, "ribbonH": 56, "ribbonFontPx": 28, "titleH": 116, "titleFontPx": 48, "pad": 28, - "iconSize": 210, "levelFontPx": 28, "statH": 92, "statIcon": 64, "statFontPx": 42, "statDeltaFontPx": 32, "smallBtn": 92, "smallBtnFontPx": 24, "gap": 16, - "descH": 132, "descFontPx": 26, "sectionTitleH": 58, "sectionTitleFontPx": 30, "rowH": 50, "rowFontPx": 26, "dotSize": 26, "lockSize": 34, - "costH": 60, "costIcon": 46, "costFontPx": 30, "btnH": 108, "btnFontPx": 36, - "sectionTitle": "등급 스킬", "levelPrefix": "레벨: ", "maxLevelText": "최대 레벨", "noSkillText": "등급 스킬 없음", "rowMaxParts": 3, - "statIcons": { "ATK": "RoleIcon_Sword", "MaxHP": "RoleIcon_Heart", "DEF": "RoleIcon_Shield", "MOVE": "RoleIcon_Boots", "RING": "RoleIcon_Ring", "RANDOM": "Icon_Property" }, + "w": 900, + "h": 1220, + "ribbonW": 300, + "ribbonH": 56, + "ribbonFontPx": 28, + "titleH": 116, + "titleFontPx": 48, + "pad": 28, + "iconSize": 210, + "levelFontPx": 28, + "statH": 92, + "statIcon": 64, + "statFontPx": 42, + "statDeltaFontPx": 32, + "smallBtn": 92, + "smallBtnFontPx": 24, + "gap": 16, + "descH": 132, + "descFontPx": 26, + "sectionTitleH": 58, + "sectionTitleFontPx": 30, + "rowH": 50, + "rowFontPx": 26, + "dotSize": 26, + "lockSize": 34, + "costH": 60, + "costIcon": 46, + "costFontPx": 30, + "btnH": 108, + "btnFontPx": 36, + "sectionTitle": "등급 스킬", + "levelPrefix": "레벨: ", + "maxLevelText": "최대 레벨", + "noSkillText": "등급 스킬 없음", + "rowMaxParts": 3, + "statIcons": { + "ATK": "RoleIcon_Sword", + "MaxHP": "RoleIcon_Heart", + "DEF": "RoleIcon_Shield", + "MOVE": "RoleIcon_Boots", + "RING": "RoleIcon_Ring", + "RANDOM": "Icon_Property" + }, "_note_weaponTierText": "무기 등급 스킬 줄(0 비움 · 1 일반 … 7 신화) — WLWeaponSkillTier.csv 의 개화 · 각성 규칙을 짧은 문구로 · {main} 주력 · {awaken} 각성 스킬 이름", - "weaponTierText": ["", "주력 스킬 [{main}]", "스킬 피해 +20%", "스킬 범위 x1.3", "상태이상 추가 · 쿨 -10%", "각성 스킬 [{awaken}]", "각성 강화 · 범위·피해 +30%", "각성 2연속 발동"] + "weaponTierText": [ + "", + "주력 스킬 [{main}]", + "스킬 피해 +20%", + "스킬 범위 x1.3", + "상태이상 추가 · 쿨 -10%", + "각성 스킬 [{awaken}]", + "각성 강화 · 범위·피해 +30%", + "각성 2연속 발동" + ] }, "partSkill": { "_note": "#879 장비 파츠 스킬 — 슬롯 아래 능력치 2줄 · 스킬 뱃지 · 장착 스킬 줄(액티브 4 + 패시브 2 + 도감) · 시너지 알림 · 스킬 상세 · 시너지 도감(기획 v2 18 · 19장)", "enabled": 1, - "slotLabelH": 56, "slotLabelFontPx": 24, "slotStatFontPx": 20, - "badge": 62, "badgeInset": -10, "badgeLvFontPx": 20, - "stripTop": 902, "stripH": 88, "stripPad": 24, "chip": 84, "chipGap": 12, "passiveW": 190, "passiveH": 70, "chipFontPx": 22, "bookBtnW": 140, "bookBtnH": 72, "bookBtnFontPx": 28, - "synTop": 1094, "synH": 0, "synFontPx": 22, - "passiveRound": 1, "stripCenter": 1, "bookRound": 1, - "detailW": 940, "detailH": 1440, "detailTitleH": 150, "detailFontPx": 26, "detailRowH": 58, "detailIcon": 150, "detailBoxPad": 18, - "bookW": 940, "bookH": 1440, "bookRowH": 112, "bookFontPx": 26 + "slotLabelH": 56, + "slotLabelFontPx": 24, + "slotStatFontPx": 20, + "badge": 62, + "badgeInset": -10, + "badgeLvFontPx": 20, + "stripTop": 902, + "stripH": 88, + "stripPad": 24, + "chip": 84, + "chipGap": 12, + "passiveW": 190, + "passiveH": 70, + "chipFontPx": 22, + "bookBtnW": 140, + "bookBtnH": 72, + "bookBtnFontPx": 28, + "synTop": 1094, + "synH": 0, + "synFontPx": 22, + "passiveRound": 1, + "stripCenter": 1, + "bookRound": 1, + "detailW": 940, + "detailH": 1440, + "detailTitleH": 150, + "detailFontPx": 26, + "detailRowH": 58, + "detailIcon": 150, + "detailBoxPad": 18, + "bookW": 940, + "bookH": 1440, + "bookRowH": 112, + "bookFontPx": 26 }, "compose": { - "bubbleTop": 70, "bubbleH": 140, "bubbleW": 1000, "bubbleFontPx": 42, - "stageTop": 250, "stageH": 660, - "resultSize": 220, "resultX": 100, "resultY": 20, "arrowSize": 64, "arrowGap": 8, - "baseSize": 150, "matSize": 120, "matGap": 12, "slotFontPx": 24, - "portraitW": 500, "portraitH": 500, "portraitX": -10, "portraitY": 30, "portrait": "smith_dwarf", - "infoFontPx": 28, "infoW": 520, "infoH": 120, - "btnRowY": 930, "btnH": 104, "filterBtnW": 230, "allBtnW": 250, "composeBtnW": 230, "btnGap": 16, "btnFontPx": 38, - "gridTop": 1060, "gridBottom": 1780 + "bubbleTop": 70, + "bubbleH": 140, + "bubbleW": 1000, + "bubbleFontPx": 42, + "stageTop": 250, + "stageH": 660, + "resultSize": 220, + "resultX": 100, + "resultY": 20, + "arrowSize": 64, + "arrowGap": 8, + "baseSize": 150, + "matSize": 120, + "matGap": 12, + "slotFontPx": 24, + "portraitW": 500, + "portraitH": 500, + "portraitX": -10, + "portraitY": 30, + "portrait": "smith_dwarf", + "infoFontPx": 28, + "infoW": 520, + "infoH": 120, + "btnRowY": 930, + "btnH": 104, + "filterBtnW": 230, + "allBtnW": 250, + "composeBtnW": 230, + "btnGap": 16, + "btnFontPx": 38, + "gridTop": 1060, + "gridBottom": 1780 }, "layout": { - "closeBtnW": 96, "closeBtnH": 96, "titleFontPx": 48, - "currencyW": 236, "currencyH": 76, "currencyIcon": 64, "currencyFontPx": 32, - "popupW": 920, "popupH": 1300, "popupTitleH": 150, "popupNameFontPx": 44, "popupRarityFontPx": 30, - "headerH": 230, "headerForm": 200, "headerNameFontPx": 36, "headerDpsH": 84, "headerDpsFontPx": 30, + "closeBtnW": 96, + "closeBtnH": 96, + "titleFontPx": 48, + "currencyW": 236, + "currencyH": 76, + "currencyIcon": 64, + "currencyFontPx": 32, + "popupW": 920, + "popupH": 1300, + "popupTitleH": 150, + "popupNameFontPx": 44, + "popupRarityFontPx": 30, + "headerH": 230, + "headerForm": 200, + "headerNameFontPx": 36, + "headerDpsH": 84, + "headerDpsFontPx": 30, "optionFontPx": 28, - "popupBtnH": 104, "popupBtnFontPx": 32, - "cellIconInset": 26, "cellLevelH": 44, "cellBadge": 54, "cellFontPx": 26, "gridCell": 180 + "popupBtnH": 104, + "popupBtnFontPx": 32, + "cellIconInset": 26, + "cellLevelH": 44, + "cellBadge": 54, + "cellFontPx": 26, + "gridCell": 180 }, "gacha": { - "sheetW": 1000, "sheetH": 860, "sheetBottom": 100, "gradExtra": 300, "titleH": 150, "titleFontPx": 46, "edge": 40, - "chestSize": 340, "glowSize": 560, "chestX": 260, "chestY": 420, - "infoFontPx": 30, "infoX": 470, "infoY": 300, "infoW": 490, "infoH": 260, "logH": 64, - "drawBtnW": 290, "drawBtnH": 130, "drawBtnBottom": 60, "drawGap": 16, "drawFontPx": 34, - "ratesBtn": 120, "ratesPillW": 201, "cheatBtnW": 240, "cheatBtnH": 80, - "resultCard": 180, "resultCardBig": 300, "resultCols": 5, "resultGap": 18, "resultGlow": 900, "resultGlowY": 60, "resultGridY": 60, "resultTitleFontPx": 64, "resultTitleTop": 420, "resultNameFontPx": 28, - "againBtnW": 432, "againBtnH": 130, "againY": 442, "closeBtnW": 338, "closeBtnH": 110, "closeY": 202, - "shakeSec": 0.6, "shakeDeg": 9, "flashSec": 0.35, "revealStagger": 0.12, "popSec": 0.28, "starCount": 8, "starSize": 64, "starFly": 240, "starSec": 0.6, - "ratesW": 1000, "ratesH": 1170, "ratesRowH": 64, "ratesFontPx": 30, "barH": 36 + "sheetW": 1000, + "sheetH": 860, + "sheetBottom": 100, + "gradExtra": 300, + "titleH": 150, + "titleFontPx": 46, + "edge": 40, + "chestSize": 340, + "glowSize": 560, + "chestX": 260, + "chestY": 420, + "infoFontPx": 30, + "infoX": 470, + "infoY": 300, + "infoW": 490, + "infoH": 260, + "logH": 64, + "drawBtnW": 290, + "drawBtnH": 130, + "drawBtnBottom": 60, + "drawGap": 16, + "drawFontPx": 34, + "ratesBtn": 120, + "ratesPillW": 201, + "cheatBtnW": 240, + "cheatBtnH": 80, + "resultCard": 180, + "resultCardBig": 300, + "resultCols": 5, + "resultGap": 18, + "resultGlow": 900, + "resultGlowY": 60, + "resultGridY": 60, + "resultTitleFontPx": 64, + "resultTitleTop": 420, + "resultNameFontPx": 28, + "againBtnW": 432, + "againBtnH": 130, + "againY": 442, + "closeBtnW": 338, + "closeBtnH": 110, + "closeY": 202, + "shakeSec": 0.6, + "shakeDeg": 9, + "flashSec": 0.35, + "revealStagger": 0.12, + "popSec": 0.28, + "starCount": 8, + "starSize": 64, + "starFly": 240, + "starSec": 0.6, + "ratesW": 1000, + "ratesH": 1170, + "ratesRowH": 64, + "ratesFontPx": 30, + "barH": 36 }, - "_note_colors": "캐주얼 톤 — 상단 보라 띠 · 무대 파랑 · 아래 남색 패널 · 글자 흰색 + 진남색 외곽선(textOutline) (colors 안에는 문자열 키를 넣지 말 것 · float[] 사전)", "colors": { - "bg": [0.13, 0.52, 0.95, 1], - "bgBottom": [0.02, 0.16, 0.42, 1], - "topBar": [0.36, 0.38, 0.93, 1], - "lowerPanel": [0.02, 0.16, 0.42, 1], - "tabStrip": [0.04, 0.08, 0.22, 1], - "tabLine": [0.17, 0.55, 1, 1], - "tabOnBg": [1, 1, 1, 0], - "tabOffBg": [1, 1, 1, 0], - "tabOn": [1, 1, 1, 1], - "tabOff": [0.7, 0.75, 0.9, 0.7], - "pill": [0.06, 0.1, 0.3, 0.88], - "statPill": [1, 1, 1, 0], - "popupFill": [0.16, 0.48, 0.95, 1], - "innerBox": [0.03, 0.17, 0.45, 0.55], - "dpsBox": [0.02, 0.12, 0.35, 0.75], - "panel": [0, 0, 0, 0], - "dim": [0.02, 0.06, 0.2, 0.72], - "text": [1, 1, 1, 1], - "textDim": [0.88, 0.93, 1, 1], - "textDark": [1, 1, 1, 1], - "textOutline": [0.05, 0.1, 0.28, 1], - "frameEmpty": [0.3, 0.38, 0.6, 1], - "cellEmptyTint": [1, 1, 1, 0.85], - "cellBack": [0, 0, 0, 0], - "slotInner": [0, 0, 0, 0], - "lvBg": [0, 0, 0, 0], - "tagBg": [0.05, 0.1, 0.25, 0.85], - "pinBg": [1, 1, 1, 1], - "upBadge": [1, 1, 1, 1], - "selectGlow": [1, 0.92, 0.3, 1], - "dimCell": [0.02, 0.08, 0.25, 0.65], - "check": [1, 1, 1, 1], - "btnDisabled": [0.6, 0.62, 0.7, 1], - "atk": [1, 0.88, 0.45, 1], - "hp": [1, 0.7, 0.75, 1], - "charGlowTint": [1, 1, 1, 0.45], - "platformTint": [0.02, 0.18, 0.5, 0.4], - "bubbleBg": [1, 1, 1, 1], - "bubbleText": [0.1, 0.15, 0.32, 1], - "skillAttack": [0.93, 0.33, 0.33, 1], - "skillDefense": [0.27, 0.56, 0.96, 1], - "skillPassive": [0.32, 0.76, 0.45, 1], - "skillWeapon": [0.62, 0.43, 0.9, 1], - "synergyOn": [1, 0.8, 0.25, 1], - "synergyBox": [0.35, 0.28, 0.08, 0.55], - "rowOn": [1, 0.92, 0.55, 0.4], - "statLine": [1, 0.86, 0.45, 1], - "popupTitleBar": [1, 0.76, 0.18, 1], - "popupTitleText": [1, 1, 1, 1], - "statBox": [0.09, 0.13, 0.32, 0.95], - "descBox": [0.05, 0.08, 0.22, 0.55], - "descText": [0.9, 0.93, 1, 1], - "sectionBox": [0.05, 0.08, 0.22, 0.45], - "sectionHead": [0.03, 0.05, 0.16, 0.6], - "plusBg": [0.2, 0.12, 0.38, 1], - "statDelta": [0.49, 0.92, 0.38, 1], - "costLack": [1, 0.45, 0.45, 1], - "lockTint": [1, 0.75, 0.3, 1], - "bookBtn": [0.32, 0.76, 0.45, 1] + "bg": [ + 0.13, + 0.52, + 0.95, + 1 + ], + "bgBottom": [ + 0.02, + 0.16, + 0.42, + 1 + ], + "topBar": [ + 0.36, + 0.38, + 0.93, + 1 + ], + "lowerPanel": [ + 0.02, + 0.16, + 0.42, + 1 + ], + "tabStrip": [ + 0.04, + 0.08, + 0.22, + 1 + ], + "tabLine": [ + 0.17, + 0.55, + 1, + 1 + ], + "tabOnBg": [ + 1, + 1, + 1, + 0 + ], + "tabOffBg": [ + 1, + 1, + 1, + 0 + ], + "tabOn": [ + 1, + 1, + 1, + 1 + ], + "tabOff": [ + 0.7, + 0.75, + 0.9, + 0.7 + ], + "pill": [ + 0.06, + 0.1, + 0.3, + 0.88 + ], + "statPill": [ + 1, + 1, + 1, + 0 + ], + "popupFill": [ + 0.16, + 0.48, + 0.95, + 1 + ], + "innerBox": [ + 0.03, + 0.17, + 0.45, + 0.55 + ], + "dpsBox": [ + 0.02, + 0.12, + 0.35, + 0.75 + ], + "panel": [ + 0, + 0, + 0, + 0 + ], + "dim": [ + 0.02, + 0.06, + 0.2, + 0.72 + ], + "text": [ + 1, + 1, + 1, + 1 + ], + "textDim": [ + 0.88, + 0.93, + 1, + 1 + ], + "textDark": [ + 1, + 1, + 1, + 1 + ], + "textOutline": [ + 0.05, + 0.1, + 0.28, + 1 + ], + "frameEmpty": [ + 0.3, + 0.38, + 0.6, + 1 + ], + "cellEmptyTint": [ + 1, + 1, + 1, + 0.85 + ], + "cellBack": [ + 0, + 0, + 0, + 0 + ], + "slotInner": [ + 0, + 0, + 0, + 0 + ], + "lvBg": [ + 0, + 0, + 0, + 0 + ], + "tagBg": [ + 0.05, + 0.1, + 0.25, + 0.85 + ], + "pinBg": [ + 1, + 1, + 1, + 1 + ], + "upBadge": [ + 1, + 1, + 1, + 1 + ], + "selectGlow": [ + 1, + 0.92, + 0.3, + 1 + ], + "dimCell": [ + 0.02, + 0.08, + 0.25, + 0.65 + ], + "check": [ + 1, + 1, + 1, + 1 + ], + "btnDisabled": [ + 0.6, + 0.62, + 0.7, + 1 + ], + "atk": [ + 1, + 0.88, + 0.45, + 1 + ], + "hp": [ + 1, + 0.7, + 0.75, + 1 + ], + "charGlowTint": [ + 1, + 1, + 1, + 0.45 + ], + "platformTint": [ + 0.02, + 0.18, + 0.5, + 0.4 + ], + "bubbleBg": [ + 1, + 1, + 1, + 1 + ], + "bubbleText": [ + 0.1, + 0.15, + 0.32, + 1 + ], + "skillAttack": [ + 0.93, + 0.33, + 0.33, + 1 + ], + "skillDefense": [ + 0.27, + 0.56, + 0.96, + 1 + ], + "skillPassive": [ + 0.32, + 0.76, + 0.45, + 1 + ], + "skillWeapon": [ + 0.62, + 0.43, + 0.9, + 1 + ], + "synergyOn": [ + 1, + 0.8, + 0.25, + 1 + ], + "synergyBox": [ + 0.35, + 0.28, + 0.08, + 0.55 + ], + "rowOn": [ + 1, + 0.92, + 0.55, + 0.4 + ], + "statLine": [ + 1, + 0.86, + 0.45, + 1 + ], + "popupTitleBar": [ + 1, + 0.76, + 0.18, + 1 + ], + "popupTitleText": [ + 1, + 1, + 1, + 1 + ], + "statBox": [ + 0.09, + 0.13, + 0.32, + 0.95 + ], + "descBox": [ + 0.05, + 0.08, + 0.22, + 0.55 + ], + "descText": [ + 0.9, + 0.93, + 1, + 1 + ], + "sectionBox": [ + 0.05, + 0.08, + 0.22, + 0.45 + ], + "sectionHead": [ + 0.03, + 0.05, + 0.16, + 0.6 + ], + "plusBg": [ + 0.2, + 0.12, + 0.38, + 1 + ], + "statDelta": [ + 0.49, + 0.92, + 0.38, + 1 + ], + "costLack": [ + 1, + 0.45, + 0.45, + 1 + ], + "lockTint": [ + 1, + 0.75, + 0.3, + 1 + ], + "bookBtn": [ + 0.32, + 0.76, + 0.45, + 1 + ] }, "sprites": { - "bgGradient": "", "charGlow": "Glow_Circle02", "platform": "Image_Oval", - "pillBg": "ResourceBar_Single_Bg", "pillAdd": "ResourceBar_Single_Btn_Yellow1", "pillAddIcon": "", "goldIcon": "ResourceBar_Single_Icon_Coin", "keyIcon": "icon_key_gold", "stoneIcon": "equip_icon_stone", - "btnPrimary": "Button01_s_Yellow", "btnSecondary": "Button01_s_Green", "btnBlue": "Button01_s_Sky", "btnNeutral": "Button01_s_Gray", "btnDanger": "Button01_s_Red", "btnDark": "Button01_s_DarkGray", "btnDisabledSpr": "Button01_s_Gray", - "squareBtn": "Button_Round03_Dark", "backBtnBg": "Button_LeftFlush_Dark", "closeBtnBg": "Button01_s_Red", "tabBg": "", "tabLineSpr": "", - "slotFrame": "ItemFrame01_Single_Navy", "cellFrame": "ItemFrame01_Single_Navy", "cellEmpty": "ItemFrame01_Single_Navy", "cellConsumable": "ItemFrame01_Single_OffWhite", - "slotInner": "", "cellBack": "", "selectGlow": "ItemFrame00~03_FocusLine", - "pinBg": "BorderFrame_Circle60", "tag": "BasicFrame_Round12", "lvBg": "", - "badgeBg": "Slider_Level02_Icon_Up_Green", "badgeIcon": "", "upArrow": "Slider_Level02_Icon_Up_Green", - "checkBg": "Toggle_Check_Single_Bg", "checkIcon": "Icon_Check01", "lockIcon": "Icon_Lock01_s", "backIcon": "Icon_Back", "closeIcon": "Icon_Close02", "infoIcon": "Icon_Info", - "atkIcon": "Icon_Sword02", "hpIcon": "Icon_Heart", "statPill": "", - "popupBg": "Popup01_Basic_Single", "innerBox": "BasicFrame_Round20", "listBg": "", "panelBg": "", - "bubble": "BubbleFrame02_Bg", "gradeLabel": "Label_Parallelogram_White_Bg", - "sBadge": "GradeIcon_Star_s_Yellow", "star": "Icon_Star_On", "glow": "@radial", - "chestIcon": "Image_Chest02", "chestOpenIcon": "Image_Chest01", "sheetBg": "Popup01_Basic_Single", "sheetGrad": "", - "ratesIcon": "Icon_Info", "draw1Btn": "Button01_l_Yellow", "draw10Btn": "Button01_l_Green", "againBtn": "Button01_l_Yellow", "closeTextBtn": "Button01_l_Gray", - "barBg": "Slider_Basic01_Bg_Single", "barFill": "Slider_Basic01_Fill_Yellow", "currencyBg": "ResourceBar_Single_Bg" + "bgGradient": "", + "charGlow": "Glow_Circle02", + "platform": "Image_Oval", + "pillBg": "ResourceBar_Single_Bg", + "pillAdd": "ResourceBar_Single_Btn_Yellow1", + "pillAddIcon": "", + "goldIcon": "ResourceBar_Single_Icon_Coin", + "keyIcon": "icon_key_gold", + "stoneIcon": "equip_icon_stone", + "btnPrimary": "Button01_s_Yellow", + "btnSecondary": "Button01_s_Green", + "btnBlue": "Button01_s_Sky", + "btnNeutral": "Button01_s_Gray", + "btnDanger": "Button01_s_Red", + "btnDark": "Button01_s_DarkGray", + "btnDisabledSpr": "Button01_s_Gray", + "squareBtn": "Button_Round03_Dark", + "backBtnBg": "Button_LeftFlush_Dark", + "closeBtnBg": "Button01_s_Red", + "tabBg": "", + "tabLineSpr": "", + "slotFrame": "ItemFrame01_Single_Navy", + "cellFrame": "ItemFrame01_Single_Navy", + "cellEmpty": "ItemFrame01_Single_Navy", + "cellConsumable": "ItemFrame01_Single_OffWhite", + "slotInner": "", + "cellBack": "", + "selectGlow": "ItemFrame00~03_FocusLine", + "pinBg": "BorderFrame_Circle60", + "tag": "BasicFrame_Round12", + "lvBg": "", + "badgeBg": "Slider_Level02_Icon_Up_Green", + "badgeIcon": "", + "upArrow": "Slider_Level02_Icon_Up_Green", + "checkBg": "Toggle_Check_Single_Bg", + "checkIcon": "Icon_Check01", + "lockIcon": "Icon_Lock01_s", + "backIcon": "Icon_Back", + "closeIcon": "Icon_Close02", + "infoIcon": "Icon_Info", + "atkIcon": "Icon_Sword02", + "hpIcon": "Icon_Heart", + "statPill": "", + "popupBg": "Popup01_Basic_Single", + "innerBox": "BasicFrame_Round20", + "listBg": "", + "panelBg": "", + "bubble": "BubbleFrame02_Bg", + "gradeLabel": "Label_Parallelogram_White_Bg", + "sBadge": "GradeIcon_Star_s_Yellow", + "star": "Icon_Star_On", + "glow": "@radial", + "chestIcon": "Image_Chest02", + "chestOpenIcon": "Image_Chest01", + "sheetBg": "Popup01_Basic_Single", + "sheetGrad": "", + "ratesIcon": "Icon_Info", + "draw1Btn": "Button01_l_Yellow", + "draw10Btn": "Button01_l_Green", + "againBtn": "Button01_l_Yellow", + "closeTextBtn": "Button01_l_Gray", + "barBg": "Slider_Basic01_Bg_Single", + "barFill": "Slider_Basic01_Fill_Yellow", + "currencyBg": "ResourceBar_Single_Bg" }, - "_note_tierSprites": "등급마다 SuperCasual 색 칸(ItemFrame01_Single_*) — 일반 회색 · 고급 초록 · 희귀 파랑 · 에픽 보라 · 전설(S) 노랑 · 불멸 빨강 · 신화 홀로그램 (WLGradeTable.json 색 순서와 같은 계열)", "tierSprites": { - "1": { "bg": "ItemFrame01_Single_Gray", "label": "Label_Parallelogram_White_Bg" }, - "2": { "bg": "ItemFrame01_Single_Green", "label": "Label_Parallelogram_White_Bg" }, - "3": { "bg": "ItemFrame01_Single_Blue", "label": "Label_Parallelogram_White_Bg" }, - "4": { "bg": "ItemFrame01_Single_Purple", "label": "Label_Parallelogram_White_Bg" }, - "5": { "bg": "ItemFrame01_Single_Yellow", "label": "Label_Parallelogram_White_Bg" }, - "6": { "bg": "ItemFrame01_Single_Red", "label": "Label_Parallelogram_White_Bg" }, - "7": { "bg": "ItemFrame01_Single_Hologram1", "label": "Label_Parallelogram_White_Bg" } + "1": { + "bg": "ItemFrame01_Single_Gray", + "label": "Label_Parallelogram_White_Bg" + }, + "2": { + "bg": "ItemFrame01_Single_Green", + "label": "Label_Parallelogram_White_Bg" + }, + "3": { + "bg": "ItemFrame01_Single_Blue", + "label": "Label_Parallelogram_White_Bg" + }, + "4": { + "bg": "ItemFrame01_Single_Purple", + "label": "Label_Parallelogram_White_Bg" + }, + "5": { + "bg": "ItemFrame01_Single_Yellow", + "label": "Label_Parallelogram_White_Bg" + }, + "6": { + "bg": "ItemFrame01_Single_Red", + "label": "Label_Parallelogram_White_Bg" + }, + "7": { + "bg": "ItemFrame01_Single_Hologram1", + "label": "Label_Parallelogram_White_Bg" + } }, - "_note_weaponIcons": "FR 무기 그룹 → XP Hero 무기 아이콘(등급 7단계 순서대로 변형 번호 · 로컬 더미 · ComfyUI 제작분으로 교체 대상)", "weaponIcons": { - "1001": ["W_Sword", "W_Sword_2", "W_Sword_3", "W_Sword_4", "W_Sword_5", "W_Sword_6", "W_Sword_7"], - "1015": ["W_MorningStar", "W_MorningStar_3", "W_MorningStar_4", "W_MorningStar_5", "W_MorningStar_6", "W_MorningStar_7", "W_MorningStar_8"], - "1029": ["W_CrossBow", "W_CrossBow_3", "W_CrossBow_6", "W_CrossBow_7", "W_CrossBow_8", "W_CrossBow_9", "W_CrossBow_10"], - "1043": ["W_Dagger", "W_Dagger_3", "W_Dagger_4", "W_Dagger_5", "W_Dagger_6", "W_Dagger_7", "W_Dagger_8"], - "1057": ["W_Gun", "W_Gun_3", "W_Gun_4", "W_Gun_5", "W_Gun_6", "W_Gun_7", "W_Gun_8"], - "1071": ["W_Wand", "W_Wand_4", "W_Wand_7", "W_Wand_8", "W_Wand_9", "W_Wand_10", "W_Wand_11"], - "1435": ["W_Sword_2", "W_Sword_3", "W_Sword_4", "W_Sword_5", "W_Sword_6", "W_Sword_7", "W_Sword_8"], - "9006": ["W_Dagger_3", "W_Dagger_4", "W_Dagger_5", "W_Dagger_6", "W_Dagger_7", "W_Dagger_8", "W_Dagger_9"], - "9007": ["W_Dagger_4", "W_Dagger_5", "W_Dagger_6", "W_Dagger_7", "W_Dagger_8", "W_Dagger_9", "W_Dagger_9"], - "9008": ["W_Sword_3", "W_Sword_4", "W_Sword_5", "W_Sword_6", "W_Sword_7", "W_Sword_8", "W_Sword_8"] + "1001": [ + "W_Sword", + "W_Sword_2", + "W_Sword_3", + "W_Sword_4", + "W_Sword_5", + "W_Sword_6", + "W_Sword_7" + ], + "1015": [ + "W_MorningStar", + "W_MorningStar_3", + "W_MorningStar_4", + "W_MorningStar_5", + "W_MorningStar_6", + "W_MorningStar_7", + "W_MorningStar_8" + ], + "1029": [ + "W_CrossBow", + "W_CrossBow_3", + "W_CrossBow_6", + "W_CrossBow_7", + "W_CrossBow_8", + "W_CrossBow_9", + "W_CrossBow_10" + ], + "1043": [ + "W_Dagger", + "W_Dagger_3", + "W_Dagger_4", + "W_Dagger_5", + "W_Dagger_6", + "W_Dagger_7", + "W_Dagger_8" + ], + "1057": [ + "W_Gun", + "W_Gun_3", + "W_Gun_4", + "W_Gun_5", + "W_Gun_6", + "W_Gun_7", + "W_Gun_8" + ], + "1071": [ + "W_Wand", + "W_Wand_4", + "W_Wand_7", + "W_Wand_8", + "W_Wand_9", + "W_Wand_10", + "W_Wand_11" + ], + "1435": [ + "W_Sword_2", + "W_Sword_3", + "W_Sword_4", + "W_Sword_5", + "W_Sword_6", + "W_Sword_7", + "W_Sword_8" + ], + "9006": [ + "W_Dagger_3", + "W_Dagger_4", + "W_Dagger_5", + "W_Dagger_6", + "W_Dagger_7", + "W_Dagger_8", + "W_Dagger_9" + ], + "9007": [ + "W_Dagger_4", + "W_Dagger_5", + "W_Dagger_6", + "W_Dagger_7", + "W_Dagger_8", + "W_Dagger_9", + "W_Dagger_9" + ], + "9008": [ + "W_Sword_3", + "W_Sword_4", + "W_Sword_5", + "W_Sword_6", + "W_Sword_7", + "W_Sword_8", + "W_Sword_8" + ] }, "partIcons": { "_note": "부위 아이콘(판타지 키트 플랫 · uiFallbackFolder) + 그룹별 색조 · 1 = 탭·빈 슬롯 표시용 무기 아이콘", - "1": "icon_equip_sword", "2": "icon_accessories_necklace", "3": "icon_equip_hand", "4": "icon_equip_armor", "5": "equip_icon_bracelet", "6": "icon_equip_shoes" + "1": "icon_equip_sword", + "2": "icon_accessories_necklace", + "3": "icon_equip_hand", + "4": "icon_equip_armor", + "5": "equip_icon_bracelet", + "6": "icon_equip_shoes" }, "groupTints": { "_note": "같은 부위 안에서 그룹(이름)을 구분하는 색조 · 그룹 번호 순서로 순환", - "list": [[1, 1, 1, 1], [1, 0.85, 0.6, 1], [0.7, 0.9, 1, 1], [0.8, 1, 0.75, 1], [1, 0.75, 0.9, 1], [0.95, 0.95, 0.6, 1], [0.8, 0.8, 1, 1]] + "list": [ + [ + 1, + 1, + 1, + 1 + ], + [ + 1, + 0.85, + 0.6, + 1 + ], + [ + 0.7, + 0.9, + 1, + 1 + ], + [ + 0.8, + 1, + 0.75, + 1 + ], + [ + 1, + 0.75, + 0.9, + 1 + ], + [ + 0.95, + 0.95, + 0.6, + 1 + ], + [ + 0.8, + 0.8, + 1, + 1 + ] + ] }, "consumableIcons": { "_note": "FR 특수 아이템 Index → 아이콘", "1": "ResourceBar_Single_Icon_Coin", - "101": "equip_icon_stone", "102": "equip_icon_stone", "103": "equip_icon_stone", "104": "equip_icon_stone", "105": "equip_icon_stone", "106": "equip_icon_stone" + "101": "equip_icon_stone", + "102": "equip_icon_stone", + "103": "equip_icon_stone", + "104": "equip_icon_stone", + "105": "equip_icon_stone", + "106": "equip_icon_stone" }, "tabs": [ - { "id": 0, "label": "전체", "icon": "Icon_Menu_Hamburger" }, - { "id": 1, "label": "무기", "icon": "icon_equip_sword" }, - { "id": 2, "label": "목걸이", "icon": "icon_accessories_necklace" }, - { "id": 3, "label": "장갑", "icon": "icon_equip_hand" }, - { "id": 4, "label": "갑옷", "icon": "icon_equip_armor" }, - { "id": 5, "label": "반지", "icon": "equip_icon_bracelet" }, - { "id": 6, "label": "신발", "icon": "icon_equip_shoes" } + { + "id": 0, + "label": "전체", + "icon": "Icon_Menu_Hamburger" + }, + { + "id": 1, + "label": "무기", + "icon": "icon_equip_sword" + }, + { + "id": 2, + "label": "목걸이", + "icon": "icon_accessories_necklace" + }, + { + "id": 3, + "label": "장갑", + "icon": "icon_equip_hand" + }, + { + "id": 4, + "label": "갑옷", + "icon": "icon_equip_armor" + }, + { + "id": 5, + "label": "반지", + "icon": "equip_icon_bracelet" + }, + { + "id": 6, + "label": "신발", + "icon": "icon_equip_shoes" + } ] } diff --git a/Assets/WL/Equip/Resources/WL/WLGradeTable.json b/Assets/WL/Equip/Resources/WL/WLGradeTable.json index 2673f3796..4b049d885 100644 --- a/Assets/WL/Equip/Resources/WL/WLGradeTable.json +++ b/Assets/WL/Equip/Resources/WL/WLGradeTable.json @@ -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 + } ] } diff --git a/Assets/WL/Mobs/Resources/WL/WLMobLineup.json b/Assets/WL/Mobs/Resources/WL/WLMobLineup.json index 09d517d83..e13a90163 100644 --- a/Assets/WL/Mobs/Resources/WL/WLMobLineup.json +++ b/Assets/WL/Mobs/Resources/WL/WLMobLineup.json @@ -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" + ] } diff --git a/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartSkill.json b/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartSkill.json index 4f6337dca..5a88a4c3c 100644 --- a/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartSkill.json +++ b/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartSkill.json @@ -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 + ] } } } diff --git a/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartStats.json b/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartStats.json index 5a64e9be6..24861fcad 100644 --- a/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartStats.json +++ b/Assets/WL/PartSkill/Resources/WL/PartSkill/WLPartStats.json @@ -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 + } ] } diff --git a/Assets/WL/PartSkill/Resources/WL/WLHammerQuake.json b/Assets/WL/PartSkill/Resources/WL/WLHammerQuake.json index 981cedd49..9b659ecad 100644 --- a/Assets/WL/PartSkill/Resources/WL/WLHammerQuake.json +++ b/Assets/WL/PartSkill/Resources/WL/WLHammerQuake.json @@ -15,7 +15,11 @@ "pathFx": "WL/Fx/WL_Fx_QuakePath04", "pathFxNativeLength": 8.0, "pathFxLife": 2.5, - "prongAngles": [-30.0, 0.0, 30.0], + "prongAngles": [ + -30.0, + 0.0, + 30.0 + ], "prongLength": 3.5, "prongWidth": 1.0, "prongTravelSeconds": 0.4, @@ -30,16 +34,23 @@ "impactRadius": 3.0, "impactLaunch": 1, "glowMaterial": "WL/Fx/WL_Mat_WeaponGlow", - "glowColor": [1.6, 1.6, 1.6], + "glowColor": [ + 1.6, + 1.6, + 1.6 + ], "glowMax": 1.0, "glowFill": 0.35, "glowRimPower": 2.5, "glowFadeSeconds": 0.25, - "lightColor": [0.85, 0.65, 1.0], + "lightColor": [ + 0.85, + 0.65, + 1.0 + ], "lightRange": 2.0, "lightIntensity": 0.0, "impactHoldNormalized": 0.46, "impactHoldSeconds": 0.5, - "holdBlocksMove": 1, - "note": "#911 PD 해머 각성 변경 「첫 타 내려치기 모션 직전(망치를 든 상태)를 0.5초 · 망치에 Master Stylized Projectile 모으기(망치 크기에 맞게) · 내려치기 모션을 빠르게 3회 반복하며 Stylized Earth Skills 충격파를 내려친 방향의 전방 방사형 3갈래로 3번 · 맞은 적은 타격받을 때마다 2 m 띄우고 2초 스턴 · 내려친 지면 = FX_EarthSkill_Popup_05 바위만 숨김」 — 파츠 스킬 hammer_quake(WLHammerQuake.cs · 해머 파괴자 1015 각성 칸) · slamState / slamClip = 해머 컨트롤러 1타 상태 attack(Attack1_S_10501 · 타격 = 클립 Projectile 이벤트 0.42 에서 읽음) · holdNormalized 0.27 = 망치를 든 자세(내려치기 시작 0.30 직전) · chargeSeconds 0.5 = 그 자세로 멈춘 채 모으기 · slams 3 × slamSpeed 1.6 배(상태 속도 1.3 에 곱) · slamEndNormalized = 한 번 내려치기를 여기까지 · 이펙트 = Resources/WL/Fx 사본(WL_Fx_HammerCharge = MasterStylizedFX PurpleCharge · 어두운 배경 DarkBG 끔 / WL_Fx_QuakePath = Earth Skills Path_05(보라) · 원래 길이 약 8 m → prongLength 에 맞춰 배율 / WL_Fx_QuakeGround = Earth Skills Popup_05 · 바위 rock_main 끔) · 파티클 전부 Hierarchy · prongAngles = 정면 기준 갈래 각도 · prongTravelSeconds = 충격파가 끝까지 가는 시간(판정 앞줄) · prongWidth = 갈래 폭(+ 적 몸 반지름) · launchHeight / launchSeconds / stunSeconds = 맞을 때마다 2 m 띄움 · 내려온 뒤 2 초 기절(보스 제외) · 쿨타임 · 피해 = WLPartSkillLevelsWL.csv 900201 · #911 PD 2차 「모으기 이펙트 크기 및 3줄기 충격파 이펙트 크기를 더 줄여야 · 충격파 검은 연기가 화면을 많이 가림 → 연기 축소 · 더 투명하게」 = chargeFxScale 0.3 → 0.1 · prongLength 4.5 → 3.5 m(충격파 보이는 크기 · 길이 · 판정 거리 함께 약 3/4) · 사본 WL_Fx_QuakePath 의 dust 계열 파티클(dust · dust_long · dust_last) 시작 크기 × 0.5 · 알파 × 0.5(AgentScripts/staging/WL911_FxTune.cs) · #911 PD 3차 「망치 각성 스킬의 내려치기 횟수를 3회가 아니라 1회로」 = slams 1(모으기 0.5 초 → 내려치기 1 회 · 3 갈래 충격파 1 번) · #912 PD 「모으기 이펙트가 재생될 때 망치가 점차 하얗게 빛날 수 있게 · 모으기 이펙트가 2D 같은 느낌 → 좀 더 빛나는 느낌 · 망치를 내려치기 직전까지 1.5배까지 크기를 키우고 · 충격파의 검은색이 너무 단색 느낌 → 반투명한 색 · 내려친 후 바로 움직이지 않고 내려친 상태로 잠시 멈추게(0.5초 내외)」 = growScale 1.5(모으기 동안 1 → 1.5 · 쥔 손 = 무기 소켓 원점 기준 · 충격파 시작점도 커진 망치 끝 · 끝나면 shrinkSeconds 동안 원래 크기) · 흰 빛 = 망치 메시를 복제한 자식에 glowMaterial(셰이더 WL/WeaponGlow · 가산 · 몸통 0.6 + 테두리) · glowColor HDR 3.0(런타임 블룸 문턱 1.2 를 넘어 번짐) · 모으기 동안 0 → glowMax · 내려친 뒤 glowFadeSeconds 동안 꺼짐 · 점광원 lightColor / lightRange 2 m / lightIntensity 1.5(망치 끝 · 3 m · 3.0 은 땅에 밝은 원이 크게 보여 낮춤) · 모으기 사본 WL_Fx_HammerCharge 에 둥근 빛무리 WL_Halo 추가(부드러운 원 텍스처 + WL_Mat_ChargeHalo = 팩 Flare 재질 사본 · HDR 2.4/1.9/2.8 · 크기 9 · 수명 0.6) · 2D 로 보이던 가로 줄무늬 Flare 크기 31.6 → 15.8(AgentScripts/staging/WL912_Assets.cs Halo) · impactHoldNormalized 0.46 = 망치가 땅에 닿은 자세(Play 실측: 망치 끝 높이 0.44 에서 0.43 m 로 내려앉아 0.66 까지 유지) · impactHoldSeconds 0.5 · holdBlocksMove 1(멈춘 동안 이동 입력 무시 · 구르기는 허용 = 스킵) · 모으기 · 멈춤 중 다른 연출이 애니메이터 속도를 되돌리면 매 프레임 다시 고정(실측: 모으기 중 속도 1.0 으로 풀린 적 있음) · 충격파 검은 부분 = 사본 WL_Fx_QuakePath · WL_Fx_QuakeGround 의 crack_apb(검정 불투명 → 보라 0.30/0.16/0.42 · 알파 0.4) · 연기 계열 dust · dust_long · dust_last · particle_splash · 지면 루트(갈색 → 연보라 회색 0.62/0.55/0.68 → 0.42/0.38/0.48 · 끝에서 알파 0 · 지면 연기 알파 × 0.5 · 충격파 particle_splash × 0.6) · 파편 particle 끝 색 검정 → 0.32/0.24/0.40(WL912_Assets.cs Tint) · #913 PD 「모으기 공격의 이펙트 위치가 망치 머리에 발생되도록 · 빛 광원이 주변을 비추지 않고 망치 색상만 빛나게(완전 하얗게 빛나지 않고 망치의 외형이 살짝은 보일 수 있도록) · 모으기 이펙트를 Fx_EarthSkill_Path_04로 바꾸고 모으기 공격 이펙트의 색상을 이펙트 색상과 유사하게(붉은색 계열) → 모으기 이펙트 중앙부의 원형 이펙트 포함 · 망치 각성 스킬을 내려칠 때도 광원이 비추면 안돼」 = 모으기 이펙트 · 내려친 지점 = 망치 머리 중심(headFraction 0.25 = 손잡이 축으로 먼 쪽 1/4 정점 상자 중심 · 실측 망치 메시 기준 0, 0.65, 0) · lightIntensity 0(점광원을 만들지 않음 — 모으기 · 내려치기 모두 · 이펙트 프리팹에는 Light 없음 확인) · 흰 빛 glowColor 1.6 · glowFill 0.35 · glowRimPower 2.5(몸통은 옅게 · 테두리만 강하게 → 망치 외형이 비침) · 충격파 pathFx = WL_Fx_QuakePath04(팩 Path_04 사본 · 주황 → 빨강 열기 · 길이 실측 약 7.6 m ≈ Path_05 8.2 m 라 pathFxNativeLength 8 유지 · #911 연기 dust 계열 크기 · 알파 × 0.5 · #912 반투명 처리를 붉은 계열로: crack_apb 0.35/0.10/0.06 알파 0.4 · 연기 0.66/0.58/0.52 → 0.46/0.42/0.40 끝에서 알파 0 · particle_splash 알파 × 0.6 · 파편 끝 0.30/0.20/0.17) · 내려친 자리 WL_Fx_QuakeGround 보라 → Path_04 색(crack_add · impact_spark 수명색 1/0.65/0.34 → 1/0/0 · particle_splash_add 1/0.65/0.34 · smoke_energy 흰색 알파 0.2 · 반투명 연기 · 갈라짐도 붉은 계열) · 모으기 WL_Fx_HammerCharge 보라 → 주황~빨강(루트 1/0.32/0.08 · Core 1/0.28/0.05 · Flare 1/0.58/0.28 · LightCone 1/0.45/0.15 · Circle 1/0.30/0.08 · Slash 1/0.50/0.20 · 빛무리 WL_Mat_ChargeHalo 2.8/1.5/0.6) — scratchpad tint913 사양 · WL913_Fx.cs · 보라 충격파 사본 WL_Fx_QuakePath 는 쓰지 않음(남겨 둠) · #914 PD 「해머 각성 스킬의 원형 모이는 이펙트 위치를 망치 기준 조금 더 아래로 내려줘(원형 이펙트가 망치 머리에 거의 가려지도록) · 내려친 위치의 이펙트 크기를 조금 더 키워주고 망치 주변 반경에 있는 적들도 광역 피해 · 해머를 내려친 위치를 기준으로 원형 3m 범위 내 적에게도 동일한 피해」 = chargeFxDrop 0.25(망치 머리 중심에서 아래로 0.25 m × 망치 배율 · 캡처: 빛이 머리 아래 가장자리로 조금만 보임) · groundFxScale 0.35 → 0.5 · impactRadius 3.0(내려친 지점에서 3 m + 적 몸 반지름 안 · 내려친 순간 · 충격파와 같은 피해 · impactLaunch 1 = 같은 띄움 2 m · 기절 2 초 · 같은 내려치기에서 충격파와 겹쳐도 적 1 회 · Play 실측: 갈래 밖 PC 오른쪽 2 m 몹 둘레 명중 1 · 높이 2.00 · 기절)" + "holdBlocksMove": 1 } diff --git a/Docs/WLJsonHistory/WLEquipBoxTable.history.md b/Docs/WLJsonHistory/WLEquipBoxTable.history.md new file mode 100644 index 000000000..34ad38160 --- /dev/null +++ b/Docs/WLJsonHistory/WLEquipBoxTable.history.md @@ -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 = 열쇠 개수만 + diff --git a/Docs/WLJsonHistory/WLEquipGui.history.md b/Docs/WLJsonHistory/WLEquipGui.history.md new file mode 100644 index 000000000..b30313e6a --- /dev/null +++ b/Docs/WLJsonHistory/WLEquipGui.history.md @@ -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 제작분으로 교체 대상) + diff --git a/Docs/WLJsonHistory/WLGradeTable.history.md b/Docs/WLJsonHistory/WLGradeTable.history.md new file mode 100644 index 000000000..0022651ba --- /dev/null +++ b/Docs/WLJsonHistory/WLGradeTable.history.md @@ -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) + diff --git a/Docs/WLJsonHistory/WLHammerQuake.history.md b/Docs/WLJsonHistory/WLHammerQuake.history.md new file mode 100644 index 000000000..3204e8734 --- /dev/null +++ b/Docs/WLJsonHistory/WLHammerQuake.history.md @@ -0,0 +1,7 @@ +# WLHammerQuake — 지시 이력 주석 (값 파일에서 분리 · 2026-10-19) + +값 파일 = `Assets/WL/PartSkill/Resources/WL/WLHammerQuake.json` · 이 파일은 사람·세션이 읽는 이력이며 게임은 읽지 않는다. + +## note +#911 PD 해머 각성 변경 「첫 타 내려치기 모션 직전(망치를 든 상태)를 0.5초 · 망치에 Master Stylized Projectile 모으기(망치 크기에 맞게) · 내려치기 모션을 빠르게 3회 반복하며 Stylized Earth Skills 충격파를 내려친 방향의 전방 방사형 3갈래로 3번 · 맞은 적은 타격받을 때마다 2 m 띄우고 2초 스턴 · 내려친 지면 = FX_EarthSkill_Popup_05 바위만 숨김」 — 파츠 스킬 hammer_quake(WLHammerQuake.cs · 해머 파괴자 1015 각성 칸) · slamState / slamClip = 해머 컨트롤러 1타 상태 attack(Attack1_S_10501 · 타격 = 클립 Projectile 이벤트 0.42 에서 읽음) · holdNormalized 0.27 = 망치를 든 자세(내려치기 시작 0.30 직전) · chargeSeconds 0.5 = 그 자세로 멈춘 채 모으기 · slams 3 × slamSpeed 1.6 배(상태 속도 1.3 에 곱) · slamEndNormalized = 한 번 내려치기를 여기까지 · 이펙트 = Resources/WL/Fx 사본(WL_Fx_HammerCharge = MasterStylizedFX PurpleCharge · 어두운 배경 DarkBG 끔 / WL_Fx_QuakePath = Earth Skills Path_05(보라) · 원래 길이 약 8 m → prongLength 에 맞춰 배율 / WL_Fx_QuakeGround = Earth Skills Popup_05 · 바위 rock_main 끔) · 파티클 전부 Hierarchy · prongAngles = 정면 기준 갈래 각도 · prongTravelSeconds = 충격파가 끝까지 가는 시간(판정 앞줄) · prongWidth = 갈래 폭(+ 적 몸 반지름) · launchHeight / launchSeconds / stunSeconds = 맞을 때마다 2 m 띄움 · 내려온 뒤 2 초 기절(보스 제외) · 쿨타임 · 피해 = WLPartSkillLevelsWL.csv 900201 · #911 PD 2차 「모으기 이펙트 크기 및 3줄기 충격파 이펙트 크기를 더 줄여야 · 충격파 검은 연기가 화면을 많이 가림 → 연기 축소 · 더 투명하게」 = chargeFxScale 0.3 → 0.1 · prongLength 4.5 → 3.5 m(충격파 보이는 크기 · 길이 · 판정 거리 함께 약 3/4) · 사본 WL_Fx_QuakePath 의 dust 계열 파티클(dust · dust_long · dust_last) 시작 크기 × 0.5 · 알파 × 0.5(AgentScripts/staging/WL911_FxTune.cs) · #911 PD 3차 「망치 각성 스킬의 내려치기 횟수를 3회가 아니라 1회로」 = slams 1(모으기 0.5 초 → 내려치기 1 회 · 3 갈래 충격파 1 번) · #912 PD 「모으기 이펙트가 재생될 때 망치가 점차 하얗게 빛날 수 있게 · 모으기 이펙트가 2D 같은 느낌 → 좀 더 빛나는 느낌 · 망치를 내려치기 직전까지 1.5배까지 크기를 키우고 · 충격파의 검은색이 너무 단색 느낌 → 반투명한 색 · 내려친 후 바로 움직이지 않고 내려친 상태로 잠시 멈추게(0.5초 내외)」 = growScale 1.5(모으기 동안 1 → 1.5 · 쥔 손 = 무기 소켓 원점 기준 · 충격파 시작점도 커진 망치 끝 · 끝나면 shrinkSeconds 동안 원래 크기) · 흰 빛 = 망치 메시를 복제한 자식에 glowMaterial(셰이더 WL/WeaponGlow · 가산 · 몸통 0.6 + 테두리) · glowColor HDR 3.0(런타임 블룸 문턱 1.2 를 넘어 번짐) · 모으기 동안 0 → glowMax · 내려친 뒤 glowFadeSeconds 동안 꺼짐 · 점광원 lightColor / lightRange 2 m / lightIntensity 1.5(망치 끝 · 3 m · 3.0 은 땅에 밝은 원이 크게 보여 낮춤) · 모으기 사본 WL_Fx_HammerCharge 에 둥근 빛무리 WL_Halo 추가(부드러운 원 텍스처 + WL_Mat_ChargeHalo = 팩 Flare 재질 사본 · HDR 2.4/1.9/2.8 · 크기 9 · 수명 0.6) · 2D 로 보이던 가로 줄무늬 Flare 크기 31.6 → 15.8(AgentScripts/staging/WL912_Assets.cs Halo) · impactHoldNormalized 0.46 = 망치가 땅에 닿은 자세(Play 실측: 망치 끝 높이 0.44 에서 0.43 m 로 내려앉아 0.66 까지 유지) · impactHoldSeconds 0.5 · holdBlocksMove 1(멈춘 동안 이동 입력 무시 · 구르기는 허용 = 스킵) · 모으기 · 멈춤 중 다른 연출이 애니메이터 속도를 되돌리면 매 프레임 다시 고정(실측: 모으기 중 속도 1.0 으로 풀린 적 있음) · 충격파 검은 부분 = 사본 WL_Fx_QuakePath · WL_Fx_QuakeGround 의 crack_apb(검정 불투명 → 보라 0.30/0.16/0.42 · 알파 0.4) · 연기 계열 dust · dust_long · dust_last · particle_splash · 지면 루트(갈색 → 연보라 회색 0.62/0.55/0.68 → 0.42/0.38/0.48 · 끝에서 알파 0 · 지면 연기 알파 × 0.5 · 충격파 particle_splash × 0.6) · 파편 particle 끝 색 검정 → 0.32/0.24/0.40(WL912_Assets.cs Tint) · #913 PD 「모으기 공격의 이펙트 위치가 망치 머리에 발생되도록 · 빛 광원이 주변을 비추지 않고 망치 색상만 빛나게(완전 하얗게 빛나지 않고 망치의 외형이 살짝은 보일 수 있도록) · 모으기 이펙트를 Fx_EarthSkill_Path_04로 바꾸고 모으기 공격 이펙트의 색상을 이펙트 색상과 유사하게(붉은색 계열) → 모으기 이펙트 중앙부의 원형 이펙트 포함 · 망치 각성 스킬을 내려칠 때도 광원이 비추면 안돼」 = 모으기 이펙트 · 내려친 지점 = 망치 머리 중심(headFraction 0.25 = 손잡이 축으로 먼 쪽 1/4 정점 상자 중심 · 실측 망치 메시 기준 0, 0.65, 0) · lightIntensity 0(점광원을 만들지 않음 — 모으기 · 내려치기 모두 · 이펙트 프리팹에는 Light 없음 확인) · 흰 빛 glowColor 1.6 · glowFill 0.35 · glowRimPower 2.5(몸통은 옅게 · 테두리만 강하게 → 망치 외형이 비침) · 충격파 pathFx = WL_Fx_QuakePath04(팩 Path_04 사본 · 주황 → 빨강 열기 · 길이 실측 약 7.6 m ≈ Path_05 8.2 m 라 pathFxNativeLength 8 유지 · #911 연기 dust 계열 크기 · 알파 × 0.5 · #912 반투명 처리를 붉은 계열로: crack_apb 0.35/0.10/0.06 알파 0.4 · 연기 0.66/0.58/0.52 → 0.46/0.42/0.40 끝에서 알파 0 · particle_splash 알파 × 0.6 · 파편 끝 0.30/0.20/0.17) · 내려친 자리 WL_Fx_QuakeGround 보라 → Path_04 색(crack_add · impact_spark 수명색 1/0.65/0.34 → 1/0/0 · particle_splash_add 1/0.65/0.34 · smoke_energy 흰색 알파 0.2 · 반투명 연기 · 갈라짐도 붉은 계열) · 모으기 WL_Fx_HammerCharge 보라 → 주황~빨강(루트 1/0.32/0.08 · Core 1/0.28/0.05 · Flare 1/0.58/0.28 · LightCone 1/0.45/0.15 · Circle 1/0.30/0.08 · Slash 1/0.50/0.20 · 빛무리 WL_Mat_ChargeHalo 2.8/1.5/0.6) — scratchpad tint913 사양 · WL913_Fx.cs · 보라 충격파 사본 WL_Fx_QuakePath 는 쓰지 않음(남겨 둠) · #914 PD 「해머 각성 스킬의 원형 모이는 이펙트 위치를 망치 기준 조금 더 아래로 내려줘(원형 이펙트가 망치 머리에 거의 가려지도록) · 내려친 위치의 이펙트 크기를 조금 더 키워주고 망치 주변 반경에 있는 적들도 광역 피해 · 해머를 내려친 위치를 기준으로 원형 3m 범위 내 적에게도 동일한 피해」 = chargeFxDrop 0.25(망치 머리 중심에서 아래로 0.25 m × 망치 배율 · 캡처: 빛이 머리 아래 가장자리로 조금만 보임) · groundFxScale 0.35 → 0.5 · impactRadius 3.0(내려친 지점에서 3 m + 적 몸 반지름 안 · 내려친 순간 · 충격파와 같은 피해 · impactLaunch 1 = 같은 띄움 2 m · 기절 2 초 · 같은 내려치기에서 충격파와 겹쳐도 적 1 회 · Play 실측: 갈래 밖 PC 오른쪽 2 m 몹 둘레 명중 1 · 높이 2.00 · 기절) + diff --git a/Docs/WLJsonHistory/WLMobLineup.history.md b/Docs/WLJsonHistory/WLMobLineup.history.md new file mode 100644 index 000000000..c0f931eef --- /dev/null +++ b/Docs/WLJsonHistory/WLMobLineup.history.md @@ -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 + diff --git a/Docs/WLJsonHistory/WLPartSkill.history.md b/Docs/WLJsonHistory/WLPartSkill.history.md new file mode 100644 index 000000000..460a4b177 --- /dev/null +++ b/Docs/WLJsonHistory/WLPartSkill.history.md @@ -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) + diff --git a/Docs/WLJsonHistory/WLPartStats.history.md b/Docs/WLJsonHistory/WLPartStats.history.md new file mode 100644 index 000000000..eff686cd7 --- /dev/null +++ b/Docs/WLJsonHistory/WLPartStats.history.md @@ -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 신화)별 값 +