docs: add detailed process log for combat progression implementation

This commit is contained in:
2026-04-22 13:22:51 +09:00
parent d1e9709b14
commit a3a8d4db18
@@ -0,0 +1,65 @@
# 작업 과정 로그 (Process Log): Event Pass & Nova Burst 시각화 구현
## 🗓️ 날짜: 2026-04-22
## 👤 담당: Antigravity (AI Coding Assistant)
---
## 1. 요구사항 분석 및 아키텍처 탐색 (Analysis)
### 🔍 분석 대상
- `useGameEngine.ts`: 엔진의 메인 루프와 외부 API(Store) 연결부.
- `StageDirectorSystem.ts`: 스테이지 페이즈(Boss, Stage Clear) 관리 주체.
- `GameRenderer.ts`: Canvas 2D 렌더링 최상위 클래스.
- `ModularWeaponSystem.ts`: 스킬 로직 처리부.
### 🚩 발견된 문제점
- **이벤트 연결 누락**: `addEventPassPoints` 함수는 스토어에 정의되어 있었으나, 실제 인게임 이벤트(보스 처치, 클리어) 발생 시 호출되는 로직이 부재함.
- **렌더링 레이어 분리**: `ModularWeaponSystem`은 물리/데미지 로직만 처리하며, `GameRenderer`는 상태(State) 기반으로만 그려야 함. 즉, "방금 폭발함"이라는 정보를 전달할 매개체가 필요했음.
---
## 2. 해결 전략 수립 (Strategy)
### 💡 포인트 지급 전략
- **보스 처치**: 이미 존재하는 `PERMANENT_REWARD` Intent를 재활용. Intent 핸들러에서 Gold와 Pass Point를 동시에 지급하도록 수정하여 코드 중복 방지.
- **미션 클리어**: `StageDirectorSystem``STAGE_CLEAR` 페이즈 전환 시 `phaseTimer === 1` 조건을 활용하여 딱 한 번만 포인트를 지급하는 'Atomic Trigger' 방식 채택.
- **런 실패**: `useGameEngine`의 사망 루프에서 런 타임(프레임)을 포인트로 환산하여 지급.
### 💡 시각화 전략 (Signal Pattern)
- `ModularWeaponSystem``novaBurstRingEffect`라는 임시 객체를 `state`에 기록.
- `GameRenderer`가 매 프레임 이 객체가 있는지 확인하고, 있으면 20프레임 동안 애니메이션 처리 후 스스로 타이머를 깎아 소멸시키는 'Auto-decay Signal' 패턴 적용.
---
## 3. 구현 단계 (Execution)
### Step 1: 통신 채널 확장
- `stateMachine.ts``PhaseTransitionContext` 인터페이스를 확장하여 `addEventPassPoints` 콜백을 주입할 준비를 마침. (추후 리팩토링 대비)
### Step 2: 실제 로직 주입
- `useGameEngine.ts` 내 Intent 핸들러 수정.
- `StageDirectorSystem.ts` 내 클리어 보상 로직 추가.
- `useGameEngine.ts` 내 사망 보상 로직 추가.
### Step 3: 프리미엄 시각 효과 구현
- `GameRenderer.ts`에 4단계 레이어(링, 보조 링, 플래시, 스파이크) 렌더링 로직 작성.
- `ModularWeaponSystem.ts`에서 폭발 시점에 신호(Signal) 발생 코드 삽입.
---
## 4. 검증 및 배포 (Verification & Sync)
### ✅ 기술 검증
- `npx tsc --noEmit`을 통한 타입 안정성 확인.
- PowerShell 권한 이슈 발생 시 즉시 `cmd /c`로 전환하여 작업 중단 방지.
### ✅ 기록 및 동기화
1. **Skybound Repo**: 코드 커밋 및 푸시 (`226eb7c`).
2. **Wiki Repo (RAW)**: 작업 내용 요약(`2026-04-22_EventPass_NovaBurst_Renderer.md`) 및 본 과정 로그 기록.
3. **Wiki Repo (Sync)**: 모든 문서를 원격 저장소에 Push 하여 대표님(User)과 공유.
---
## 🧐 부장님(코다리) 한마디 😎
"단순히 코드만 짜는 게 아니라, 왜 이렇게 짰는지 흐름을 기록하는 것이 진짜 엔지니어링이지! 🫡 시스템은 기록으로 증명된다. 🐟"