# 기술/장비 Gate 리뷰

기술과 장비 완료 조건은 개별 scenario bit가 아니라 generic Event VM opcode로 처리된다.

## 결론

- e2 장비 gate stream rows: 13
- e3 기술 gate stream rows: 7
- 단 평가 rows: 5
- 퍼펙트 클리어 감사 rows: 15

## e2 장비 Gate

- handler: `0x004101ec`
- `stream[1]`: 캐릭터/장비 그룹 (`0` 아타호, `1` 린샹, `2` 스마슈)
- `stream[2]`: `1`이면 무기/술류만, `0`이면 무기+방어구 전체
- `stream[4..7]`: 실패 시 branch target
- 내부적으로 장비 ID를 순회하며 `0x00421d3d(id)`를 호출한다.

## e3 기술 Gate

- handler: `0x00410302`
- skill matrix: `0x004404f0`, 72 bytes
- `stream[1]`: 캐릭터
- `stream[2]`: `0` 습득, `1` 장기 이상, `2` 달인기 이상, `3` 신기
- 내부적으로 `0x00421bdf(actorSkillBase, category, matrixByte + stream[2])`를 호출한다.
- `stream[2] != 0`일 때는 공격 기술 category 1/2만 tier 검사한다. `stream[2] == 0`은 습득 검사로 category 3도 포함한다.

## 주요 Rows

| VA | opcode | actor | selector | context | target |
|---|---|---|---|---|---|
| `0x0043cbe8` | `e3 00 03 00 00 cc 43 00` | 아타호 | 신기 | dan-rank-score | `0x0043cc00` |
| `0x0043cc00` | `e3 00 02 00 18 cc 43 00` | 아타호 | 달인기 이상 | dan-rank-score | `0x0043cc18` |
| `0x0043cc18` | `e3 00 01 00 30 cc 43 00` | 아타호 | 장기 이상 | dan-rank-score | `0x0043cc30` |
| `0x0043cc30` | `e3 00 00 00 40 cc 43 00` | 아타호 | 습득 | dan-rank-score | `0x0043cc40` |
| `0x0043cc40` | `e2 00 01 00 50 cc 43 00` | 아타호 | 무기/술류만 | dan-rank-score | `0x0043cc50` |
| `0x0046c378` | `e2 00 00 00 88 c3 46 00` | 아타호 | 장비 전체 | perfect-clear-audit | `0x0046c388` |
| `0x0046c3b4` | `e2 01 00 00 c4 c3 46 00` | 린샹 | 장비 전체 | perfect-clear-audit | `0x0046c3c4` |
| `0x0046c3f0` | `e2 02 00 00 00 c4 46 00` | 스마슈 | 장비 전체 | perfect-clear-audit | `0x0046c400` |
| `0x0046c40c` | `e2 00 00 00 d8 c4 46 00` | 아타호 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c414` | `e2 01 00 00 d8 c4 46 00` | 린샹 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c41c` | `e2 02 00 00 d8 c4 46 00` | 스마슈 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c438` | `e2 00 00 00 d8 c4 46 00` | 아타호 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c440` | `e2 01 00 00 d8 c4 46 00` | 린샹 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c448` | `e2 02 00 00 d8 c4 46 00` | 스마슈 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c464` | `e2 00 00 00 d8 c4 46 00` | 아타호 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c46c` | `e2 01 00 00 d8 c4 46 00` | 린샹 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c474` | `e2 02 00 00 d8 c4 46 00` | 스마슈 | 장비 전체 | perfect-clear-audit | `0x0046c4d8` |
| `0x0046c488` | `e3 00 00 00 cc c4 46 00` | 아타호 | 습득 | perfect-clear-audit | `0x0046c4cc` |
| `0x0046c490` | `e3 01 00 00 cc c4 46 00` | 린샹 | 습득 | perfect-clear-audit | `0x0046c4cc` |
| `0x0046c498` | `e3 02 00 00 cc c4 46 00` | 스마슈 | 습득 | perfect-clear-audit | `0x0046c4cc` |

## 주의

- `e2/e3`는 `0x31/0x32` scenario flag와 다르다.
- 단 평가에서 `e2 00 01`은 장비 ID `1..6`을 확인한다. `맨주먹`은 기본 보유이므로 실질적으로 아타호 술류 완비 조건으로 해석된다.
- 퍼펙트 클리어 감사 대사에서는 `e2`가 세 캐릭터 장비 전체를, `e3`가 세 캐릭터 기술 습득을 검사한다.
