# Skybound Stage Miniboss Pattern Differentiation

작성일: 2026-04-26 09:44 KST

## 요청 요약

- 미니보스 보상 루프 다음 단계로, 8개 스테이지마다 미니보스 전투 패턴을 다르게 만든다.
- `Command Cache`를 얻는 과정 자체가 작은 보스전처럼 느껴지게 한다.
- 스테이지가 올라갈수록 압박 방식이 달라져 반복감을 줄이고, 플레이어가 이동/회피/빌드 선택을 더 의식하게 만든다.

## 핵심 방향

기존 미니보스는 내부적으로 `ELITE + COMMANDER`에 가까웠고, 일반 적 사격 규칙을 타고 있었다. 그래서 미니보스를 처치하면 보상은 의미 있어졌지만, 전투 자체는 “체력이 많은 엘리트”처럼 느껴질 위험이 있었다.

이번 변경은 미니보스를 아래 역할로 재정의한다.

1. 각 스테이지 중반의 작은 실력 체크
2. 스테이지 기믹을 미리 보여주는 압박 패턴
3. `Command Cache` 보상을 얻기 위한 전투 목표
4. 보스전 전 빌드가 충분한지 검증하는 중간 관문

## 적용한 변경

### 미니보스 패턴 타입 추가

`SystemEnemy`에 미니보스 전용 패턴 상태를 추가했다.

- `miniBossPattern`
- `miniBossTimer`
- `miniBossCooldown`
- `miniBossDashFrames`
- `miniBossActionSeed`
- `dashTargetX`
- `dashTargetY`

일반 적 AI에는 영향을 주지 않고, `isMiniBoss`가 true인 적만 전용 이동/사격 로직을 사용한다.

### 스테이지별 패턴 매핑

`SpawnerSystem`에서 현재 스테이지에 따라 미니보스 패턴을 자동 부여한다.

- Stage 1: `DUELIST`
- Stage 2: `DASH_RAIDER`
- Stage 3: `DRONE_CALLER`
- Stage 4: `BARRAGE_WALL`
- Stage 5: `MINE_LAYER`
- Stage 6: `DRONE_RING`
- Stage 7: `BLINK_SNIPER`
- Stage 8: `OMEGA_COMMANDER`

### 전용 이동 AI 추가

`CombatSystem`에서 미니보스는 기존 `role` 기반 AI 대신 `updateMiniBossAI`를 탄다.

패턴별 이동/행동은 다음과 같다.

- `DUELIST`: 플레이어 x축을 따라가며 기본 팬샷 압박
- `DASH_RAIDER`: 짧은 예고 후 플레이어 방향으로 돌진
- `DRONE_CALLER`: 좌우에 스팅어 호위기를 주기적으로 소환
- `BARRAGE_WALL`: 화면 가로 라인을 오가며 안전 구멍이 있는 탄막벽 생성
- `MINE_LAYER`: 플레이어 근처에 위험 구름/지뢰형 압박 구역 생성
- `DRONE_RING`: 헌터 호위기와 링 탄막으로 공간 압박
- `BLINK_SNIPER`: 위치를 순간이동하며 빠른 저격 탄을 발사
- `OMEGA_COMMANDER`: 팬샷, 링 탄막, 지뢰, 블링크를 순환하는 최종형 미니보스

### 전용 사격 패턴 추가

`spawnMiniBossBulletPattern`을 추가해 미니보스 사격을 일반 적과 분리했다.

- 팬샷
- 빠른 저격탄
- 링 탄막
- 안전 구멍이 있는 라인 탄막
- 느린 중력/지뢰형 탄
- 최종 스테이지 혼합 패턴

스테이지가 올라가면 탄 수와 쿨다운이 자연스럽게 강해진다.

## 설계 의도

이번 변경은 “보상을 얻는 과정”을 재미있게 만들기 위한 작업이다.

이전 구조:

- 미니보스 등장
- 체력이 많은 적을 처치
- 보상 선택

변경 후 구조:

- 스테이지별 다른 압박을 가진 미니보스 등장
- 사용자는 이동/회피/빌드 강점을 이용해 작은 보스전을 해결
- 처치하면 `Command Cache`를 열고 빌드를 강화
- 다음 구간을 버틸 준비가 된다

이렇게 하면 미니보스가 단순 보상 트리거가 아니라, 스테이지 리듬의 핵심 이벤트가 된다.

## 수정 파일

- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/CombatSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/SpawnerSystem.ts`
- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts`

## 검증

- `npm run build` 성공
- Vite 경고: `/sprites/player.png referenced in /sprites/player.png didn't resolve at build time`
- 위 경고는 기존 런타임 경로 경고이며 이번 변경으로 인한 빌드 실패는 아니다.

## 후속 작업 제안

- 실제 플레이에서 Stage 4 `BARRAGE_WALL`과 Stage 7 `BLINK_SNIPER`의 탄속/쿨다운을 체감 기준으로 조정한다.
- 미니보스 등장 시 패턴 이름을 더 상품성 있는 경고 문구로 표시한다.
- 미니보스별 외형 색상, 엔진 이펙트, 코어 형태를 패턴에 맞게 분리한다.
- `Command Cache` 오픈 전 0.5초 컷인 연출을 추가해 전투 승리 보상감을 더 강화한다.
