chore: resolve merge conflicts and sync sporty&rich meeting minutes

This commit is contained in:
2026-04-29 18:09:09 +09:00
12 changed files with 456 additions and 3 deletions
@@ -0,0 +1,66 @@
# 🛡️ Skybound: Boss Battle System & Damage Architecture
## 1. Design Philosophy (설계 철학)
Skybound의 보스전은 **'예측 가능한 위협'**과 **'극복하기 힘든 압박'** 사이의 균형을 지향합니다. 유저에게 단순한 슈팅을 넘어, 패턴을 파악하고 최적의 회피 경로를 찾는 '전술적 재미'를 제공하는 것이 핵심입니다.
## 2. Core Damage & Shield System (데미지 체계)
### 📊 기체별 피탄 감쇄율 (Damage Multiplier)
플레이어 기체의 장갑(Shield) 특성에 따른 데미지 적용 계수입니다.
| 플레이어 기체명 | 탄환 피탄 시 (Projectile) | 충돌 시 (Collision/Crash) |
| :--- | :---: | :---: |
| **아즈마 (Azuma)** | 17% 감소 | 34% 감소 (2x) |
| **스피릿 오브 드래곤** | 13% 감소 | 26% 감소 (2x) |
| **물랑 루즈 (Mulang Rouge)** | 20% 감소 | 40% 감소 (2x) |
> [!IMPORTANT]
> 모든 **충돌(Collision)** 데미지는 탄환 피탄 데미지의 정확히 **2배**를 적용하는 것을 원칙으로 합니다.
## 3. Architecture: Boss Implementation Schema
새로운 보스 추가 시 `BossDefinition` 인터페이스를 반드시 준수해야 합니다.
### 🧬 Boss Definition Interface
```typescript
interface BossDefinition {
id: string; // 예: 'STAGE_01_PLATON'
name: string; // 보스 명칭
totalPhases: number; // 총 형태 수
phases: Array<{
phaseIndex: number; // 1, 2, 3...
description: string; // 페이즈 특징
attackPatterns: Pattern[];
transformationTrigger: string | null;
}>;
warningSequence: {
audioSfx: string; // 경고음 ID
cameraEffect: 'ZOOM_IN' | 'SHAKE';
};
}
```
## 4. Stage-specific Boss Registry (스테이지별 보스 명세)
| 스테이지 | 보스명 | 페이즈 | 주요 패턴 요약 |
| :--- | :--- | :---: | :--- |
| **Stage 1** | 플라톤 (Platon) | 2 | 기생기 소환, 본체 정밀 사격 |
| **Stage 2** | 그레이트 혼 | 2 | 드릴/돌덩이 투척, 전방 돌진 |
| **Stage 3** | 크라켄 (Kraken) | 3 | 함선 변형, 고속 방사, 잠수 미사일 |
| **Stage 4** | 스파이스 버드 | 2 | 광역 조준탄, 본체 분리(호버 탱크) |
| **Stage 5** | 블로우 오브 호른 | 3 | 록온 레이저, 중앙 코어 거대 레이저 |
| **Stage 6** | 쉬프트 메시아 | 3 | 열차 와인더 탄줄, CIWS 개틀링, 합동 공격 |
| **Stage 7** | 콜로니 엔젤 | 3 | 다리 파괴 시퀀스, 초고속 이중 회전 탄줄 |
| **Stage 8** | 최종 보스 | 3 | 험프티 덤프티 / 디바인 램파트 (무기 Lv.10 조건) |
## 5. Difficulty Scaling Mechanism (난이도 조절)
### 📈 제어 요소
- **Bullet Density**: `Pattern.complexity` 값을 통해 회피 공간(Safe Zone) 조절.
- **Pattern Layering**: 페이즈가 진행됨에 따라 [단일 방향] -> [다방향/물리방해] -> [환경제약]으로 고도화.
- **Attack Frequency**: `Cooldown` 단축을 통한 압박 타이밍 제어.
---
**Related Cluster**: [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter & Timeline Design]]
**Last Audit**: 2026-04-23
@@ -0,0 +1,33 @@
# 🕵️ Skybound: Boss Combat Stability Fix Log (2026-04-23)
## 1. Issue Overview (이슈 개요)
- **Problem**: 보스 기체의 체력이 0이 되었음에도 불구하고 파괴되지 않고 게임이 정지되거나, `STAGE_CLEAR` 페이즈로 전환되지 않는 결함 발생.
- **Occurrence**: 특정 페이즈(BOSS_INTRO) 또는 특정 무기 조합에서 보스 처치 시 간헐적 발생.
## 2. Root Cause Analysis (원인 분석)
### 🔍 Logical Flaws
1. **Scope Restriction**: 기존 사망 판정 로직이 `BOSS` 페이즈 내부에만 존재하여, `BOSS_INTRO` 연출 도중 보스가 파괴될 경우 이를 감지하지 못함.
2. **Entity Lifecycle**: 보스 엔티티 파괴 후에도 `state.boss` 참조가 남아있어, 렌더러와 AI 시스템이 유령 객체를 계속 업데이트하려고 시도함.
3. **HUD Desync**: 보스의 실제 HP와 HUD의 게이지 바 업데이트 주기가 일치하지 않아 유저에게 혼동을 줌.
## 3. Implemented Fixes (수정 사항)
### 🛠️ Core Engine Modification
- **Unified Death Check**: `StageDirectorSystem.checkBossDefeat()` 메서드로 로직을 통합하여 모든 보스 관련 페이즈에서 사망을 실시간 감지하도록 수정.
- **Explicit Nullification**: 보스 파괴 즉시 `state.boss = null`을 수행하여 시스템의 불필요한 참조를 원천 차단.
- **Feedback Reinforcement**:
- 보스 사망 시 8개의 순차적 폭발(`Explosion`) 생성.
- 화면 흔들림(`SHAKE`) 강도 증가 및 지속 시간 조정.
### 📊 HUD Synchronization
- `useGameEngine.ts` 루프 내에 HP 퍼센트(`hp / maxHp`) 동기화 로직 추가.
## 4. Verification (검증 결과)
- **Test Case 1**: 보스 등장 애니메이션 도중 처치 시 정상적으로 스테이지 클리어 전환 확인. (Pass)
- **Test Case 2**: 보스 사망 후 렌더러의 Null 참조 에러 발생 여부 확인. (Pass)
- **Test Case 3**: HUD HP 바 실시간 동기화 확인. (Pass)
---
**Related Cluster**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|Stability & Optimization]]
**Status**: Resolved & Wikified 🫡