From 80176c7c9edfc0dee4a0d3d89bffaf61a5ce1cf7 Mon Sep 17 00:00:00 2001 From: Gnill82 Date: Wed, 5 Nov 2025 11:09:16 +0900 Subject: [PATCH] =?UTF-8?q?v2=20=ED=8F=90=EA=B8=B0=ED=95=98=EA=B3=A0=20v3?= =?UTF-8?q?=EB=A1=9C=20=EC=83=88=EC=B6=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ARCHITECTURE.md => legacy/ARCHITECTURE.md | 0 README.md => legacy/README.md | 0 .../분석결과}/01_분석_기초자료_v2.md | 278 ++++++++---------- .../분석결과}/02_DPS_시나리오_비교분석_v2.md | 0 .../분석결과}/20251024_000515/01_요약.md | 0 .../분석결과}/20251024_000515/02_분석_전제조건.md | 0 .../20251024_000515/03_스토커별_기본데이터.md | 0 .../분석결과}/20251024_000515/04_DPS_계산_결과.md | 0 .../20251024_000515/05_카지모르드_밸런스_검증.md | 0 .../분석결과}/20251024_000515/06_유틸리티_평가.md | 0 .../분석결과}/20251024_000515/07_역할별_차별화.md | 0 .../20251024_000515/08_밸런스_티어_및_개선안.md | 0 .../분석결과}/20251024_000515/README.md | 0 .../20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md | 0 .../20251027_153101_v2/03_스토커별_기본데이터_v2.md | 0 .../20251027_153101_v2/intermediate_data.json | 0 .../20251027_153101_v2/validated_data.json | 0 .../분석결과}/20251027_153101_v2/검증_리포트.md | 0 .../분석결과}/dps_raw_results.json | 0 .../분석결과}/intermediate_data.json | 246 ++++++++++++++-- .../분석도구}/legacy/analyze_character_stats.py | 0 .../분석도구}/legacy/analyze_ge_blueprints.py | 0 .../분석도구}/legacy/check_ultimate_effects.py | 0 .../legacy/extract_activation_order_groups.py | 0 .../legacy/extract_all_ultimates_detailed.py | 0 .../분석도구}/legacy/extract_ge_from_ultimates.py | 0 .../legacy/extract_skill_cancel_windows.py | 0 .../분석도구}/legacy/extract_stalker_data.py | 0 .../분석도구}/legacy/extract_ultimate_skills.py | 0 .../분석도구}/legacy/find_ga_skills.py | 0 .../분석도구}/legacy/verify_skills_detailed.py | 0 .../v2/__pycache__/config.cpython-313.pyc | Bin 0 -> 6016 bytes .../분석도구}/v2/archive/README.md | 0 .../v2/archive/check_baran_clad_skills.py | 0 .../분석도구}/v2/archive/check_bp_vars.py | 0 .../분석도구}/v2/archive/check_bp_verification.py | 0 .../v2/archive/check_character_ability.py | 0 .../v2/archive/check_character_ability2.py | 0 .../v2/archive/check_character_ability3.py | 0 .../분석도구}/v2/archive/check_data.py | 0 .../분석도구}/v2/archive/check_first_asset.py | 0 .../분석도구}/v2/archive/check_improvements.py | 0 .../분석도구}/v2/archive/check_json_structure.py | 0 .../분석도구}/v2/archive/check_lian_skills.py | 0 .../분석도구}/v2/archive/check_lian_skills2.py | 0 .../분석도구}/v2/archive/check_montage_names.py | 0 .../v2/archive/check_send_event_notify.py | 0 .../분석도구}/v2/archive/check_sk150201.py | 0 .../분석도구}/v2/archive/check_skill_structure.py | 0 .../v2/archive/investigate_projectile.py | 0 .../분석도구}/v2/archive/verify_improvements.py | 0 .../v2/archive/verify_improvements_v2.3.py | 0 .../분석도구}/v2/calculate_dps_scenarios_v2.py | 0 {분석도구 => legacy/분석도구}/v2/config.py | 47 +-- .../분석도구}/v2/extract_stalker_data_v2.py | 52 +--- .../분석도구}/v2/generate_stalker_docs_v2.py | 18 +- {분석도구 => legacy/분석도구}/v2/output.txt | 0 .../분석도구}/v2/utils/README.md | 0 .../분석도구}/v2/utils/list_asset_types.py | 0 .../분석도구}/v2/utils/list_datatables.py | 0 .../분석도구}/v2/validate_stalker_data.py | 0 .../분석도구}/v2/장기과제_Blueprint변수검증.md | 0 .../분석도구}/v2/정리_보고서.md | 0 .../v2/__pycache__/config.cpython-313.pyc | Bin 6700 -> 0 bytes 64 files changed, 378 insertions(+), 263 deletions(-) rename ARCHITECTURE.md => legacy/ARCHITECTURE.md (100%) rename README.md => legacy/README.md (100%) rename {분석결과 => legacy/분석결과}/01_분석_기초자료_v2.md (79%) rename {분석결과 => legacy/분석결과}/02_DPS_시나리오_비교분석_v2.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/01_요약.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/02_분석_전제조건.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/03_스토커별_기본데이터.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/04_DPS_계산_결과.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/05_카지모르드_밸런스_검증.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/06_유틸리티_평가.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/07_역할별_차별화.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/08_밸런스_티어_및_개선안.md (100%) rename {분석결과 => legacy/분석결과}/20251024_000515/README.md (100%) rename {분석결과 => legacy/분석결과}/20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md (100%) rename {분석결과 => legacy/분석결과}/20251027_153101_v2/03_스토커별_기본데이터_v2.md (100%) rename {분석결과 => legacy/분석결과}/20251027_153101_v2/intermediate_data.json (100%) rename {분석결과 => legacy/분석결과}/20251027_153101_v2/validated_data.json (100%) rename {분석결과 => legacy/분석결과}/20251027_153101_v2/검증_리포트.md (100%) rename {분석결과 => legacy/분석결과}/dps_raw_results.json (100%) rename {분석결과 => legacy/분석결과}/intermediate_data.json (99%) rename {분석도구 => legacy/분석도구}/legacy/analyze_character_stats.py (100%) rename {분석도구 => legacy/분석도구}/legacy/analyze_ge_blueprints.py (100%) rename {분석도구 => legacy/분석도구}/legacy/check_ultimate_effects.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_activation_order_groups.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_all_ultimates_detailed.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_ge_from_ultimates.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_skill_cancel_windows.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_stalker_data.py (100%) rename {분석도구 => legacy/분석도구}/legacy/extract_ultimate_skills.py (100%) rename {분석도구 => legacy/분석도구}/legacy/find_ga_skills.py (100%) rename {분석도구 => legacy/분석도구}/legacy/verify_skills_detailed.py (100%) create mode 100644 legacy/분석도구/v2/__pycache__/config.cpython-313.pyc rename {분석도구 => legacy/분석도구}/v2/archive/README.md (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_baran_clad_skills.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_bp_vars.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_bp_verification.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_character_ability.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_character_ability2.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_character_ability3.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_data.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_first_asset.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_improvements.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_json_structure.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_lian_skills.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_lian_skills2.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_montage_names.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_send_event_notify.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_sk150201.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/check_skill_structure.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/investigate_projectile.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/verify_improvements.py (100%) rename {분석도구 => legacy/분석도구}/v2/archive/verify_improvements_v2.3.py (100%) rename {분석도구 => legacy/분석도구}/v2/calculate_dps_scenarios_v2.py (100%) rename {분석도구 => legacy/분석도구}/v2/config.py (82%) rename {분석도구 => legacy/분석도구}/v2/extract_stalker_data_v2.py (94%) rename {분석도구 => legacy/분석도구}/v2/generate_stalker_docs_v2.py (97%) rename {분석도구 => legacy/분석도구}/v2/output.txt (100%) rename {분석도구 => legacy/분석도구}/v2/utils/README.md (100%) rename {분석도구 => legacy/분석도구}/v2/utils/list_asset_types.py (100%) rename {분석도구 => legacy/분석도구}/v2/utils/list_datatables.py (100%) rename {분석도구 => legacy/분석도구}/v2/validate_stalker_data.py (100%) rename {분석도구 => legacy/분석도구}/v2/장기과제_Blueprint변수검증.md (100%) rename {분석도구 => legacy/분석도구}/v2/정리_보고서.md (100%) delete mode 100644 분석도구/v2/__pycache__/config.cpython-313.pyc diff --git a/ARCHITECTURE.md b/legacy/ARCHITECTURE.md similarity index 100% rename from ARCHITECTURE.md rename to legacy/ARCHITECTURE.md diff --git a/README.md b/legacy/README.md similarity index 100% rename from README.md rename to legacy/README.md diff --git a/분석결과/01_분석_기초자료_v2.md b/legacy/분석결과/01_분석_기초자료_v2.md similarity index 79% rename from 분석결과/01_분석_기초자료_v2.md rename to legacy/분석결과/01_분석_기초자료_v2.md index 48abb32..22a738e 100644 --- a/분석결과/01_분석_기초자료_v2.md +++ b/legacy/분석결과/01_분석_기초자료_v2.md @@ -63,21 +63,10 @@ - 10201 분노 (+10% 물리 피해) - 10103 공략 (+20% 머리 공격 피해) -#### 마법 딜러 - Nave (네이브) - -**Main: 스킬 그룹 (20xxx)** -- 20201 파괴 (+10% 스킬 피해) -- 20301 명상 (+70% 마나 회복) - -**Sub: 전투 그룹 (10xxx)** -- 10301 폭풍 (+10% 마법 피해) -- 10103 공략 (+20% 머리 공격 피해) - -**선택 이유**: 마법 화살 사이클(5.5초)이 쿨타임(3.5초)보다 길어 왜곡 룬 효과 미미, 파괴 룬이 DPS 5.9% 우수 - -#### 마법 딜러 - Rene (레네) +#### 마법 딜러 (Nave, Rene) **Main: 스킬 그룹 (20xxx)** +- 20103 활기 (마나 높을 때 스킬 피해 증가) - 20202 왜곡 (-25% 쿨타임) - 20301 명상 (+70% 마나 회복) @@ -85,8 +74,6 @@ - 10301 폭풍 (+10% 마법 피해) - 10103 공략 (+20% 머리 공격 피해) -**선택 이유**: 소환수 쿨타임 감소 효과로 Ifrit(7초→5.25초), Shiva(10초→7.5초) 재소환 빈도 증가 - #### 원거리 딜러 (Urud, Lian) **Main: 스킬 그룹 (20xxx)** @@ -109,6 +96,46 @@ - 40201 면역 (물약 사용 시 +20% 저항 20초) - 40301 효율 (+50% 물약 효과) +### 특수 시스템 활용률 + +**전제**: 최적 플레이 = 100% 활용 + +#### Cazimord - Parrying (흘리기) +- **판정 윈도우**: 0.2초 +- **성공 시 효과**: + - 적 피해 무효화 + - 자동 반격 (높은 피해) + - **스킬 쿨타임 감소**: + - 섬광(SK170201): -3.8초 + - 날개베기(SK170202): -3.8초 + - 작열(SK170203): -6.8초 +- **활용률 시나리오**: 0% (미사용) vs 100% (완벽 성공) + +#### Rio - Chain Score +- **최대 스택**: 3 +- **효과**: 각 스킬별로 다른 위력 증가 +- **충전**: Dropping Attack 성공 시 +- **활용률**: 100% (항상 3스택 유지) + +#### Urud & Lian - Reload +- **탄약**: 6발 +- **재장전 시간**: 2.0초 +- **활용률**: 100% (탄약 관리 최적화) + +#### Lian - Charging Bow +- **만충전 데미지**: 1.5배 +- **충전 시간**: 레벨당 0.5초 (최대 1.5초) +- **활용률**: 100% (항상 만충전 후 발사) + +#### Rene - Spirit 소환 +- **소환수**: Ifrit, Shiva +- **활용률**: 100% (소환수 항상 활용) + +#### Sinobu - Shuriken 충전 +- **최대 충전**: 3개 +- **충전 속도**: 1초/개 +- **활용률**: 100% (충전 관리 최적화) + --- ## 10명 스토커 종합 비교표 @@ -141,7 +168,7 @@ | **Hilda (힐다)** | 마석 ‘핏빛 달’ | Normal | 0.5 | 20초 / 2초 | 마석의 힘을 해방하여 20초 동안 공격력 15, 방어력 25 증가합니다.... | | **Urud (우르드)** | 마석 ‘폭쇄’ | Normal | 1 | 15초 / 2초 | 마석의 힘을 해방하여 15초 동안 화살에 범위 피해 효과를 부여합니다. 적중된 대상은 30% 확률로 화상에 걸립니다.... | | **Nave (네이브)** | 마석 ‘해방’ | MagicalSkill | 1 | 5초 / 2초 | 마석의 힘으로 5초 동안 적을 관통하는 광선을 발사합니다. 광선은 0.5초 간격마다 100%의 마법 피해를 입힙니다.... | -| **Baran (바란)** | 마석 '일격분쇄' | PhysicalSkill | 1.7 | 2초 / 10초 | 대검을 내리찍어 4m의 균열을 생성합니다. 균열 범위 내 170%의 물리 피해를 주며, 적중된 대상은 기절합니다.... | +| **Baran (바란)** | 마석 '일격분쇄' | PhysicalSkill | 1.7 | 2초 / 1.29초 | 대검을 내리찍어 4m의 균열을 생성합니다. 균열 범위 내 170%의 물리 피해를 주며, 적중된 대상은 기절합니다.... | | **Rio (리오)** | 마석 ‘민감’ | Normal | 0.3 | 15초 / 2초 | 마석의 힘을 개방하여 연계 점수 3점을 획득하고, 15초 동안 은신 및 투시 효과를 획득합니다. 대상의 뒤를 공격 시 '약점' 판정이 적용됩니다.... | | **Clad (클라드)** | 마석 ‘황금’ | Normal | 300 | 6초 / 0.55초 | 마석의 힘을 해방하여 5초 동안 자신과 아군에게 300의 보호막을 생성합니다.... | | **Rene (레네)** | 마석 ‘붉은 축제’ | MagicalSkill | 50 | 20초 / 2초 | 마석의 힘을 해방하여 20초 동안 자신과 아군의 모든 공격에 흡혈 효과를 부여합니다. 피해의 50%만큼 체력을 회복합니다.... | @@ -155,16 +182,16 @@ 다음 스킬들은 DoT(Damage over Time) 효과가 있으며, **DPS 계산 시 추가 지속 피해를 고려해야 합니다**. -| 스토커 | 스킬 이름 | DoT 타입 | 기본 피해 | DoT 총 피해 | 지속시간 | DPS (HP 250 기준) | -|--------|----------|----------|----------|-------------|----------|-------------------| -| **Urud (우르드)** | 독성 화살 | Poison | 1 | 대상 MaxHP의 20% | 10초 | 5 | -| **Rene (레네)** | 독기 화살 | Bleed | 1 | 고정 20 피해 | 10초 | 2 | -| **Cazimord (카지모르드)** | 섬광 | Burn | 0.5 | 대상 MaxHP의 10% | 10초 | 2.5 | +| 스토커 | 스킬 이름 | DoT 타입 | 기본 피해 | DoT 피해 | 지속시간 | +|--------|----------|----------|----------|----------|----------| +| **Urud (우르드)** | 독성 화살 | Poison | 1 | 대상 MaxHP의 20% | 5초 | +| **Rene (레네)** | 독기 화살 | Bleed | 1 | 고정 20 피해 | 5초 | +| **Cazimord (카지모르드)** | 섬광 | Burn | 0.5 | 대상 MaxHP의 10% | 3초 | +| **Rene (레네)** | 정령 소환 : 화염 | Burn | 1.2 | 대상 MaxHP의 10% | 3초 | **주의사항**: -- DoT는 **1초 간격(1틱)으로 발동**되며, 적용 1초 후부터 시작됩니다. - DoT 피해는 대상의 HP에 비례하므로, 적의 체력에 따라 실제 피해량이 달라집니다. -- 동일한 DoT는 중첩되지 않고 지속시간만 초기화됩니다. +- 구체적인 DoT DPS 계산 방법은 다음 챕터에서 다룹니다. - 위 표의 '기본 피해'는 스킬의 skillDamageRate입니다. --- @@ -183,14 +210,11 @@ **weaponShield** (3타 콤보): -| 타수 | 몽타주 | 시퀀스(초) | 실제(초) | 배율(%) | 비고 | -|------|--------|-----------|---------|---------|------| -| 1 | AM_PC_Hilda_B_Attack_W01_01 | 1.60 | 1.23 | 0.0 | 콤보 캔슬 적용 | -| 2 | AM_PC_Hilda_B_Attack_W01_02 | 1.60 | 1.23 | +5.0 | 콤보 캔슬 적용 | -| 3 | AM_PC_Hilda_B_Attack_W01_03 | 1.37 | 1.23 | -5.0 | 콤보 캔슬 적용 | - -**평타 DPS 효율**: 107.3 DPS (총 피해 396 / 콤보 시간 3.69초, 룬 적용 1.10배) -- ✨ **콤보 캔슬 시스템**: ANS_DisableBlockingState_C 노티파이로 조기 캔슬 가능 (평균 23% 시간 단축) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Hilda_B_Attack_W01_01 | 0.80 | -5.0 | ANS_AttackState: 0.80초 | +| 2 | AM_PC_Hilda_B_Attack_W01_02 | 0.77 | -5.0 | ANS_AttackState: 0.77초 | +| 3 | AM_PC_Hilda_B_Attack_W01_03 | 1.00 | +20.0 | ANS_AttackState: 1.00초 | ### 스킬 목록 @@ -200,11 +224,10 @@ - **타입**: PhysicalSkill / **속성**: Lightning - **피해 배율**: 1.3 - **쿨타임**: 6초 / **마나**: 11 - - **몽타주**: + - **몽타주**: 1. AM_PC_Hilda_B_Skill_Ready (5.43초) [준비] 2. AM_PC_Hilda_B_Skill_SwordStrike (1.80초) - **시퀀스 길이**: 1.80초 - - **DPS 효율**: 104.9 DPS (피해 156 / 1.80초, 룬 적용 1.21배) - **설명**: 검을 휘둘러 130%만큼 번개 속성 물리 피해를 입힙니다. 적중된 대상은 잠시 경직됩니다. 2. **SK100202 반격** @@ -213,7 +236,6 @@ - **쿨타임**: 4초 / **마나**: 10 - **몽타주**: AM_PC_Hilda_B_Skill_Counter - **시퀀스 길이**: 2.81초 - - **DPS 효율**: 41.3 DPS (피해 96 / 2.81초, 룬 적용 1.21배) - **설명**: 방패를 들어 5초 동안 반격 자세를 취합니다. 반격 성공 시 80%만큼 물리 피해를 줍니다. 3. **SK100204 도발** @@ -267,12 +289,10 @@ **bow** (1타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| | 1 | AM_PC_Urud_Base_B_Attack_N | 3.28 | 0.0 | | -**평타 DPS 효율**: 40.2 DPS (피해 120 / 콤보 시간 3.28초, 룬 적용 1.10배) - ### 스킬 목록 **기본 스킬**: @@ -283,20 +303,16 @@ - **쿨타임**: 7초 / **마나**: 14 - **몽타주**: AM_PC_Urud_Base_B_Skill_MultiArrow - **시퀀스 길이**: 1.62초 - - **DPS 효율**: 80.7 DPS (피해 108 / 1.62초, 룬 적용 1.21배) - - 💡 **단일 대상**: 3발 중 1발만 적중 (산탄 방사형 패턴) - - 💡 **광역용**: 여러 적 대상 시 유용 - **설명**: 3발의 화살을 동시에 발사하여 각각 90%만큼 물리 피해를 입힙니다. 화살 3개 소모합니다. 2. **SK110204 독성 화살** - **타입**: PhysicalSkill / **속성**: Poison - **피해 배율**: 1 - **쿨타임**: 7초 / **마나**: 9 - - ⚠️ **Poison 상태이상 유발**: 대상 MaxHP의 20% (10초간) + - ⚠️ **Poison 상태이상 유발**: 대상 MaxHP의 20% (5초간) - 💡 **DoT 피해는 대상 HP에 비례** (구체적 DPS는 다음 챕터 참조) - **몽타주**: AM_PC_Urud_Base_B_Skill_PoisonArrow - **시퀀스 길이**: 1.62초 - - **DPS 효율**: 89.6 DPS (피해 120 / 1.62초, 룬 적용 1.21배) + DoT 5 DPS (대상 HP 250 기준, 10초) - **설명**: 화살에 독을 발라 발사합니다. 적중된 대상은 중독됩니다. 화살을 1개 소모합니다. 3. **SK110201 덫 설치** @@ -328,7 +344,6 @@ - **피해 배율**: 0.7 - **몽타주**: AM_PC_Urud_Base_B_Skill_ArrowStab - **시퀀스 길이**: 1.11초 - - **DPS 효율**: 87.7 DPS (피해 80.5 / 1.11초, 룬 적용 1.21배) - **설명**: 화살로 찔러 75%만큼 물리 피해를 입힙니다. 적중 시 다음 일반 공격이 50% 증가합니다. @@ -362,12 +377,10 @@ **staff** (2타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| -| 1 | AM_PC_Nave_B_Attack_W01_01 | 1.60 | 0.0 | | -| 2 | AM_PC_Nave_B_Attack_W01_02 | 1.70 | 0.0 | | - -**평타 DPS 효율**: 83.3 DPS (총 피해 250 / 콤보 시간 3.30초, 룬 적용 1.10배) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Nave_B_Attack_W01_01 | 0.90 | 0.0 | ANS_AttackState: 0.90초 | +| 2 | AM_PC_Nave_B_Attack_W01_02 | 0.90 | 0.0 | ANS_AttackState: 0.90초 | ### 스킬 목록 @@ -379,8 +392,6 @@ - **쿨타임**: 3.5초 / **마나**: 18 / **시전시간**: 2초 - **몽타주**: AM_PC_Nave_B_Skill_MagicMissile - **시퀀스 길이**: 3.33초 - - **DPS 효율**: 60.7 DPS (3회 × 피해 92 / 사이클 5.5초, 룬 적용 1.21배) - - 💡 **사이클 타임**: 시전 2초 + 발사 3.3초 (쿨타임 3.5초와 중첩) - **설명**: 최대 3개의 마법 화살을 생성하여 일반 공격으로 발사합니다. 마법 화살은 각각 80%만큼 마법 피해를 입힙니다. 2. **SK120202 화염구** @@ -389,7 +400,6 @@ - **쿨타임**: 5초 / **마나**: 25 / **시전시간**: 4초 - **몽타주**: AM_PC_Nave_B_Skill_FireWall - **시퀀스 길이**: 3.33초 - - **DPS 효율**: 83.6 DPS (피해 230 / 3.33초, 룬 적용 1.21배) - **설명**: 화염구를 생성하여 일반 공격으로 발사합니다. 화염구는 200% 화염 속성 마법 피해와 주변에 150% 추가 피해를 입힙니다. 3. **SK120206 노대바람** @@ -398,7 +408,6 @@ - **쿨타임**: 7초 / **마나**: 9 - **몽타주**: AM_PC_Nave_B_Skill_WindForce - **시퀀스 길이**: 1.33초 - - **DPS 효율**: 52.3 DPS (피해 57.5 / 1.33초, 룬 적용 1.21배) - **설명**: 강한 바람으로 밀쳐내고 50%만큼 마법 피해를 입힙니다. @@ -443,14 +452,11 @@ **twoHandWeapon** (3타 콤보): -| 타수 | 몽타주 | 시퀀스(초) | 실제(초) | 배율(%) | 비고 | -|------|--------|-----------|---------|---------|------| -| 1 | AM_PC_Baran_B_Attack_W01_01 | 1.90 | 1.50 | +5.0 | 콤보 캔슬 적용 | -| 2 | AM_PC_Baran_B_Attack_W01_02 | 1.93 | 1.48 | +10.0 | 콤보 캔슬 적용 | -| 3 | AM_PC_Baran_B_Attack_W01_03 | 1.73 | 1.50 | +5.0 | 콤보 캔슬 적용 | - -**평타 DPS 효율**: 90.4 DPS (총 피해 404.8 / 콤보 시간 4.48초, 룬 적용 1.10배) -- ✨ **콤보 캔슬 시스템**: ANS_DisableBlockingState_C 노티파이로 조기 캔슬 가능 (평균 19% 시간 단축) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Baran_B_Attack_W01_01 | 1.17 | +10.0 | ANS_AttackState: 1.17초 | +| 2 | AM_PC_Baran_B_Attack_W01_02 | 1.17 | +15.0 | ANS_AttackState: 1.17초 | +| 3 | AM_PC_Baran_B_Attack_W01_03 | 1.00 | +10.0 | ANS_AttackState: 1.00초 | ### 스킬 목록 @@ -462,8 +468,6 @@ - **쿨타임**: 13초 / **마나**: 14 - **몽타주**: AM_PC_Baran_B_Skill_Pulling - **시퀀스 길이**: 1.70초 - - **DPS 효율**: 20.5 DPS (피해 28.75 / 1.70초, 룬 적용 1.21배) - - 💡 **유틸리티 스킬** (낮은 DPS, 주로 끌어당기기용) - **설명**: 갈고리를 던져 25%만큼 물리 피해를 입히고, 대상을 끌어당깁니다. 적중된 대상은 잠시 경직됩니다. 2. **SK130203 후려치기** @@ -472,7 +476,6 @@ - **쿨타임**: 8초 / **마나**: 9 - **몽타주**: AM_PC_Baran_B_Skill_Smash - **시퀀스 길이**: 1.89초 - - **DPS 효율**: 176.7 DPS (2회 × 피해 138 / 1.89초, 룬 적용 1.21배) - **설명**: 대검을 크게 휘둘러 두 번 연속으로 120%만큼 물리 피해를 입힙니다. 3. **SK130206 깊게 찌르기** @@ -481,7 +484,6 @@ - **쿨타임**: 7초 / **마나**: 10 - **몽타주**: AM_PC_Baran_B_Skill_SwordStab - **시퀀스 길이**: 1.75초 - - **DPS 효율**: 87.5 DPS (피해 126.5 / 1.75초, 룬 적용 1.21배) - **설명**: 대검을 깊게 찔러 넣어 120%만큼 물리 피해를 입힙니다. 문을 파괴할 수 있습니다. 적중된 대상은 잠시 경직됩니다. @@ -501,10 +503,10 @@ **SK130301 마석 '일격분쇄'** - **타입**: PhysicalSkill - **피해 배율**: 1.7 - - **시전시간**: 1.29초 (AN_SimpleSendEvent 시점, 최대 홀딩 10초) + - **시전시간**: 1.29초 - **몽타주**: AM_PC_Baran_B_Skill_RockBraker2 - **시퀀스 길이**: 1.98초 - - **설명**: 대검을 내리찍어 4m의 균열을 생성합니다. 균열 범위 내 170%의 물리 피해를 주며, 적중된 대상은 기절합니다. (대검을 최대 10초까지 들고 있으면서 타이밍 조절 가능) + - **설명**: 대검을 내리찍어 4m의 균열을 생성합니다. 균열 범위 내 170%의 물리 피해를 주며, 적중된 대상은 기절합니다. --- @@ -523,13 +525,11 @@ **shortSword** (3타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| -| 1 | AM_PC_Rio_B_Attack_W01_01 | 1.17 | -30.0 | | -| 2 | AM_PC_Rio_B_Attack_W01_02 | 1.33 | -20.0 | | -| 3 | AM_PC_Rio_B_Attack_W01_03 | 1.37 | -15.0 | | - -**평타 DPS 효율**: 80.2 DPS (총 피해 282 / 콤보 시간 3.87초, 룬 적용 1.10배) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Rio_B_Attack_W01_01 | 0.62 | -30.0 | ANS_AttackState: 0.62초 | +| 2 | AM_PC_Rio_B_Attack_W01_02 | 1.00 | +10.0 | ANS_AttackState: 1.00초 | +| 3 | AM_PC_Rio_B_Attack_W01_03 | 0.97 | +15.0 | ANS_AttackState: 0.97초 | ### 스킬 목록 @@ -541,8 +541,6 @@ - **쿨타임**: 3.5초 / **마나**: 9 - **몽타주**: AM_PC_Rio_B_Skill_RapidStab - **시퀀스 길이**: 1.41초 - - **DPS 효율**: 205.9 DPS (2회 × 피해 120 / 1.41초, 룬 적용 1.21배) - - 💡 **Chain Score +2** (타격당 1점씩) - **설명**: 단검을 빠르게 2번 찔러 각각 100%만큼 암흑 속성 물리 피해를 입힙니다. 각 공격은 25%의 추가 치명타 확률을 가집니다. 타격당 연계 점수 1점을 획득합니다. 2. **SK140205 접근** @@ -558,11 +556,10 @@ - **타입**: PhysicalSkill - **피해 배율**: 1 - **쿨타임**: 7초 / **마나**: 10 / **시전시간**: 1초 - - **몽타주**: + - **몽타주**: 1. AM_PC_Rio_B_Skill_ThrowingDagger (1.63초) 2. AM_PC_Rio_B_Skill_ThrowingDagger_E (1.20초) - **시퀀스 길이**: 2.83초 - - **DPS 효율**: 51.3 DPS (피해 120 / 2.83초, 룬 적용 1.21배) - **설명**: 단검을 던져 100%만큼 피해를 입힙니다. @@ -573,8 +570,6 @@ - **피해 배율**: 0.7 - **몽타주**: AM_PC_Rio_B_Skill_DroppingAttack - **시퀀스 길이**: 1.30초 - - **DPS 효율** (Chain Score 3스택): 195.5 DPS (피해 84 × 2.5배 / 1.30초, 룬 적용 1.21배) - - 💡 **Chain Score 소모**: 3스택 시 +150% 추가 피해 (총 250%) - **설명**: 단검으로 내려 찍어 70%만큼 물리 피해를 입힙니다. 연계 점수에 따라 50/100/150% 추가 피해를 입힙니다. @@ -608,13 +603,10 @@ **mace** (2타 콤보): -| 타수 | 몽타주 | 시퀀스(초) | 실제(초) | 배율(%) | 비고 | -|------|--------|-----------|---------|---------|------| -| 1 | AM_PC_Clad_Base_Attack_Mace1 | 1.90 | 0.97 | +5.0 | 콤보 캔슬 적용 | -| 2 | AM_PC_Clad_Base_Attack_Mace2 | 2.27 | 0.87 | +5.0 | 콤보 캔슬 적용 | - -**평타 DPS 효율**: 125.5 DPS (총 피해 231 / 콤보 시간 1.84초, 룬 적용 없음) -- ✨ **콤보 캔슬 시스템**: ANS_DisableBlockingState_C 노티파이로 조기 캔슬 가능 (평균 56% 시간 단축!) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Clad_Base_Attack_Mace1 | 0.90 | +5.0 | ANS_AttackState: 0.90초 | +| 2 | AM_PC_Clad_Base_Attack_Mace2 | 1.00 | +5.0 | ANS_AttackState: 1.00초 | ### 스킬 목록 @@ -635,11 +627,10 @@ - **타입**: MagicalSkill / **속성**: Holy - **피해 배율**: 1.5 - **쿨타임**: 5초 / **마나**: 9 / **시전시간**: 0.5초 - - **몽타주**: + - **몽타주**: 1. AM_PC_Clad_Base_B_Skill_Ready (2.23초) [준비] 2. AM_PC_Clad_Base_B_Skill_TurnUndead (1.20초) - **시퀀스 길이**: 1.20초 - - **DPS 효율**: 137.5 DPS (피해 165 / 1.20초, 룬 적용 없음) - **설명**: 3m 내의 적에게 150% 빛 속성 마법 피해를 주고, 3초 동안 5 방어력을 감소 시킵니다. 3. **SK150202 신성한 빛** @@ -694,13 +685,11 @@ **staff** (3타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| -| 1 | AM_PC_Rene_B_Attack_W01_01 | 1.90 | 0.0 | | -| 2 | AM_PC_Rene_B_Attack_W01_02 | 1.80 | 0.0 | | -| 3 | AM_PC_Rene_B_Attack_W01_03 | 2.20 | 0.0 | | - -**평타 DPS 효율**: 69.9 DPS (총 피해 375 / 콤보 시간 5.90초, 룬 적용 1.10배) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Rene_B_Attack_W01_01 | 0.85 | 0.0 | ANS_AttackState: 0.85초 | +| 2 | AM_PC_Rene_B_Attack_W01_02 | 0.90 | 0.0 | ANS_AttackState: 0.90초 | +| 3 | AM_PC_Rene_B_Attack_W01_03 | 0.91 | 0.0 | ANS_AttackState: 0.91초 | ### 스킬 목록 @@ -710,10 +699,11 @@ - **타입**: MagicalSkill - **피해 배율**: 1.2 - **쿨타임**: 7초 / **마나**: 8 + - ⚠️ **Burn 상태이상 유발**: 대상 MaxHP의 10% (3초간) + - 💡 **DoT 피해는 대상 HP에 비례** (구체적 DPS는 다음 챕터 참조) - 🔮 **소환**: Ifrit (지속 20초) - **몽타주**: AM_PC_Rene_B_Skill_SummonIfrit - **시퀀스 길이**: 1.46초 - - **DPS 효율**: 113.0 DPS (피해 150 / 1.46초, 룬 적용 1.10배) + **Ifrit 독립 DPS 90.51** (소환 20초) - **설명**: 20초 동안 유지되는 화염의 정령을 소환합니다. 정령은 이동하지 않고 화염 화살을 발사하여 120% 화염 속성 마법 피해를 입힙니다. 2. **SK160206 정령 소환 : 냉기** @@ -723,7 +713,6 @@ - 🔮 **소환**: Shiva (지속 60초) - **몽타주**: AM_PC_Rene_B_Skill_SummonShiva - **시퀀스 길이**: 2.69초 - - **DPS 효율**: 40.9 DPS (피해 100 / 2.69초, 룬 적용 1.10배) + **Shiva 독립 DPS 37.93** (소환 60초) - **설명**: 60초 동안 유지되는 냉기의 정령을 소환합니다. 정령은 레네를 따라 이동하며 얼음 송곳을 소환합니다. 얼음 송곳은 80%만큼 물 속성 마법 피해를 입히며, 적중된 적은 둔화됩니다. 3. **SK160203 독기 화살** @@ -731,9 +720,9 @@ - **피해 배율**: 1 - **쿨타임**: 10초 / **마나**: 15 / **시전시간**: 2초 - ⚠️ **Bleed 상태이상 유발**: 고정 20 피해 (5초간) + - 💡 **DoT 피해는 대상 HP에 비례** (구체적 DPS는 다음 챕터 참조) - **몽타주**: AM_PC_Rene_B_Skill_PoisonGas - **시퀀스 길이**: 4.67초 - - **DPS 효율**: 29.4 DPS (피해 125 / 4.67초, 룬 적용 1.10배) + DoT 4 DPS (고정) - **설명**: 방어력을 무시하고 30만큼 암흑 속성 마법 피해를 입힙니다. 적중된 적은 출혈 상태가 됩니다. @@ -742,11 +731,10 @@ **SK160101 할퀴기** - **타입**: MagicalSkill - **피해 배율**: 0.75 - - **몽타주**: + - **몽타주**: 1. AM_PC_Rene_B_Skill_Scratching (1.11초) 2. AM_PC_Rene_B_Skill_Scratching2 (1.61초) - **시퀀스 길이**: 1.36초 (평균) - - **DPS 효율**: 75.8 DPS (피해 93.75 / 1.36초, 룬 적용 1.10배) - **설명**: 손톱을 휘둘러 75%만큼 마법 피해를 입히고 흡혈합니다. 피해의 30%만큼 체력을 회복합니다. @@ -770,13 +758,14 @@ - **소환 스킬**: SK160202 정령 소환 : 화염 - **소환 유지 시간**: 20초 -- **공격 몽타주**: +- **공격 몽타주**: - AM_Sum_Elemental_Fire_Attack_N01 (2.29초) - AM_Sum_Elemental_Fire_Attack_N02 (2.29초) - AM_Sum_Elemental_Fire_Attack_N03 (3.70초) - **공격 사이클**: 2.29초 → 2.29초 → 3.70초 (총 8.29초, 반복) - **예상 공격 횟수**: ~7.2회 - **총 피해 배율**: ~8.69배 상당 +- **특수 효과**: Burn DoT (대상 MaxHP의 10% (3초간)) #### ❄️ Shiva @@ -805,12 +794,10 @@ **shortSword** (2타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| -| 1 | AM_PC_Sinobu_B_Attack_W01_03 | 1.07 | -20.0 | | -| 2 | AM_PC_Sinobu_B_Attack_W01_01 | 1.20 | -20.0 | | - -**평타 DPS 효율**: 89.2 DPS (총 피해 184 / 콤보 시간 2.27초, 룬 적용 1.10배) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Sinobu_B_Attack_W01_03 | 0.80 | -5.0 | ANS_AttackState: 0.80초 | +| 2 | AM_PC_Sinobu_B_Attack_W01_01 | 0.80 | -15.0 | ANS_AttackState: 0.80초 | ### 스킬 목록 @@ -822,20 +809,16 @@ - **쿨타임**: 6초 / **마나**: 10 / **시전시간**: 1초 - **몽타주**: AM_PC_Sinobu_B_Skill_BombTalisman - **시퀀스 길이**: 2.14초 - - **DPS 효율**: 84.5 DPS (피해 149.5 / 2.14초, 룬 적용 1.21배) - - 💡 **표창 충전 +1** - **설명**: 뒤로 점프하며 기폭찰 쿠나이를 설치합니다. 기폭찰 쿠나이는 적이 근처에 오면 폭발하여 130%만큼 물리 피해를 입힙니다. 사용 시 표창 1개를 충전합니다. 2. **SK180203 비뢰각** - **타입**: PhysicalSkill / **속성**: Lightning - **피해 배율**: 1.1 - **쿨타임**: 8초 / **마나**: 11 - - **몽타주**: + - **몽타주**: 1. AM_PC_Sinobu_B_Skill_ThunderKick (0.60초) 2. AM_PC_Sinobu_B_Skill_ThunderKick_E (0.87초) - **시퀀스 길이**: 1.47초 - - **DPS 효율**: 104.2 DPS (피해 126.5 / 1.47초, 룬 적용 1.21배) - - 💡 **표창 충전 +1** (적중 시) - **설명**: 대각선으로 날아차기를 하여 110%만큼 번개 속성 물리 피해를 입힙니다. 점프 상태에서만 사용 가능하며, 적중된 대상은 잠시 경직됩니다. 적중 시 표창 1개를 충전합니다. 3. **SK180205 인술 ‘바꿔치기’** @@ -859,8 +842,6 @@ - **시전시간**: 1초 - **몽타주**: AM_PC_Sinobu_B_Skill_Shuriken - **시퀀스 길이**: 0.88초 - - **DPS 효율**: 189.8 DPS (피해 138 / 0.88초, 룬 적용 1.21배) - - 💡 **표창 소모 -1** (최대 3개 충전) - **설명**: 표창을 던져 120%만큼 물리 피해를 입힙니다. 일반 공격이 적중하거나 스킬을 사용하면 충전됩니다. 최대 3개까지 충전 가능합니다. @@ -890,12 +871,10 @@ **bow** (1타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| | 1 | AM_PC_Lian_Base_000_Attack_Bow | 3.27 | 0.0 | | -**평타 DPS 효율**: 40.4 DPS (피해 120 / 3.27초, 룬 적용 1.10배) - ### 스킬 목록 **기본 스킬**: @@ -906,20 +885,16 @@ - **쿨타임**: 7초 / **마나**: 16 - **몽타주**: AM_PC_Lian_Base_000_Skill_RapidShot1 - **시퀀스 길이**: 2.67초 - - **DPS 효율**: 184.9 DPS (4회 × 피해 102 / 2.67초, 룬 적용 1.21배) - - 💡 **탄약 소모 -4** - **설명**: 4발의 화살을 빠르게 발사하여 각각 85%만큼 물리 피해를 입힙니다. 화살을 4개 소모합니다. 2. **SK190205 비연사** - **타입**: PhysicalSkill - **피해 배율**: 1.5 - **쿨타임**: 10초 / **마나**: 15 - - **몽타주**: + - **몽타주**: 1. AM_PC_Lian_Base_000_Skill_BackStepBowAttack (1.33초) 2. AM_PC_Lian_Base_000_Skill_BackStepBowAttack (1.33초) - **시퀀스 길이**: 1.33초 - - **DPS 효율**: 163.8 DPS (피해 180 / 1.33초, 룬 적용 1.21배) - - 💡 **탄약 소모 -1** - **설명**: 뒤로 빠지며 화살을 발사하여 150%만큼 물리 피해를 입힙니다. 화살을 1개 소모합니다. 3. **SK190201 연화** @@ -928,8 +903,6 @@ - **쿨타임**: 7.5초 / **마나**: 12 - **몽타주**: AM_PC_Lian_Base_000_Skill_DarkSouls_NoCasting - **시퀀스 길이**: 2.20초 - - **DPS 효율**: 79.2 DPS (피해 144 / 2.20초, 룬 적용 1.21배) - - 💡 **탄약 소모 없음** - **설명**: 60초 동안 적을 천천히 추적하는 연꽃을 만들어 발사합니다. 연꽃은 120%만큼 빛 속성 물리 피해를 입히며, 적중된 대상은 10초 동안 25%의 주는 피해 감소 효과를 받습니다. 4. **SK190209 재장전** @@ -952,8 +925,6 @@ - **시전시간**: 1.5초 - **몽타주**: AM_PC_Lian_Base_000_Skill_ChargingBow - **시퀀스 길이**: 4.93초 - - **DPS 효율** (만충전): 34.6 DPS (피해 84 × 1.5배 / 4.93초, 룬 적용 1.21배) - - 💡 **탄약 소모 -1**, 충전 시간 1.5초로 최대 150% 피해 - **설명**: 조준하는 동안 물리 피해가 증가하는 화살을 발사합니다. 최대 150%까지 물리 피해가 증가합니다. 화살을 1개 소모합니다. @@ -987,14 +958,11 @@ **weaponShield** (3타 콤보): -| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 | -|------|--------|----------|---------|------| -| 1 | AM_PC_Cazimord_B_Attack_W01_01 | 1.67 | -15.0 | | -| 2 | AM_PC_Cazimord_B_Attack_W01_02 | 1.90 | +5.0 | | -| 3 | AM_PC_Cazimord_B_Attack_W01_03 | 1.87 | +10.0 | | - -**평타 DPS 효율**: 72.8 DPS (총 피해 360 / 콤보 시간 5.44초, 룬 적용 1.10배) -**평타 DPS 효율 (작열 버프 시)**: 87.4 DPS (+20% 추가 마법 피해) +| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 | +|------|--------|---------------|---------|------| +| 1 | AM_PC_Cazimord_B_Attack_W01_01 | 0.90 | -5.0 | ANS_AttackState: 0.90초 | +| 2 | AM_PC_Cazimord_B_Attack_W01_02 | 0.94 | +10.0 | ANS_AttackState: 0.94초 | +| 3 | AM_PC_Cazimord_B_Attack_W01_03 | 0.85 | 0.0 | ANS_AttackState: 0.85초 | ### 스킬 목록 @@ -1004,13 +972,13 @@ - **타입**: PhysicalSkill - **피해 배율**: 0.5 - **쿨타임**: 15.5초 / **마나**: 5 - - ⚠️ **Burn 상태이상 유발**: 대상 MaxHP의 10% (10초간) - - **몽타주**: + - ⚠️ **Burn 상태이상 유발**: 대상 MaxHP의 10% (3초간) + - 💡 **DoT 피해는 대상 HP에 비례** (구체적 DPS는 다음 챕터 참조) + - **몽타주**: 1. AM_PC_Cazimord_B_Skill_Flash (3.62초) 2. AM_PC_Cazimord_B_Skill_Flash_Active (1.73초) - **시퀀스 길이**: 1.73초 - - **DPS 효율**: 42.0 DPS (피해 60 / 1.73초, 룬 적용 1.21배) + DoT 2.5 DPS (대상 HP 250 기준, 10초) - - **설명**: 정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다. 스킬 사용 중에는 경직에 면역 됩니다. + - **설명**: 정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다. 2. **SK170202 날개 베기** - **타입**: PhysicalSkill @@ -1018,7 +986,6 @@ - **쿨타임**: 15.5초 / **마나**: 10 - **몽타주**: AM_PC_Cazimord_B_Skill_BladeStorm - **시퀀스 길이**: 2.00초 - - **DPS 효율**: 87.1 DPS (4회 × 피해 36 / 2.00초, 룬 적용 1.21배) - **설명**: 4번 베기로 공격력의 30% 피해를 입힙니다. 스킬 사용 중에는 경직에 면역 됩니다. 3. **SK170203 작열** @@ -1050,7 +1017,7 @@ - **시전시간**: 2초 - **몽타주**: AM_PC_Cazimord_B_Skill_ManaStoneBurn - **시퀀스 길이**: 3.50초 - - **설명**: 마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. + - **설명**: 마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. 또한 스킬 사용 중에는 경직에 면역 됩니다. --- @@ -1063,6 +1030,7 @@ - **판정 윈도우**: 0.2초 - **패링 성공 시**: - 적 공격 무효화 + - 자동 반격 (높은 피해) - 스킬 쿨타임 감소 #### 쿨타임 감소 효과 @@ -1090,12 +1058,12 @@ ### Urud & Lian - Reload 시스템 #### 메커니즘 -- **최대 탄약**: 12발 +- **최대 탄약**: 6발 - **재장전 시간**: 2.0초 - **재장전 중**: 다른 행동 불가 (DPS 손실) #### DPS 영향 -- 12발 소진 후 2초 공백 발생 +- 6발 소진 후 2초 공백 발생 - 최적 플레이: 탄약 관리로 전투 공백 최소화 ### Lian - Charging Bow @@ -1113,33 +1081,29 @@ #### Ifrit (화염 정령) - **지속 시간**: 20초 -- **공격 타입**: 원거리 화염 공격 -- **독립 DPS**: 90.51 (소환수 몽타주 기반) +- **공격 타입**: 근접 화염 공격 +- **독립 DPS**: 계산 필요 (소환수 몽타주 기반) #### Shiva (냉기 정령) - **지속 시간**: 60초 - **공격 타입**: 원거리 냉기 공격 -- **독립 DPS**: 37.93 (소환수 몽타주 기반) +- **독립 DPS**: 계산 필요 (소환수 몽타주 기반) ### Sinobu - Shuriken 충전 #### 메커니즘 - **최대 충전**: 3개 -- **충전 조건**: - - 일반 공격 적중 시 +1개 - - SK180202 기폭찰 사용 시 +1개 - - SK180203 비뢰각 적중 시 +1개 - - SK180205 인술 '바꿔치기' 효과 발동 시 +1개 (피격 시) -- **소모**: SK180101 표창 사용 시 1개씩 소모 +- **충전 속도**: 1초/개 (자동) +- **소모**: 특정 스킬 사용 시 1개씩 소모 #### DPS 영향 -- 조건부 충전 시스템으로 전략적 스킬 사용 필요 -- 최적 플레이: 충전 스킬과 표창을 효율적으로 교차 사용 +- 충전 관리로 스킬 사용 빈도 조절 +- 최적 플레이: 충전 타이밍 고려한 스킬 로테이션 --- --- -**생성 일시**: 2025-10-27 20:13:43 +**생성 일시**: 2025-10-28 23:18:41 **데이터 소스**: intermediate_data.json **검증 상태**: 미검증 diff --git a/분석결과/02_DPS_시나리오_비교분석_v2.md b/legacy/분석결과/02_DPS_시나리오_비교분석_v2.md similarity index 100% rename from 분석결과/02_DPS_시나리오_비교분석_v2.md rename to legacy/분석결과/02_DPS_시나리오_비교분석_v2.md diff --git a/분석결과/20251024_000515/01_요약.md b/legacy/분석결과/20251024_000515/01_요약.md similarity index 100% rename from 분석결과/20251024_000515/01_요약.md rename to legacy/분석결과/20251024_000515/01_요약.md diff --git a/분석결과/20251024_000515/02_분석_전제조건.md b/legacy/분석결과/20251024_000515/02_분석_전제조건.md similarity index 100% rename from 분석결과/20251024_000515/02_분석_전제조건.md rename to legacy/분석결과/20251024_000515/02_분석_전제조건.md diff --git a/분석결과/20251024_000515/03_스토커별_기본데이터.md b/legacy/분석결과/20251024_000515/03_스토커별_기본데이터.md similarity index 100% rename from 분석결과/20251024_000515/03_스토커별_기본데이터.md rename to legacy/분석결과/20251024_000515/03_스토커별_기본데이터.md diff --git a/분석결과/20251024_000515/04_DPS_계산_결과.md b/legacy/분석결과/20251024_000515/04_DPS_계산_결과.md similarity index 100% rename from 분석결과/20251024_000515/04_DPS_계산_결과.md rename to legacy/분석결과/20251024_000515/04_DPS_계산_결과.md diff --git a/분석결과/20251024_000515/05_카지모르드_밸런스_검증.md b/legacy/분석결과/20251024_000515/05_카지모르드_밸런스_검증.md similarity index 100% rename from 분석결과/20251024_000515/05_카지모르드_밸런스_검증.md rename to legacy/분석결과/20251024_000515/05_카지모르드_밸런스_검증.md diff --git a/분석결과/20251024_000515/06_유틸리티_평가.md b/legacy/분석결과/20251024_000515/06_유틸리티_평가.md similarity index 100% rename from 분석결과/20251024_000515/06_유틸리티_평가.md rename to legacy/분석결과/20251024_000515/06_유틸리티_평가.md diff --git a/분석결과/20251024_000515/07_역할별_차별화.md b/legacy/분석결과/20251024_000515/07_역할별_차별화.md similarity index 100% rename from 분석결과/20251024_000515/07_역할별_차별화.md rename to legacy/분석결과/20251024_000515/07_역할별_차별화.md diff --git a/분석결과/20251024_000515/08_밸런스_티어_및_개선안.md b/legacy/분석결과/20251024_000515/08_밸런스_티어_및_개선안.md similarity index 100% rename from 분석결과/20251024_000515/08_밸런스_티어_및_개선안.md rename to legacy/분석결과/20251024_000515/08_밸런스_티어_및_개선안.md diff --git a/분석결과/20251024_000515/README.md b/legacy/분석결과/20251024_000515/README.md similarity index 100% rename from 분석결과/20251024_000515/README.md rename to legacy/분석결과/20251024_000515/README.md diff --git a/분석결과/20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md b/legacy/분석결과/20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md similarity index 100% rename from 분석결과/20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md rename to legacy/분석결과/20251027_153101_v2/02_DPS_시나리오_비교분석_v2.md diff --git a/분석결과/20251027_153101_v2/03_스토커별_기본데이터_v2.md b/legacy/분석결과/20251027_153101_v2/03_스토커별_기본데이터_v2.md similarity index 100% rename from 분석결과/20251027_153101_v2/03_스토커별_기본데이터_v2.md rename to legacy/분석결과/20251027_153101_v2/03_스토커별_기본데이터_v2.md diff --git a/분석결과/20251027_153101_v2/intermediate_data.json b/legacy/분석결과/20251027_153101_v2/intermediate_data.json similarity index 100% rename from 분석결과/20251027_153101_v2/intermediate_data.json rename to legacy/분석결과/20251027_153101_v2/intermediate_data.json diff --git a/분석결과/20251027_153101_v2/validated_data.json b/legacy/분석결과/20251027_153101_v2/validated_data.json similarity index 100% rename from 분석결과/20251027_153101_v2/validated_data.json rename to legacy/분석결과/20251027_153101_v2/validated_data.json diff --git a/분석결과/20251027_153101_v2/검증_리포트.md b/legacy/분석결과/20251027_153101_v2/검증_리포트.md similarity index 100% rename from 분석결과/20251027_153101_v2/검증_리포트.md rename to legacy/분석결과/20251027_153101_v2/검증_리포트.md diff --git a/분석결과/dps_raw_results.json b/legacy/분석결과/dps_raw_results.json similarity index 100% rename from 분석결과/dps_raw_results.json rename to legacy/분석결과/dps_raw_results.json diff --git a/분석결과/intermediate_data.json b/legacy/분석결과/intermediate_data.json similarity index 99% rename from 분석결과/intermediate_data.json rename to legacy/분석결과/intermediate_data.json index f73b028..24f6b4d 100644 --- a/분석결과/intermediate_data.json +++ b/legacy/분석결과/intermediate_data.json @@ -58,7 +58,9 @@ "sequenceLength": 1.600000023841858, "rateScale": 1, "actualDuration": 1.600000023841858, - "attackMultiplier": 0.0, + "attackStateEndTime": 0.800000011920929, + "effectiveDuration": 0.800000011920929, + "attackMultiplier": -5.0, "hasAttack": true }, { @@ -67,7 +69,9 @@ "sequenceLength": 1.600000023841858, "rateScale": 1, "actualDuration": 1.600000023841858, - "attackMultiplier": 5.0, + "attackStateEndTime": 0.7699999809265137, + "effectiveDuration": 0.7699999809265137, + "attackMultiplier": -5.0, "hasAttack": true }, { @@ -76,7 +80,9 @@ "sequenceLength": 1.36667001247406, "rateScale": 1, "actualDuration": 1.36667001247406, - "attackMultiplier": -5.0, + "attackStateEndTime": 1, + "effectiveDuration": 1, + "attackMultiplier": 20.0, "hasAttack": true } ] @@ -279,6 +285,7 @@ "sequenceLength": 5.433330059051514, "rateScale": 1, "actualDuration": 5.433330059051514, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -374,6 +381,7 @@ "sequenceLength": 1.7999999523162842, "rateScale": 1, "actualDuration": 1.7999999523162842, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -896,6 +904,7 @@ "sequenceLength": 3.3666698932647705, "rateScale": 1.2000000476837158, "actualDuration": 2.805558132904445, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -1322,6 +1331,7 @@ "sequenceLength": 2, "rateScale": 1, "actualDuration": 2.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -1695,6 +1705,7 @@ "sequenceLength": 4.343329906463623, "rateScale": 1, "actualDuration": 4.343329906463623, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -1993,6 +2004,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -2203,6 +2215,7 @@ "sequenceLength": 0.666670024394989, "rateScale": 1, "actualDuration": 0.666670024394989, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -2473,6 +2486,7 @@ "sequenceLength": 5.433330059051514, "rateScale": 1, "actualDuration": 5.433330059051514, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -2568,6 +2582,7 @@ "sequenceLength": 1.7999999523162842, "rateScale": 1, "actualDuration": 1.7999999523162842, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -3090,6 +3105,7 @@ "sequenceLength": 3.3666698932647705, "rateScale": 1.2000000476837158, "actualDuration": 2.805558132904445, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -3516,6 +3532,7 @@ "sequenceLength": 2, "rateScale": 1, "actualDuration": 2.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -3890,6 +3907,7 @@ "sequenceLength": 4.343329906463623, "rateScale": 1, "actualDuration": 4.343329906463623, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -4188,6 +4206,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -4398,6 +4417,7 @@ "sequenceLength": 0.666670024394989, "rateScale": 1, "actualDuration": 0.666670024394989, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -4529,6 +4549,8 @@ "sequenceLength": 3.283329963684082, "rateScale": 1, "actualDuration": 3.283329963684082, + "attackStateEndTime": null, + "effectiveDuration": 3.283329963684082, "attackMultiplier": 0.0, "hasAttack": true } @@ -4744,6 +4766,7 @@ "sequenceLength": 1.61667001247406, "rateScale": 1, "actualDuration": 1.61667001247406, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -5210,6 +5233,7 @@ "sequenceLength": 1.61667001247406, "rateScale": 1, "actualDuration": 1.61667001247406, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -5679,6 +5703,7 @@ "sequenceLength": 6.154640197753906, "rateScale": 1, "actualDuration": 6.154640197753906, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -5853,6 +5878,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -5977,6 +6003,7 @@ "sequenceLength": 2.533329963684082, "rateScale": 1, "actualDuration": 2.533329963684082, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -6093,6 +6120,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -6337,6 +6365,7 @@ "sequenceLength": 2, "rateScale": 1.7999999523162842, "actualDuration": 1.1111111405455043, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -6770,6 +6799,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -6952,6 +6982,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -7234,6 +7265,7 @@ "sequenceLength": 1.61667001247406, "rateScale": 1, "actualDuration": 1.61667001247406, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -7700,6 +7732,7 @@ "sequenceLength": 1.61667001247406, "rateScale": 1, "actualDuration": 1.61667001247406, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -8169,6 +8202,7 @@ "sequenceLength": 6.154640197753906, "rateScale": 1, "actualDuration": 6.154640197753906, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -8343,6 +8377,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -8467,6 +8502,7 @@ "sequenceLength": 2.533329963684082, "rateScale": 1, "actualDuration": 2.533329963684082, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -8583,6 +8619,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -8828,6 +8865,7 @@ "sequenceLength": 2, "rateScale": 1.7999999523162842, "actualDuration": 1.1111111405455043, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -9261,6 +9299,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -9443,6 +9482,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -9574,6 +9614,8 @@ "sequenceLength": 1.600000023841858, "rateScale": 1, "actualDuration": 1.600000023841858, + "attackStateEndTime": 0.8999999761581421, + "effectiveDuration": 0.8999999761581421, "attackMultiplier": 0.0, "hasAttack": true }, @@ -9583,6 +9625,8 @@ "sequenceLength": 1.7000000476837158, "rateScale": 1, "actualDuration": 1.7000000476837158, + "attackStateEndTime": 0.8999999761581421, + "effectiveDuration": 0.8999999761581421, "attackMultiplier": 0.0, "hasAttack": true } @@ -9762,6 +9806,7 @@ "sequenceLength": 3.333329916000366, "rateScale": 1, "actualDuration": 3.333329916000366, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -10167,6 +10212,7 @@ "sequenceLength": 3.333329916000366, "rateScale": 1, "actualDuration": 3.333329916000366, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -10602,6 +10648,7 @@ "sequenceLength": 1.3333300352096558, "rateScale": 1, "actualDuration": 1.3333300352096558, + "attackStateEndTime": 1.1074129566550255, "attackMultiplier": 0.0, "sections": [ { @@ -10983,6 +11030,7 @@ "sequenceLength": 2.799999952316284, "rateScale": 1, "actualDuration": 2.799999952316284, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -11198,6 +11246,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -11493,6 +11542,7 @@ "sequenceLength": 4.333333492279053, "rateScale": 1, "actualDuration": 4.333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -12091,6 +12141,7 @@ "sequenceLength": 3.333329916000366, "rateScale": 1, "actualDuration": 3.333329916000366, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -12496,6 +12547,7 @@ "sequenceLength": 3.333329916000366, "rateScale": 1, "actualDuration": 3.333329916000366, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -12931,6 +12983,7 @@ "sequenceLength": 1.3333300352096558, "rateScale": 1, "actualDuration": 1.3333300352096558, + "attackStateEndTime": 1.1074129566550255, "attackMultiplier": 0.0, "sections": [ { @@ -13313,6 +13366,7 @@ "sequenceLength": 2.799999952316284, "rateScale": 1, "actualDuration": 2.799999952316284, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -13528,6 +13582,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -13823,6 +13878,7 @@ "sequenceLength": 4.333333492279053, "rateScale": 1, "actualDuration": 4.333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -14307,7 +14363,9 @@ "sequenceLength": 1.899999976158142, "rateScale": 1, "actualDuration": 1.899999976158142, - "attackMultiplier": 5.0, + "attackStateEndTime": 1.1699999570846558, + "effectiveDuration": 1.1699999570846558, + "attackMultiplier": 10.0, "hasAttack": true }, { @@ -14316,7 +14374,9 @@ "sequenceLength": 1.9333300590515137, "rateScale": 1, "actualDuration": 1.9333300590515137, - "attackMultiplier": 10.0, + "attackStateEndTime": 1.1699999570846558, + "effectiveDuration": 1.1699999570846558, + "attackMultiplier": 15.0, "hasAttack": true }, { @@ -14325,7 +14385,9 @@ "sequenceLength": 1.7333300113677979, "rateScale": 1, "actualDuration": 1.7333300113677979, - "attackMultiplier": 5.0, + "attackStateEndTime": 0.998920202255249, + "effectiveDuration": 0.998920202255249, + "attackMultiplier": 10.0, "hasAttack": true } ] @@ -14581,6 +14643,7 @@ "sequenceLength": 1.7004499435424805, "rateScale": 1, "actualDuration": 1.7004499435424805, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -14936,6 +14999,7 @@ "sequenceLength": 1.8856300115585327, "rateScale": 1, "actualDuration": 1.8856300115585327, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -15710,6 +15774,7 @@ "sequenceLength": 1.7467800378799438, "rateScale": 1, "actualDuration": 1.7467800378799438, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -16388,6 +16453,7 @@ "sequenceLength": 3.5666699409484863, "rateScale": 1, "actualDuration": 3.5666699409484863, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -16488,7 +16554,7 @@ "skillElementType": "None", "manaCost": 0, "coolTime": 0, - "castingTime": 10, + "castingTime": 1.29, "activeDuration": 2, "activeRange": { "bShowTargetOutline": true, @@ -16688,6 +16754,7 @@ "sequenceLength": 2.9666666984558105, "rateScale": 1.5, "actualDuration": 1.9777777989705403, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -17415,6 +17482,7 @@ "sequenceLength": 1.7004499435424805, "rateScale": 1, "actualDuration": 1.7004499435424805, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -17770,6 +17838,7 @@ "sequenceLength": 1.8856300115585327, "rateScale": 1, "actualDuration": 1.8856300115585327, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -18544,6 +18613,7 @@ "sequenceLength": 1.7467800378799438, "rateScale": 1, "actualDuration": 1.7467800378799438, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -19223,6 +19293,7 @@ "sequenceLength": 3.5666699409484863, "rateScale": 1, "actualDuration": 3.5666699409484863, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -19323,7 +19394,7 @@ "skillElementType": "None", "manaCost": 0, "coolTime": 0, - "castingTime": 10, + "castingTime": 1.29, "activeDuration": 2, "activeRange": { "bShowTargetOutline": true, @@ -19523,6 +19594,7 @@ "sequenceLength": 2.9666666984558105, "rateScale": 1.5, "actualDuration": 1.9777777989705403, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -20059,6 +20131,8 @@ "sequenceLength": 1.1666666269302368, "rateScale": 1, "actualDuration": 1.1666666269302368, + "attackStateEndTime": 0.6166133284568787, + "effectiveDuration": 0.6166133284568787, "attackMultiplier": -30.0, "hasAttack": true }, @@ -20068,7 +20142,9 @@ "sequenceLength": 1.3333333730697632, "rateScale": 1, "actualDuration": 1.3333333730697632, - "attackMultiplier": -20.0, + "attackStateEndTime": 1.0035902261734009, + "effectiveDuration": 1.0035902261734009, + "attackMultiplier": 10.0, "hasAttack": true }, { @@ -20077,7 +20153,9 @@ "sequenceLength": 1.3666666746139526, "rateScale": 1, "actualDuration": 1.3666666746139526, - "attackMultiplier": -15.0, + "attackStateEndTime": 0.968649685382843, + "effectiveDuration": 0.968649685382843, + "attackMultiplier": 15.0, "hasAttack": true } ] @@ -20284,6 +20362,7 @@ "sequenceLength": 1.8333333730697632, "rateScale": 1.2999999523162842, "actualDuration": 1.4102564925507945, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -20786,6 +20865,7 @@ "sequenceLength": 0.5666666626930237, "rateScale": 1, "actualDuration": 0.5666666626930237, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -21218,6 +21298,7 @@ "sequenceLength": 1.6333333253860474, "rateScale": 1, "actualDuration": 1.6333333253860474, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -21310,6 +21391,7 @@ "sequenceLength": 1.2000000476837158, "rateScale": 1, "actualDuration": 1.2000000476837158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -21650,6 +21732,7 @@ "sequenceLength": 1.2999999523162842, "rateScale": 1, "actualDuration": 1.2999999523162842, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -22010,6 +22093,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -22179,6 +22263,7 @@ "sequenceLength": 0.8333333134651184, "rateScale": 1, "actualDuration": 0.8333333134651184, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -22466,6 +22551,7 @@ "sequenceLength": 1.8333333730697632, "rateScale": 1.2999999523162842, "actualDuration": 1.4102564925507945, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -22968,6 +23054,7 @@ "sequenceLength": 0.5666666626930237, "rateScale": 1, "actualDuration": 0.5666666626930237, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -23400,6 +23487,7 @@ "sequenceLength": 1.6333333253860474, "rateScale": 1, "actualDuration": 1.6333333253860474, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -23492,6 +23580,7 @@ "sequenceLength": 1.2000000476837158, "rateScale": 1, "actualDuration": 1.2000000476837158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -23833,6 +23922,7 @@ "sequenceLength": 1.2999999523162842, "rateScale": 1, "actualDuration": 1.2999999523162842, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -24193,6 +24283,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -24362,6 +24453,7 @@ "sequenceLength": 0.8333333134651184, "rateScale": 1, "actualDuration": 0.8333333134651184, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -24506,6 +24598,8 @@ "sequenceLength": 1.899999976158142, "rateScale": 1, "actualDuration": 1.899999976158142, + "attackStateEndTime": 0.8999999761581421, + "effectiveDuration": 0.8999999761581421, "attackMultiplier": 5.0, "hasAttack": true }, @@ -24515,6 +24609,8 @@ "sequenceLength": 2.2666666507720947, "rateScale": 1, "actualDuration": 2.2666666507720947, + "attackStateEndTime": 0.9976869225502014, + "effectiveDuration": 0.9976869225502014, "attackMultiplier": 5.0, "hasAttack": true } @@ -24695,6 +24791,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -24816,6 +24913,7 @@ "sequenceLength": 1.1666666269302368, "rateScale": 1, "actualDuration": 1.1666666269302368, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -25063,6 +25161,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -25184,6 +25283,7 @@ "sequenceLength": 1.2000000476837158, "rateScale": 1, "actualDuration": 1.2000000476837158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -25475,6 +25575,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -25596,6 +25697,7 @@ "sequenceLength": 1.1666666269302368, "rateScale": 1, "actualDuration": 1.1666666269302368, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -25919,6 +26021,7 @@ "sequenceLength": 5.300000190734863, "rateScale": 1, "actualDuration": 5.300000190734863, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -26198,6 +26301,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -26396,6 +26500,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -26643,6 +26748,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -26764,6 +26870,7 @@ "sequenceLength": 1.1666666269302368, "rateScale": 1, "actualDuration": 1.1666666269302368, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -27011,6 +27118,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -27132,6 +27240,7 @@ "sequenceLength": 1.2000000476837158, "rateScale": 1, "actualDuration": 1.2000000476837158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -27423,6 +27532,7 @@ "sequenceLength": 2.2333333492279053, "rateScale": 1, "actualDuration": 2.2333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -27544,6 +27654,7 @@ "sequenceLength": 1.1666666269302368, "rateScale": 1, "actualDuration": 1.1666666269302368, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -27868,6 +27979,7 @@ "sequenceLength": 5.300000190734863, "rateScale": 1, "actualDuration": 5.300000190734863, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -28147,6 +28259,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -28345,6 +28458,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -28477,6 +28591,8 @@ "sequenceLength": 1.899999976158142, "rateScale": 1, "actualDuration": 1.899999976158142, + "attackStateEndTime": 0.8500000238418579, + "effectiveDuration": 0.8500000238418579, "attackMultiplier": 0.0, "hasAttack": true }, @@ -28486,6 +28602,8 @@ "sequenceLength": 1.7999999523162842, "rateScale": 1, "actualDuration": 1.7999999523162842, + "attackStateEndTime": 0.8999999761581421, + "effectiveDuration": 0.8999999761581421, "attackMultiplier": 0.0, "hasAttack": true }, @@ -28495,6 +28613,8 @@ "sequenceLength": 2.200000047683716, "rateScale": 1, "actualDuration": 2.200000047683716, + "attackStateEndTime": 0.906741953920573, + "effectiveDuration": 0.906741953920573, "attackMultiplier": 0.0, "hasAttack": true } @@ -28674,6 +28794,7 @@ "sequenceLength": 2.3333332538604736, "rateScale": 1.600000023841858, "actualDuration": 1.458333261931937, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -28828,6 +28949,7 @@ "sequenceLength": 3.6666667461395264, "rateScale": 1.600000023841858, "actualDuration": 2.2916666821887093, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -28991,6 +29113,7 @@ "sequenceLength": 3.6666667461395264, "rateScale": 1.600000023841858, "actualDuration": 2.2916666821887093, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -29183,6 +29306,7 @@ "sequenceLength": 3.3333332538604736, "rateScale": 0.8999999761581421, "actualDuration": 3.7037037135151682, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -29522,6 +29646,7 @@ "sequenceLength": 3.5, "rateScale": 1.2999999523162842, "actualDuration": 2.6923077910609536, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -29666,6 +29791,7 @@ "sequenceLength": 4.633333206176758, "rateScale": 2, "actualDuration": 2.316666603088379, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -30084,6 +30210,7 @@ "sequenceLength": 4.666666507720947, "rateScale": 1, "actualDuration": 4.666666507720947, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -30424,6 +30551,7 @@ "sequenceLength": 1.6666666269302368, "rateScale": 1.5, "actualDuration": 1.111111084620158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -30663,6 +30791,7 @@ "sequenceLength": 1.9333332777023315, "rateScale": 1.2000000476837158, "actualDuration": 1.6111110007321436, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -31104,6 +31233,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -31274,6 +31404,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -31533,6 +31664,7 @@ "sequenceLength": 2.3333332538604736, "rateScale": 1.600000023841858, "actualDuration": 1.458333261931937, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -31687,6 +31819,7 @@ "sequenceLength": 3.6666667461395264, "rateScale": 1.600000023841858, "actualDuration": 2.2916666821887093, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -31850,6 +31983,7 @@ "sequenceLength": 3.6666667461395264, "rateScale": 1.600000023841858, "actualDuration": 2.2916666821887093, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -32042,6 +32176,7 @@ "sequenceLength": 3.3333332538604736, "rateScale": 0.8999999761581421, "actualDuration": 3.7037037135151682, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -32381,6 +32516,7 @@ "sequenceLength": 3.5, "rateScale": 1.2999999523162842, "actualDuration": 2.6923077910609536, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -32525,6 +32661,7 @@ "sequenceLength": 4.633333206176758, "rateScale": 2, "actualDuration": 2.316666603088379, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -32943,6 +33080,7 @@ "sequenceLength": 4.666666507720947, "rateScale": 1, "actualDuration": 4.666666507720947, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -33284,6 +33422,7 @@ "sequenceLength": 1.6666666269302368, "rateScale": 1.5, "actualDuration": 1.111111084620158, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -33523,6 +33662,7 @@ "sequenceLength": 1.9333332777023315, "rateScale": 1.2000000476837158, "actualDuration": 1.6111110007321436, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -33964,6 +34104,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -34134,6 +34275,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -34313,7 +34455,9 @@ "sequenceLength": 1.0666667222976685, "rateScale": 1, "actualDuration": 1.0666667222976685, - "attackMultiplier": -20.0, + "attackStateEndTime": 0.800000011920929, + "effectiveDuration": 0.800000011920929, + "attackMultiplier": -5.0, "hasAttack": true }, { @@ -34322,7 +34466,9 @@ "sequenceLength": 1.2000000476837158, "rateScale": 1, "actualDuration": 1.2000000476837158, - "attackMultiplier": -20.0, + "attackStateEndTime": 0.800000011920929, + "effectiveDuration": 0.800000011920929, + "attackMultiplier": -15.0, "hasAttack": true } ] @@ -34537,6 +34683,7 @@ "sequenceLength": 3, "rateScale": 1.399999976158142, "actualDuration": 2.1428571793497833, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -34998,6 +35145,7 @@ "sequenceLength": 0.6000000238418579, "rateScale": 1, "actualDuration": 0.6000000238418579, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -35260,6 +35408,7 @@ "sequenceLength": 0.8666666746139526, "rateScale": 1, "actualDuration": 0.8666666746139526, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -35564,6 +35713,7 @@ "sequenceLength": 3.566666603088379, "rateScale": 1, "actualDuration": 3.566666603088379, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -35766,6 +35916,7 @@ "sequenceLength": 0.8333333134651184, "rateScale": 1, "actualDuration": 0.8333333134651184, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -35838,6 +35989,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -36139,6 +36291,7 @@ "sequenceLength": 1.2333333492279053, "rateScale": 1.399999976158142, "actualDuration": 0.8809524073081767, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -36433,6 +36586,7 @@ "sequenceLength": 2.3333332538604736, "rateScale": 1, "actualDuration": 2.3333332538604736, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -36780,6 +36934,7 @@ "sequenceLength": 3, "rateScale": 1.399999976158142, "actualDuration": 2.1428571793497833, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -37241,6 +37396,7 @@ "sequenceLength": 0.6000000238418579, "rateScale": 1, "actualDuration": 0.6000000238418579, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -37503,6 +37659,7 @@ "sequenceLength": 0.8666666746139526, "rateScale": 1, "actualDuration": 0.8666666746139526, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -37807,6 +37964,7 @@ "sequenceLength": 3.566666603088379, "rateScale": 1, "actualDuration": 3.566666603088379, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -38009,6 +38167,7 @@ "sequenceLength": 0.8333333134651184, "rateScale": 1, "actualDuration": 0.8333333134651184, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -38081,6 +38240,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -38383,6 +38543,7 @@ "sequenceLength": 1.2333333492279053, "rateScale": 1.399999976158142, "actualDuration": 0.8809524073081767, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -38677,6 +38838,7 @@ "sequenceLength": 2.3333332538604736, "rateScale": 1, "actualDuration": 2.3333332538604736, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -38873,6 +39035,8 @@ "sequenceLength": 3.2666666507720947, "rateScale": 1, "actualDuration": 3.2666666507720947, + "attackStateEndTime": null, + "effectiveDuration": 3.2666666507720947, "attackMultiplier": 0.0, "hasAttack": true } @@ -39097,6 +39261,7 @@ "sequenceLength": 2.6666667461395264, "rateScale": 1, "actualDuration": 2.6666667461395264, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -39793,6 +39958,7 @@ "sequenceLength": 1.7352999448776245, "rateScale": 1.2999999523162842, "actualDuration": 1.3348461604061919, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -40192,6 +40358,7 @@ "sequenceLength": 1.7352999448776245, "rateScale": 1.2999999523162842, "actualDuration": 1.3348461604061919, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -40855,6 +41022,7 @@ "sequenceLength": 2.200000047683716, "rateScale": 1, "actualDuration": 2.200000047683716, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -41055,6 +41223,7 @@ "sequenceLength": 1.4333332777023315, "rateScale": 1, "actualDuration": 1.4333332777023315, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -41158,6 +41327,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -41469,6 +41639,7 @@ "sequenceLength": 4.933333396911621, "rateScale": 1, "actualDuration": 4.933333396911621, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -42069,6 +42240,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -42253,6 +42425,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -42557,6 +42730,7 @@ "sequenceLength": 2.6666667461395264, "rateScale": 1, "actualDuration": 2.6666667461395264, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -43253,6 +43427,7 @@ "sequenceLength": 1.7352999448776245, "rateScale": 1.2999999523162842, "actualDuration": 1.3348461604061919, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -43652,6 +43827,7 @@ "sequenceLength": 1.7352999448776245, "rateScale": 1.2999999523162842, "actualDuration": 1.3348461604061919, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -44315,6 +44491,7 @@ "sequenceLength": 2.200000047683716, "rateScale": 1, "actualDuration": 2.200000047683716, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -44515,6 +44692,7 @@ "sequenceLength": 1.4333332777023315, "rateScale": 1, "actualDuration": 1.4333332777023315, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -44618,6 +44796,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -44930,6 +45109,7 @@ "sequenceLength": 4.933333396911621, "rateScale": 1, "actualDuration": 4.933333396911621, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -45530,6 +45710,7 @@ "sequenceLength": 1.5, "rateScale": 1, "actualDuration": 1.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -45714,6 +45895,7 @@ "sequenceLength": 1, "rateScale": 1, "actualDuration": 1.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -45864,7 +46046,9 @@ "sequenceLength": 1.6666666269302368, "rateScale": 1, "actualDuration": 1.6666666269302368, - "attackMultiplier": -15.0, + "attackStateEndTime": 0.900271475315094, + "effectiveDuration": 0.900271475315094, + "attackMultiplier": -5.0, "hasAttack": true }, { @@ -45873,7 +46057,9 @@ "sequenceLength": 1.899999976158142, "rateScale": 1, "actualDuration": 1.899999976158142, - "attackMultiplier": 5.0, + "attackStateEndTime": 0.9432878494262695, + "effectiveDuration": 0.9432878494262695, + "attackMultiplier": 10.0, "hasAttack": true }, { @@ -45882,7 +46068,9 @@ "sequenceLength": 1.8666666746139526, "rateScale": 1, "actualDuration": 1.8666666746139526, - "attackMultiplier": 10.0, + "attackStateEndTime": 0.8458409309387207, + "effectiveDuration": 0.8458409309387207, + "attackMultiplier": 0.0, "hasAttack": true } ] @@ -45892,8 +46080,8 @@ "skillId": "SK170201", "stalkerName": "cazimord", "name": "섬광", - "desc": "정면으로 {0}m 돌진하며, 베기 공격으로 공격력의 {1}%의 피해를 가합니다. 스킬 사용 중에는 경직에 면역 됩니다.", - "descFormatted": "정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다. 스킬 사용 중에는 경직에 면역 됩니다.", + "desc": "정면으로 {0}m 돌진하며, 베기 공격으로 공격력의 {1}%의 피해를 가합니다.", + "descFormatted": "정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다.", "descValues": [ 4, 100 @@ -46095,6 +46283,7 @@ "sequenceLength": 3.6190500259399414, "rateScale": 1, "actualDuration": 3.6190500259399414, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -46236,6 +46425,7 @@ "sequenceLength": 1.7333333492279053, "rateScale": 1, "actualDuration": 1.7333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -46789,6 +46979,7 @@ "sequenceLength": 3, "rateScale": 1.5, "actualDuration": 2.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -47630,6 +47821,7 @@ "sequenceLength": 2.433333396911621, "rateScale": 1, "actualDuration": 2.433333396911621, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -47894,6 +48086,7 @@ "sequenceLength": 1.6066666841506958, "rateScale": 1, "actualDuration": 1.6066666841506958, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -47998,8 +48191,8 @@ "skillId": "SK170301", "stalkerName": "cazimord", "name": "마석 '칼날폭풍'", - "desc": "마석의 힘을 빌려 빠르게 정면을 {0}회 공격해 각각 {1}%의 물리 피해를 입힙니다. 마지막 2회의 타격은 {2}%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다.", - "descFormatted": "마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다.", + "desc": "마석의 힘을 빌려 빠르게 정면을 {0}회 공격해 각각 {1}%의 물리 피해를 입힙니다. 마지막 2회의 타격은 {2}%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. 또한 스킬 사용 중에는 경직에 면역 됩니다.", + "descFormatted": "마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. 또한 스킬 사용 중에는 경직에 면역 됩니다.", "descValues": [ 12, 80, @@ -48050,6 +48243,7 @@ "sequenceLength": 3.5, "rateScale": 1, "actualDuration": 3.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -49405,8 +49599,8 @@ "skillId": "SK170201", "stalkerName": "cazimord", "name": "섬광", - "desc": "정면으로 {0}m 돌진하며, 베기 공격으로 공격력의 {1}%의 피해를 가합니다. 스킬 사용 중에는 경직에 면역 됩니다.", - "descFormatted": "정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다. 스킬 사용 중에는 경직에 면역 됩니다.", + "desc": "정면으로 {0}m 돌진하며, 베기 공격으로 공격력의 {1}%의 피해를 가합니다.", + "descFormatted": "정면으로 4m 돌진하며, 베기 공격으로 공격력의 100%의 피해를 가합니다.", "descValues": [ 4, 100 @@ -49608,6 +49802,7 @@ "sequenceLength": 3.6190500259399414, "rateScale": 1, "actualDuration": 3.6190500259399414, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -49749,6 +49944,7 @@ "sequenceLength": 1.7333333492279053, "rateScale": 1, "actualDuration": 1.7333333492279053, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -50302,6 +50498,7 @@ "sequenceLength": 3, "rateScale": 1.5, "actualDuration": 2.0, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -51143,6 +51340,7 @@ "sequenceLength": 2.433333396911621, "rateScale": 1, "actualDuration": 2.433333396911621, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -51408,6 +51606,7 @@ "sequenceLength": 1.6066666841506958, "rateScale": 1, "actualDuration": 1.6066666841506958, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { @@ -51512,8 +51711,8 @@ "skillId": "SK170301", "stalkerName": "cazimord", "name": "마석 '칼날폭풍'", - "desc": "마석의 힘을 빌려 빠르게 정면을 {0}회 공격해 각각 {1}%의 물리 피해를 입힙니다. 마지막 2회의 타격은 {2}%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다.", - "descFormatted": "마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다.", + "desc": "마석의 힘을 빌려 빠르게 정면을 {0}회 공격해 각각 {1}%의 물리 피해를 입힙니다. 마지막 2회의 타격은 {2}%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. 또한 스킬 사용 중에는 경직에 면역 됩니다.", + "descFormatted": "마석의 힘을 빌려 빠르게 정면을 12회 공격해 각각 80%의 물리 피해를 입힙니다. 마지막 2회의 타격은 100%의 물리 피해를 입힙니다. 시전 중에는 천천히 이동할 수 있지만, 마지막 타격때는 이동할 수 없습니다. 또한 스킬 사용 중에는 경직에 면역 됩니다.", "descValues": [ 12, 80, @@ -51564,6 +51763,7 @@ "sequenceLength": 3.5, "rateScale": 1, "actualDuration": 3.5, + "attackStateEndTime": null, "attackMultiplier": 0.0, "sections": [ { diff --git a/분석도구/legacy/analyze_character_stats.py b/legacy/분석도구/legacy/analyze_character_stats.py similarity index 100% rename from 분석도구/legacy/analyze_character_stats.py rename to legacy/분석도구/legacy/analyze_character_stats.py diff --git a/분석도구/legacy/analyze_ge_blueprints.py b/legacy/분석도구/legacy/analyze_ge_blueprints.py similarity index 100% rename from 분석도구/legacy/analyze_ge_blueprints.py rename to legacy/분석도구/legacy/analyze_ge_blueprints.py diff --git a/분석도구/legacy/check_ultimate_effects.py b/legacy/분석도구/legacy/check_ultimate_effects.py similarity index 100% rename from 분석도구/legacy/check_ultimate_effects.py rename to legacy/분석도구/legacy/check_ultimate_effects.py diff --git a/분석도구/legacy/extract_activation_order_groups.py b/legacy/분석도구/legacy/extract_activation_order_groups.py similarity index 100% rename from 분석도구/legacy/extract_activation_order_groups.py rename to legacy/분석도구/legacy/extract_activation_order_groups.py diff --git a/분석도구/legacy/extract_all_ultimates_detailed.py b/legacy/분석도구/legacy/extract_all_ultimates_detailed.py similarity index 100% rename from 분석도구/legacy/extract_all_ultimates_detailed.py rename to legacy/분석도구/legacy/extract_all_ultimates_detailed.py diff --git a/분석도구/legacy/extract_ge_from_ultimates.py b/legacy/분석도구/legacy/extract_ge_from_ultimates.py similarity index 100% rename from 분석도구/legacy/extract_ge_from_ultimates.py rename to legacy/분석도구/legacy/extract_ge_from_ultimates.py diff --git a/분석도구/legacy/extract_skill_cancel_windows.py b/legacy/분석도구/legacy/extract_skill_cancel_windows.py similarity index 100% rename from 분석도구/legacy/extract_skill_cancel_windows.py rename to legacy/분석도구/legacy/extract_skill_cancel_windows.py diff --git a/분석도구/legacy/extract_stalker_data.py b/legacy/분석도구/legacy/extract_stalker_data.py similarity index 100% rename from 분석도구/legacy/extract_stalker_data.py rename to legacy/분석도구/legacy/extract_stalker_data.py diff --git a/분석도구/legacy/extract_ultimate_skills.py b/legacy/분석도구/legacy/extract_ultimate_skills.py similarity index 100% rename from 분석도구/legacy/extract_ultimate_skills.py rename to legacy/분석도구/legacy/extract_ultimate_skills.py diff --git a/분석도구/legacy/find_ga_skills.py b/legacy/분석도구/legacy/find_ga_skills.py similarity index 100% rename from 분석도구/legacy/find_ga_skills.py rename to legacy/분석도구/legacy/find_ga_skills.py diff --git a/분석도구/legacy/verify_skills_detailed.py b/legacy/분석도구/legacy/verify_skills_detailed.py similarity index 100% rename from 분석도구/legacy/verify_skills_detailed.py rename to legacy/분석도구/legacy/verify_skills_detailed.py diff --git a/legacy/분석도구/v2/__pycache__/config.cpython-313.pyc b/legacy/분석도구/v2/__pycache__/config.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b398f53b6a1da8d231adf6ecdb64263bd4b2afd1 GIT binary patch literal 6016 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 Path: """ 출력 디렉토리 가져오기 - - create_new=True: 새 타임스탬프 디렉토리 생성 - - create_new=False: 가장 최근 디렉토리 사용 (없으면 생성) + - Git으로 버전관리하므로 타임스탬프 폴더 생성하지 않음 + - 항상 분석결과/ 직접 사용 """ result_base = PROJECT_ROOT / "분석결과" result_base.mkdir(parents=True, exist_ok=True) - - if create_new: - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - return result_base / f"{timestamp}_v2" - - # 기존 v2 디렉토리 중 가장 최근 것 찾기 (수정 시간 기준) - v2_dirs = [d for d in result_base.iterdir() if d.is_dir() and d.name.endswith('_v2')] - if v2_dirs: - # 수정 시간 기준으로 정렬 - v2_dirs_sorted = sorted(v2_dirs, key=lambda d: d.stat().st_mtime) - return v2_dirs_sorted[-1] # 가장 최근 디렉토리 - - # 없으면 새로 생성 - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - return result_base / f"{timestamp}_v2" + return result_base OUTPUT_DIR = get_output_dir() @@ -181,30 +167,7 @@ BASE_DAMAGE_FORMULA = { 'support': lambda stats: (stats['str'] + 80) * 1.00 # Clad uses STR, not WIS } -# 콤보 캔슬 시스템 (v2.1) -# ANS_DisableBlockingState_C 노티파이로 조기 캔슬 가능 -COMBO_CANCEL_STALKERS = { - 'hilda': { - 'weapons': ['weaponShield'], # 방패+무기 - 'patterns': ['AM_PC_Hilda_B_Attack_W01_'], # 평타 패턴 - 'time_reduction': 0.19, # 19% 시간 단축 - 'description': '3타 콤보 캔슬 (4.57s → 3.69s)' - }, - 'baran': { - 'weapons': ['twoHandWeapon'], # 양손 무기 - 'patterns': ['AM_PC_Baran_B_Attack_W01_'], - 'time_reduction': 0.19, # 19% 시간 단축 - 'description': '평타 콤보 캔슬 (5.53s → 4.48s)' - }, - 'clad': { - 'weapons': ['oneHandWeapon'], # 한손 무기 (mace) - 'patterns': ['AM_PC_Clad_Base_Attack_Mace'], - 'time_reduction': 0.56, # 56% 시간 단축 (극적!) - 'description': '평타 콤보 캔슬 (4.17s → 1.84s)' - } -} - -# 특수 궁극기 처리 (v2.1) +# 특수 궁극기 처리 SPECIAL_ULTIMATE_HANDLING = { 'SK130301': { # 바란 - 일격분쇄 'stalker': 'baran', diff --git a/분석도구/v2/extract_stalker_data_v2.py b/legacy/분석도구/v2/extract_stalker_data_v2.py similarity index 94% rename from 분석도구/v2/extract_stalker_data_v2.py rename to legacy/분석도구/v2/extract_stalker_data_v2.py index 4088d0e..b96bd64 100644 --- a/분석도구/v2/extract_stalker_data_v2.py +++ b/legacy/분석도구/v2/extract_stalker_data_v2.py @@ -278,40 +278,23 @@ def extract_anim_montages(montages: List[Dict]) -> Dict[str, Dict]: """ AnimMontage.json에서 몽타주 타이밍 및 노티파이 추출 - AddNormalAttackPer 추출 (ANS_AttackState_C 노티파이) - - cancellableTime 추출 (ANS_DisableBlockingState_C 노티파이) + - attackStateEndTime 추출 (ANS_AttackState_C 종료 시점) Returns: - {montage_name: {timing, notifies, attackMultiplier, cancellableTime}} + {montage_name: {timing, notifies, attackMultiplier, attackStateEndTime}} """ print("\n=== AnimMontage 추출 ===") all_montages = {} pc_montages = [m for m in montages if 'AM_PC_' in m.get('AssetName', '') or 'AM_Sum_' in m.get('AssetName', '')] - # 콤보 캔슬 적용 대상 스토커 및 패턴 (평타만 해당) - CANCEL_TARGETS = { - 'hilda': ['AM_PC_Hilda_B_Attack_W01_'], # weaponShield - 'baran': ['AM_PC_Baran_B_Attack_W01_'], # twoHandWeapon - 'clad': ['AM_PC_Clad_Base_Attack_Mace'] # oneHandWeapon (mace) - 특수 패턴 - } - for montage in pc_montages: asset_name = montage['AssetName'] # 공격 노티파이 추출 attack_notifies = [] attack_multiplier = 0.0 # AddNormalAttackPer (기본값 0) - cancellable_time = None # 콤보 캔슬 가능 시간 (기본값 None) - - # 콤보 캔슬 적용 대상 판별 - is_cancel_target = False - for stalker_name, patterns in CANCEL_TARGETS.items(): - for pattern in patterns: - if pattern in asset_name: - is_cancel_target = True - break - if is_cancel_target: - break + attack_state_end_time = None # ANS_AttackState 종료 시점 (평타용) for notify in montage.get('AnimNotifies', []): notify_class = notify.get('NotifyClass', '') @@ -319,7 +302,7 @@ def extract_anim_montages(montages: List[Dict]) -> Dict[str, Dict]: notify_name = notify.get('NotifyName', '') custom_props = notify.get('CustomProperties', {}) - # ANS_AttackState_C에서 AddNormalAttackPer 추출 + # ANS_AttackState_C에서 AddNormalAttackPer 및 종료 시점 추출 if 'ANS_AttackState' in notify_state_class: add_normal_attack_str = custom_props.get('AddNormalAttackPer', '0') try: @@ -327,11 +310,10 @@ def extract_anim_montages(montages: List[Dict]) -> Dict[str, Dict]: except (ValueError, TypeError): attack_multiplier = 0.0 - # ANS_DisableBlockingState_C에서 콤보 캔슬 시간 추출 (적용 대상만) - if is_cancel_target and 'ANS_DisableBlockingState' in notify_state_class: + # ANS_AttackState 종료 시점 = TriggerTime + Duration trigger_time = notify.get('TriggerTime', 0) duration = notify.get('Duration', 0) - cancellable_time = trigger_time + duration + attack_state_end_time = trigger_time + duration # 공격 판정 로직 (우선순위) is_attack_notify = False @@ -379,7 +361,7 @@ def extract_anim_montages(montages: List[Dict]) -> Dict[str, Dict]: 'sequenceLength': seq_len, 'rateScale': rate_scale, 'actualDuration': actual_duration, # 시퀀스 길이 (SequenceLength / RateScale) - 'cancellableTime': cancellable_time, # 콤보 캔슬 가능 시간 (해당되는 경우만) + 'attackStateEndTime': attack_state_end_time, # ANS_AttackState 종료 시점 (평타용) 'attackMultiplier': attack_multiplier, # AddNormalAttackPer 'sections': montage.get('Sections', []), 'numSections': montage.get('NumSections', 0), @@ -393,15 +375,6 @@ def extract_anim_montages(montages: List[Dict]) -> Dict[str, Dict]: print(f" [OK] 총 {len(all_montages)}개 몽타주 추출 (PC + Summon)") - # 콤보 캔슬 적용된 몽타주 확인 - cancel_montages = [(name, data['cancellableTime'], data['actualDuration']) - for name, data in all_montages.items() - if data.get('cancellableTime') is not None] - if cancel_montages: - print(f" [INFO] 콤보 캔슬 적용 몽타주: {len(cancel_montages)}개") - for name, cancel_time, actual_time in cancel_montages: - print(f" - {name}: 캔슬 {cancel_time:.2f}초 (원본 {actual_time:.2f}초)") - # 소환수 몽타주 확인 summon_montages = [m for m in all_montages.keys() if 'Summon' in m or 'Sum_' in m] if summon_montages: @@ -733,13 +706,20 @@ def organize_stalker_data( montage_name = montage_path.split('/')[-1].replace("'", "").split('.')[0] if montage_name in anim_montages: montage_info = anim_montages[montage_name] + + # 평타는 ANS_AttackState 종료 시점을 우선 사용 + # 없으면 actualDuration 폴백 + attack_state_end = montage_info.get('attackStateEndTime') + effective_duration = attack_state_end if attack_state_end is not None else montage_info['actualDuration'] + basic_attacks[weapon_type].append({ 'index': idx + 1, 'montageName': montage_name, 'sequenceLength': montage_info['sequenceLength'], 'rateScale': montage_info['rateScale'], - 'actualDuration': montage_info['actualDuration'], - 'cancellableTime': montage_info.get('cancellableTime'), # 콤보 캔슬 시간 (해당되는 경우) + 'actualDuration': montage_info['actualDuration'], # 원본 몽타주 시간 + 'attackStateEndTime': attack_state_end, # ANS_AttackState 종료 시점 + 'effectiveDuration': effective_duration, # 실제 평타 시간 (ANS_AttackState 우선) 'attackMultiplier': montage_info['attackMultiplier'], 'hasAttack': montage_info['hasAttack'] }) diff --git a/분석도구/v2/generate_stalker_docs_v2.py b/legacy/분석도구/v2/generate_stalker_docs_v2.py similarity index 97% rename from 분석도구/v2/generate_stalker_docs_v2.py rename to legacy/분석도구/v2/generate_stalker_docs_v2.py index dd6b7f9..013c184 100644 --- a/분석도구/v2/generate_stalker_docs_v2.py +++ b/legacy/분석도구/v2/generate_stalker_docs_v2.py @@ -301,17 +301,25 @@ def generate_stalker_detail(stalker_id: str, stalker_data: Dict) -> str: for weapon_type, attacks in basic_attacks.items(): if attacks: md += f"**{weapon_type}** ({len(attacks)}타 콤보):\n\n" - md += "| 타수 | 몽타주 | 시간(초) | 배율(%) | 비고 |\n" - md += "|------|--------|----------|---------|------|\n" + md += "| 타수 | 몽타주 | 실제 시간(초) | 배율(%) | 비고 |\n" + md += "|------|--------|---------------|---------|------|\n" for attack in attacks: idx = attack['index'] montage_name = attack['montageName'] - duration = attack['actualDuration'] + # effectiveDuration 사용 (ANS_AttackState 종료 시점 우선) + duration = attack.get('effectiveDuration', attack['actualDuration']) multiplier = attack['attackMultiplier'] mult_display = f"{multiplier:+.1f}" if multiplier != 0 else "0.0" - # 태그 추가 + + # 비고: ANS_AttackState 적용 여부 표시 + notes = [] tag = get_montage_tag(montage_name) - note = tag if tag else "" + if tag: + notes.append(tag) + if attack.get('attackStateEndTime') is not None: + notes.append(f"ANS_AttackState: {attack['attackStateEndTime']:.2f}초") + note = ", ".join(notes) if notes else "" + md += f"| {idx} | {montage_name} | {duration:.2f} | {mult_display} | {note} |\n" md += "\n" diff --git a/분석도구/v2/output.txt b/legacy/분석도구/v2/output.txt similarity index 100% rename from 분석도구/v2/output.txt rename to legacy/분석도구/v2/output.txt diff --git a/분석도구/v2/utils/README.md b/legacy/분석도구/v2/utils/README.md similarity index 100% rename from 분석도구/v2/utils/README.md rename to legacy/분석도구/v2/utils/README.md diff --git a/분석도구/v2/utils/list_asset_types.py b/legacy/분석도구/v2/utils/list_asset_types.py similarity index 100% rename from 분석도구/v2/utils/list_asset_types.py rename to legacy/분석도구/v2/utils/list_asset_types.py diff --git a/분석도구/v2/utils/list_datatables.py b/legacy/분석도구/v2/utils/list_datatables.py similarity index 100% rename from 분석도구/v2/utils/list_datatables.py rename to legacy/분석도구/v2/utils/list_datatables.py diff --git a/분석도구/v2/validate_stalker_data.py b/legacy/분석도구/v2/validate_stalker_data.py similarity index 100% rename from 분석도구/v2/validate_stalker_data.py rename to legacy/분석도구/v2/validate_stalker_data.py diff --git a/분석도구/v2/장기과제_Blueprint변수검증.md b/legacy/분석도구/v2/장기과제_Blueprint변수검증.md similarity index 100% rename from 분석도구/v2/장기과제_Blueprint변수검증.md rename to legacy/분석도구/v2/장기과제_Blueprint변수검증.md diff --git a/분석도구/v2/정리_보고서.md b/legacy/분석도구/v2/정리_보고서.md similarity index 100% rename from 분석도구/v2/정리_보고서.md rename to legacy/분석도구/v2/정리_보고서.md diff --git a/분석도구/v2/__pycache__/config.cpython-313.pyc b/분석도구/v2/__pycache__/config.cpython-313.pyc deleted file mode 100644 index d4f28ab22ab4d4326fdccaf29a0056f7d106880e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6700 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 V3)e4!Lj6+3nlg2avdZ_%e*rGDX`%oC