# HIU DUNGEON 종합 기획서

문서 기준일: 2026-07-03  
대상 빌드: `v0.7.48`  
프로젝트 경로: `/root/Documents/Codex/2026-05-23/His dungeon`

## 1. 프로젝트 개요

`HIU DUNGEON`은 HTML, CSS, JavaScript만 사용하는 정적 브라우저 게임 프로토타입이다. 별도 서버 없이 `index.html`을 열어 실행하지만, 현재는 CSS/JS/이미지를 여러 파일로 분리한 구조이므로 `index.html`, `css/`, `js/`, `assets/` 폴더가 같은 위치에 있어야 한다.

장르는 모바일 가로 화면 기준의 탑뷰 핵앤슬래시 로그라이크 액션이다. 핵심은 조작감, 자동/수동 조준, 패링, 대시, 무기별 공격, 던전 방 진행, 테스트룸, 상점, 이벤트, 자유 배치 가방 정리 시스템을 빠르게 검증하는 것이다.

목표 플랫폼은 Android Chrome 모바일 가로 화면이며, PC 브라우저는 개발 테스트용으로 함께 지원한다.

## 2. 파일 구조 원칙

이 프로젝트는 분리 파일 구조를 유지한다. 앞으로도 다시 단일 HTML 파일로 합치지 않는다.

- `index.html`: 화면 DOM, CSS/JS 로드 순서.
- `css/00-base-menu-codex.css`: 기본 리셋, 시작 안내, 로고, 메인 화면, 도감.
- `css/01-game-hud.css`: 인게임 HUD, 코인 아이콘, 미니맵, 무기 슬롯.
- `css/02-mobile-controls.css`: 모바일 조이스틱과 공격/스킬/방어/대시 버튼.
- `css/03-testroom-inventory.css`: 테스트룸, 인벤토리, 가방, 무기 룬 UI.
- `css/04-dialogue-responsive.css`: 대화창, 선택지, 이벤트/공방 보정.
- `js/00-config-state-dom.js`: `CONFIG`, 전역 상태, DOM 참조, 입력 상태, 공용 폰트/코인 이미지 헬퍼.
- `js/data/01-bag-items.js`: 가방 아이템, 음식, 저주 아이템, 외형/히트박스.
- `js/data/02-weapon-runes-codex.js`: 무기 룬, 도감 정적 데이터.
- `js/data/03-treasure-chests.js`: 보상상자 등급/드랍 테이블.
- `js/data/04-event-rooms.js`: 이벤트방 카탈로그.
- `js/data/05-synergies.js`: 가방 아이템/룬 시너지 규칙.
- `js/systems/04-dungeon-generation.js`: 절차적 던전 생성.
- `js/systems/10-tutorial.js`: 튜토리얼 단계/목표/대사.
- `js/entities/05-player.js`: `Player`, 피격, 상태이상, 패링, 대시.
- `js/entities/06-weapons-projectiles.js`: 무기, 플레이어 투사체, 적 투사체.
- `js/entities/07-enemies.js`: 적 AI와 보스.
- `js/entities/08-summons-pickups-shop.js`: 소환수, 드랍, NPC, 상점 표시물.
- `js/entities/09-effects-objects.js`: 이펙트, 보상 오브, 상자, 박스, 비밀방 오브젝트.
- `js/core/11-game.js`: `Game` 본체, 던전/전투/상호작용/렌더링 흐름.
- `js/12-app-flow.js`: 화면 전환, 시작/종료, 전체화면.
- `js/13-ui-hud-inventory-codex.js`: HUD, 도감, 가방, 무기 룬 UI.
- `js/14-loop-events-input.js`: 게임 루프, 키보드/마우스/터치 입력.
- `js/15-physics-status-utils.js`: 충돌, 상태이상, 피해 태그 유틸.
- `js/16-boot.js`: 초기 실행.
- `assets/fonts/DungGeunMo.woff2`: 현재 UI 폰트.
- `assets/icons/gold.png`: 코인 표시 이미지.
- `assets/icons/synergy_sheet.jpg`: 시너지 아이콘 원본 시트.
- `assets/icons/synergy/synergy_01.png` ~ `synergy_32.png`: 원본 시트를 왼쪽 위부터 순서대로 자른 64x64 시너지 아이콘.
- `assets/icons/synergy/synergy_junk.png`: `잡동사니` 시너지 아이콘.

큰 요소를 새로 추가하고 이후 계속 확장될 가능성이 있으면 새 파일 분리를 우선 고려한다. 단, 새 파일을 만들면 `index.html` 로드 순서와 `README.md` 파일 구조 설명도 같이 관리한다.

## 3. 화면 구성

### 3.1 시작 안내/로고

게임 실행 시 바로 메인 화면을 보여주지 않는다.

1. 검은 화면에 `이게임은 기획 테스트용 버전입니다` 표시.
2. `전체화면으로 변경하여 게임을 실행하세요` 표시.
3. 중앙 전체화면 버튼을 누르면 전체화면 요청 후 로고 화면으로 이동.
4. 로고는 검은 화면에서 페이드인, 잠시 유지, 페이드아웃 후 메인 화면으로 이동.

브라우저 정책상 자동 전체화면은 사용자 제스처 없이 불가능하므로 버튼 입력으로만 처리한다.

### 3.2 메인 화면

메인 화면은 배경 이미지 `assets/menu/main-bg.jpg`를 유지하고, UI는 배경에 맞춰 왜곡하지 않는다. 화면 가장자리는 약간 어둡게 처리한다.

구성:

- 큰 제목: `HIU DUNGEON`
- 버튼: `던전입장`, `테스트룸`, `튜토리얼`, `도감`, `설정`
- 우측 상단: 전체화면 버튼
- 좌측 하단: 현재 빌드 버전, `DUNI`

도감 탭:

- 아이템, 룬, 무기, 적, 시너지, 피해 종류
- 아이콘은 실제 외형 렌더러 기반으로 표시한다.
- 무기 도감은 무기 탭과 같은 방식으로 기본공격/스킬/대시공격/소환수 정보를 보여준다.
- 시너지 도감은 현재 등록된 모든 시너지와 중첩별 효과, 해당 시너지를 가진 아이템/룬 목록을 보여준다.
- 피해 종류 도감은 `DAMAGE_TAGS`를 자동으로 읽어 `물리피해`, `마법피해`, 속성 피해, 나머지 공격 유형/보조 태그 순으로 표시한다.
- 테스트룸 안에서 인벤토리 도감을 볼 때는 아이템/룬/무기 상세 설명창에 해당 물건을 바닥에 소환하는 테스트룸 전용 버튼을 표시한다. 일반 던전과 메인 화면 도감에는 표시하지 않는다.

### 3.3 인게임 HUD

- 좌측 상단: HP/MP/SP 바, 코인 수. 코인 이미지는 `assets/icons/gold.png`를 사용한다.
- 우측 상단: 미니맵, 가방 버튼, 메뉴 버튼.
- 우측 측면: 무기 슬롯 2개. 선택 슬롯은 흰 테두리.
- 좌측 하단: 이동 조이스틱.
- 우측 하단: 공격, 스킬, 궁극기, 방어/패링, 대시, 연사/단발 버튼.
- 중앙 하단: 안내 문구창. 예: 마나 부족, 구매 성공, 가방 빈자리 없음.
- 하단: 대화창. 히유 대사는 좌측 초상화, NPC/적 대사는 우측 초상화.

## 4. 조작

모바일:

- 이동 조이스틱 드래그 이동.
- 공격 버튼 탭: 가까운 적 자동 조준.
- 공격 버튼 길게 누르고 드래그: 수동 조준. 단발은 손을 뗄 때 발사, 연발은 누르는 동안 발사.
- 스킬 버튼 탭: 가까운 적 또는 지정 지점 자동 조준.
- 스킬 버튼 드래그: 방향/위치 지정.
- 방어 버튼 탭/홀드: 패링, 지속 방어, 에너지 폭파 차징.
- 대시 버튼 탭: 이동 방향 기본 대시.
- 대시 버튼 홀드/드래그: 파워대시 방향과 힘 지정.
- 궁극기 버튼 탭: 궁극기 게이지를 모두 소모해 기본 궁극기를 시전한다. PC 테스트 키는 `T`.

PC:

- WASD/방향키 이동.
- 마우스/Space 공격.
- Q/E 등 기존 테스트 단축키.

## 5. 전투 시스템

### 5.1 피해 경로와 태그

모든 피해는 `takeDamage` 또는 `damageHostileTargets*` 계열을 통과해야 한다. 직접 HP를 빼는 코드는 금지한다.

피해에는 태그를 붙인다. 주요 태그:

- 공격 출처: `기본공격`, `차징기본공격`, `스킬`
- 형식: `투사체`, `레이져`, `근접공격`, `근접:휘두르기`, `근접:찌르기`
- 범위: `범위공격`, `범위:장판`, `범위:소용돌이`, `범위:추적`
- 관통: `관통:파동`, `관통:지형`, `관통:유닛`
- 속성: `물리피해`, `마법피해`, `화염피해`, `얼음속성피해`, `출혈속성피해`, `맹독피해`, `바람피해`, `번개피해`, `폭발피해`, `혼돈피해`, `충돌피해`
- `피해량` 스탯은 모든 플레이어 발생 피해에 적용되는 전역 피해 증폭량을 의미한다. 무기 직접 피해뿐 아니라 화상/독/출혈/빙결/혼돈 폭발 같은 상태이상 피해, 플레이어 패시브 오브, 플레이어 장판, 파워대시, 넉백 충돌 피해에도 적용한다. 단, `대시 후 다음 공격`처럼 1회성 공격 보너스는 지속피해 틱에는 적용하지 않는다.
- 태그 피해 스탯: `물리피해`, `마법피해`, `근접공격피해`, `투사체피해`, `검기피해`, `파동피해`, `범위피해`, `소용돌이피해`, `스킬피해`는 해당 피해 태그가 붙은 피해량에 곱해진다.
- 스탯창의 피해 계열 수치는 기본 100%로 표시한다. 치명타피해는 기본 150%로 표시한다.
- 소환수 피해는 앞에 `소환수:` 태그를 붙인다.

태그는 룬, 아이템, 도감, 무기 정보창, 치명타/상태이상/피해 증폭 시스템이 공통으로 읽는 기준이다.

대시공격은 대시 자체로 이미 스테미나를 소모하므로 추가 소모가 낮아야 한다. 현재 전역 배율은 `DASH_ATTACK_STAMINA_COST_MULTIPLIER = 0.5`, `DASH_ATTACK_DAMAGE_MULTIPLIER = 1.35`이며, 신규 대시공격은 `Game.getDashAttackStaminaCost()`와 `Game.getDashAttackBaseDamage()`를 사용해 이 규칙과 룬 보너스를 함께 적용한다.

### 5.2 패링/방어

- 퍼펙트 패링 판정: 0.15초.
- 일반 패링 판정: 0.5초.
- 패링 성공 시 여러 공격이 같은 순간 들어와도 유저 편의를 위해 모두 막는다.
- 단, 에너지 폭파 에너지 획득량은 1회 막은 수준으로만 지급한다.
- 패링 성공 순간 플레이어는 0.5초 무적 판정을 얻는다.
- 일반 패링과 퍼펙트 패링은 효과, 범위, 에너지 획득량이 다르다.
- 보스/엘리트는 패링으로 기절하지 않는다. 대신 패링 파동과 일반 피해로 강인도를 깎는다.
- 보스 강인도는 일반 피해보다 패링 파동/에너지 폭파가 더 효율적이다.

신규 몬스터 공격 규칙:

- 새 몬스터의 모든 공격은 패링 가능해야 한다.
- 투사체는 `EnemyProjectile` 또는 `game.enemyProjectiles`에 들어가는 투사체 클래스를 사용한다. 그래야 패링 파동, 거울장막, 바람 오라, 근접 투사체 절단 룬이 인식한다.
- 근접, 돌진, 레이저, 장판, 보스 범위 공격은 `player.takeDamage(...)`, `game.damageHostileTargetsInCircle(...)`, `game.damageHostileTargetsOnSegment(...)` 경로를 써야 한다.
- 막히면 공격 자체가 없어져야 하는 근접/접촉/보스 공격은 `damageTagOptions({ parryBlocksHit: true }, ...)`를 붙인다.
- 새 공격에는 경고 표시와 충분한 회피/패링 타이밍을 준다.

### 5.3 자원

- HP: 기본 100.
- MP: 기본 100, 천천히 자연 회복. 몬스터 마나 오브 드랍량은 낮게 유지.
- SP: 기본 100. 공격, 차징, 대시, 지속 방어에 사용한다.
- SP가 0 이하가 되면 탈진. 붉게 깜빡이며 회복 전까지 행동 제한과 이동속도 감소가 발생한다.
- 에너지 폭파: 방어/패링으로 에너지를 모아 완충 후 방어 버튼 차징으로 사용한다. 주변 폭파, 넉백, 피해, 마나 회복을 제공한다. 에너지 폭파 마나 회복량은 과하지 않게 유지한다.
- 궁극기: 별도 궁극기 게이지를 사용한다. 게이지는 에너지 폭파 사용 시 소모 에너지 비례 최대 40%, 적 처치 시 5% 충전된다. 기본 궁극기는 초록빛 구체 3개를 플레이어 주변에 소환한 뒤 주변 범위 내 최대 3명을 타겟팅해 구체당 120 피해로 발사한다. 대상이 3명보다 적으면 같은 대상에게 여러 구체가 지정될 수 있다. 피해 태그는 `스킬`, `마법피해`, `타겟팅`, 현재 플레이어의 속성 피해 보너스 중 가장 높은 속성 태그를 가진다. `특이점` 시너지가 활성화되면 궁극기 사용 시 시전 방향으로 보라빛 투사체를 함께 발사하고, 적중 시 블랙홀 장판을 생성한다.
- 넉백 힘: 플레이어 기본 스탯과 무기 룬의 넉백 보너스가 합산되어 적이 밀리는 거리와 속도를 키운다.
- 충돌 피해: 넉백으로 빠르게 밀린 적이 벽, 오브젝트, 다른 적과 부딪히면 속도에 비례한 `물리피해`, `충돌피해`를 받는다.
- 교섭: 기본 0%. 추후 상점 교섭 시스템에 사용한다.
- 행운: 기본 0%. 추후 높은 등급 상자 발견, 이벤트 결과 등에 사용한다.
- 탐욕: 기본 0%. 골드 오브 획득 시 얻는 골드량을 증가시킨다.
- 치명타 골드 드랍: 일부 아이템 효과가 치명타 발생 시 낮은 확률로 작은 골드 오브를 생성할 수 있다.

## 6. 상태이상

- 화염: 스택형. 매초 스택을 소모해 피해. 불/연기 파티클.
- 빙결: 스택형. 10스택 시 얼어붙음. 최대 5회 피격 또는 시간 경과로 해제. 해제 시 얼음 파편과 넉백.
- 중독: 지속 피해는 화염보다 약하지만 받는 피해 +20%. 초록/보라 연기.
- 출혈: 지속 피해. 대시, 넉백, 강제 이동 등 일반 이동이 아닌 움직임이 발생할 때 추가 피해와 피 분출 파티클.
- 혼돈: 사라지지 않는 최대 20스택 디버프. 최대 스택 시 큰 피해. 완충 에너지 폭파로 정화. 혼돈 보유 유닛 사망 시 혼돈 폭발 발생.
- 바람 피해: 대상의 기존 디버프 유지시간/레벨/스택을 증폭하고 주변 대상에게 전이한다. 전이 반경은 디버프 색 파티클로 시각화한다.

## 7. 무기

현재 대표 무기:

- 기본 총
- 산탄총
- 훈련용 검
- 특대검
- 불지팡이
- 불의 꽃: 원형 범위 안 가까운 적 최대 3명을 타겟팅해 화염 꽃방울을 발사한다. 적중 시 피해 태그 `기본공격`, `타겟팅:체인`, `투사체`, `타겟팅`, `화염피해`, `마법피해`가 적용되고 화염 4스택과 3회 연쇄 전이를 준다. 스킬 `꽃잎 수확`은 화염 디버프 상태인 모든 적에게서 꽃잎을 얻어 다음 기본공격의 피해와 연쇄 횟수를 강화한다. 꽃잎 3개당 연쇄 전이가 1회 추가된다.
- 칼날 세례: 2중첩은 5초마다 칼날 1스택을 얻고 대시 시 모든 칼날스택을 소모해 스택 1당 칼날 투사체 1발을 좁은 부채꼴로 연사한다. 4/7중첩은 칼날스택 획득 주기와 대시 칼날 피해를 더 강화한다.
- 배신자: `역병`, `칼날 세례` 시너지 아이템. 적이 맹독 디버프 피해를 받을 때 10% 확률로 칼날 스택을 1 얻는다. 전용 외형과 히트박스를 가진 비소모 가방 아이템이다.
- 얼음 지팡이
- 혼돈 지팡이
- 독안개 지팡이
- 가시장미 지팡이
- 바람 지팡이
- 무 지팡이
- 거울 지팡이
- H-99
- 파워 건틀릿
- 기폭 메그넘
- 미니건
- 로켓런쳐

신규 무기 추가 규칙:

- `createWeaponById`에 무기 정의를 추가한다.
- `CODEX_STATIC_ENTRIES.weapons`에 도감/상점/보상 목록용 엔트리를 추가한다.
- 공격 피해에는 태그를 반드시 붙인다.
- 기본공격/차징/스킬/대시공격/소환수 정보가 무기 정보창과 도감에 자동 또는 수동으로 표시되게 한다.
- 상점과 보상상자는 `getWeaponCatalogEntries()` 기반으로 무기 목록을 읽으므로, 도감 엔트리를 빼먹으면 자동 풀에도 빠질 수 있다.
- 투사체 수 증가, 크기 증가, 튕김, 유도, 치명타, 폭발 룬이 적용되는지 확인한다.

## 8. 적/보스

현재 대표 적:

- 고정 더미, 고HP 기본적, 훈련 인형
- 투사체 더미, 전투 더미
- 원거리 적, 힐러 적, 독침 적, 부채탄 적
- 번개마법 적, 화염 적, 얼음 적
- 원형톱날 적, 레이저 적, 폭탄 적, 대시공격 적
- 방패기사
- 혼돈의 기사
- 고대 골렘 보스
- 화염 골램 이벤트 보스

AI 원칙:

- 적은 단순 추적만 하지 않고 거리 조절, 경고, 대치, 패턴 수행을 가진다.
- 플레이어가 감지 범위와 원형 레이캐스팅 시야 안에 있어야 인식한다.
- 벽/구조물 뒤의 플레이어는 감지하지 않는다.
- 전투 중 플레이어를 놓치면 즉시 대기하지 않고 `?` 경계 상태 후 마지막 위치로 이동한다.
- 일정 시간 못 찾으면 대기 상태로 돌아간다.
- 엘리트/보스는 한 번 발견하면 끝까지 `!` 상태를 유지한다.

신규 적 추가 체크리스트:

- `js/entities/07-enemies.js`에 클래스 추가.
- `Game.createEnemyByKind`에 kind 연결.
- 던전 일반 enemy pool에 넣을지 판단.
- 테스트룸 소환 목록에 반드시 추가.
- 도감 `CODEX_STATIC_ENTRIES.enemies`에 추가.
- 모든 공격이 패링/무적/피해태그 경로를 통과하는지 확인.
- 투사체는 `EnemyProjectile` 또는 `game.enemyProjectiles` 배열에 넣는다.
- 보스면 `isBoss`, 보스바, 강인도, 패턴 사이 텀, 경고 표시를 챙긴다.

## 9. 던전 스테이지

챕터는 4개 스테이지로 구성된다. 4번째 스테이지에는 보스방이 포함된다.

방 타입:

- 시작방
- 일반 전투방
- 엘리트 전투방
- 상점방
- 보상방
- 이벤트방
- 비밀방
- 끝방
- 보스방

절차 생성 원칙:

- 시작방과 끝방은 반드시 연결된다.
- 엘리트방과 이벤트방은 다음 스테이지 이동 필수 경로가 되지 않도록 구성한다.
- 비밀방은 방 개수 계산에 포함하지 않는 별도 방이다.
- 방 크기는 1x1, 1x2, 2x1, 2x2.
- 방 크기에 따라 웨이브 수와 몬스터 수가 달라진다.
- 작은 방은 적 수를 줄이고 웨이브로 분산한다.
- 큰 방은 더 많은 몬스터와 장애물을 가질 수 있다.
- 장애물은 주로 벽면에 밀집시키고 중앙 전투 공간을 과하게 막지 않는다.
- 끝방은 입장 즉시 다음 스테이지로 가지 않고, 중앙 계단 오브젝트와 상호작용해야 이동한다.

방 크기별 웨이브 기준:

- 1x1: 1~3웨이브
- 1x2 / 2x1: 2~4웨이브
- 2x2: 3~4웨이브

## 10. 상점/이벤트/NPC

상점:

- NPC 이름: `석류`
- 대사: `사지 않을거면 보지도 마세요.`, `좀 깎아주세요..`, `나가!!!!!!!!!!!!`
- 방 크기에 따라 판매 물품 수가 늘어난다.
- 상점은 무기, 아이템, 룬 목록을 자동으로 읽어 상품 풀을 만든다.
- 새 무기/룬/아이템을 추가할 때 상점 파일을 매번 직접 수정하지 않는 구조를 유지한다.
- 구매 시 물건은 자동 가방 배치가 아니라 그 자리 바닥에 놓여 상호작용으로 처리한다.

이벤트:

- 이벤트 정의는 `EVENT_ROOM_DEFS`에서 관리한다.
- 새 이벤트는 이벤트 카탈로그에 등록하면 던전 이벤트방과 테스트 이벤트 선택지에서 자연스럽게 가져오게 한다.
- 이벤트 NPC와 선택지는 `Game.openEventChoices`, `Game.chooseEventChoice` 흐름을 사용한다.

현재 이벤트:

- 축소공방: NPC `챌런`. 가방 아이템 크기를 돈을 내고 줄인다. NPC와 상호작용해 대화를 시작하면 DUNI 전용 음성이 1회 재생된다.
- 두비두밤: NPC `웃음이`. 저주 아이템을 가방 무작위 위치에 고정하고 돈을 받는다.
- 무 밭: NPC `무`. `무(유기농)` 아이템을 판매하며, 우측 끝에는 별도 이름의 초고가 `무(얼티밋 프리미엄 유기농 국산 100% 무 함유)` 1개가 추가로 배치된다.

## 11. 아이템/가방/룬

가방 시스템:

- 아이템과 룬은 모두 가방에 넣어야 효과/관리 대상이 된다.
- 가방 공간은 칸 고정 배치가 아니라 자유 위치/360도 회전 배치다.
- 외형 히트박스끼리 겹치면 배치 불가.
- 아이템/룬은 레벨을 가진다. 이름 우측 다이아몬드 아이콘 안에 레벨 숫자를 표시한다.
- 가방에 배치된 아이템/룬도 하단에 반투명 레벨 아이콘을 표시한다.

룬:

- 룬은 오각형 드랍 외형으로 통일한다.
- 룬도 아이템처럼 크기와 가방 배치 판정을 가진다.
- 무기 탭에서 가방 안 룬과 주변 바닥 룬을 볼 수 있다.
- 무기에 장착된 룬을 해제하면 바닥에 떨어진다.
- 룬을 바닥에 버릴 때 다른 룬/아이템과 겹치지 않게 배치한다.
- 인벤토리에는 메인 화면과 동일한 도감 탭이 있으며, 플레이 중에도 아이템/룬/무기/적/시너지/피해 종류 정보를 확인할 수 있다.

시너지 시스템:

- 아이템과 룬은 각각 0~3개의 시너지를 가진다. 보통 1~2개를 가진다.
- 시너지는 해당 아이템/룬을 가방에 유효하게 배치해야 중첩된다.
- 시너지 태그는 아이템/룬의 `synergyTags`, 보너스 키, 이름, 효과 텍스트에서 자동 추론하되 최대 3개만 부여한다.
- 시너지는 1중첩부터 발동되는 것, 2중첩부터 발동되는 것, 3~4중첩부터 강해지는 것처럼 조건이 다를 수 있다.
- 활성 시너지는 기존 스탯 보너스에 합산되므로 전투 시스템은 별도 분기 없이 기존 스탯을 읽는다.
- 현재 기본 시너지: 화염술사, 서리, 역병, 고통, 혈석, 마법서, 검의 궤적, 푸른 빛, 기습자, 속사, 폭풍, 감전, 레이져, 특이점, 공명, 소환술사, 깨어난자, 광폭의 별, 행운, 금빛 열망, 풍요, 잡동사니. 기존 아이콘 이미지가 없는 시너지는 삭제한다.
- `화염술사`는 21번 시너지 아이콘을 사용하며, 2중첩에서 화염피해 +20%, 4중첩에서 화염피해 +60%가 발동한다.
- `서리`는 30번 시너지 아이콘을 사용하며, 2/4/7/12중첩에서 얼음속성피해 +20%/+50%/+120%/+250%가 발동한다.
- `고통`은 14번 시너지 아이콘을 사용하며, 출혈/고통/장미/가시 계열 아이템과 룬에 자동 부여된다. 2중첩은 출혈속성피해 +30%와 잃은 HP 6당 피해량 +1%, 4중첩은 출혈속성피해 +70%와 잃은 HP 5당 피해량 +1%, 7중첩은 출혈속성피해 +100%와 잃은 HP 3당 피해량 +1%가 발동한다.
- `혈석`은 5번 시너지 아이콘을 사용한다. 1중첩은 출혈 지속피해 시 5% 확률로 혈석 드랍, 적 사망 시 혈석 100% 드랍, 피격 시 혈석 1개 소모로 HP 5 회복, 혈석 5스택당 피해량 +2%가 발동한다. 3중첩은 출혈 드랍 7%, 회복량 7, 혈석 5스택당 피해량 +3%다. 7중첩은 출혈 드랍 10%, 회복량 9, 혈석 5스택당 피해량 +4%다.
- `마법서`는 16번 시너지 아이콘을 사용하며, 2/4/7/12중첩에서 마법피해 +20%/+50%/+120%/+250%가 발동한다.
- `검의 궤적`은 9번 시너지 아이콘을 사용하며, 검/칼날/근접/물리 계열 아이템과 룬에 자동 부여된다. 2중첩은 물리피해 +5%, 근접공격피해 +30%, 근접공격 시 10% 확률 전방 찌르기, 4중첩은 물리피해 +12%, 근접공격피해 +70%, 확률 20%, 7중첩은 물리피해 +20%, 근접공격피해 +150%, 확률 50%가 발동한다. 전방 찌르기 피해 태그는 `근접:찌르기`, `근접공격`, `물리피해`다.
- `푸른 빛`은 12번 시너지 아이콘을 사용하며, 마나/푸른/스킬 쿨타임 계열 아이템과 룬에 자동 부여된다. 2중첩은 최대마나 +30과 스킬 쿨타임감소 +10%, 4중첩은 최대마나 +70과 스킬 쿨타임감소 +15%, 6중첩은 최대마나 +120과 스킬 쿨타임감소 +25%, 8중첩은 최대마나 +190과 스킬 쿨타임감소 +40%가 발동한다.
- `기습자`는 20번 시너지 아이콘을 사용하며, 이동속도/대시/기동 계열 아이템과 룬에 자동 부여된다. 2중첩은 이동속도 +40, 대시 후 다음 공격 피해 +50%, 이동속도의 5%만큼 피해량 증가가 발동한다. 4중첩은 이동속도 +100, 대시 후 다음 공격 피해 +100%, 이동속도의 15%만큼 피해량 증가가 발동한다. 7중첩은 이동속도 +180, 대시 후 다음 공격 피해 +200%, 이동속도의 20%만큼 피해량 증가가 발동한다. 이동속도 비례 피해량은 현재 이동속도 수치를 퍼센트 피해량 증가로 환산해 적용한다.
- `속사`는 3번 시너지 아이콘을 사용하며, 공격속도/속사/연사/난사 계열 아이템과 룬에 자동 부여된다. 2/4/7중첩에서 공격속도 +30%/+70%/+150%가 발동한다. 공격속도는 무기별 발사 간격을 `1 + 공격속도`로 나누어 적용한다.
- `폭풍`은 18번 시너지 아이콘을 사용하며, 바람/소용돌이/회전 계열 아이템과 룬에 자동 부여된다. 2중첩은 바람속성피해 +30%, `범위:소용돌이` 피해 +10%, `범위:소용돌이` 공격 크기 +15%다. 4중첩은 바람속성피해 +70%, `범위:소용돌이` 피해 +30%, 크기 +40%다. 7중첩은 바람속성피해 +150%, `범위:소용돌이` 피해 +60%, 크기 +80%다. `범위:소용돌이` 태그가 붙은 신규 무기/스킬/시너지 공격은 `areaSpinDamageRate`와 `areaSpinSizeRate`를 읽어 자동 강화되도록 구현한다.
- `감전`은 8번 시너지 아이콘을 사용하며, 번개/전기/연쇄/체인 계열 아이템과 룬에 자동 부여된다. 2중첩은 `타겟팅:체인` 피해 +15%, 번개속성 피해 +30%, 5초마다 가까운 적에게 번개를 가하고 5회 전이한다. 4중첩은 `타겟팅:체인` 피해 +40%, 번개속성 피해 +70%, 4초마다 번개가 7회 전이하며 추가 피해가 발동한다. 7중첩은 `타겟팅:체인` 피해 +100%, 번개속성 피해 +150%, 3초마다 강한 번개가 10회 전이한다. `타겟팅:체인` 피해는 타겟팅한 첫 대상에게 피해를 준 뒤 주변 적에게 번개가 튕기듯 이어진다. 전이 횟수 n은 첫 타격 후 n번 공격이 옮겨가는 횟수다. 다음 대상 선택은 현재 대상과 직전 대상을 제외하므로 A→B→A 즉시 되튐은 막고, A→B→C→A처럼 한 유닛을 거친 재적중은 허용한다. 연쇄 번개 피해 태그는 `타겟팅:체인`, `타겟팅`, `번개피해`다.
- `역병`은 제공된 독 시너지 아이콘을 사용하며, 맹독/중독/감염/독침 계열 아이템과 룬에 자동 부여된다. 2중첩은 맹독속성 피해 +30%와, 적이 맹독 디버프 지속피해를 받을 때마다 `(기본 5% + 행운의 40%)` 확률로 가까운 적 2명을 타겟팅하는 초록/보라 유도탄을 발사한다. 4중첩은 맹독속성 피해 +70%, 역병 유도탄 피해 +40%, 타겟 수 3명이다. 7중첩은 맹독속성 피해 +150%, 역병 유도탄 피해 +100%, 타겟 수 4명이며 추가 발동 확률 보너스도 붙는다. 유도탄은 중복 타겟팅 가능하며 피해 태그는 `맹독피해`, `마법피해`, `투사체`, `타겟팅`이다.
- `녹아내리는 별`은 역병/깨어난자 시너지를 가지는 가방 아이템이다. 혼돈 스택을 보유한 적이 맹독 피해를 받을 때 10% 확률로 혼돈 스택을 1 부여한다.
- `빙하 파편`은 마법서/서리 시너지를 가지는 가방 아이템이다. 마법피해 +10%를 제공하고, 대시 사용 시 대시 방향으로 3개의 빙하 파편을 부채꼴로 발사한다. 파편은 `얼음속성피해`, `마법피해`, `투사체` 태그를 가지며 적중 시 빙결 스택 1을 부여한다.
- `레이져`는 2번 시너지 아이콘을 사용하며, 레이져/레이저/광선 계열 아이템과 룬에 자동 부여된다. 2중첩은 레이져 피해 +30%와 무기스킬 시 가까운 적에게 레이져 발사, 쿨타임 10초가 발동한다. 4중첩은 레이져 피해 +70%, 레이져 두께 +30%, 시너지 레이져 쿨타임 7초가 발동한다. 7중첩은 레이져 피해 +150%, 레이져 두께 +80%, 시너지 레이져 쿨타임 3초가 발동한다.
- `특이점`은 4번 시너지 아이콘을 사용하며, 범위공격/블랙홀/소용돌이/장판 계열 아이템과 룬에 자동 부여된다. 2중첩은 범위공격피해 +30%와 궁극기 사용 시 시전 방향 보라빛 투사체 발사, 적중 시 5초 블랙홀 장판 생성을 제공한다. 블랙홀은 주변 적을 조금씩 끌어당기고 `범위공격`, `범위:소용돌이`, `마법피해` 지속피해를 준다. 4중첩은 범위공격피해 +70%, 블랙홀 지속피해 +30%, 유지시간 7초다. 7중첩은 범위공격피해 +150%, 블랙홀 지속피해 +60%, 유지시간 10초다.
- `공명`은 31번 시너지 아이콘을 사용하며, 치명타/스킬치명타 계열 아이템과 룬에 자동 부여된다. 2중첩은 치명타확률 +8%, 스킬 치명타 적용, 스킬치명타확률을 보유 치명타확률의 60%만큼 추가한다. 4중첩은 치명타확률 +20%, 스킬 치명타 적용, 스킬치명타확률을 보유 치명타확률의 70%만큼 추가한다. 7중첩은 치명타확률 +40%, 치명타피해 +50%, 스킬 치명타 적용, 스킬치명타확률을 보유 치명타확률의 100%만큼 추가한다. 공명 스킬 치명타는 `스킬` 피해 태그가 있고 `기본공격`/`차징기본공격` 태그가 없는 피해에 적용한다.
- `소환술사`는 24번 시너지 아이콘을 사용하며, 소환수 관련 아이템과 룬에 자동 부여된다. 2중첩은 소환수 피해/체력 +30%, 4중첩은 소환수 피해/체력 +70%와 무기가 소환수를 소환할 때 +1마리, 7중첩은 소환수 피해/체력 +150%와 무기가 소환수를 소환할 때 +3마리가 발동한다.
- `행운`은 10번 시너지 아이콘을 사용하며, 2/4/7중첩에서 행운 +20%/+50%/+120%가 발동한다.
- `금빛 열망`은 15번 시너지 아이콘을 사용하며, 골드/황금/탐욕 계열 아이템과 룬에 자동 부여된다. 2중첩은 탐욕 +50%와 100골드당 피해 +8%, 4중첩은 탐욕 +120%와 90골드당 피해 +10%, 7중첩은 탐욕 +250%와 80골드당 피해 +15%가 발동한다.
- `풍요`는 26번 시너지 아이콘을 사용하며, 음식/소모성 아이템에 자동 부여된다. 현재 2/4/7중첩 조건만 있고 효과는 미정이다.
- `잡동사니`는 별도 제공 아이콘을 사용하며, 열쇠, 낡은 삽, 낡은 곡괭이, 웃음 저주 아이템에 자동 부여된다. 3중첩은 가방의 물건 2개당 피해량 +1%, 6중첩은 가방의 물건 1개당 피해량 +1%, 10중첩은 가방의 물건 1개당 피해량 +3%가 발동한다.
- `깨어난자`는 22번 시너지 아이콘을 사용하며, 혼돈 관련 아이템과 룬에 자동 부여된다. 2중첩은 혼돈피해 +20%와 혼돈스택 폭발 피해 +30%, 4중첩은 혼돈피해 +50%와 혼돈스택 폭발 피해 +80%가 발동한다.
- `광폭의 별`은 28번 시너지 아이콘을 사용하며, 폭발/운석/별 계열 아이템에 자동 부여된다. 2중첩은 폭발피해 +40%와 15초마다 근처 적 위치 운석 낙하, 4중첩은 폭발피해 +100%와 운석피해 +70%, 7중첩은 폭발피해 +200%와 운석피해 +200%가 발동한다. 운석 피해는 범위피해/폭발피해 태그를 가진다.
- 가방 탭의 가방창 위에는 현재 가방 공간에 유효 배치된 아이템/룬이 가진 시너지 목록창이 있다.
- 시너지 목록창은 좌우 스크롤이며, 각 칸은 아이콘, 아이콘 아래 이름, `현재 중첩/다음 또는 현재 조건` 숫자를 표시한다.
- 중첩 효과가 아직 활성화되지 않은 시너지는 흑백으로 표시하고, 조건을 만족한 시너지는 고유 색상으로 표시한다.
- 선택 정보창의 물건 시너지는 아이콘과 아이콘 아래 이름으로 표시한다.
- 인벤토리의 아이템 및 룬 설명에 표시된 시너지 아이콘을 누르면 시너지 설명창이 열린다.
- 도감에서는 이미 설명창을 제공하므로 도감 내부 시너지 아이콘은 별도 팝업을 열지 않는다.
- 바닥에 드랍된 아이템/룬 설명창에도 해당 물건의 시너지를 작은 아이콘과 이름으로 표시한다.
- 시너지 설명창은 닫기 버튼 또는 설명창 밖 터치로 닫힌다.
- 도감의 `시너지` 탭에서는 현재 등록된 모든 시너지와 중첩별 효과를 카드 형태로 확인하고, 아래로 스크롤해 해당 시너지를 가진 아이템/룬 목록을 볼 수 있다.
- 히유 탭에서는 플레이어 스탯만 확인하고, 활성 시너지와 효과는 표시하지 않는다.

아이템 예:

- 지휘자의 지팡이: 소환수 피해/체력 증가.
- 감염: 중독 적이 주변 적에게 지속피해.
- 어두운 별: 혼돈 스택 적 수에 비례해 공격력 증가.
- 칼날폭풍: `범위:소용돌이` 공격 시 칼날 투사체 발사.
- 열쇠: 잠긴 상자 개봉에 사용.
- 무(유기농): 먹으면 HP 회복 또는 손실, 무 소환수 피해 영구 증가.
- 황금 칼날: 치명타확률과 탐욕 증가. 치명타 시 낮은 확률로 작은 골드 오브 생성.
- 붉은 반지: 피해를 받을 때 혈석 회복이 발동하면 20% 확률로 혈석을 소모하지 않는다. 혈석/고통 시너지를 가진다.
- 낡은 행운 동전: 피해 증가. 행운 시너지를 가진다.
- 푸른 부채: 파동피해 증가, 파동 공격 크기 증가.
- 작은 돌고래: 최대 MP와 이동속도 증가.
- 녹지않는 눈덩이: 마법서/서리 시너지. 기본공격시 `(10+행운스탯의 40%)%` 확률로 시전방향에 마법/얼음속성 눈덩이를 발사.
- 불안정한 불씨: 화염술사/행운/광폭의 별 시너지. 화염속성 피해 15% 증가, 화염 디버프 피해 발생 시 `(20+행운스탯 20%)%` 확률로 대상이 작게 폭발해 폭발/범위/화염 태그 광역피해를 준다.
- 번뜩이는 유리 파편: 감전/푸른 빛 시너지. 최대 MP +10, MP 회복 +8%.
- 마나 회로: 푸른 빛/공명/감전 시너지. 마나 +20, 쿨타임감소 10% 증가.
- 금서: 깨어난자/공명 시너지. 자신이 보유한 혼돈 스택당 치명타 피해 +5% 증가.
- 불의 구: 화염피해 증가. 플레이어 주위를 도는 화염 구체가 접촉 적에게 화염피해와 화염 스택을 준다.

## 12. 테스트룸

- 테스트룸 창에서 플레이어 스탯 조절 패널로 최대 HP/마나/스테미나, 피해량, 방어력, 공격속도, 치명타, 속성/태그 피해, 소환수 관련 스탯을 즉시 증감/초기화할 수 있다.

테스트룸은 실제 게임 진행과 분리된 실험 공간이다.

구조:

- 메인방: 넓은 안전 구역. 좌측 아이템, 상단 무기, 우측 NPC, 하단 룬 정렬.
- 옆 전투방: 오브젝트와 장애물이 있는 넓은 전투 테스트 방.
- 이벤트 테스트 방: 우측 1x1 방과 입구. 방 밖 이벤트 테스트 NPC가 있고, 대화 선택지로 이벤트를 불러온다.

테스트룸 UI:

- 스크롤 가능한 테스트룸 패널.
- 고정 더미, 투사체 더미, 전투 더미, 일반 적, 보스, 오브젝트, 보상상자 등 소환.
- 인벤토리 도감의 아이템/룬/무기 설명창에서 선택한 물건을 플레이어 근처 바닥에 즉시 소환할 수 있다.
- 새 몬스터를 추가하면 테스트룸 소환 목록에 반드시 추가한다.
- 보상상자는 일반/희귀/영웅/신화/전설 등급별 생성 가능.

## 13. 그래픽/리소스

- 기본 스타일은 픽셀아트 던전 RPG.
- 폰트는 `DungGeunMo.woff2`.
- 코인 이미지는 `assets/icons/gold.png`.
- 마나 오브와 마나 소모량 아이콘은 `assets/icons/mana.png`.
- 메인 배경은 `assets/menu/main-bg.jpg`.
- 히유 플레이어는 `assets/player/hiu/idle-*.png`, `walk-*.png` 4프레임 애니메이션을 사용한다.
- 히유는 우측을 향할 때 스프라이트를 좌우 반전한다.
- 대화창의 히유 초상화는 항상 좌측, NPC/적 초상화는 우측.

이미지 교체 규칙:

- 실제 PNG/GIF를 넣을 때는 `assets/` 하위에 역할별 폴더를 만든다.
- 다른 사람에게 전달할 때는 `index.html`만 주면 안 되고 전체 폴더 또는 zip을 제공한다.
- 아이템 PNG를 정식 도입하면 현재 수동 히트박스 대신 알파 마스크 기반 판정을 고려한다.

## 14. 앞으로 작업 우선순위

1순위:

- 신규 적/보스 공격이 항상 패링 가능 경로를 타도록 구조 점검.
- 전투 중 렉: 투사체 증가 룬, 다중 파티클, 가방 UI 렌더링 최적화.
- 무기 룬 장착이 임의로 풀리는 원인 추적.
- 모바일 실기에서 테스트룸/인벤토리/도감 스크롤과 버튼 중복 터치 확인.

2순위:

- 이벤트방 실제 이벤트 확장.
- 챕터/방/웨이브 난이도 테이블 세분화.
- 상점 가격, 보상상자, 골드/마나 수급 밸런스.
- 적 AI별 역할 차별화.
- 튜토리얼 이후 실제 던전 진입 흐름 강화.

3순위:

- `Game` 비대화 해소. 무기 스킬, 이펙트, 상점, 이벤트를 독립 모듈로 점진 분리.
- 도감/무기 정보창 자동화 강화.
- 아이템 히트박스와 이미지 리소스 파이프라인 정리.
- 사운드/효과음 도입.

## 15. 작업 규칙

- 정상 작동 중인 기능을 임의로 재작성하지 않는다.
- 한 요청에서 필요한 파일만 읽는다.
- 새 기능은 기존 책임 파일에 넣되, 커질 기능은 새 파일로 분리한다.
- JS 수정 시 수정 파일 `node --check`를 수행한다.
- 게임 실행물이 바뀌면 버전을 올리고 `Hiu_Dungeon_(수정버전).zip`을 재생성한다.
- 문서만 수정한 경우 게임 버전과 zip은 기본적으로 건드리지 않는다.
- 새 아이템은 `js/data/01-bag-items.js`의 `RUNE_DEFS`에 정의하고, 외형/정확한 히트박스가 필요하면 같은 파일의 `BAG_ITEM_GEOMETRY`에도 추가한다.
- 새 시너지는 `js/data/05-synergies.js`의 `SYNERGY_DEFS`, `SYNERGY_TAG_PRIORITY`, `getSynergyTagsForItem()`을 함께 갱신한다.
- 시너지 아이콘이 기존 시트 번호라면 `assets/icons/synergy/synergy_번호.png`를 사용하고, 새 첨부 이미지라면 `assets/icons/synergy/` 아래에 의미 있는 이름으로 저장한다.
- 새 보너스 키를 추가할 때는 `createEmptyRuneBonuses()`에 기본값을 넣고, 실제 전투/스탯/상태이상 계산 경로에서 해당 값을 읽도록 연결한다.
- 보너스 키가 피해량에 영향을 주면 히유 스탯, 무기 정보, 도감 설명 중 필요한 위치에 표시되는지 확인한다.
- 시너지 효과는 기존 구조상 중첩 단계가 누적되는 것이 아니라, 현재 중첩에서 만족하는 가장 높은 단계 하나가 적용된다.
- 새 몬스터/무기 공격은 `takeDamage`, `EnemyProjectile`, `damageHostileTargetsInCircle`, `damageHostileTargetsOnSegment`, `damageTagOptions(...)` 같은 기존 피해 경로를 사용한다.
- 직접 HP를 깎는 방식은 패링, 무적, 방어, 피해 태그, 보스 강인도 시스템을 우회하므로 금지한다.
- 새 콘텐츠를 추가하면 도감, 상점/보상 자동 풀, 테스트룸 또는 이벤트 테스트방에서 확인 가능한지 같이 점검한다.
- 변경 후 최종 응답에는 변경 요약, 수행 검증, 실행 링크와 다운로드 파일 링크를 포함한다.
