Files
mod_recruiting/docs/ko.md
T

51 lines
4.0 KiB
Markdown

# Recruiting — 파티에 합류하는 쓰러뜨린 적들
Recruiting은 전투에서 쓰러뜨린 적을 포획해, 나중에 플레이어 편에서 싸우게 합니다. 승리 후에는 쓰러뜨린 적마다 포획될 기회가 생깁니다. 포획된 캐릭터는 **영입자** 패널에 나열되고, 그중 누구든 파티에 넣었다 뺐다 할 수 있습니다. 포획된 동안 영입자는 저들만의 규칙으로 삽니다 — Cthangover에서는 배가 고파집니다.
이 모드는 어느 전투 시스템에도 의존하지 않습니다. 플랫폼의 “캐릭터가 쓰러졌다” 이벤트를 듣고 있어서, FF Battle이든 Card Battle이든 쓰러진 캐릭터를 보고하는 시스템이면 무엇과든 작동합니다. 누구를 포획할 수 있고 어떤 조건이 붙는지는 게임의 데이터와 다른 모드가 정합니다.
## 영입자 패널
툴바 버튼으로 엽니다. Cthangover 시작 시점에는 아직 포획한 사람이 없습니다:
![영입자 패널: 제목 “영입자”, “포획한 적 · 누구든 파티에 합류할 수 있다” 줄, “아직 포획한 영입자가 없다”, 아래쪽에 “포획: 0 · 파티: 0”.](assets/recruits-panel.jpg)
포획된 영입자마다 초상화, 이름, 체력이 담긴 행이 생기고 버튼이 하나 붙습니다: **파티에 추가** 또는 **파티에서 제외**. 바닥글에는 영입자 수와 그중 파티에 있는 수가 표시됩니다.
## 포획은 이렇게 일어납니다
승리 후, 쓰러진 적마다:
1. 적의 캐릭터 파일에 `RecruitmentChance`가 0보다 커야 합니다.
2. 적 유형별로 영입자는 한 명뿐입니다. 이미 포획된 유형이면 건너뜁니다.
3. 등록된 모든 **조건**이 허용해야 합니다. 이 모드가 하나 갖고 있는 조건: 플레이어가 `slave_master` 스킬을 가져야 합니다(Cthangover에서 마라오는 처음부터 갖고 있습니다).
4. 1부터 100까지의 굴림이 확률을 넘지 말아야 합니다.
이를 통과하면 적은 체력 10으로 명단에 들어옵니다. Cthangover에서 포획할 수 있는 유일한 캐릭터는 이야기 후반에 만나며, 확률은 50%입니다:
```json
{ "Id": "werewolf_girl_1", "RecruitmentChance": 50 }
```
## 파티 안에서
**파티에 추가**는 그 영입자를 평범한 파티원으로 만듭니다. 캐릭터 패널에 나타나고, 제 행동으로 전투에 참여하고, 아이템의 대상이 되며, 파티와 함께 저장됩니다. 전투에서 잃은 체력은 영입자에게 그대로 남습니다. **파티에서 제외**는 행동과 경험치를 다음 합류 때까지 보관합니다.
## 영입자의 욕구
영입자는 게임 시계의 각 틱마다 등록된 **행동**을 실행합니다. 이 모드가 갖고 있는 것은 영양입니다. 24 게임 시간을 굶은 영입자는 틱마다 체력을 1 잃습니다. 현재 게임에는 아직 영입자를 먹일 방법이 없어서, 포획된 영입자는 포획 하루 뒤부터 굶주리기 시작합니다.
명단, 체력, 행동 상태는 게임과 함께 저장됩니다.
## 모드 작성자를 위해
- **조건**은 `IRecruitCondition`을 구현하는 클래스입니다. recruiting 모드는 로드된 어떤 모드에서든 찾아냅니다. false를 반환하면 포획을 금지합니다.
- **행동**은 `IRecruitBehaviour`를 구현합니다. 영입자가 포획될 때 설정되고, 매 틱 호출되며, 영입자와 함께 제거됩니다. 상태는 그 영입자의 속성에 저장됩니다.
- 코드는 `RecruitJoinedEvent`와 `RecruitLeftEvent`에 반응할 수 있습니다.
## 문제가 생겼을 때
1. **아무도 포획되지 않습니다.** 적의 `RecruitmentChance`가 0이거나, 조건이 막고 있거나(플레이어에게 `slave_master` 스킬이 없음), 굴림이 실패했거나입니다.
2. **같은 적이 두 번 포획되지 않습니다.** 적 유형별로 영입자 한 명. 설계상 그렇습니다.
3. **영입자의 체력이 계속 떨어집니다.** 영양 탓입니다. 하루를 굶었고, 아직 먹일 방법이 없습니다.