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 0000000..b398f53 Binary files /dev/null and b/legacy/분석도구/v2/__pycache__/config.cpython-313.pyc differ diff --git a/분석도구/v2/archive/README.md b/legacy/분석도구/v2/archive/README.md similarity index 100% rename from 분석도구/v2/archive/README.md rename to legacy/분석도구/v2/archive/README.md diff --git a/분석도구/v2/archive/check_baran_clad_skills.py b/legacy/분석도구/v2/archive/check_baran_clad_skills.py similarity index 100% rename from 분석도구/v2/archive/check_baran_clad_skills.py rename to legacy/분석도구/v2/archive/check_baran_clad_skills.py diff --git a/분석도구/v2/archive/check_bp_vars.py b/legacy/분석도구/v2/archive/check_bp_vars.py similarity index 100% rename from 분석도구/v2/archive/check_bp_vars.py rename to legacy/분석도구/v2/archive/check_bp_vars.py diff --git a/분석도구/v2/archive/check_bp_verification.py b/legacy/분석도구/v2/archive/check_bp_verification.py similarity index 100% rename from 분석도구/v2/archive/check_bp_verification.py rename to legacy/분석도구/v2/archive/check_bp_verification.py diff --git a/분석도구/v2/archive/check_character_ability.py b/legacy/분석도구/v2/archive/check_character_ability.py similarity index 100% rename from 분석도구/v2/archive/check_character_ability.py rename to legacy/분석도구/v2/archive/check_character_ability.py diff --git a/분석도구/v2/archive/check_character_ability2.py b/legacy/분석도구/v2/archive/check_character_ability2.py similarity index 100% rename from 분석도구/v2/archive/check_character_ability2.py rename to legacy/분석도구/v2/archive/check_character_ability2.py diff --git a/분석도구/v2/archive/check_character_ability3.py b/legacy/분석도구/v2/archive/check_character_ability3.py similarity index 100% rename from 분석도구/v2/archive/check_character_ability3.py rename to legacy/분석도구/v2/archive/check_character_ability3.py diff --git a/분석도구/v2/archive/check_data.py b/legacy/분석도구/v2/archive/check_data.py similarity index 100% rename from 분석도구/v2/archive/check_data.py rename to legacy/분석도구/v2/archive/check_data.py diff --git a/분석도구/v2/archive/check_first_asset.py b/legacy/분석도구/v2/archive/check_first_asset.py similarity index 100% rename from 분석도구/v2/archive/check_first_asset.py rename to legacy/분석도구/v2/archive/check_first_asset.py diff --git a/분석도구/v2/archive/check_improvements.py b/legacy/분석도구/v2/archive/check_improvements.py similarity index 100% rename from 분석도구/v2/archive/check_improvements.py rename to legacy/분석도구/v2/archive/check_improvements.py diff --git a/분석도구/v2/archive/check_json_structure.py b/legacy/분석도구/v2/archive/check_json_structure.py similarity index 100% rename from 분석도구/v2/archive/check_json_structure.py rename to legacy/분석도구/v2/archive/check_json_structure.py diff --git a/분석도구/v2/archive/check_lian_skills.py b/legacy/분석도구/v2/archive/check_lian_skills.py similarity index 100% rename from 분석도구/v2/archive/check_lian_skills.py rename to legacy/분석도구/v2/archive/check_lian_skills.py diff --git a/분석도구/v2/archive/check_lian_skills2.py b/legacy/분석도구/v2/archive/check_lian_skills2.py similarity index 100% rename from 분석도구/v2/archive/check_lian_skills2.py rename to legacy/분석도구/v2/archive/check_lian_skills2.py diff --git a/분석도구/v2/archive/check_montage_names.py b/legacy/분석도구/v2/archive/check_montage_names.py similarity index 100% rename from 분석도구/v2/archive/check_montage_names.py rename to legacy/분석도구/v2/archive/check_montage_names.py diff --git a/분석도구/v2/archive/check_send_event_notify.py b/legacy/분석도구/v2/archive/check_send_event_notify.py similarity index 100% rename from 분석도구/v2/archive/check_send_event_notify.py rename to legacy/분석도구/v2/archive/check_send_event_notify.py diff --git a/분석도구/v2/archive/check_sk150201.py b/legacy/분석도구/v2/archive/check_sk150201.py similarity index 100% rename from 분석도구/v2/archive/check_sk150201.py rename to legacy/분석도구/v2/archive/check_sk150201.py diff --git a/분석도구/v2/archive/check_skill_structure.py b/legacy/분석도구/v2/archive/check_skill_structure.py similarity index 100% rename from 분석도구/v2/archive/check_skill_structure.py rename to legacy/분석도구/v2/archive/check_skill_structure.py diff --git a/분석도구/v2/archive/investigate_projectile.py b/legacy/분석도구/v2/archive/investigate_projectile.py similarity index 100% rename from 분석도구/v2/archive/investigate_projectile.py rename to legacy/분석도구/v2/archive/investigate_projectile.py diff --git a/분석도구/v2/archive/verify_improvements.py b/legacy/분석도구/v2/archive/verify_improvements.py similarity index 100% rename from 분석도구/v2/archive/verify_improvements.py rename to legacy/분석도구/v2/archive/verify_improvements.py diff --git a/분석도구/v2/archive/verify_improvements_v2.3.py b/legacy/분석도구/v2/archive/verify_improvements_v2.3.py similarity index 100% rename from 분석도구/v2/archive/verify_improvements_v2.3.py rename to legacy/분석도구/v2/archive/verify_improvements_v2.3.py diff --git a/분석도구/v2/calculate_dps_scenarios_v2.py b/legacy/분석도구/v2/calculate_dps_scenarios_v2.py similarity index 100% rename from 분석도구/v2/calculate_dps_scenarios_v2.py rename to legacy/분석도구/v2/calculate_dps_scenarios_v2.py diff --git a/분석도구/v2/config.py b/legacy/분석도구/v2/config.py similarity index 82% rename from 분석도구/v2/config.py rename to legacy/분석도구/v2/config.py index 7e5ac8f..5fa9845 100644 --- a/분석도구/v2/config.py +++ b/legacy/분석도구/v2/config.py @@ -16,30 +16,16 @@ BLUEPRINT_JSON = DATA_DIR / "Blueprint.json" ANIMMONTAGE_JSON = DATA_DIR / "AnimMontage.json" CURVETABLE_JSON = DATA_DIR / "CurveTable.json" -# 출력 디렉토리 (타임스탬프 자동 생성) +# 출력 디렉토리 (Git 버전관리용 고정 경로) def get_output_dir(create_new: bool = False) -> 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 d4f28ab..0000000 Binary files a/분석도구/v2/__pycache__/config.cpython-313.pyc and /dev/null differ