몬스터 로스터 (211종 · Ch.I–X)
설정: DESIGN.md — 자연 마수 약 100여 종(초기) → Ch.I–X EA 211종
바이옴·층: PROGRESSION_DESIGN.md §3.6
Ch1 LD: MONSTER_CONCEPTS_CH1.md · LEVEL_DESIGN.md
데이터 소스
| 파일 | 역할 |
|---|---|
packages/shared/data/monster-roster.json |
마스터 로스터 (211종, Ch.I–X) |
packages/shared/data/monsters.ts |
런타임 템플릿·스탯 배율 |
scripts/assets/monster-manifest.json |
Draw Things 프롬프트·시드 |
scripts/assets/seed-monster-roster.mjs |
로스터·매니페스트 재생성 |
재생성: node scripts/assets/seed-monster-roster.mjs
바이옴 × 챕터 (6종 배경)
| 챕터 | 로컬 층 | 바이옴 ID | 주속성 | 종수(대략) |
|---|---|---|---|---|
| I | 1–5 | ember_caverns |
fire | ~15 + F5 보스 |
| I | 6–10 | gale_cliffs |
wind | ~15 + F10 보스 |
| II | 1–5 | moss_depths |
earth | ~17 + F5 보스 |
| II | 6–10 | tide_hollows |
water | ~17 + F10 보스 |
| III | 1–5 | rift_gallery |
void | ~17 + F5 보스 |
| III | 6–10 | summit_peak |
혼합 | ~17 + F10 보스 |
전투 배경: packages/client/src/features/battle/battleBiome.ts
배경 생성: node scripts/assets/generate-drawthings-assets.mjs --execute --only backgrounds
아키타입·티어
- trash — 일반 몹 (아키타입: bruiser / skirmisher / caster / tank)
- elite — 층 후반 가중; 시드 데이터는
archetype: elite→ 런타임에서 역할 추론 - boss — 로컬 F5·F10 고정 (챕터별 2~3종)
특수 스킬 (elite·boss)
| 스킬 ID | 효과 (시뮬 최소) |
|---|---|
none |
— |
frenzy |
ATK ×1.2 |
gale_cut |
공격 간격 −3 |
fortify |
DEF ×1.25, HP ×1.1 |
magma_slam |
frenzy + 타격 데미지 보너스 |
moss_regen |
틱당 HP 0.5% 회복 |
tide_slow |
타격 시 chill 부여 |
void_leech |
가한 피해 25% 흡혈 |
burn_aura |
frenzy급 ATK + burn 부여 |
static_shock |
35% expose |
petrify |
DEF ×1.15 + 20% root |
아트 파이프라인
- DT 초안:
node scripts/assets/generate-monsters.mjs --execute(기존 스킵) - rembg·트림:
.venv-assets/bin/python scripts/assets/process-monsters.py --from-manifest - 스프라이트 승격: 수동 검수 후
packages/client/public/assets/sprites/monsters/
artStatus
sprite—sprites/monsters/{id}.png+sprite-map.json등록 (현재 Ch.I–III ~100종; Ch.IV–X는draft)draft— DT 초안만 (reference/drawthings/monsters/{id}_draft.png)
아트 배치 명령 (참고)
node scripts/assets/generate-monsters.mjs --execute
.venv-assets/bin/python scripts/assets/process-monsters.py --from-manifest
node scripts/assets/generate-drawthings-assets.mjs --execute --only backgrounds
python3 scripts/assets/promote-backgrounds.py
운영 메모
- 종수 자체는 KPI 아님 — 페이싱·가중 스폰이 우선 (
encounters.ts) - Ch2/3 풀은 로스터·도감·어드민에 노출; 런 챕터별 스폰은
monstersForLocalFloor(chapter)사용 - i18n:
translateMonsterName이 미등록 id는 snake_case → Title Case 폴백