던전과 몬스터
01 게임
이 문서 안에서
한 줄 요약 — 몬스터 1종이 곧 스테이지 1개이고, 스테이지 138개를 10등분하면 던전이 됩니다.
1. 스테이지 138개
| 무엇 | 개수 | 어디 |
|---|---|---|
| 몬스터 오브젝트 파일 | 138 | objects/ |
| 상성 카탈로그 키 | 138 | src/ |
| 스테이지 | 138 | src/ |
| 전리품 풀 | 138 | src/ |
| 전투 배경 매핑 | 138 | src/ |
스테이지 필드: index(0부터), monsterId, name, hp, atk(연출용), rewardGold. 곡선:
stageHp(i) = max(1, floor(40 * 1.08^i))
stageAtk(i) = max(1, floor(6 * 1.06^i))
stageGold(i) = max(1, round(1 * 1.06^i)) ← ATK와 같은 비율
골드가 몬스터 ATK와 같은 비율인 것이 이 표의 핵심입니다. 5 + 1.5×i(선형)였을 때는 비용이 ×1.08로 오르는데 보상만 선형이라, 관문 레벨 기준 시간당 골드가 첫 던전 1,462에서 마지막 던전 9로 무너졌습니다 — 깊이 갈수록 가난해지므로 "얕은 던전에 전사를 박아 두고 파밍"이 최선의 플레이였습니다. 같은 곡선에 올리면 그 감쇠가 1,462 → 608로 평평해집니다.
| 상수 | 값 |
|---|---|
HP_ / HP_ | 40 / 1.08 |
ATK_ / ATK_ | 6 / 1.06 |
GOLD_ / 비율 | 1 / 1.06 (= ATK_) |
| 138 스테이지 HP 총합 | 20,485,016 |
| 138 스테이지 골드 총합 | 51,753 |
| 스테이지 | monsterId | HP | ATK | 골드 |
|---|---|---|---|---|
| 1 | aesthetic- | 40 | 6 | 1 |
| 14 | craftpix- | 108 | 12 | 2 |
| 28 | debts- | 319 | 28 | 5 |
| 42 | debts- | 938 | 65 | 11 |
| 56 | elesrech- | 2,756 | 147 | 25 |
| 70 | elesrech- | 8,096 | 334 | 56 |
| 84 | elesrech- | 23,781 | 756 | 126 |
| 98 | elesrech- | 69,849 | 1,709 | 285 |
| 112 | foozle- | 205,161 | 3,864 | 644 |
| 125 | luizmelo2- | 557,963 | 8,242 | 1,374 |
| 138 | stealthix- | 1,517,450 | 17,581 | 2,930 |
해금: isBattleStageUnlocked(i, hc) = i <= hc + 1.
2. 던전 10개
분할: base = floor(138/10) = 13, rem = 8. 앞 8개 = 14스테이지, 뒤 2개 = 13스테이지.
| # | id | 이름 | 스테이지 | 개수 | 게이트 | HP 합계 | 골드 합계 |
|---|---|---|---|---|---|---|---|
| 1 | slime- | 슬라임 굴 | 1~14 | 14 | 1 | 962 | 203 |
| 2 | thorn- | 가시 숲 | 15~28 | 14 | 3 | 2,837 | 497 |
| 3 | bone- | 뼈 지하묘 | 29~42 | 14 | 5 | 8,349 | 791 |
| 4 | flooded- | 침수 심층 | 43~56 | 14 | 7 | 24,538 | 1,085 |
| 5 | ashen- | 잿빛 폐허 | 57~70 | 14 | 9 | 72,085 | 1,379 |
| 6 | cult- | 이단의 성소 | 71~84 | 14 | 11 | 211,737 | 1,673 |
| 7 | sky- | 하늘 균열 | 85~98 | 14 | 14 | 621,918 | 1,967 |
| 8 | witch- | 마녀의 습지 | 99~112 | 14 | 16 | 1,826,709 | 2,261 |
| 9 | inferno- | 지옥의 문 | 113~125 | 13 | 18 | 4,762,811 | 2,363 |
| 10 | void- | 공허의 왕관 | 126~138 | 13 | 20 | 12,953,070 | 2,616 |
게이트 판정: warrior.level >= d.levelReq 또는 통행 허가 보유(isDungeonLevelMet). 전사 한 명의 자기 레벨로 판정합니다 — 왕국에서 가장 높은 전사의 레벨이 아니라, 그 던전에 출정하려는 전사의 레벨입니다. 인장으로 산 통행 허가(save.dungeonWaivers)만이 왕국 전체에 열려 있습니다 — 허가가 사는 것은 장소이지 사람이 아니기 때문입니다.
2.1 던전을 여는 화면
던전 이름은 이 표에 손으로 적혀 있고, 화면에 실제로 서는 것은 그 스테이지 몬스터가 데려오는 배경입니다(MONSTER_BATTLE_BACKGROUNDS). 둘은 서로를 모릅니다 — 던전 경계는 138을 10으로 나눈 자리이고, 배경은 몬스터 하나하나에 붙어 있습니다. 그래서 「슬라임 굴」의 첫 스테이지는 굴이 아니라 공허에서 시작합니다:
「하늘 균열」이 늪에서 열리고 「마녀의 습지」가 공룡 정글에서 열리는 것도 같은 이유입니다. 고치는 방법은 둘 중 하나입니다: 던전 경계를 배경 테마에 맞춰 손으로 끊거나, 던전에 자기 배경을 주고 그것을 쓰는 것. 지금은 어느 쪽도 하지 않고 있습니다.
3. 출정 계약
전사는 플레이어가 출정시킨 던전 안에서만 싸웁니다. 던전을 다 깨도 다음 던전으로 넘어가지 않습니다.
| 함수 | 규칙 |
|---|---|
isDungeonCleared(d, hc) | hc >= d. |
isDungeonSelectable(d, hc, v, w) | 레벨 충족 && 미클리어 && d. |
resolveDungeon(id, hc) | 저장된 id, 없으면 개척지가 속한 던전 |
hc는 그 전사 자신의 highestCleared입니다. setBattleDungeon: damageDealt 유지, lastFoughtAt→now. 던전 완주 시 damageDealt: 0.
4. 통행 허가
dungeonWaiverSealCost(d) = d.levelReq <= 1 ? null : 10. 10인장 정액, 던전당 1회. 판매 조건: 가격 있음, 미구매, 레벨 미달, 미클리어, d.stageStart <= highestCleared + 1.
5. 몬스터 138종
objects/monster/ 아래 15개 팩. idle 애니메이션만 전 종 보유, attack은 39종(28%).
| 팩 | 수 | 팩 | 수 |
|---|---|---|---|
| Pixel Monsters & Enemies | 56 | Foozle Critters | 4 |
| Debts in the Depths | 26 | Monsters Creatures Fantasy | 4 |
| Aesthetic Slimes | 12 | Monsters Creatures Fantasy 2 | 4 |
| Pixel Monsters Free | 7 | Craftpix Fantasy Enemies | 3 |
| Craftpix Underwater | 6 | 그 외 6개 팩 | 16 |
표시명: humanizeMonsterId(monsterId) — 팩 접두사 제거, 하이픈→공백, 첫 글자 대문자. i18n 키 없음. 배경 30종 (data/battle-backgrounds.json), 몬스터 기준 다대일 매핑.
팩마다 한 마리. 그림은 그 오브젝트의 animations.idle.frames[0]이고, 몬스터 시트는 아이템 아틀라스와 달리 몬스터 하나가 시트 하나입니다 — craftpix-slime-1.png는 12,032×64에 64px 칸 188개가 한 줄로 있고, 그중 idle의 첫 칸이 섭니다:
attack을 가진 39종은 |frame=attack으로 그 상태의 첫 칸을 세울 수 있습니다 — 어느 칸이 공격인지는 이 문서가 정하지 않고 그 파일의 animations.attack.frames가 답합니다.
6. 전리품 풀
전투 전용 재료 18종:
| 재료 | 판매가 | 재료 | 판매가 | 재료 | 판매가 |
|---|---|---|---|---|---|
slime_gel | 4 | bat_ | 8 | spirit_ash | 12 |
bone_ | 4 | scale | 8 | cult_ | 16 |
mud_ | 4 | hide | 8 | mummy_ | 16 |
ectoplasm | 6 | fang | 10 | treasure_ | 24 |
spore | 6 | venom | 10 | demon_ | 30 |
witch_ | 12 | chitin | 10 | dragon_ | 50 |
풀 크기 1개(18종) 또는 2개(120종). 균등 분포, 클리어 1회 = 1개 롤. 등장 빈도:
| 키 | 등장 | 키 | 등장 | 키 | 등장 |
|---|---|---|---|---|---|
food | 23 | iron | 13 | chitin | 6 |
spirit_ash | 23 | wood | 12 | spore | 5 |
bone_ | 21 | scale | 10 | demon_ | 4 |
ectoplasm | 20 | mud_ | 10 | mummy_ | 2 |
hide | 20 | stone | 7 | dragon_ | 1 |
slime_gel | 17 | bat_ | 7 | witch_ | 1 |
fang | 16 | treasure_ | 6 | ||
fish | 15 | cult_ | 6 | ||
venom | 13 |
희귀 재료 평생 공급량(스테이지당 1회):
| 재료 | 출처 수 | 기댓값 | 최댓값 |
|---|---|---|---|
dragon_ | 1 | 0.5 | 1 |
witch_ | 1 | 0.5 | 1 |
mummy_ | 2 | 1.0 | 2 |
demon_ | 4 | 2.0 | 4 |
treasure_ | 6 | 3.0 | 6 |
cult_ | 6 | 3.0 | 6 |
forge_dragonfang은 dragon_scale 2 요구 → 독초 절임 없이 제작 불가. herb_tea도 동일 구조.
거치대 2단 여섯 자루도 이 표에 걸립니다: 창해 월도와 반석 파쇄추가 cult_token 4씩, 서광 성검이 treasure_shard 3을 씁니다(forge_sigil과 forge_radiantlance가 쓰는 것과 같은 크기). 한 전사가 여섯 자루를 다 만들 이유는 없으므로 — 전사 한 명이 드는 무기는 한 자루입니다 — 실제 요구는 한두 자루분이고, 그만큼은 순찰 한두 바퀴로 모입니다. 나머지 셋은 spirit_ash(출처 23)를 쓰므로 희귀 재료에 손대지 않습니다.
7. 속성 상성
전투에 배선되어 있습니다. 속성은 무기가 지니고, 전용 슬롯은 없습니다. 전사의 주무장은 15자루 한 거치대이고 그중 12자루가 속성을 지닙니다 — 속성은 무기의 한 속성값이지 별도 장비 분류가 아닙니다. 속성 6종: fire, water, wind, earth, light, dark. 몬스터 슬롯 0~3개.
| 공격 ↓ / 방어 → | fire | water | wind | earth | light | dark | 무속성 |
|---|---|---|---|---|---|---|---|
| fire | 0 | 0 | 50 | 0 | 25 | 0 | 25 |
| water | 50 | 0 | 0 | 0 | 25 | 0 | 25 |
| wind | 0 | 0 | 0 | 50 | 25 | 0 | 25 |
| earth | 0 | 50 | 0 | 0 | 25 | 0 | 25 |
| light | 0 | 0 | 0 | 0 | 0 | 100 | 25 |
| dark | 25 | 25 | 25 | 25 | 0 | 0 | 25 |
| 무속성 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
다중 슬롯 시 모든 쌍을 합산. applyAffinityDamage(base, pct) = base * (1 + pct/100).
7.1 주무장 거치대 15자루
속성별로 2단입니다. 1단은 Lv.7, 2단은 Lv.9에 열리고, 그 사이(Lv.8)에 속성 없는 대검이 놓입니다.
| 무기 | 속성 | 단 | 공격력 | 값 | Lv | 잘 듣는 상대 |
|---|---|---|---|---|---|---|
| 강철검 | — | — | 10 | 90 | 6 | — |
| 화염검 | fire | 1 | 6 | 200 | 7 | 바람 +50 · 빛 +25 |
| 조류 삼지창 | water | 1 | 6 | 200 | 7 | 불 +50 · 빛 +25 |
| 질풍 쌍검 | wind | 1 | 6 | 200 | 7 | 땅 +50 · 빛 +25 |
| 대지 전곤 | earth | 1 | 6 | 200 | 7 | 물 +50 · 빛 +25 |
| 성광 창 | light | 1 | 6 | 200 | 7 | 어둠 +100 |
| 심연 낫 | dark | 1 | 6 | 200 | 7 | 불·물·바람·땅 각 +25 |
| 대검 | — | — | 19 | 300 | 8 | — |
| 겁화 대부 | fire | 2 | 13 | 520 | 9 | 바람 +50 · 빛 +25 |
| 창해 월도 | water | 2 | 13 | 520 | 9 | 불 +50 · 빛 +25 |
| 뇌풍 세검 | wind | 2 | 13 | 520 | 9 | 땅 +50 · 빛 +25 |
| 반석 파쇄추 | earth | 2 | 13 | 520 | 9 | 물 +50 · 빛 +25 |
| 서광 성검 | light | 2 | 13 | 520 | 9 | 어둠 +100 |
| 나락 사슬추 | dark | 2 | 13 | 520 | 9 | 불·물·바람·땅 각 +25 |
| 용아검 | — | — | 29 | 인장 전용 | 10 | — |
공격력 격차가 큰 이유. 상성 배수는 전사의 전체 ATK에 곱합니다(liveAtkOver). 그 전체 값은 레벨이 지배합니다 — 10 + lv*3만으로 Lv.20에 70입니다. 그래서 무기 공격력 차이는 "표의 최소 보너스를 전체 값에 곱한 것"과 비슷한 크기가 되어야 비로소 선택이 생깁니다. 초기 수치(원소 8 대 대검 10)는 그 차이가 3.4%였고 표의 최소 보너스는 25%였으므로, 상성이 걸리면 무조건 이기고 안 걸리면 무조건 지는 이진 판정이었습니다. 공격력 두 값은 장식이었습니다.
6 대 19, 13 대 29에서는 손익분기 보너스가 레벨·각인과 무관하게 23~25%로 유지됩니다. 즉 +25% 짝은 진짜 반반이고, +50%·+100%는 이기고, 0%는 집니다. 속성 없는 세 자루가 각 단에서 생공격력이 가장 높은 것은 "맞는 속성이 없는 던전"에도 정답이 있어야 하기 때문입니다.
값과 공격력은 같은 단 안에서 6자루가 모두 같습니다. 빛이 강해 보이는 것은 어둠이 이 게임에서 가장 흔한 방어 속성(138스테이지 중 68)이기 때문이고, 그건 무기가 아니라 몬스터 명부의 성질이라 값에 반영하지 않았습니다.
무기 종류도 12가지가 다 다릅니다(검·삼지창·쌍검·전곤·창·낫·대부·월도·세검·파쇄추·성검·사슬추). 형용사만 바꾼 검 열두 자루는 한 아이템의 색만 바꾼 것으로 읽힙니다. 아이콘도 /ui/icons/wpn/<무기>.png로 무기마다 하나씩 있습니다 — 처음에는 여섯 자루가 wpn/fire.png처럼 속성 이름을 쓰고 있었고, 그건 애셋 트리에서 같은 재사용을 하고 있던 것입니다.
2단까지인 이유. 두 단 모두 티어 2입니다. 티어 3은 이 게임의 인장 티어이고(모든 티어 3 레시피가 인장 전용이며 인장 재료를 씁니다), 속성 거치대는 의도적으로 골드 경로의 종점입니다. 3단을 두려면 같은 2레벨 구간에 밀어넣거나 유료화해야 하는데, 거치대의 최상단을 유료로 옮기는 것은 모양을 고치는 것과는 다른 결정입니다.
전용 슬롯은 두지 않았습니다. 한 빌드 동안 여섯째 슬롯 rune으로 존재했는데, 축 하나를 위해 슬롯·왕국당 하나 규칙·대장간 거절 세 가지 장치가 필요했습니다. 무기에 올리면 그 셋이 다 필요 없습니다 — 화염검은 평범한 슬롯에 들어가는 평범한 아이템입니다. (전용 슬롯과 룬 6종은 카탈로그에서 사라졌습니다. 출시 전이라 환불할 세이브가 없으므로 마이그레이션도 환불 표도 없습니다.)
7.2 전투에 적용되는 방식
배수는 전사 한 명 단위로 곱합니다(warriorAffinityMul → liveAtkAgainst). 그 전사의 무기 속성 하나를, 그 전사 앞에 선 몬스터의 방어 슬롯에 대조합니다. ATK를 합산하는 곳이 없으므로, 한 전사가 성광 창을 들었다고 다른 전사의 피해가 오르지 않습니다 — 무기 하나의 값은 표가 말하는 만큼이 되고, 그 혜택은 무기를 든 전사 혼자의 것입니다.
각인은 무기의 공격력을 키우고 속성은 건드리지 않습니다. 원소는 크기가 아니라 종류라 곱할 것이 없습니다.
| 던전 | 최선의 속성(평균) |
|---|---|
| 슬라임 굴 | 빛 +36% |
| 가시 숲 | 땅 +34% |
| 뼈 지하묘 | 빛 +57% |
| 침수 심층 | 빛 +59% |
| 잿빛 폐허 | 빛 +79% |
| 이단의 성소 | 빛 +57% |
| 하늘 균열 | 바람 +41% |
| 마녀의 습지 | 빛 +46% |
| 지옥의 문 | 빛 +40% |
| 공허의 왕관 | 빛 +79% |
순위는 솔직히 적어 둡니다. 빛이 8개 던전에서 1위, 땅과 바람이 각 1개에서 1위이고, 불과 물은 어디에서도 1·2위가 아닙니다. 불은 바람(138스테이지 중 26개)을, 물은 불(21개)을 받아치는데 그 둘이 가장 드문 속성이기 때문입니다. 그래도 여섯 자루 모두 모든 던전에서 속성값이 0보다 큽니다(최저 +1.8%). 제작 순서가 빛 → 바람·어둠 → 땅·물 → 불이 된다는 뜻이고, 무기 자체가 쓸모없다는 뜻은 아닙니다.
순찰(patrolling) 중에도 표적은 한 마리입니다. 스윕은 던전의 로스터를 한 마리씩 돌고(battle.runStage), 상성은 그 머리의 속성으로만 계산합니다 — 그러니 속성값은 표가 말하는 자리에서 정확히 나오고, 다른 자리에서는 나오지 않습니다. 예전에는 던전 전체의 배수를 평균했는데, 그것은 어떤 한 전투도 실제로 지불하지 않는 수치였고 몬스터 이름을 댈 수 없는 값이었습니다(그래서 패널과 적 정보가 서로 다른 것을 말했습니다). 한 바퀴를 돌면 모든 몬스터를 한 번씩 만나므로 희귀 재료 편향도 없습니다 — 추첨이 아니라 순회입니다. 단, 전사가 그 던전을 크게 앞선 경우 순찰은 PATROL_MIN_MS 상한에 걸려 마리당 30초로 고정되고, 그때는 속성도 속도를 바꾸지 못합니다(상한이 의도대로 작동하는 것입니다).
8. 페이싱 (계산값)
게이트 레벨 전사 1명, 장비·버프 0 가정.
| # | 던전 | 게이트 | 전사 ATK | 소요 시간 |
|---|---|---|---|---|
| 1 | 슬라임 굴 | 1 | 13 | 0.1시간 |
| 2 | 가시 숲 | 3 | 19 | 0.2시간 |
| 3 | 뼈 지하묘 | 5 | 25 | 0.4시간 |
| 4 | 침수 심층 | 7 | 31 | 0.9시간 |
| 5 | 잿빛 폐허 | 9 | 37 | 2.2시간 |
| 6 | 이단의 성소 | 11 | 43 | 5.5시간 |
| 7 | 하늘 균열 | 13 | 49 | 14.1시간 |
| 8 | 마녀의 습지 | 15 | 55 | 36.9시간 |
| 9 | 지옥의 문 | 17 | 61 | 86.8시간 |
| 10 | 공허의 왕관 | 20 | 70 | 205.6시간 |
이어서 읽기
- 전투 — 누적 규칙과 전사별 공격력 계산
- 장비와 각인 — 던전 소요 시간을 줄이는 상시 수단
- 제작 — 전리품이 재료로 돌아가는 자리
- 두 재화 — 통행 허가 10인장이 서 있는 인장 경제
- 구현 상태 — 상성 미연결, 몬스터 이름 미번역 등