명부와 영입
01 게임
이 문서 안에서
직업 7종 × 후보 6명 = 42명이 영입 가능한 전부입니다. 42명 전원의 값, 영입 비용, 인장 후보 전용 레시피와 재료를 정합니다.
한 줄 요약 — 영입은 직업이 아니라 사람을 고르는 행위입니다. 한 번 뽑은 이름은 명부에서 영원히 사라집니다.
1. 명부의 규칙
실체: src/game/data/villager-roster.ts의 VILLAGER_ROSTER. TS 테이블(컴파일 시점 타입 검사).
| 규칙 | 값 |
|---|---|
| 명부 크기 | 42명 |
| 1~4번 | 골드만 (seals: 0) |
| 5~6번 | 인장 + 골드 |
| 직업 내 골드 | 1→6 엄격 증가 |
| 인장 상한 | 27 (= seals_ $2.99 지급량) |
| id | <직업>-, 전역 유일. 해고 시 복귀 |
2. 명부 전체 — 42명
계산열: ms/개=max(2000,floor(8000/gather)) / 분당=round(60000/ms) / 주머니@합류=round((100+(합류Lv-1)×10)×pouch).
농부 — 작업지 작물 (wheat~grape)
| id | 이름 | 골드 | 인장 | 합류Lv | gather | pouch | 체력 | atk | ms/개 | 분당 | 주머니@합류 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| farmer-1 | 미나 | 18 | — | 1 | 0.95 | 0.90 | 90 | 0 | 8421 | 7 | 90 |
| farmer-2 | 브람 | 25 | — | 1 | 1.00 | 1.15 | 105 | 1 | 8000 | 8 | 115 |
| farmer-3 | 페라 | 38 | — | 2 | 1.20 | 1.00 | 100 | 1 | 6666 | 9 | 110 |
| farmer-4 | 도린 | 55 | — | 2 | 1.15 | 1.35 | 120 | 2 | 6956 | 9 | 149 |
| farmer-5 | 셀비 | 70 | 10 | 3 | 1.50 | 1.30 | 135 | 3 | 5333 | 11 | 156 |
| farmer-6 | 하렌 | 90 | 18 | 4 | 1.35 | 1.70 | 145 | 4 | 5925 | 10 | 221 |
나무꾼 — 작업지 임산물 (birchlog~ebonylog)
| id | 이름 | 골드 | 인장 | 합류Lv | gather | pouch | 체력 | atk | ms/개 | 분당 | 주머니@합류 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| woodcutter-1 | 브란 | 22 | — | 1 | 0.90 | 1.00 | 95 | 1 | 8888 | 7 | 100 |
| woodcutter-2 | 토마 | 30 | — | 1 | 1.10 | 0.95 | 100 | 2 | 7272 | 8 | 95 |
| woodcutter-3 | 구스 | 45 | — | 2 | 1.05 | 1.25 | 115 | 2 | 7619 | 8 | 138 |
| woodcutter-4 | 오델 | 66 | — | 2 | 1.30 | 1.10 | 120 | 3 | 6153 | 10 | 121 |
| woodcutter-5 | 카린 | 85 | 12 | 3 | 1.55 | 1.25 | 130 | 4 | 5161 | 12 | 150 |
| woodcutter-6 | 볼드르 | 110 | 20 | 4 | 1.40 | 1.65 | 150 | 6 | 5714 | 11 | 215 |
광부 — 배정 광산 광물 (quarry_stone~crystal)
| id | 이름 | 골드 | 인장 | 합류Lv | gather | pouch | 체력 | atk | ms/개 | 분당 | 주머니@합류 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| miner-1 | 로건 | 22 | — | 1 | 0.90 | 1.05 | 95 | 1 | 8888 | 7 | 105 |
| miner-2 | 더그 | 30 | — | 1 | 1.15 | 0.90 | 100 | 2 | 6956 | 9 | 90 |
| miner-3 | 니사 | 46 | — | 2 | 1.00 | 1.30 | 110 | 1 | 8000 | 8 | 143 |
| miner-4 | 코르 | 68 | — | 2 | 1.25 | 1.20 | 125 | 3 | 6400 | 9 | 132 |
| miner-5 | 밀라 | 88 | 12 | 3 | 1.60 | 1.15 | 130 | 4 | 5000 | 12 | 138 |
| miner-6 | 그란트 | 115 | 20 | 4 | 1.45 | 1.55 | 155 | 7 | 5517 | 11 | 202 |
어부 — 작업지 어획물 (rivertrout~moonliteel)
| id | 이름 | 골드 | 인장 | 합류Lv | gather | pouch | 체력 | atk | ms/개 | 분당 | 주머니@합류 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| fisher-1 | 세라 | 18 | — | 1 | 0.95 | 0.95 | 90 | 0 | 8421 | 7 | 95 |
| fisher-2 | 핍 | 25 | — | 1 | 1.05 | 1.10 | 100 | 1 | 7619 | 8 | 110 |
| fisher-3 | 렌 | 36 | — | 2 | 1.25 | 0.95 | 105 | 1 | 6400 | 9 | 105 |
| fisher-4 | 마르코 | 54 | — | 2 | 1.15 | 1.35 | 120 | 2 | 6956 | 9 | 149 |
| fisher-5 | 오시 | 72 | 11 | 3 | 1.55 | 1.20 | 130 | 3 | 5161 | 12 | 144 |
| fisher-6 | 나일 | 95 | 18 | 4 | 1.30 | 1.70 | 145 | 4 | 6153 | 10 | 221 |
요리사 — 부엌
| id | 이름 | 골드 | 인장 | 합류Lv | 체력 | atk | 레시피 수 |
|---|---|---|---|---|---|---|---|
| cook-1 | 한나 | 28 | — | 1 | 95 | 0 | 3 |
| cook-2 | 벨라 | 40 | — | 1 | 110 | 1 | 5 |
| cook-3 | 루다 | 60 | — | 2 | 120 | 1 | 4 |
| cook-4 | 소피 | 88 | — | 3 | 130 | 2 | 7 |
| cook-5 | 마르타 | 110 | 14 | 4 | 140 | 3 | 7 |
| cook-6 | 이본 | 145 | 22 | 5 | 155 | 4 | 8 |
대장장이 — 대장간
| id | 이름 | 골드 | 인장 | 합류Lv | 체력 | atk | 레시피 수 |
|---|---|---|---|---|---|---|---|
| blacksmith-1 | 도르 | 30 | — | 1 | 100 | 2 | 2 |
| blacksmith-2 | 페로 | 40 | — | 1 | 110 | 3 | 3 |
| blacksmith-3 | 군터 | 62 | — | 2 | 125 | 4 | 4 |
| blacksmith-4 | 스벤 | 90 | — | 3 | 135 | 5 | 4 |
| blacksmith-5 | 아이라 | 115 | 15 | 4 | 145 | 7 | 6 |
| blacksmith-6 | 브릭 | 150 | 24 | 5 | 160 | 9 | 6 |
전사 — 자동 전투
| id | 이름 | 골드 | 인장 | 합류Lv | 체력 | atk | 합류 시 ATK (10+Lv×3+atk) |
|---|---|---|---|---|---|---|---|
| warrior-1 | 카일 | 44 | — | 1 | 105 | 2 | 15 |
| warrior-2 | 델라 | 60 | — | 1 | 120 | 4 | 17 |
| warrior-3 | 롤프 | 90 | — | 2 | 130 | 7 | 23 |
| warrior-4 | 유나 | 132 | — | 3 | 140 | 11 | 30 |
| warrior-5 | 가레스 | 170 | 18 | 4 | 155 | 16 | 38 |
| warrior-6 | 이졸데 | 220 | 26 | 5 | 170 | 22 | 47 |
인장 총액: 14명 합계 240.
3. 레퍼토리
t3는 인장 후보 전용. 레퍼토리는 포개지지 않고 겹칩니다(상위집합 없음).
부엌 — 15종
| 후보 | 만들 수 있는 요리 | 개수 |
|---|---|---|
| cook-1 한나 | 빵, 생선 스튜, 꽉찬 도시락 | 3 |
| cook-2 벨라 | 빵, 젤리 푸딩, 포자 수프, 불꽃 전골, 장터 파이 | 5 |
| cook-3 루다 | 생선 스튜, 뼈 육수, 독초 절임, 돌격 건량 | 4 |
| cook-4 소피 | 젤리 푸딩, 뼈 육수, 포자 수프, 독초 절임, 꽉찬 도시락, 광부 꼬치, 연회 모둠 | 7 |
| cook-5 마르타 | 빵, 뼈 육수, 포자 수프, 독초 절임, 마녀의 약차, 장터 파이, 연회 모둠 | 7 |
| cook-6 이본 | 생선 스튜, 젤리 푸딩, 뼈 육수, 포자 수프, 마녀의 약차, 용의 탕약, 불꽃 전골, 용린 스테이크 | 8 |
대장간 — 10종
| 후보 | 만들 수 있는 물건 | 개수 |
|---|---|---|
| blacksmith-1 도르 | 도구, 돌벽돌 | 2 |
| blacksmith-2 페로 | 도구, 농부의 괭이, 나무꾼의 도끼 | 3 |
| blacksmith-3 군터 | 농부의 괭이, 나무꾼의 도끼, 광부의 곡괭이, 어부의 낚싯대 | 4 |
| blacksmith-4 스벤 | 도구, 광부의 곡괭이, 어부의 낚싯대, 전사의 검 | 4 |
| blacksmith-5 아이라 | 돌벽돌, 농부의 괭이, 나무꾼의 도끼, 광부의 곡괭이, 전사의 검, 전사의 사슬갑옷 | 6 |
| blacksmith-6 브릭 | 광부의 곡괭이, 어부의 낚싯대, 전사의 검, 전사의 사슬갑옷, 왕실 휘장, 용아검 | 6 |
인장 전용 레시피 6종
| 레시피 | 스테이션 | 요구 레벨 | 만들 수 있는 사람 |
|---|---|---|---|
마녀의 약차 (herb_tea) | 부엌 | 8 | 마르타, 이본 |
용린 스테이크 (dragon_) | 부엌 | 9 | 이본 |
용의 탕약 (dragon_) | 부엌 | 10 | 이본 |
전사의 사슬갑옷 (forge_) | 대장간 | 8 | 아이라, 브릭 |
용아검 (forge_) | 대장간 | 9 | 브릭 |
왕실 휘장 (forge_) | 대장간 | 10 | 브릭 |
레퍼토리(무엇을)와 levelReq(언제부터)는 별개 게이트입니다.
4. 인장 주민만 캐는 재료
| 후보 | 캐는 것 | 안 나오는 것 |
|---|---|---|
| 셀비, 하렌 (농부 5·6) | golden_ | 밭 작물 |
| 카린, 볼드르 (나무꾼 5·6) | heartwood | 임산물 |
| 밀라, 그란트 (광부 5·6) | mithril | 광산 광석 |
| 오시, 나일 (어부 5·6) | deep_ | 어획물 |
인장 광부는 미스릴 심연만 진입, 일반 광산 잠김.
5. 영입 화면·지참금·해고
영입 화면: 직업→후보 두 팝업 스택. Esc는 맨 위만 닫음. 차단 사유: taken→seals→gold 순. recruitVillager는 골드+인장을 단일 쓰기로 차감합니다.
부족은 화면 위 플로팅 토스트로 말합니다. 금화가 부족합니다 · 왕의 인장이 부족합니다는 showToast()로 화면 상단에 뜹니다(화면 구성 §7) — 여섯 줄 목록의 맨 위 패널 줄은 다섯째 줄의 영입을 누른 사람이 보고 있는 곳이 아니고, 행의 빨간 값 말고는 다른 단서도 없었습니다. 패널 줄은 같은 순간 빈 값으로 다시 그려서 메시지를 한 번만 말하고, 지난 영입의 …를 영입했습니다가 거부 아래 남지 않게 합니다. taken은 패널 줄에 그대로 둡니다 — 플레이어가 답할 수 있는 벽이 아니고, 거기에 닿는 유일한 길이 낡은 목록이므로 그 줄을 실어 오는 재렌더가 그 자체로 답입니다.
`seals`로 막히면 오퍼 지면이 뜹니다. 거부 토스트를 먼저 띄운 뒤(오퍼가 거부를 대체하지 않고 뒤따릅니다) openSealShortfallOffer가 부족분을 즉시 메울 수 있는 최저가 상품을 이름으로 지목하고, 버튼은 인장소로 보내면서 그 행을 화면에 끌어옵니다. 토스트 층(200)이 오버레이 층(150)보다 위이므로 다이얼로그가 자기가 열린 이유를 덮지 않습니다. 이 게임에서 상점이 플레이어를 찾아가는 유일한 지점입니다 — 인장소와 상품 §9. gold에는 붙이지 않았습니다: 골드 팩은 패키지고, 20골드 모자란 사람에게 패키지를 권하는 것은 벽에 대한 답이 아닙니다. taken은 벽이 아닙니다.
후보 카드는 비교하는 자리입니다: 이름, 개성 칩(villager.trait.*), 능력치 칩, 값과 영입 버튼. "?"는 그 영입 버튼 왼쪽, 같은 줄에 앉습니다 — 묻는 자리를 값과 결정 옆에 두고, 이름 줄은 사람(이름·개성·영입됨)만 지키게 하기 위해서입니다. 사람에 대한 산문 — 한 줄 설명 (villager.desc.*)과 1인칭 자기소개(villager.intro.*) — 은 카드를 누르면 열리는 후보 상세 팝업에 있습니다(주민과 직업 §6). 여섯 줄이 각자 두 줄씩 산문을 들고 있으면 목록이 비교판이 아니라 스크롤할 벽이 되기 때문입니다.
후보 상세 팝업(recruit-detail, 380px)의 순서: 얼굴·이름·직업·개성 칩·값 → 한 줄 설명 → 자기소개 → 능력치 칩 → 생산물 (villagerYields, 예전 "?" 다이얼로그의 그 목록). 생산물이 맨 아래인 이유는 그것이 사람에 대한 답이 아니라 일에 대한 답이기 때문입니다. 카드의 "?"도, 버튼이 아닌 카드 아무 곳을 눌러도 같은 팝업이 열립니다. 이미 영입한 후보는 값을 감추고 영입됨 칩만 답니다 — 카드와 같은 규칙.
| 항목 | 규칙 |
|---|---|
| 시작 골드/인장/인벤토리/주민 | 120 / 0 / 비어 있음 / 0명 |
| 인장 주민 해고 | 불가 |
| 골드 주민 환급 | 영입 골드의 절반(내림) |
| 해고 시 장비 | 가방 반환 |
| 인구 상한 | 없음 (MAX_·perm_ 삭제) |
| 체력 | 전사만 hp 존재, 비전사 필드 없음 |
합류 직후 초기값(makeRecruitVillager):
| 항목 | 값 |
|---|---|
level | traits. |
hp/maxHp (전사만) | warriorMaxHp(traits. |
status | 생산 있거나 전사 → working, 그 외 → idle |
gatheredAt | now — 주머니 시계 즉시 시작 |
equipment/enchant | 3슬롯 비어 있음 / 각인 0 |
mineId | 광부 → defaultMineFor(...), 그 외 → null |
이어서 읽기
- 주민과 직업 — 직업 7종과 주민 카드
- 성장과 레벨 — 합류 레벨 파급, 비용 곡선
- 채집과 주머니 — 주머니 공식과 광산 8곳
- 제작 — 레퍼토리가 만나는 레시피 25종
- 두 재화 — 인장 240개 수급처
- 인장소와 상품 — 인장 팩과 패키지 선반
- 구현 상태 — 이 문서가 넘긴 불일치 목록