# 십웅기 동행자 시스템 상세 내역
> **기준 판본:** Stage59 — 멀티 보스 기여도·공정 보상 통합본
> **기준 파일:** `sipwoonggi-runtime-stage59-multiboss-fair-reward-utf8-nfc.tar.gz`
> **설치 기준 경로:** `/srv/sipwoonggi/runtime`
> **저장자료 판:** 5
> **저장 키:** `동행자데이터`
> **문서 성격:** 현재 구현 명세·운영 안내·확장 지침을 함께 담은 통합 기준서
---
## 1. 체계의 뜻과 자리
동행자는 정령과 다른 계통이다. 정령이 불·물·바람·땅의 원소를 다루는 존재라면, 동행자는 저마다의 사연과 말투, 전투 역할, 인연과 기억을 지닌 **사람 문객**이다.
현재 전투 편성의 기본형은 다음과 같다.
```text
주인공 1명 + 출전 동행자 1명 + 소환 정령 1체
```
세 존재는 하나의 공격 차례를 나누어 갖지 않는다. 전투박자마다 다음 순서로 독립 행동이 더해진다.
```text
주인공 기본 공격 → 동행자 보조행동 → 정령 보조행동
```
따라서 동행자나 정령을 얻었다고 주인공의 공격 횟수나 기본 피해가 줄어들지 않는다. 동행자 교대나 전술 변경도 **그 전투박자의 문객 보조행동만 쉬게 할 뿐**, 주인공 공격과 정령 행동은 그대로 이어진다.
### 핵심 설계 원칙
1. **주인공 공격 보존**
동행자는 주인공 행동을 빼앗는 소환수가 아니라 독립된 협공자다.
2. **한 번에 한 문객만 출전**
보유 문객은 여럿이어도 출전 문객은 한 명이다. 전투 중 교대로 역할을 바꾼다.
3. **역할 차별화**
소령은 치유, 묵철은 방어, 연화는 공격·회피, 백려는 술법·봉인을 맡는다.
4. **영구 소실 없음**
생명력이 0이 되면 그 전투에서 이탈하지만 영구히 사라지지 않는다.
5. **전투 밖에서도 살아 있는 관계**
대화, 장소 반응, 기억, 개인 임무, 전용 장비를 통해 인연이 이어진다.
6. **정령과 독립하면서도 연계**
동행자와 정령은 각각 행동하지만 특정 짝에서는 공명 보정을 받는다.
7. **보스전 역할 공헌 인정**
Stage59부터 피해뿐 아니라 치료, 피해 분담, 회피, 봉인, 전조 대응도 공동 보스 공적으로 계산한다.
---
## 2. 전체 성장 흐름
| 단계 | 개방 조건 | 열리는 내용 |
|---|---:|---|
| 첫 인연 | 무공 10 이상 + `독문무기` 초보 임무 3단계 이상 + 장백성 밖 첫 관도 진입 | 약사 소령 무료 합류 |
| 첫 공동 전투 | 소령을 출전시킨 실제 첫 전투 | 자동 치유와 동행 기술 안내 |
| 첫 공동 승리 | 소령이 실제 참여한 적 처치 | 소령 인연 +3, 첫 전투 이야기 완료 |
| 문객 명부 | 무공 15 이상 | 화서객잔에서 묵철·백려·연화 영입 |
| 전투 교대 | 무공 20 이상 | 전투 중 문객 교대, 전술 변경 |
| 정령 연계 | 무공 30 이상 + 정령석 개방 + 정령 소환 | 동행자·정령 조합 효과 |
| 개인 임무 | 해당 문객 인연 20 이상 | 문객별 5승 임무와 전용 장비 |
| 장비 각성 | 전용 장비 획득 후 해당 문객 참여 승리 | 각성 20 → 공명 60 → 진명 120 |
| 통합 보스 대응 | 통합보스 전조 발생 | 역할 대응, 삼위 협공, 공동 공적 |
### 첫 동행자 소령의 합류 장소
아래 두 방만 첫 관도로 인정한다.
```text
/방/화서마을/zone0138
/방/화서마을/zone0139
```
장백성 보초·경비에게 `안녕` 또는 `포권`하여 이 길로 이동하면 개방 조건을 검사한다. 단순히 장백성 밖 임의 지역에 있는 것만으로는 첫 인연 사건이 일어나지 않는다.
---
## 3. 기본 문객 네 명
### 3.1 기초 능력과 성장치
| 내부 식별자 | 표시 이름 | 역할 | 영입 | 기본 HP | HP/등급 | 기본 MP | MP/등급 | 기본 공격 | 공격/등급 | 기본 방어 | 방어/등급 | 기본 속도 | 속도/등급 |
|---|---|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| `soso` | 약사 소령 | 치유 | 첫 관도 무료 합류 | 280 | +24 | 150 | +12 | 8 | +2 | 8 | +1 | 12 | +1 |
| `mukcheol` | 철곤 묵철 | 방어 | 화서객잔 8,000엽전 | 610 | +42 | 90 | +7 | 13 | +2 | 22 | +3 | 6 | +0 |
| `yeonhwa` | 검객 연화 | 공격 | 화서객잔 25,000엽전 | 420 | +28 | 120 | +9 | 24 | +4 | 10 | +1 | 20 | +2 |
| `baekryeo` | 술법사 백려 | 술법 | 화서객잔 18,000엽전 | 350 | +22 | 220 | +16 | 18 | +3 | 8 | +1 | 13 | +1 |
등급이 `L`일 때 파생 능력은 다음과 같다.
```text
최대 HP = 기본 HP + (L - 1) × HP 성장치
최대 MP = 기본 MP + (L - 1) × MP 성장치
공격 = 기본 공격 + (L - 1) × 공격 성장치
방어 = 기본 방어 + (L - 1) × 방어 성장치
속도 = 기본 속도 + (L - 1) × 속도 성장치
```
최대 전투 등급은 100이다.
> `soso` 원형 자료에는 비용 12,000이 남아 있으나 실제 공개 영입 경로에서는 사용하지 않는다. 소령은 돈으로 사는 문객이 아니라 첫 무림 진출 때 무료로 합류하는 이야기 전용 문객이다.
### 3.2 문객별 성격과 실전 역할
#### 약사 소령
- 약낭과 은침을 든 젊은 약사
- 주인공의 생명력이 전술별 기준 아래로 내려가면 자동 치유
- 독을 조금씩 누그러뜨림
- 치유가 필요하지 않을 때는 은침 보조 공격
- 위기 대응: **구명은침**
- 보스 역할: 치유와 공격 충격 완화
- 권장 정령: 물의 정령 운디네
#### 철곤 묵철
- 체력과 방어가 가장 높은 전열형 문객
- 일정 확률로 주인공이 받을 피해를 자기 몸으로 나누어 받음
- 철벽세와 진각으로 강제 피해 분담 태세 형성
- 위기 대응: **부동철벽**
- 보스 역할: 강타·압정 계통의 피해 분담
- 권장 정령: 땅의 정령 그놈
#### 검객 연화
- 속도와 공격 성장치가 가장 높은 단일 공격형 문객
- 빠른 자동 공격과 높은 수동 기술 피해
- 잔향보로 다음 공격 하나를 완전히 흘림
- 적의 체력이 낮을 때 마무리 공격 발동 가능
- 위기 대응: **낙화추명**
- 보스 역할: 공격선 이탈, 회피, 빈틈 반격
- 권장 정령: 불의 정령 살라만드라
#### 술법사 백려
- 내력 총량과 내력 성장치가 가장 높은 술법형 문객
- 자동 공격과 기술에 내력을 사용
- 혼백령과 호명결계로 피해를 누그러뜨림
- 통합 보스의 기술 맥을 봉인하고 반동 피해를 돌려보냄
- 위기 대응: **호명결계**
- 보스 역할: 봉인·제어·반동
- 권장 정령: 바람의 정령 실프
---
## 4. 명령 체계
권장 어순은 **체계 + 기능 + 대상**이다.
```text
동행 정보 소령
동행 교대 묵철
동행 임무 시작 소령
동행 전술 수호
동행 대응 신중
```
붙여 쓴 옛 명령도 호환 별칭으로 받아들인다.
```text
동행정보 소령
동행교대 묵철
동행기술 회춘침
```
### 4.1 상태와 안내
| 명령 | 기능 |
|---|---|
| `동행` / `문객` | 현재 출전 문객, 보유 수, 전투 상태, 전술, 위기 대응, 연계 요약 |
| `동행 도움` | 동행자 도움말 |
| `동행 안내` / `동행 길잡이` | 개방 단계와 바로 다음 목표 |
| `동행 목록` | 보유·대기·부상·미영입 문객 목록 |
| `동행 정보 소령` | 해당 문객의 능력, 인연, 기술, 장비, 임무, 최근 기억 |
| `동행 성장 [이름]` | 전투 등급, 경험, 인연 단계, 다음 문턱 |
### 4.2 출전과 전투
| 명령 | 기능 |
|---|---|
| `동행 출전 소령` | 비전투 중 출전 문객 지정 |
| `동행 교대 묵철` | 전투 중 문객 교대 |
| `동행 기술` | 현재 문객의 기술과 재사용 대기 확인 |
| `동행 기술 1` | 첫째 기술 사용 |
| `동행 기술 2` | 둘째 기술 사용 |
| `동행 기술 회춘침` | 기술명을 직접 지정하여 사용 |
| `동행 전술` | 현재 지휘 전술과 네 전술 설명 |
| `동행 전술 수호` | 현재 출전 문객의 전술 변경 |
| `동행 대응` | 위기 대응 방침과 누적 발동 확인 |
| `동행 대응 신중` | 적극·신중·수동 중 하나로 변경 |
### 4.3 관계와 성장
| 명령 | 기능 |
|---|---|
| `동행 대화 [이름]` | 문객과 대화하고 일정 간격으로 인연 상승 |
| `문객 명부` | 화서객잔 영입 명부 |
| `동행 영입 묵철` | 화서객잔에서 문객 영구 영입 |
| `동행 임무` | 보유 문객의 개인 임무 목록 |
| `동행 임무 소령` | 소령 개인 임무 상세 |
| `동행 임무 시작 소령` | 인연 20 이상에서 시작 |
| `동행 임무 완료 소령` | 목표 달성 뒤 보상 수령 |
| `동행 장비 소령` | 전용 장비, 각성 단계, 보정 확인 |
| `동행 연계` | 현재 문객과 소환 정령의 공명 효과 |
### 4.4 회복
| 명령 | 기능 |
|---|---|
| `동행 회복` | 모든 문객의 HP·MP·부상 상태 확인 |
| `동행 휴식` | 비전투 야외 부분 회복, 120초 간격 |
| `동행 객잔휴식` | 객잔에서 전 문객 완전 회복 |
---
## 5. 전투 생명주기
### 5.1 전투 시작
첫 보조행동 진입 때 다음 상태를 새로 연다.
- 전투 중 표식 `in_combat = 1`
- 개인 전투회차 `battle_session +1`
- 대상 clone 경로와 이름 기록
- 전투 시작 시각 기록
- 행동 수, 누적 피해, 누적 회복 0으로 초기화
- 최초 출전 문객을 참여 명부에 등록
- 교대·전술·철벽·회피·위기 임시 상태 초기화
대상 clone의 `file_name()`을 전투 대상 열쇠로 쓰므로 동명 몬스터라도 서로 다른 개체를 구분한다.
### 5.2 전투박자 처리 순서
플레이어 전투 heartbeat에서 다음 순서로 처리한다.
1. 주인공 `AutoHandAttack()`
2. 동행자 `combatAssist()`
3. 대상이 살아 있으면 정령 `combatAssist()`
4. 이후 주인공의 연환 공격과 특수 공격
동행자 보조로 대상이 먼저 쓰러졌다면 정령은 죽은 대상을 다시 공격하지 않는다.
### 5.3 대상 변경
전투 중 대상 clone 열쇠가 바뀌면 이전 동행 전투를 `대상 변경`으로 닫고 새 전투를 연다. 이전 대상의 참여 명부나 임시 방어 효과가 새 대상에게 섞이지 않는다.
### 5.4 전투 종료
승리, 일반 종료, 도주, 대상 변경 때 다음을 정리한다.
- 실제 참여한 모든 문객의 기억에 전투 턴과 종료 사유 기록
- 교대·전술 재사용 대기 초기화
- 철벽세·잔향보 잔여 효과 삭제
- 전투 누적 피해·회복·행동 수 초기화
- 참여 명부와 대상 열쇠 초기화
- 전투별 위기 발동 기록 초기화
도주 명령은 명시적으로 `endCompanionCombat(..., "도주")`를 호출한다. 비전투 heartbeat에서도 전투 표식이 남아 있으면 자동으로 닫는다.
---
## 6. 자동 보조행동
아래 공식의 나눗셈은 LPC 정수 나눗셈이므로 소수점 이하는 버린다.
### 6.1 공통 공격 능력 반영
문객의 성장 공격력은 기존 기본 공식을 뒤엎지 않고 다음만큼 추가된다.
```text
성장 공격 기여 = 공격 능력 / 8
상한 = 해당 행동 기본 위력의 60%
```
장비·정령 연계·전술 보정은 덧셈으로 합친 뒤 적용한다.
```text
최종 위력 = 기본 위력 + 기본 위력 × 합산 보정% / 100
```
안전 상한은 다음과 같다.
- 공격 보정: -25% ~ +120%
- 치료 보정: -20% ~ +125%
- 내력 소모 감소: 0% ~ 65%
### 6.2 전술별 자동 행동 간격
| 문객 | 균형 | 맹공 | 수호 | 보조 |
|---|---:|---:|---:|---:|
| 소령 | 3턴 | 2턴 | 4턴 | 4턴 |
| 묵철·연화·백려 | 2턴 | 2턴 | 3턴 | 3턴 |
### 6.3 전술별 소령 자동 치유 기준
| 전술 | 주인공 HP가 아래 수치일 때 치유 시도 |
|---|---:|
| 맹공 | 48% |
| 균형 | 65% |
| 수호 | 72% |
| 보조 | 80% |
### 6.4 문객별 자동 행동 공식
#### 소령
자동 치유 조건이 맞고 내력과 자동 대기시간이 충분하면:
```text
내력 소모 = 기본 8
치유 기본량 = 8 + 등급×3 + 인연/8
자동 치유 대기 = 3전투턴
독 상태이면 독기 1단계 완화
```
치유가 필요하지 않은 행동박자에는:
```text
은침 공격 기본량 = 3 + 등급 + 인연/20 + 성장 공격 기여
```
#### 묵철
```text
철곤 공격 기본량 = 7 + 등급×2 + 인연/15 + 성장 공격 기여
```
#### 연화
```text
검술 공격 기본량 = 10 + 등급×3 + 인연/10 + 성장 공격 기여
```
#### 백려
```text
내력 소모 = 기본 6
술법 공격 기본량 = 9 + 등급×3 + 인연/10 + 성장 공격 기여
```
백려는 자동 공격 때도 내력이 부족하면 행동하지 못한다.
---
## 7. 수동 고유 기술
### 7.1 약사 소령
| 기술 | 기본 내력 | 대기 | 효과 |
|---|---:|---:|---|
| 회춘침 | 18 | 5턴 | 주인공 단일 치유 |
| 청심산 | 22 | 7턴 | 치유 + 독기 6단계 완화 |
```text
회춘침 기본 치유 = 24 + 등급×5 + 인연/5
청심산 기본 치유 = 10 + 등급×3 + 인연/8
```
치유 보정에는 전용 장비, 운디네 연계, 전술 효과가 합산된다. 이미 HP가 가득 찼고 독도 없다면 낭비 사용을 막는다.
### 7.2 철곤 묵철
| 기술 | 기본 내력 | 대기 | 효과 |
|---|---:|---:|---|
| 철벽세 | 14 | 6턴 | 다음 두 공격 강제 피해 분담 |
| 진각 | 18 | 5턴 | 단일 피해 + 강제 피해 분담 1회 추가 |
```text
진각 기본 피해 = 18 + 등급×4 + 인연/5 + 성장 공격 기여
```
철벽세의 임시 효과는 묵철에게 귀속된다. 다른 문객으로 교대한 뒤 효과만 넘겨 쓰지 못한다.
### 7.3 검객 연화
| 기술 | 기본 내력 | 대기 | 효과 |
|---|---:|---:|---|
| 낙화일섬 | 16 | 5턴 | 강한 단일 공격 |
| 잔향보 | 14 | 6턴 | 다음 공격 1회 완전 회피 |
```text
낙화일섬 기본 피해 = 28 + 등급×6 + 인연/4 + 성장 공격 기여
```
잔향보로 통합 보스 공격을 흘리면 피한 원래 피해량이 회피 역할 공적으로 기록된다.
### 7.4 술법사 백려
| 기술 | 기본 내력 | 대기 | 효과 |
|---|---:|---:|---|
| 금박부 | 20 | 6턴 | 강한 술법 단일 공격 |
| 혼백령 | 24 | 7턴 | 술법 피해 + 다음 공격 1회 완화 |
```text
금박부 기본 피해 = 25 + 등급×5 + 인연/3 + 성장 공격 기여
혼백령 기본 피해 = 16 + 등급×4 + 인연/4 + 성장 공격 기여
```
백려의 전용 장비와 실프 연계는 내력 소모 감소에 함께 들어간다.
---
## 8. 지휘 전술
전술은 문객마다 따로 저장한다. 문객을 바꾸면 그 문객이 마지막으로 따르던 전술이 복원된다.
| 전술 | 공격 | 치료 | 내력 절감 | 피해 분담 확률 | 피해 분담률 | 운용 특징 |
|---|---:|---:|---:|---:|---:|---|
| 균형 | 0% | 0% | 0% | 0%p | 0%p | 기본형 |
| 맹공 | +15% | -10% | 0% | -8%p | -5%p | 빠른 공격, 방어 소극적 |
| 수호 | -10% | +10% | 0% | +18%p | +8%p | 피해 분담 중심 |
| 보조 | -10% | +25% | 15% | +5%p | +3%p | 치유와 내력 효율 중심 |
### 변경 규칙
- 무공 20부터 변경 가능
- 비전투 중에는 즉시 변경
- 전투 중 변경하면 문객 보조행동 1회 소모
- 전투 중 재지휘 대기 3전투턴
- 같은 박자에 교대와 전술 변경을 함께 할 수 없음
- 주인공 공격과 정령 행동은 지휘 때문에 줄어들지 않음
---
## 9. 피해 분담과 방어
### 9.1 기본 피해 분담
주인공이 피해를 받기 직전에 출전 문객이 개입한다.
| 문객 | 기본 개입 확률 | 기본 분담률 | 강제 효과 때 분담률 |
|---|---:|---:|---:|
| 묵철 | 42% | 42% | 60% |
| 연화 | 12% | 18% | 25% |
| 백려 | 10% | 16% | 28% |
| 소령 | 8% | 15% | 22% |
여기에 전술과 정령 연계 보정이 붙는다.
- 개입 확률 범위: 0% ~ 100%
- 최종 피해 분담률 범위: 5% ~ 85%
- 묵철 + 그놈 `반석철벽`: 분담률 +10%p
### 9.2 문객 방어력
문객이 대신 받은 양 전부가 실제 문객 피해가 되지는 않는다.
```text
방어로 흘리는 양 = 방어 능력 / 12
상한 = 대신 받은 양의 50%
문객 실제 피해 = 대신 받은 양 - 방어로 흘린 양
```
실제 피해는 최소 1이다.
### 9.3 쓰러짐
문객 HP가 0이 되면:
- `down = 1`
- 해당 전투에서 행동 불가
- 영구 사망하지 않음
- 기억에 주인공을 대신해 쓰러진 사건 기록
- 위기 대응이 수동이 아니고 무공 20 이상이면 건강한 대기 문객이 자동 교대할 수 있음
---
## 10. 위기 대응
위기 대응은 전투 중 자동으로 펼치는 문객별 비상 행동이다. 방침은 플레이어 단위로 저장된다.
| 방침 | 발동 기준 | 특징 |
|---|---:|---|
| 적극 | 주인공 HP 약 40% | 내력을 더 일찍 써서 선제 대응 |
| 신중 | 주인공 HP 약 25% | 깊은 위기에서만 대응 |
| 수동 | 자동 대응 없음 | 자동 비상 행동과 자동 구원 교대 모두 끔 |
전투별 위기 기술은 같은 열쇠로 한 번만 발동한다.
### 10.1 소령 — 구명은침
- 주인공 HP가 방침 기준 이하일 때
- 내력 소모: 적극 14 / 신중 11
- 기본 치유: `18 + 등급×4 + 인연/6`
- 독기 4단계 완화
- 자동 행동 대기 3턴
- 실제 회복량이 통합 보스 역할 공적으로 기록됨
### 10.2 묵철 — 부동철벽
주인공이 이번 공격 뒤 위기 기준 아래로 내려갈 것으로 예상될 때 발동한다.
- 내력 소모 9
- 적극: 피해 60% 가로막음
- 신중: 피해 50% 가로막음
- 묵철 방어력으로 실제 상처 일부 경감
- 문객이 쓰러질 수도 있음
### 10.3 연화 — 낙화추명
적의 남은 HP가 낮을 때 마무리 공격을 펼친다.
- 적극: 대상 HP 28% 이하
- 신중: 대상 HP 15% 이하
- 내력 소모 10
- 기본 피해: `16 + 등급×4 + 인연/5 + 성장 공격 기여`
### 10.4 백려 — 호명결계
주인공이 이번 공격 뒤 위기 기준 아래로 내려갈 것으로 예상될 때 발동한다.
- 내력 소모 12
- 적극: 피해 30% 봉인
- 신중: 피해 20% 봉인
- 문객이 직접 상처를 대신 받지 않고 피해 자체를 흩음
### 10.5 구원 교대
출전 문객이 쓰러졌을 때 자동 교대한다.
주인공 HP가 40% 이하일 때 우선순위:
```text
소령 → 묵철 → 백려 → 연화
```
그보다 높을 때 우선순위:
```text
묵철 → 연화 → 백려 → 소령
```
선택된 문객은 참여 명부에 들어가며, 다음 문객 보조행동 1회를 전열 정비에 사용하고 재교대 대기 2턴을 받는다.
---
## 11. 전투 중 교대
### 조건
- 무공 20 이상
- 해당 문객 보유
- 대상 문객이 쓰러지지 않았고 HP가 1 이상
- 현재 문객과 다른 문객
- 재교대 대기 0
- 같은 전투박자에 다른 지휘 명령을 내리지 않음
### 결과
- 새 문객이 즉시 출전 상태가 됨
- 전투 참여 명부에 교대 전후 문객 모두 남음
- 새 문객의 HP·MP·개별 기술 대기시간 유지
- 다음 문객 보조행동 1회 소모
- 재교대 대기 2전투턴
- 마지막 교대 시각, 이전 문객, 이후 문객 저장
교대 전후 실제로 참여한 모든 문객이 전투 경험 분배와 개인 임무 승리 판정 대상이 된다.
---
## 12. 전투 등급과 경험치
### 12.1 다음 등급 필요 경험
```text
필요 경험 = 80 + 현재 등급×70
```
예시:
| 현재 등급 | 다음 등급 필요 경험 |
|---:|---:|
| 1 | 150 |
| 10 | 780 |
| 30 | 2,180 |
| 50 | 3,580 |
| 99 | 7,010 |
등급 상승 때 최대 HP·MP 증가분만큼 현재 HP·MP도 함께 오른다.
### 12.2 일반 몬스터 보상 연결
일반 전투에서 플레이어가 받는 각 수련치 조각의 약 1/4이 동행자 경험으로 전달된다.
```text
동행자 경험 입력 = 해당 플레이어 수련치 조각 / 4
```
무리 기본 수련치, 무리 보너스, 선도 보너스, 방어 보너스, 사제 보너스가 나뉘어 들어오더라도:
- 경험치는 모든 조각을 더함
- 승리 횟수는 같은 적당 1회만 셈
- 인연 확률, 개인 임무, 장비 경험도 한 적당 1회만 셈
이를 위해 전투 대상 clone 열쇠, 개인 전투회차, 마지막 보상 시각을 함께 검사한다.
### 12.3 교대 전투 경험 배분
한 문객만 참여했다면 경험 전부를 받는다.
여러 문객이 참여했다면:
```text
전투 종료 시점 출전 문객: 60%
나머지 참여 문객들: 남은 40%를 균등 분배
나머지 정수는 앞쪽 문객부터 1씩 분배
```
### 12.4 실제 승리 1회에 따르는 성장
실제 승리로 판정된 참여 문객마다:
- `battles_won +1`
- 35% 확률로 인연 +1
- 전용 장비를 착용 중이면 장비 경험 +1
- 최근 기억에 적 이름과 함께 전투 경험 기록
---
## 13. 인연과 기억
### 13.1 인연 단계
| 인연 | 단계 | 의미 |
|---:|---|---|
| 0~9 | 첫 인연 | 막 길을 함께 걷기 시작함 |
| 10~19 | 동행 | 새로운 대화가 열림 |
| 20~39 | 신뢰 | 개인 임무 시작 가능 |
| 40~69 | 맹약 | 고유 기술 숙련이 깊어지는 단계 |
| 70~99 | 심연 | 전투와 장소 반응이 더 가까워지는 단계 |
| 100 | 운명 | 가장 깊은 인연 |
인연 범위는 0~100이다.
### 13.2 주요 인연 획득 경로
- 첫 합류 소령: 인연 5로 시작
- 소령 첫 공동 승리: +3
- 대화: 문객별 300초 간격으로 +1
- 실제 참여 승리: 35% 확률로 +1
- 개인 임무 완료: +5
- 내부 확장 함수 `addAffinity()`를 통해 임무나 사건에서 추가 가능
### 13.3 기억
문객마다 최근 기억을 최대 8개 보존한다.
기록 대상 예시:
- 합류와 영입
- 대화
- 전투 참여와 승리
- 기술 사용
- 주인공 대신 쓰러진 사건
- 위기 대응
- 객잔 회복
- 개인 임무 완료
기억은 `ctime(time()) — 내용` 형식으로 쌓이며, 상세 정보 화면에서 가장 최근 기억을 보여 준다.
---
## 14. 대화와 상황 반응
### 14.1 직접 대화
`동행 대화`를 사용하면 현재 출전 문객의 고유 대사 묶음에서 무작위로 한 줄을 말한다.
- 문객마다 기본 대사 10개
- 300초마다 인연 +1 가능
- 같은 간격 안의 대화는 말은 하지만 인연을 중복 지급하지 않음
- 대화 사건은 기억에 남음
### 14.2 자동 상황 반응
비전투 중 다음 상황을 감지한다.
- 주인공 HP 30% 이하
- 독 상태
- 첫 정령 소환
- 장백성 성문
- 객잔
- 낡은 무관·연무장
문객별 말투와 내용이 다르다.
### 반복 억제
- 자동 반응 공통 간격: 90초
- 같은 상황 반복 억제: 10분
- 첫 정령·장소 반응은 이미 보았고 방도 바뀌지 않았다면 되풀이하지 않음
- 전투 중 자동 대사 없음
---
## 15. 개인 임무
### 공통 개방 조건
- 해당 문객을 보유
- 해당 문객 인연 20 이상
### 공통 진행
1. `동행 임무 시작 문객이름`
2. 해당 문객이 실제 참여한 전투에서 5회 승리
3. `동행 임무 완료 문객이름`
단순히 보유하고 있기만 해서는 승리 수가 오르지 않는다. 전투 참여 명부에 실제로 들어간 문객만 진행된다.
### 문객별 개인 임무
| 문객 | 임무 이름 | 줄거리 |
|---|---|---|
| 소령 | 상처보다 먼저 | 약이 닿지 않는 상처 앞에서 사람을 살리는 길을 증명 |
| 묵철 | 등을 맡긴다는 것 | 함께 다섯 번 승리하여 서로의 등을 맡길 신뢰를 증명 |
| 연화 | 꽃이 지기 전에 | 과거의 망설임을 넘어 한 칼을 완성 |
| 백려 | 방울 속의 메아리 | 이름 없는 혼의 울림과 그 주인을 가려냄 |
### 완료 보상
- 해당 문객 인연 +5
- 해당 문객 전용 장비 획득
- 전용 장비 자동 착용
- 완료 시각과 기억 저장
---
## 16. 전용 장비와 각성
| 문객 | 전용 장비 | 주된 효과 |
|---|---|---|
| 소령 | 백초 은침 | 치료와 은침 기술 강화 |
| 묵철 | 흑철 호심경 | 철곤 기술과 방어 역할 강화 |
| 연화 | 낙화검 수술 | 검술과 자동 공격 강화 |
| 백려 | 청동 혼령방울 | 술법 강화 + 기술 내력 절약 |
### 16.1 장비 경험
전용 장비를 얻어 착용한 문객이 실제 승리에 참여하면 장비 경험 +1을 받는다. 최대 120이다.
### 16.2 각성 단계와 위력 보정
| 장비 경험 | 단계 | 위력 보정 |
|---:|---|---:|
| 0~19 | 잠든 빛 | +15% |
| 20~59 | 각성 | +18% |
| 60~119 | 공명 | +22% |
| 120 | 진명 | +25% |
### 16.3 백려 장비의 내력 절감
| 단계 | 기술 내력 소모 감소 |
|---|---:|
| 잠든 빛 | 10% |
| 각성 | 12% |
| 공명 | 15% |
| 진명 | 18% |
장비 보정은 정령 연계와 전술 보정에 합산되고, 전체 안전 상한을 넘지 않는다.
---
## 17. 회복과 부상 복귀
### 17.1 자연 회복
비전투 중 60초 단위로 계산한다.
```text
분당 HP 회복 = 최대 HP / 100, 최소 1
분당 MP 회복 = 최대 MP / 80, 최소 1
```
- 한 번 계산할 때 최대 60분치까지만 소급
- HP가 최대 HP의 20% 이상이 되면 `down` 해제
- 회복 시각은 저장되어 재접속 뒤에도 흐름을 잇음
### 17.2 야외 휴식
`동행 휴식`
- 전투 중 사용 불가
- 재사용 간격 120초
- 모든 보유 문객 대상
```text
HP 회복 = 최대 HP / 12
MP 회복 = 최대 MP / 8
```
20% HP 문턱을 넘으면 쓰러진 문객도 다시 일어난다.
### 17.3 객잔 휴식
`동행 객잔휴식`
- 전투 중 사용 불가
- 이름이나 경로에 `객잔`이 있는 방에서만 가능
- 모든 문객 HP·MP 완전 회복
- 쓰러짐 해제
- 기술 대기시간과 자동 대기시간 초기화
- 객잔 회복 기억 기록
비용:
```text
100 + 보유 문객 수×50 엽전
```
예시:
| 보유 문객 | 비용 |
|---:|---:|
| 1명 | 150엽전 |
| 2명 | 200엽전 |
| 3명 | 250엽전 |
| 4명 | 300엽전 |
---
## 18. 동행자·정령 연계
현재 소환 정령과 출전 문객의 짝으로만 판정한다.
| 문객 + 정령 | 연계 이름 | 효과 |
|---|---|---|
| 소령 + 운디네 | 청류회춘 | 소령 치료량 +20% |
| 묵철 + 그놈 | 반석철벽 | 피해 분담률 +10%p, 공격 위력 +10% |
| 연화 + 살라만드라 | 홍련낙화 | 검술과 자동 공격 위력 +20% |
| 백려 + 실프 | 풍령공명 | 술법 내력 소모 20% 감소, 위력 +10% |
짝이 맞지 않아도 동행자와 정령은 각각 정상적으로 행동한다. 연계는 기본 기능을 열거나 닫는 관문이 아니라 추가 공명 보정이다.
---
## 19. 통합 보스전 역할 대응
통합 보스는 `setProp("통합보스", 1)` 표식을 가진다. 현재 Stage59 기준으로 다음 두 보스가 이 체계를 사용한다.
```text
/방/분지/mob/사원소수호상.c
/방/분지/사원소합동/mob/무명공명수호자.c
```
### 19.1 전조 역할표
| 보스 전조 | 요구 정령 | 요구 문객 | 문객 역할 |
|---|---|---|---|
| 태산압정 | 그놈 | 묵철 | 방어·강타 분담 |
| 열무의 파도 | 운디네 | 소령 | 치유·충격 완화 |
| 무형풍살 | 실프 | 연화 | 회피·속공·반격 |
| 사원소 폭주 | 살라만드라 | 백려 | 봉인·제어·반동 |
보스가 전조를 알리면 현재 문객이 알맞을 경우 고유 해석 대사를 말한다. 다른 문객이면 어떤 역할과 문객이 필요한지 안내한다.
### 19.2 문객별 보스 대응 수치
#### 묵철 — 방어
- 내력 소모 9
- 원래 피해의 35% 차단
- 차단한 양 가운데 `방어/3`만큼 흘린 뒤 나머지를 묵철이 받음
- 차단량을 피해 분담 공적으로 기록
- 전조 대응 25점
#### 소령 — 치유
- 내력 소모 10
- 기본 치유: `12 + 등급×3 + 인연/6 + 성장 공격 기여/2`
- 원래 피해의 15% 완화
- 실제 치유량과 완화량을 각각 공적으로 기록
- 전조 대응 25점
#### 연화 — 회피·속공
- 내력 소모 8
- 원래 피해의 25% 회피
- 반격 피해: `8 + 등급×2 + 공격/2`
- 회피량을 역할 공적으로 기록
- 반격 피해는 공격 공헌으로 기록
- 전조 대응 25점
#### 백려 — 봉인
- 내력 소모 12
- 원래 피해의 30% 봉인
- 반동 피해: `6 + 등급×2 + 공격/3`
- 봉인량을 역할 공적으로 기록
- 반동 피해는 공격 공헌으로 기록
- 전조 대응 25점
### 19.3 삼위 협공
문객 역할과 정령 원소가 모두 맞으면 추가 발동한다.
```text
삼위 협공 추가 피해 = 10 + 등급×2 + 인연/5
전조 대응 추가점 = 15
```
주인공의 기본 공격은 삼위 협공 때문에 줄어들지 않는다.
---
## 20. Stage59 멀티 보스 공적과 공정 보상
### 20.1 보스별 독립 장부
보스 clone의 `file_name()`을 장부 열쇠로 사용한다. 같은 방에 여러 통합 보스가 있어도 서로의 공적이 섞이지 않는다.
플레이어별 기록 항목:
- 실제 공격 피해 `damage`
- 실제 치료량 `healing`
- 피해 분담·방어량 `guard`
- 회피량 `evasion`
- 봉인·제어량 `seal`
- 전조 대응점 `response`
동행자와 정령이 만든 피해·역할 행동도 소유 플레이어의 공적으로 귀속된다.
### 20.2 역할 점수
```text
역할 점수 = 치료 + 피해 분담 + 회피 + 봉인×1.1 + 전조 대응
```
봉인·제어는 다음 공격의 맥까지 끊는다는 뜻으로 10% 가중한다.
### 20.3 수련치 두 그릇
```text
공격 공헌 몫 = 전체 수련치 풀의 45%
역할 공헌 몫 = 전체 수련치 풀의 55%
```
- 역할 공헌이 전혀 없으면 역할 55%를 공격 몫으로 돌림
- 공격 공헌이 전혀 없으면 공격 45%를 역할 몫으로 돌림
- 각 그릇 안에서는 해당 공헌 비율대로 배분
따라서 치유형·방어형·봉인형 플레이어가 막타 경쟁 때문에 밀리지 않는다.
### 20.4 협력 인원에 따른 보상 풀 증가
실제 공헌이 있고 처치 순간 보스와 같은 방에 남아 있는 플레이어만 공헌자로 인정한다.
#### 수련치 풀
```text
1명: 100%
2명: 118%
3명: 136%
4명: 154%
5명: 172%
6명 이상: 최대 190%
```
#### 명성 풀
```text
1명: 100%
2명: 112%
3명: 124%
4명: 136%
5명: 148%
6명 이상: 최대 160%
```
### 20.5 정수 오차와 최소 보상
- 정수 나눗셈 뒤 남은 수련치는 역할 최고 공헌자 또는 공격 최고 공헌자에게 귀속
- 작은 공헌이 반올림 때문에 0이 되면 최소 1점을 보장
- 최소 1점을 만들 때 가장 큰 몫에서 옮겨 전체 보상 합계는 보존
- 명성도 수련치 최종 배분 비율에 따라 나누고 나머지를 최고 보상자에게 귀속
### 20.6 동행자 성장 연결
각 플레이어가 받은 최종 공정 수련치의 약 1/4이 동행자 경험으로 전달된다.
```text
통합 보스 동행자 경험 입력 = 플레이어 최종 공정 수련치 / 4
```
따라서 역할형 플레이어가 공정 보상을 받으면 그 플레이어의 실제 참여 문객과 전용 장비도 함께 성장한다.
### 20.7 막타 보상 중복 방지
통합 보스 공적 분배가 성공하면 기존 `LastAttacker` 중심 일반 경험·명성 분배를 건너뛴다. 새 공정 보상과 옛 막타 보상이 겹쳐 지급되지 않는다.
---
## 21. 저장자료 구조
### 21.1 루트 저장
```text
플레이어 저장 키: 동행자데이터
현재 version: 5
```
주요 범주별 키는 다음과 같다.
#### 개방·영입
- `unlocked`
- `first_outside`
- `first_outside_path`
- `first_outside_at`
- `active`
- `owned`
- `market_seen`
- `last_recruited`
- `last_recruited_at`
- `recruit_count`
- `recruit_lock`
- `recruit_lock_at`
#### 첫 이야기와 길잡이
- `intro_stage`
- `tutorial_battle_started`
- `tutorial_battle_completed`
- `guide_level15_seen`
- `guide_level20_seen`
- `guide_level30_seen`
- `inn_intro_seen`
#### 전투 상태
- `in_combat`
- `battle_session`
- `battle_target_key`
- `battle_target_name`
- `battle_started_at`
- `combat_turn`
- `battle_actions`
- `battle_damage`
- `battle_healing`
- `battle_participants`
#### 교대·전술
- `swap_cooldown`
- `swap_skip_action`
- `last_swap_at`
- `last_swap_from`
- `last_swap_to`
- `tactic_cooldown`
- `tactic_skip_action`
- `last_tactic_at`
- `last_tactic_from`
- `last_tactic_to`
#### 임시 방어 효과
- `guard_charges`
- `guard_owner`
- `evade_charges`
- `evade_owner`
#### 위기 대응
- `crisis_mode`
- `battle_crisis_used`
- `crisis_triggers`
- `crisis_auto_swaps`
- `last_crisis_at`
- `last_crisis_name`
#### 회복과 반응
- `last_companion_recovery_at`
- `last_companion_rest_at`
- `inn_rests`
- `last_reaction_at`
- `last_reaction_key`
- `last_room_path`
- `reaction_seen`
#### 승리 중복 방지
- `last_reward_target_key`
- `last_reward_session`
- `last_reward_at`
- `last_reward_fragments`
#### 보스 대응
- `boss_warning_role`
- `boss_warning_target`
- `boss_warning_companion`
- `boss_warning_at`
- `boss_responses`
- `boss_contribution`
- `last_boss_response`
- `last_boss_response_at`
- `last_boss_phase_seen`
### 21.2 문객 개별 기록
각 `owned[id]`에는 다음이 들어간다.
- 식별·역할: `id`, `name`, `role`
- 성장: `level`, `exp`, `attack`, `defense`, `speed`
- 생명·내력: `hp`, `max_hp`, `mp`, `max_mp`, `down`
- 인연: `affinity`, `affinity_stage_seen`
- 전투: `battles_won`, `cooldowns`, `auto_cooldown`
- 관계: `joined_at`, `last_talk`, `memory`
- 개인 임무: 단계, 진행, 시작·완료 시각
- 전용 장비: 이름, 착용, 획득 시각, 경험, 확인한 각성 단계
- 지휘 전술: `tactic`
- 위기 구원 기록: `crisis_saves`
---
## 22. 옛 저장자료 호환과 안전장치
### 22.1 이름 호환
내부 식별자는 영문 고정값을 사용한다.
```text
soso / mukcheol / yeonhwa / baekryeo
```
명령에서는 다음 별칭을 정규화한다.
- 소령, 약사소령, 초약사, 약사
- 옛 이름 소소, 약사소소
- 묵철, 철곤묵철, 철곤
- 연화, 검객연화, 검객
- 백려, 술법사백려, 술법사
옛 저장에 한글 별칭 키가 남아 있어도 정식 내부 식별자로 옮긴다.
### 22.2 누락 자료 자동 보충
- 판이 5보다 낮으면 version 5로 보정
- 새 필드가 없으면 기본값 자동 추가
- 개방되었으나 소령 기록이 사라진 옛 저장은 소령을 인연 5로 복구
- 출전 문객이 비었고 소령이 건강하면 소령 자동 출전
- HP·MP·인연·등급 범위를 정상 범위로 보정
- 잘못된 전술은 균형으로 복구
- 비정상 문객 키와 참여 명부 항목 제거
### 22.3 거래 안전
영입 때 모든 조건을 먼저 검사하고 마지막에만 거래를 잠근 뒤 엽전을 차감한다.
- 중복 명령 이중 차감 방지
- 30초 넘게 남은 오래된 거래 잠금은 로드 때 자동 해제
- 엽전 차감이 정상적으로 반영되지 않으면 영입 중단
### 22.4 전투 보상 안전
- 대상 clone + 전투회차 + 최근 보상 시각으로 한 적당 승리 1회 판정
- 무리 보상만 받은 플레이어에게 이전 전투의 교대 참여 명부를 끌어오지 않음
- 개인 임무와 첫 공동 승리는 실제 같은 적과 맞물린 전투에서만 기록
- 통합 보스 공정 보상이 성공하면 옛 막타 보상 생략
---
## 23. 코드 구성
### 23.1 동행자 모듈
| 파일 | 책임 |
|---|---|
| `구조/동행자/자료.c` | 문객 원형, 저장자료 판올림, 정규화, 옛 저장 호환 |
| `구조/동행자/성장.c` | 등급 경험, 인연 단계, 승리, 기억, 참여 경험 분배 |
| `구조/동행자/영입.c` | 첫 소령 지급, 화서객잔 명부, 엽전 영입 |
| `구조/동행자/임무.c` | 무공 10 첫 관도 개방, 첫 공동 전투 이야기 |
| `구조/동행자/교감.c` | 직접 대화, 상황·장소 자동 반응 |
| `구조/동행자/기술.c` | 문객별 수동 고유 기술과 대기시간 |
| `구조/동행자/전투.c` | 전투 시작·종료, 자동 행동, 피해 분담, 교대, 보상 연결 |
| `구조/동행자/표시.c` | 요약, 목록, 상세 정보, 성장 화면 |
| `구조/동행자/개인임무.c` | 문객별 5승 임무와 완료 처리 |
| `구조/동행자/장비.c` | 전용 장비, 장비 경험, 각성 보정 |
| `구조/동행자/연계.c` | 문객·정령 짝과 공명 보정 |
| `구조/동행자/회복.c` | 자연 회복, 야외 휴식, 객잔 완전 회복 |
| `구조/동행자/전술.c` | 균형·맹공·수호·보조 지휘 전술 |
| `구조/동행자/위기.c` | 적극·신중·수동 방침, 비상 기술, 구원 교대 |
| `구조/동행자/균형.c` | 공격·치유·내력 보정 합산과 안전 상한 |
| `구조/동행자/안내.c` | 성장 길잡이, 15·20·30 개방 알림 |
| `구조/동행자/보스.c` | 전조 해석, 역할 대응, 삼위 협공, 국면 대사 |
| `명령어/플레이어/동행.c` | 플레이어 명령 관문과 외부 전투 호출 창구 |
### 23.2 외부 연결 지점
| 연결 파일 | 호출 목적 |
|---|---|
| `구조/플레이어/바디.c` | 주인공 공격 뒤 동행 보조행동, 플레이어 피해 전 문객 방어 처리 |
| `구조/player.c` | 비전투 heartbeat에서 개방·길잡이·반응·회복 처리 |
| `구조/monster.c` | 일반 몬스터 사망 보상, 통합 보스 공적 분배 |
| `명령어/플레이어/도망.c` | 도주 시 동행 전투 상태 종료 |
| `구조/플레이어/플레이어쉘.c` | `동행 정보 소령` 형식의 한국어 체계 명령 어순 보존 |
| `방/장백성/obj/장백성보초.c` | 첫 관도 이동 뒤 동행 개방 검사 |
| `방/장백성/obj/장백성경비.c` | 첫 관도 이동 뒤 동행 개방 검사 |
| `방/화서마을/화서객잔.c` | 문객명부 읽기 연결 |
| `구조/보스/기여도.c` | Stage59 공격·역할 공적 장부와 공정 보상 |
### 23.3 공개 호출 창구
다른 전투 코드나 보스가 동행 체계를 부를 때는 되도록 `명령어/플레이어/동행.c`를 통한다.
```text
ensureCompanionData(who)
combatAssist(who, target)
beforePlayerDamaged(who, attacker, damage)
gainCombatReward(who, amount, defeated)
companionBossWarning(who, boss, role, warning)
resolveCompanionBossStrike(who, boss, role, damage, strikeName, spiritMatched)
companionBossPhaseNotice(who, boss, phase)
endCompanionCombat(who, reason)
companionAmbientTick(who)
```
이 관문을 쓰면 내부 파일 배치를 바꾸더라도 외부 호출부를 최소한으로 유지할 수 있다.
---
## 24. 새 통합 보스에 동행 대응을 붙이는 법
### 24.1 통합 보스 표식
보스 초기화에서 다음 속성을 둔다.
```c
setProp("통합보스", 1);
```
### 24.2 실제 피해 기록
보스가 받은 실제 피해를 계산한 뒤 공적 장부에 기록한다.
```c
/구조/보스/기여도->recordDamage(this_object(), 공격원, 실제피해);
```
공격원이 정령·소환체라면 장부 모듈이 보호자·주인 이름을 찾아 플레이어에게 귀속할 수 있다.
### 24.3 전조 안내
보스 전조 때 역할을 다음 표준 열쇠 중 하나로 넘긴다.
```text
guard / heal / evade / seal
```
```c
/명령어/플레이어/동행->companionBossWarning(
플레이어, this_object(), 역할, 전조문장
);
```
### 24.4 실제 타격 대응
보스 피해가 플레이어에게 들어가기 직전에:
```c
최종피해 = /명령어/플레이어/동행->resolveCompanionBossStrike(
플레이어,
this_object(),
역할,
원래피해,
기술이름,
정령일치여부
);
```
정령일치여부가 참이고 문객도 역할에 맞으면 삼위 협공이 열린다.
### 24.5 처치 보상
통합 보스 사망은 `구조/monster.c`가 자동으로 공정 보상을 시도한다.
```c
/구조/보스/기여도->distributeRewards(
this_object(), getExp(), getFame()
);
```
보스별 특수 경험을 더하려면 `경험치플러스` 속성을 사용할 수 있다.
---
## 25. 새 문객을 추가할 때 필요한 작업
현재 체계는 기본 네 문객을 중심으로 여러 모듈에 역할 분기가 있으므로, 새 문객은 아래를 함께 확장해야 한다.
1. `자료.c`
- 원형 능력치, 역할, 기술, 설명
- 이름 정규화 별칭
2. `기술.c`
- 기술 목록
- 기술 이름 정규화
- 실제 기술 처리
3. `전투.c`
- 자동 행동
- 피해 분담 성향
4. `교감.c`
- 기본 대사
- 상황별 말투
5. `개인임무.c`
- 임무 이름, 줄거리, 목표
6. `장비.c`
- 전용 장비와 효과
7. `연계.c`
- 정령 짝이 필요하다면 연계 열쇠와 보정
8. `위기.c`
- 새 비상 행동이 있다면 발동 조건과 전투별 열쇠
9. `보스.c`
- 새 역할을 맡길 경우 역할 정규화, 전조, 대응 처리
10. `표시.c`, `영입.c`, 도움말
- 목록 순서, 영입 장소·비용, 화면 안내
새 문객을 단순히 `companionDefs()`에만 더하면 목록에는 보일 수 있어도 자동 행동·기술·대화·임무가 비어 있는 반쪽 문객이 된다.
---
## 26. 현재 구현 범위와 경계
### 구현된 것
- 기본 문객 4명
- 무공·임무·장소가 결합된 첫 합류
- 화서객잔 영구 영입
- 전투 중 교대와 참여자 경험 분배
- 자동 공격·치유·피해 분담
- 문객별 수동 기술 2개
- 전술 4종
- 위기 방침 3종과 문객별 비상 행동
- 자동 구원 교대
- 인연 단계와 대화
- 장소·상태 자동 반응
- 문객별 개인 임무
- 전용 장비와 3단계 각성
- 자연·야외·객잔 회복
- 네 정령과 문객 연계
- 통합 보스 전조·역할 대응·삼위 협공
- 멀티 보스 공격 45% + 역할 55% 공정 보상
- 옛 저장자료 자동 이관
### 현재 경계
- 동시에 출전하는 동행자는 1명으로 고정
- 문객끼리의 조합 기술이나 2인 동시 출전은 없음
- 개인 임무 목표는 모두 실제 참여 승리 5회인 공통 골격
- 전용 장비는 획득 즉시 자동 착용되며 별도 탈착 명령은 없음
- 통합 보스 공정 보상은 `통합보스` 표식과 공적 기록 고리가 연결된 보스에만 적용
- 역할 공적은 실제로 기록 함수가 호출된 행동만 계산
- 문객 HP·MP는 플레이어와 별도이며 플레이어 회복 기술이 자동으로 문객을 치료하지는 않음
---
## 27. 운영·회귀 점검표
### 첫 합류
- [ ] 무공 9에서는 합류하지 않는가
- [ ] 무공 10이어도 독문무기 임무가 3 미만이면 합류하지 않는가
- [ ] 조건을 갖춰도 첫 관도 두 방이 아니면 합류하지 않는가
- [ ] 첫 관도 진입 때 소령 인연 5, 출전 상태로 저장되는가
- [ ] 재접속·재진입으로 소령이 중복 생성되지 않는가
### 영입
- [ ] 무공 15 미만 차단
- [ ] 화서객잔 밖 차단
- [ ] 소령 유료 영입 차단
- [ ] 엽전 부족 차단
- [ ] 중복 영입 차단
- [ ] 거래 잠금이 이중 차감을 막는가
### 전투
- [ ] 주인공 공격 뒤 문객과 정령이 각각 행동하는가
- [ ] 문객이 적을 쓰러뜨리면 정령이 다시 치지 않는가
- [ ] 교대·전술 변경이 주인공 공격을 지우지 않는가
- [ ] 대상 변경 때 이전 임시 상태가 정리되는가
- [ ] 쓰러진 문객이 행동하지 않는가
### 성장
- [ ] 같은 적의 여러 보상 조각이 승리를 중복 증가시키지 않는가
- [ ] 교대 참여 문객 모두 경험을 받는가
- [ ] 실제 미참여 문객의 개인 임무가 오르지 않는가
- [ ] 장비 경험이 한 적당 한 번만 오르는가
### 회복
- [ ] 전투 중 휴식이 막히는가
- [ ] 자연 회복이 60초 단위로 저장 시각을 잇는가
- [ ] HP 20%에서 부상 이탈이 풀리는가
- [ ] 객잔휴식 비용과 완전 회복이 맞는가
### 보스 공적
- [ ] 같은 방의 여러 보스 장부가 섞이지 않는가
- [ ] 동행자 피해가 주인 플레이어 공격 공헌으로 들어가는가
- [ ] 소령 실제 치유량만 역할 공헌으로 들어가는가
- [ ] 묵철 분담량, 연화 회피량, 백려 봉인량이 각각 기록되는가
- [ ] 처치 순간 방을 떠난 플레이어가 보상에서 제외되는가
- [ ] 공헌 0인 관전자에게 보상이 가지 않는가
- [ ] 공정 보상 뒤 기존 막타 보상이 중복 지급되지 않는가
- [ ] 플레이어 최종 보상에 맞춰 동행자 경험도 지급되는가
---
## 28. 한눈에 보는 최종 구조
```text
[세계 진행]
무공 10·초보 임무·첫 관도
↓
약사 소령 무료 합류
↓
첫 공동 전투와 첫 승리
↓
무공 15 화서객잔 문객 영입
↓
무공 20 전투 교대·전술
↓
인연 20 개인 임무·전용 장비
↓
무공 30 정령 연계
↓
전용 장비 각성·위기 대응
↓
통합 보스 역할 대응·삼위 협공
↓
공격 45% + 역할 55% 공동 공적 보상
```
동행자 체계의 뼈대는 **사람과 사람 사이의 인연이 전투 역할로 피어나고, 그 역할이 실제 공적으로 인정되는 구조**다. 소령의 은침, 묵철의 어깨, 연화의 한 걸음, 백려의 봉인은 단순한 연출이 아니라 각각 다른 생존 방식이며, Stage59의 공동 보상은 그 차이를 수치로도 온전히 받아들이도록 완성한 단계다.
---
## 29. 기준 소스 목록
이 문서는 다음 Stage59 실제 파일을 기준으로 작성했다.
```text
lib-runtime/구조/동행자/자료.c
lib-runtime/구조/동행자/성장.c
lib-runtime/구조/동행자/영입.c
lib-runtime/구조/동행자/임무.c
lib-runtime/구조/동행자/교감.c
lib-runtime/구조/동행자/기술.c
lib-runtime/구조/동행자/전투.c
lib-runtime/구조/동행자/표시.c
lib-runtime/구조/동행자/개인임무.c
lib-runtime/구조/동행자/장비.c
lib-runtime/구조/동행자/연계.c
lib-runtime/구조/동행자/회복.c
lib-runtime/구조/동행자/전술.c
lib-runtime/구조/동행자/위기.c
lib-runtime/구조/동행자/균형.c
lib-runtime/구조/동행자/안내.c
lib-runtime/구조/동행자/보스.c
lib-runtime/명령어/플레이어/동행.c
lib-runtime/구조/보스/기여도.c
lib-runtime/구조/플레이어/바디.c
lib-runtime/구조/player.c
lib-runtime/구조/monster.c
lib-runtime/도움말/동행.help
```
콘텐츠를 불러오는 중..

댓글목록
등록된 댓글이 없습니다.