# 기본 공격·가정 견고성 검증 (2026-10-15, 웹20)

게임 데이터26.103.002, 공개 웹19(23fdf65) 대비. 수치는 추출 데이터의 해석 모형이며 인게임 실측값이 아니다. 공개 배포·설정 복원 결과와 정확한 커밋/버전/배포ID는 별도 `basic-robust-validation-20261015.json`, `dashboard-basic-robust-deployment.json`에 기록한다.

## 반영과 근거

- 사실: fbdataskillpc 무기 기본 공격5종과 무기별 그래프의 피해 행1을 연결했다. PvE 계수0.4914000034, PvP0.3543620110, 재사용0.600000024초, 동작 잠금0.5초. 검 방패 적중270ms, 도·봉·부채·활230ms. 콤보2단계의 피해 행·타격 시점은 같다. IncreaseUseSkillCount.ResetMillis=1000.
- 사실: fbdataskillstyle.EquipStyle로 무기를 대응한다. 절명/기동=도, 저격=활, 강타/강인=검 방패, 주술/제압=부채, 연타/파멸/기만/헌신=봉. 척살은 대응 값이 비어 있다. 기본 공격 무기ID에 연결된 fbdataskillenhance 행은0개였다.
- 가정: 준비된 도술이 없을 때만 기본 공격. 기본 공격 동작 중 도술이 준비되어도 캔슬하지 않는다. 콤보1초는 앞 기본 공격 시작부터 세며 도술 사용 자체로 즉시 끊지 않는다. 같은 계열3개가 없으면 기본5칸의 최다 계열(동률 앞 칸), 대응이 없으면 검 방패. 투사체는 거리÷그래프 속도로 비행 시간을 계산한다.
- 가정: 신식의 현재 피해 배율·대상 디버프/방어 감소·자기 피해 버프·출처 확인 상태 연동 보너스는 받는다. 기본 공격으로 신식 영력·척살 검·격노 중첩을 얻지 않으며 계열 레벨/돌파를 적용하지 않는다. 전투 설정의 시전속도·쿨타임 배율·추가 지연을 비교 배율로 적용한다.
- 공통 SkillId100000의 상태 이상 피해 행을 기본 공격으로 사용하지 않았다. 원본 그래프·게임 프로세스는 수정하지 않았고 추출 작업 폴더만 읽었다.
- 생성기: prepare_mechanic_data.py → dist/mechanic-data.js. 원천 추적은 output/basic-attack-evidence-20261015.json 및 output/basic-attack-inspection-20261015.txt, 전수표는 output/effect-coverage/coverage.{json,csv,md}.

## 기준16안 전후

PvE·단일 대상1명·60초·돌파0·방어 가정 제외·각 덱의 저장 계열 레벨 유지. 값은 공격력 대비 계수 %/초. 순위는 이16안 안에서만 매겼다. 계열 레벨이 덱마다 다르므로 보편적인 계열 강함 순위가 아니다. 대조 사이트의 기본 공격 포함 여부는 미확인이다.

| 기준안 | 웹19 | 웹20 | 변화(%/초) | 순위 전→후 |
|---|---:|---:|---:|---|
| 사용자 덱1 · 대조 추천 순서 | 382.08 | 398.32 | +16.24 | 3→3 |
| 사용자 덱1 · 이전 우리 순서 | 354.17 | 386.21 | +32.04 | 6→4 |
| 사용자 덱2 · 사용자 순서 | 293.67 | 323.00 | +29.33 | 12→11 |
| 사용자 덱2 · 대조 추천 순서 | 311.14 | 334.89 | +23.75 | 11→9 |
| 절명 기준 덱 | 547.53 | 547.32 | -0.21 | 1→1 |
| 연타 기준 덱 | 361.23 | 371.92 | +10.69 | 4→7 |
| 강타 기준 덱 | 273.41 | 298.64 | +25.23 | 13→13 |
| 척살 기준 덱 | 356.53 | 379.38 | +22.85 | 5→5 |
| 저격 기준 덱 | 353.68 | 372.57 | +18.89 | 7→6 |
| 주술 기준 덱 | 227.80 | 259.00 | +31.20 | 16→16 |
| 파멸 기준 덱 | 388.60 | 407.05 | +18.45 | 2→2 |
| 강인 기준 덱 | 242.87 | 266.37 | +23.50 | 14→15 |
| 기동 기준 덱 | 323.23 | 304.66 | -18.57 | 10→12 |
| 헌신 기준 덱 | 235.78 | 272.52 | +36.74 | 15→14 |
| 기만 기준 덱 | 338.33 | 331.34 | -6.99 | 9→10 |
| 제압 기준 덱 | 342.23 | 359.61 | +17.38 | 8→8 |

기본 공격을 끄면16안 전부 웹19 수치로 복원된다. 절명·기동·기만 일부 값이 줄어드는 것은 캔슬 불가 기본 공격의 잠금 때문에 도술 타격이 전투 종료 밖으로 밀리는 경우가 있기 때문이다. 단순한 추가 피해 합산이 아니다.

## 사용자 두 조건의 추천 변화

다음 탐색은 각 사용자 계열 레벨을 유지하고 계산 가능한90도술을 모두 보유한 비교 조건(필수/제외 없음)이다. 실제 보유 목록을 알 수 없는 기준 자료이므로 계정의 최종 장비 추천으로 일반화하지 않는다. 새 탐색은 웹19 추천 덱·순서를 시작 후보로 보존한다. 기본 가정에서 선택한 구성의 궁극기 포함362,880개 순서를 전수 비교했으며 덱 구성은 여러 시작점에서 최대4회 교체하는 제한 탐색이다.

### 사용자 조건1

계열 레벨: 절명18, 저격9, 연타8, 파멸1, 나머지0. 전투60초·단일·돌파0·방어 제외.

추천 구성 변경: 있음, 사용 순서 변경: 있음.

- 웹19: 763.09%/초. 기본5칸 사격 / 내려찍기 / 연속 찌르기 / 찌르기 / 꿰뚫는 저격, 추가3칸 주먹 지르기 / 집중 사격 / 쇠뇌 사격.
  사용 우선순위: 자동 궁극기 → 사격 → 쇠뇌 사격 → 주먹 지르기 → 집중 사격 → 연속 찌르기 → 꿰뚫는 저격 → 내려찍기 → 찌르기.

- 웹20: 806.28%/초. 기본5칸 사격 / 찌르기 / 연속 찌르기 / 내려찍기 / 꿰뚫는 저격, 추가3칸 주먹 지르기 / 이중 사격 / 쇠뇌 사격.
  사용 우선순위: 꿰뚫는 저격 → 내려찍기 → 연속 찌르기 → 자동 궁극기 → 주먹 지르기 → 사격 → 쇠뇌 사격 → 찌르기 → 이중 사격.

동일한 웹19 덱·순서를 새 모형으로만 바꾸면 734.67%/초. 최종 웹20 추천은 이 값을 보존하거나 개선했다.

**현재 사용자 덱·순서: 가정에 민감** · 최악 손실 50.87% · 최대11위 · 후보10안/장착구성10개 · 일부 미확인 없음.

| 영향 상위3 가정 | 해당 시나리오 순위 | 1위 대비 손실(%) | 기본 가정 대비 추가 손실(%p) |
|---|---:|---:|---:|
| 받는 피해 증가 디버프 | 11 | 50.87 | 0.27 |
| 상태 이상·연동 | 11 | 50.86 | 0.26 |
| 동작 잠금 기준 | 11 | 50.17 | 0.00 |

| 한 가정만 변경 | 현재안 순위 | 손실(%) | 같은 덱 순서 손실(%) | 보류 후보 |
|---|---:|---:|---:|---:|
| 현재 가정 | 10 | 50.60 | 0.00 | 0 |
| 동작 잠금 기준 | 11 | 50.17 | 0.23 | 0 |
| 직접 타격 판정 시점 | 11 | 50.47 | 3.01 | 0 |
| 충전·연쇄 사용 가정 | 11 | 50.60 | 3.09 | 0 |
| 상태 이상·연동 | 11 | 50.86 | 3.10 | 0 |
| 검 보너스 결합 | 11 | 30.10 | 3.09 | 0 |
| 도술 자기 버프 | 11 | 50.60 | 3.09 | 0 |
| 받는 피해 증가 디버프 | 11 | 50.87 | 3.07 | 0 |
| 빈 시간 기본 공격 | 11 | 50.28 | 0.67 | 0 |
| 간파의 눈 설치물 | 11 | 50.60 | 3.09 | 0 |

최소 후회안: 별도 덱·순서, 비교 합집합의 최악 손실 1.42%, 기본 점수 806.28%/초.
장착ID 1020010,1010010,1010011,1010030,1020070,1030010,1020011,1020020; 우선순위ID 1020070,1010030,1010011,1030010,1020010,1020020,1010010,1020011; 궁극기4순위. 실제 이름과 적용 버튼은 화면에서 확인할 수 있다.

연결 실측 우선: #2 디버프 판정 시점 → #3 디버프 지속·갱신 → #13 상태 이상 틱·간격·횟수.

**웹20 추천 덱·순서: 가정 주의** · 최악 손실 1.42% · 최대5위 · 후보10안/장착구성10개 · 일부 미확인 없음.

| 영향 상위3 가정 | 해당 시나리오 순위 | 1위 대비 손실(%) | 기본 가정 대비 추가 손실(%p) |
|---|---:|---:|---:|
| 빈 시간 기본 공격 | 5 | 1.42 | 1.42 |
| 동작 잠금 기준 | 1 | 0.00 | 0.00 |
| 직접 타격 판정 시점 | 1 | 0.00 | 0.00 |

| 한 가정만 변경 | 현재안 순위 | 손실(%) | 같은 덱 순서 손실(%) | 보류 후보 |
|---|---:|---:|---:|---:|
| 현재 가정 | 1 | 0.00 | 0.00 | 0 |
| 동작 잠금 기준 | 1 | 0.00 | 0.00 | 0 |
| 직접 타격 판정 시점 | 1 | 0.00 | 0.00 | 0 |
| 충전·연쇄 사용 가정 | 1 | 0.00 | 0.00 | 0 |
| 상태 이상·연동 | 1 | 0.00 | 0.00 | 0 |
| 검 보너스 결합 | 1 | 0.00 | 0.00 | 0 |
| 도술 자기 버프 | 1 | 0.00 | 0.00 | 0 |
| 받는 피해 증가 디버프 | 1 | 0.00 | 0.00 | 0 |
| 빈 시간 기본 공격 | 5 | 1.42 | 1.04 | 0 |
| 간파의 눈 설치물 | 1 | 0.00 | 0.00 | 0 |

최소 후회안: 현재안과 같음, 비교 합집합의 최악 손실 1.42%, 기본 점수 806.28%/초.

연결 실측 우선: #1 도술 동작 간격 → #2 디버프 판정 시점 → #7 충전형 최대 충전 시간.
### 사용자 조건2

계열 레벨: 저격9, 연타8, 강타1, 파멸1, 나머지0. 전투60초·단일·돌파0·방어 제외.

추천 구성 변경: 있음, 사용 순서 변경: 있음.

- 웹19: 659.29%/초. 기본5칸 사격 / 내려찍기 / 연속 찌르기 / 찌르기 / 꿰뚫는 저격, 추가3칸 주먹 지르기 / 집중 사격 / 쇠뇌 사격.
  사용 우선순위: 자동 궁극기 → 사격 → 쇠뇌 사격 → 주먹 지르기 → 집중 사격 → 연속 찌르기 → 꿰뚫는 저격 → 내려찍기 → 찌르기.

- 웹20: 699.82%/초. 기본5칸 찌르기 / 내려찍기 / 연속 찌르기 / 주먹 지르기 / 쇠뇌 사격, 추가3칸 꿰뚫는 저격 / 사격 / 이중 사격.
  사용 우선순위: 꿰뚫는 저격 → 내려찍기 → 연속 찌르기 → 자동 궁극기 → 주먹 지르기 → 사격 → 쇠뇌 사격 → 찌르기 → 이중 사격.

동일한 웹19 덱·순서를 새 모형으로만 바꾸면 643.12%/초. 최종 웹20 추천은 이 값을 보존하거나 개선했다.

**현재 사용자 덱·순서: 가정에 민감** · 최악 손실 56.72% · 최대11위 · 후보10안/장착구성10개 · 일부 미확인 없음.

| 영향 상위3 가정 | 해당 시나리오 순위 | 1위 대비 손실(%) | 기본 가정 대비 추가 손실(%p) |
|---|---:|---:|---:|
| 상태 이상·연동 | 11 | 56.72 | 2.88 |
| 빈 시간 기본 공격 | 11 | 55.58 | 1.73 |
| 동작 잠금 기준 | 11 | 53.39 | 0.00 |

| 한 가정만 변경 | 현재안 순위 | 손실(%) | 같은 덱 순서 손실(%) | 보류 후보 |
|---|---:|---:|---:|---:|
| 현재 가정 | 10 | 53.85 | 0.00 | 0 |
| 동작 잠금 기준 | 11 | 53.39 | 3.58 | 0 |
| 직접 타격 판정 시점 | 11 | 53.69 | 2.55 | 0 |
| 충전·연쇄 사용 가정 | 11 | 53.85 | 1.38 | 0 |
| 상태 이상·연동 | 11 | 56.72 | 1.50 | 0 |
| 검 보너스 결합 | 11 | 36.72 | 1.38 | 0 |
| 도술 자기 버프 | 11 | 53.85 | 1.38 | 0 |
| 받는 피해 증가 디버프 | 11 | 53.67 | 2.05 | 0 |
| 빈 시간 기본 공격 | 11 | 55.58 | 1.89 | 0 |
| 간파의 눈 설치물 | 11 | 53.85 | 1.38 | 0 |

최소 후회안: 별도 덱·순서, 비교 합집합의 최악 손실 1.38%, 기본 점수 699.82%/초.
장착ID 1010010,1010030,1010011,1030010,1020020,1020070,1020010,1020011; 우선순위ID 1020070,1010030,1010011,1030010,1020010,1020020,1010010,1020011; 궁극기4순위. 실제 이름과 적용 버튼은 화면에서 확인할 수 있다.

연결 실측 우선: #13 상태 이상 틱·간격·횟수 → #1 도술 동작 간격 → #2 디버프 판정 시점.

**웹20 추천 덱·순서: 가정 주의** · 최악 손실 2.12% · 최대5위 · 후보10안/장착구성10개 · 일부 미확인 없음.

| 영향 상위3 가정 | 해당 시나리오 순위 | 1위 대비 손실(%) | 기본 가정 대비 추가 손실(%p) |
|---|---:|---:|---:|
| 빈 시간 기본 공격 | 5 | 2.12 | 2.12 |
| 받는 피해 증가 디버프 | 2 | 1.32 | 1.32 |
| 직접 타격 판정 시점 | 2 | 0.53 | 0.53 |

| 한 가정만 변경 | 현재안 순위 | 손실(%) | 같은 덱 순서 손실(%) | 보류 후보 |
|---|---:|---:|---:|---:|
| 현재 가정 | 1 | 0.00 | 0.00 | 0 |
| 동작 잠금 기준 | 1 | 0.00 | 0.00 | 0 |
| 직접 타격 판정 시점 | 2 | 0.53 | 0.53 | 0 |
| 충전·연쇄 사용 가정 | 1 | 0.00 | 0.00 | 0 |
| 상태 이상·연동 | 2 | 0.03 | 0.03 | 0 |
| 검 보너스 결합 | 1 | 0.00 | 0.00 | 0 |
| 도술 자기 버프 | 1 | 0.00 | 0.00 | 0 |
| 받는 피해 증가 디버프 | 2 | 1.32 | 1.32 | 0 |
| 빈 시간 기본 공격 | 5 | 2.12 | 2.12 | 0 |
| 간파의 눈 설치물 | 1 | 0.00 | 0.00 | 0 |

최소 후회안: 별도 덱·순서, 비교 합집합의 최악 손실 0.89%, 기본 점수 699.74%/초.
장착ID 1010010,1010030,1010011,1030010,1020020,1020070,1020010,1020011; 우선순위ID 1020010,1020020,1010010,1030010,1020011,1010011,1020070,1010030; 궁극기5순위. 실제 이름과 적용 버튼은 화면에서 확인할 수 있다.

연결 실측 우선: #1 도술 동작 간격 → #2 디버프 판정 시점 → #3 디버프 지속·갱신.

## 견고성 비교의 의미와 한계

- 각 시나리오는 lockBasis/effectTiming/assumedSkills/statusEffects/assassinateBonus/selfBuffs/debuffs/basicAttack/wardAssumptions 중 한 키만 반대로 바꾼다. selfBuffs와 debuffs도 따로 비교한다.
- 직접 타격 판정 시점은 대상 피해 증가·방어 감소·상태 조건·자기 피해 버프를 시전 시작에 고정하는 대안이다. 상태 이상 틱·2차 폭발은 사건 시점 판정을 유지한다. 가정을 바꿀 때 피해 경로/잠금을 원래 표·설명에서 다시 만든다.
- 손실은 **해당 시나리오 안의 1위 후보 대비 격차**다. 가정 변경 전보다 DPS가 그 비율만큼 감소했다는 뜻이 아니다. 기본 가정에서도 약한 현재 사용자 덱은 손실이 크게 표시된다. 영향 순서는 기본 손실 대비 증가량과 순위 하락, 미확인 여부를 기준으로 한다.
- 기본 가정의9!만 전수 탐색. 다른 가정은 보존한 후보의 순서를 최대1회 교환하고 궁극기 위치를 비교한다. 기본 순서 상위2개를 시작점으로 쓸 수 있다. 정밀 검사는 최대3회 교환·시작점5개이며 별도 워커에서 진행률/중단을 제공한다. 현재 덱 계산만 하면 필수·제외를 지키는 한 칸 교체 후보를 제한 비교한다.
- 충전 가정을 끄면 복원할 수 없는 경로는 계산 보류(미확인)다. 후보를 피해0으로 치환하지 않는다. 간파의 눈은 별도 설치물 피해0 비교가 명시적으로 정의돼 있다. 비교가 미확인인 경우 강함 배지를 주지 않는다.
- 강함: 모든 변경 시나리오1~3위·최악 손실≤2%·미확인 없음. 주의: 2~5% 또는 순위/미확인 조건. 민감:5% 초과. 두 임계값은 설정할 수 있으며 강함 상한≤주의 상한을 검증한다.
- 최소 후회는 각 시나리오에서 수집한 덱·순서의 합집합을 같은 시나리오 전체에 대조해 최악 상대 손실이 최소인 안을 고른다. 모든 조건에서 계산 가능한 안만 비교한다. 모든 덱 조합·모든 순서의 전역 보장은 아니다.

## 검증과 설정 보존

- 전체 tests/*.test.cjs 10종 통과: 기본 공격 빈 시간/캔슬 불가/종료 경계/콤보/무기/PvP/범위/신식·버프/영력 미획득/빠른 점수 일치, 한 키 변경/순위·손실/배지 경계/최소 후회/미확인 보존, 기준16안과 웹19 복원, 현재안 보존·후보 메타데이터 일치, 기존 지역·패치·성장·저장 회귀.
- 전체 dist JS 문법, Python 생성기 문법, git diff --check 확인. 스크립트/스타일/워커 importScripts 캐시 식별자 basic-robust-20261015-codex.
- 실제 브라우저 워커 일반 덱362,880순서(전투10초·단일·방어 제외): 웹19 7.96초 → 새 모형 10.25초, 1.29배. 기준1.5배 이내. 견고성은 기본 탐색 종료 후 별도 실행하므로 이 시간에 포함하지 않는다. 장치·다른 작업에 따라 절대 시간은 달라질 수 있다.
- 로컬 헤드리스 Chrome: 콘솔/페이지 오류0,375px 문서 가로 넘침0, 기본 공격 기여 행·점유율·견고성10행·정밀 검사/중단 표시 확인.
- 웹19 보관 설정을 별도 헤드리스 프로필에 재생해 덱·레벨·돌파·필수/제외·우선순위·직접 보정 전체 보존, 전체 원본 백업, 백업 다운로드→가져오기→기본 공격 끔 유지, 새 무기·판정 시점 저장/새로고침 확인. 실제 사용 중 브라우저 프로필을 직접 변경한 검사는 아니다.
- 이전 입력은 dokkaebi-build-before-basic-robust-20261015에 한 번만 백업하며 덮어쓰지 않는다. 백업 실패 시 입력 적용/저장을 차단하고, 성공한 재시도에서만 저장을 복구한다. 백업 파일의 basicMigration=keep-legacy는 기본 공격을 꺼서 웹19 모형을 복원한다.

## 백업과 롤백

수정 전 전체 웹 소스와 전수표: backup/web-before-codex-basic-robust-20261015. 공개 롤백 대상 웹19 저장버전 appgprj_6ace0a1d796c8191a913536d34fba555~appgver_0f6e904a5e20819182cbb6228697cd55. 설정만 원복할 때는 화면의 기본 공격 적용 전 백업을 다운로드/불러오거나 기본 공격을 끈다. 공개 소스 롤백은 각 방문자의 브라우저 설정을 대신 복원하지 않는다.

먼저 실측할 항목(추천안 비교): #1 도술 동작 간격 → #2 디버프 판정 시점 → #7 충전형 최대 충전 시간. 모두 아직 대기이며 실측 결과가 오면 기본값과 테스트를 갱신한다.
