# 상륙: 상륙할 수 있는 땅, 물 찾기, 마을 탐색·환대·약탈, 보물 파내기

바다 메뉴의 "상륙"부터 마을의 발견물까지입니다. 표시 방법은 [index.md](index.md)를 따릅니다.

## 1. 상륙할 곳 고르기

**확인됨[대조]** (`KO 0x39A51`부터, 영문판 `EN 0x3ABC3`)

- 함대(2 × 2칸)를 둘러싼 8칸 중 하나를 고릅니다(모서리 4칸은 제외).
- 상륙, 탐색, 물 싣기는 시간이 흐르지 않습니다.

고른 칸에 따라(`KO 0x39BD1`, 영문판 `EN 0x3AD49`와 명령어 차이 0):

| 칸 | 결과 |
| --- | --- |
| 평지(`0x41`, `0x49`, `0x51`) | 상륙, 물을 찾을 수 있음 |
| 사막(`0x59`) | 상륙, 물은 절대 없음 |
| 항구·보급항(`0x74`~`0x7B`) | 기항과 같음 |
| 마을(`0x7C`~`0x7F`) | 상륙 |
| 그 밖(바다, 해안, 산, 강 등) | 공통 대사 441 "그곳에는 상륙할 수 없습니다." |

마을 칸이 발견물의 2 × 2칸 안이고 그 발견물이 이번 게임에 쓰이면(`0x80` 꺼짐) "부락에 상륙하겠습니다. 좋습니까?"(439+440) 후 마을 메뉴, 아니면 빈 땅 메뉴가 나옵니다.

## 2. 물 찾기

**확인됨[직접]** (`KO 0x39953`~`0x39975`)

상륙을 확정한 순간 한 번 굴립니다.

```text
샘 발견 = 운 × W > random(100)       W = 사막 0, 그 밖 1
```

- 운은 주인공 자신의 운(인물 `+0x23`)입니다. 동료는 상관없습니다.
- 결과는 `DS:0xBC86`에 저장되어, 상륙해 있는 동안 몇 번 "탐색"해도 같은 답입니다. 다시 상륙하면 다시 굴립니다.
- 사막에서는 "이런 곳에 물이 있을 것 같지는 않습니다만, 일단 찾아보겠습니까?"(424)를 묻고, 결과는 425 "물은 발견되지 않았습니다." 또는 426 "깨끗한 물을 발견했습니다."입니다.

물은 공짜이고 배마다 빈 짐칸만큼 실을 수 있습니다. 실으면 그 배의 물이 `(floor(물/10) + n) × 10`(10분의 1 단위)가 되어 끝자리가 버려집니다(**확인됨[대조]**).

## 3. 빈 땅 메뉴: 수리·탐색·대기

**확인됨[대조]**

- **수리**: 함대 안 목재 1개로 내구·조타·추진 중 하나를 5 올립니다. 한 번에 `min(목재, floor((모자란 값 + 4) / 5))`개까지(`KO 0x38F47`, 영문판 `EN 0x39F76`과 명령어 구조 같음).
- **탐색**: 그 칸의 발견물이 "쓰이지 않음 + 지도 구입함 + 아직 안 파냄"(`0x80`과 `0x20` 켜짐, `0x10` 꺼짐)이면 보물을 파냅니다. 소지품의 지도가 보물로 바뀌고 기록에 `0x10`이 켜집니다(`KO 0x392D0`). 아니면 물 찾기 결과를 알려 줍니다.
- **대기**: 닻을 내린 채 시간을 보냅니다. 그동안 식량·물 소비가 절반이고 폭풍 피해가 없습니다.

## 4. 마을: 탐색·환대·약탈

### 탐색

**확인됨[직접]** (`KO 0x394FD`~`0x3956D`)

```text
점수 = floor(7 × 직감 / 20) + floor(3 × 운 / 20) + 친밀도      (8비트로 계산)
성공 = 점수 > 발견물 난이도(기록 +5)
```

- 직감(`+0x1F`)과 운(`+0x23`)은 주인공의 값입니다. 난수는 쓰지 않습니다.
- 친밀도(`DS:0xBFD2`)는 마을 메뉴에 들어올 때마다 0에서 시작하고, 환대 한 번에 5 오릅니다. 환대 없이 점수는 최대 50입니다.
- 식량이 없으면 탐색할 수 없고, 이미 찾은 발견물이면 432 "색다른 물건은 하나도 없습니다.", 실패하면 429 "아무것도 발견되지 않았습니다."입니다.
- 성공하면 발견물 종류(기록 `+6` 하위 3비트)에 따라 보물 상자 그림·효과음을 내고 431 "%s(를) 발견했습니다."를 보인 뒤, 발견물 카드(`COLONY.DAT`의 그림·이름·설명)를 보여 줍니다. 발견 그 자체로는 명성·돈·경험이 없고, 수집가에게 보고할 때 받습니다([npc.md](npc.md)).

**확인됨[대조]**:

- 종류 5(괴물)는 발견 대신 430 "%s에게 습격당했습니다."와 선원 손실이 일어나지만, 발견 표시는 똑같이 켜지므로 보고하면 보수를 받습니다.
- 괴물이 아니면 1/16 확률(`random(16) = 7`)로 선원 일부가 마을에 남습니다.

### 선원 손실

**확인됨[직접]** (`KO 0x39496`, 반격 쪽 계산 `KO 0x3975B`~`0x3978A`)

```text
h    = floor(검술 / 2)
p    = floor((100 − min(100, h + floor(h × 전투 레벨 / 25))) / 2)
손실 = floor(p × 선원 / 100)          (함대의 쓰이는 배마다, 배 칸 +8 & 0x30 = 0x10)
```

모든 배가 같은 비율 p(최대 50%)를 잃습니다. 검술과 전투 레벨이 높으면 손실이 0이 됩니다.

### 환대

**확인됨[대조]** (`KO 0x3962F`, 영문판 `EN 0x3A794`와 명령어 차이 0): 식량 2통을 내고(식량이 2통 이상인 첫 배에서) 친밀도 +5.

### 약탈

**확인됨[직접]** (`KO 0x396FE`~`0x3978A`)

- 436 "현지인으로부터 약탈하겠습니까?"에 예라면 식량 `(random(5) + 2) × 10`통(20~60)을 빼앗습니다(437).
- `random(4) = 0`(1/4)이면 438 "원주민에게 반격을 받고," 후 위 공식으로 선원을 잃습니다.

**확인됨[직접]**(KO 0x3979E–0x397C7): 약탈하면 운이 `min(2, 운)`만큼 내려가고 친밀도가 0이 되며, 매력은 `min(2, 매력 − 50)`을 부호 없이 계산해 뺍니다. 그래서 매력 50·51은 50에서 멈추고, 0·1이면 254·255로 넘어갑니다.

## 5. 발견물 기록과 표시 비트

**확인됨[직접]** (위치·크기: 세이브 슬롯 `0x7258`부터 7바이트 × 98, 기록 그룹 10)

| 오프셋 | 내용 |
| --- | --- |
| `+0` | X (u16) |
| `+2` | Y (u16) |
| `+4` | 내용(보물을 숨기면 90~99) |
| `+5` | 난이도 |
| `+6` | 하위 3비트 종류, 상위 비트는 진행 표시 |

종류: 0 문화 유물, 1 기념물, 2 동물, 3 식물, 4 유적, 5 괴물, 6 자연 경관(이름표는 `DS`의 종류 이름; **확인됨[대조]**).

표시 비트(**확인됨[대조]**):

| 비트 | 뜻 | 켜는 곳 |
| --- | --- | --- |
| `0x80` | 이번 게임에 쓰지 않음 | 새 게임(`KO 0x1B577`) |
| `0x40` | 마을을 봄 | 망대(`KO 0x35CCD`), 이때 모험 명성 +50 |
| `0x20` | 찾음, 또는 보물 지도를 삼 | 마을 탐색, 주점에서 지도 구입, 피에트로 시나리오 |
| `0x10` | 보고함, 또는 보물을 파냄 | 수집가 보고, 보물 파내기 |

## 확인하지 못한 것

- 약탈의 1/16 선원 잔류는 한글판에서 상수를 직접 읽지 않았습니다(대조만). 운·매력 감소는 직접 확인했습니다([church.md](church.md) 7절).
- 발견물이 마을 칸 2 × 2 범위에 드는지 판단하는 좌표 계산은 한글판에서 따로 읽지 않았습니다.
