docs: sync recent Combat Progression and Stat Injection mechanics to Wiki
This commit is contained in:
BIN
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
# [LOG] All Repositories Update (Full Sync)
|
||||
|
||||
- **작업 일시**: 2026-04-22
|
||||
- **작업 내용**: 4개 주요 프로젝트 거점(`2nd`, `skybound`, `Legal`, `Agent`)에 대한 원격 저장소 동기화(`git pull`).
|
||||
- **이유/목적**: 로컬 작업 환경을 최신 상태로 유지하여 개발 및 문서화 작업 시 발생할 수 있는 충돌을 방지하고 코드 정합성을 확보하기 위함.
|
||||
- **기대값**:
|
||||
1. 모든 로컬 브랜치가 최신 원격 브랜치(`main`)와 동기화됨.
|
||||
2. 동기화 과정에서 에러 및 수동 충돌 해결 작업 0건 유지.
|
||||
- **처리 과정**:
|
||||
1. `2nd` (Wiki): `git pull lm_sync main` 진행 -> 최신 상태 확인.
|
||||
2. `skybound`: `git pull origin main` 진행 -> 최신 상태 확인.
|
||||
3. `Legal`: `git pull origin main` 진행 -> 최신 상태 확인.
|
||||
4. `Agent`: `git pull origin main` 진행 -> 최신 상태 확인.
|
||||
- **사용 지식**:
|
||||
1. Git Remote Operations (`git pull`)
|
||||
2. Local Git Mapping Protocol (신규 수립 지침)
|
||||
- **결과**:
|
||||
* 4개 프로젝트 모두 성공적으로 `Already up to date` 또는 최신 커밋 반영 완료.
|
||||
* 작업 경로 및 리모트 명칭(lm_sync vs origin) 혼선 없이 처리됨.
|
||||
- **연결 지식 (Relevant Knowledge)**:
|
||||
* [[E:\Wiki\2nd\10_Wiki\Topics\03_DevOps_Environment]] (데브옵스 및 환경 구성)
|
||||
* [[E:\Wiki\2nd\10_Wiki\Topics\Automation]] (작업 자동화)
|
||||
|
||||
---
|
||||
**작성자**: AI 개발부장 코다리 🫡
|
||||
@@ -0,0 +1,66 @@
|
||||
# 작업 로그: Combat Level Design — Time-Based Difficulty Scaling 구현
|
||||
|
||||
## 📋 작업 내용 (What)
|
||||
"전투 타임라인 & 난이도 프로토콜" 설계안을 기반으로 Skybound 프로젝트의
|
||||
StageDirectorSystem, SpawnerSystem, EngineProtocol을 업그레이드하고,
|
||||
신규 CombatTimeline 설정 파일을 추가함.
|
||||
|
||||
## 🎯 왜 했는지 (Why)
|
||||
기존 스테이지 시스템의 문제점:
|
||||
- StageDirectorSystem: 하드코딩된 `if frame >= X` 체이닝, 새 phase 추가 불가
|
||||
- SpawnerSystem: 완전 무작위 스폰 → 스파이크 없음, 긴장감 없음
|
||||
- 난이도 곡선 부재: 적 HP 단순 배율만 존재, 밀도/타이밍 변화 없음
|
||||
- Death Trap 발생 가능: EVO 준비 없이 Spike 구간 진입
|
||||
|
||||
## 💡 기대값 (Expected Value)
|
||||
- 시간(초) 기반 스크립티드 웨이브 등장 (STANDARD 15분 / BLITZ 8분)
|
||||
- 페이즈별 difficultyMult / spawnIntervalMult 자동 동기화
|
||||
- Spike 30초 전 자동 EXP 젬 밀도 2배 부스트 (Death Trap Avoidance)
|
||||
- 스웜 구간에서 최대 6유닛씩 3프레임 간격 분산 스폰 (성능 보장)
|
||||
- 보스 처치 후 영구 성장 보상 발행 (UX Continuity)
|
||||
- TypeScript 에러 0개
|
||||
|
||||
## 🔧 처리 과정 (How)
|
||||
|
||||
### 1. CombatTimeline.ts (신규 생성)
|
||||
- StageMode: STANDARD(15분) / BLITZ(8분)
|
||||
- DifficultyPhase: name, startSec, diffMult, spawnIntervalMult, maxEnemyCount, bgmCue
|
||||
- WaveTrigger: triggerSec, enemyType, density, isSpike, eventEffect, comms, shake
|
||||
- STANDARD_TIMELINE: 5개 페이즈, 15개 WaveTrigger (Spike 4회)
|
||||
- BLITZ_TIMELINE: 5개 페이즈, 10개 WaveTrigger (Spike 6회)
|
||||
- 유틸 함수: getActivePhase(), collectDueTriggers(), getTimeline()
|
||||
|
||||
### 2. StageDirectorSystem.ts (전면 재작성 v2.0)
|
||||
- tickTimeline(): 매 프레임 currentSec = frame/60로 getActivePhase() 및 collectDueTriggers() 호출
|
||||
- 페이즈 자동 전환: activePhase.name !== phase일 때 STAGE_TRANSITION 인텐트 발행
|
||||
- difficultyMult / tensionLevel: activePhase.diffMult + densityFactor로 자동 동기화
|
||||
- EXP 밀도 부스트: 다음 Spike까지 30초 이내 시 EXP_DENSITY_BOOST 인텐트 발행
|
||||
- processTriggers(): WaveTrigger → 이벤트(COMMS, SCREEN_SHAKE) + SCRIPTED_SPAWN 인텐트
|
||||
- UX Continuity: 보스 처치 시 PERMANENT_REWARD 인텐트 발행
|
||||
|
||||
### 3. SpawnerSystem.ts (전면 재작성 v2.0)
|
||||
- notifyScriptedSpawn(): Director로부터 스폰 요청 수신 (메서드 호출 방식)
|
||||
- flushSpawnQueue(): 큐 소비 + MAX_ENEMIES_HARD_CAP(=30) 보호막
|
||||
- activateSwarmBurst(): SWARM_BURST 모드 활성화
|
||||
- tickSwarmBurst(): MAX_SWARM_BATCH(=6), SWARM_SPAWN_GAP(=3프레임) 분산 스태거링
|
||||
- 절차적 스폰: difficultyMult 기반 간격 계산, 타임라인 간격 채우기 보조 역할
|
||||
- dispose(): 큐 + 버스트 상태 초기화
|
||||
|
||||
### 4. EngineProtocol.ts (확장)
|
||||
- SCRIPTED_SPAWN, SPAWN_MODE, EXP_DENSITY_BOOST, PERMANENT_REWARD 인텐트 타입 추가
|
||||
|
||||
## 🧠 사용한 지식 (Knowledge Used)
|
||||
- Time-Based Difficulty Scaling 패턴
|
||||
- Object Pool + Staggered Spawn 패턴 (성능 최적화)
|
||||
- "Death Trap Avoidance" 게임 디자인 원칙
|
||||
- "UX Continuity" 실패 보상 설계
|
||||
- TypeScript discriminated union (EngineIntentType)
|
||||
- Observer → Direct Method Call 결정 (EventBus 미도입 상태에서의 최적 통신 방식)
|
||||
|
||||
## ✅ 결과 (Result)
|
||||
TypeScript 에러 0개 — `npx tsc --noEmit` 클린 통과
|
||||
|
||||
## 🔗 연결 지식 (Relevant Knowledge)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (Difficulty Curve, Spike Design, Time-Based Scaling)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Intent Protocol, Event-Driven)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Performance-Optimization (Staggered Spawn, Object Pooling)
|
||||
@@ -0,0 +1,98 @@
|
||||
# [RAW LOG] 2026-04-22 — Crafting System Full Activation
|
||||
|
||||
## 작업 개요
|
||||
- 날짜: 2026-04-22
|
||||
- 세션: Skybound Crafting Economy Full Integration (Option B)
|
||||
- Git: `facb2ba` → `9e0110d`
|
||||
|
||||
---
|
||||
|
||||
## 1. 감사 결과 (진단)
|
||||
|
||||
| 항목 | 이전 상태 |
|
||||
|------|----------|
|
||||
| `mergeEquipment()` | ✅ HangarOverlay에서만 연결됨 |
|
||||
| `cosmicCast()` | ❌ 호출처 없음 |
|
||||
| `astralForge()` | ❌ 호출처 없음 |
|
||||
| `disassemble()` | ❌ 호출처 없음 |
|
||||
| `mergeTechPart()` | ❌ 호출처 없음 |
|
||||
| `techParts`, `materials` 상태 | ❌ 선언만 있고 실제 데이터 입출력 없음 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 구현 내역
|
||||
|
||||
### A. `useGameStore.ts` — 크래프팅 액션 전면 활성화
|
||||
- `addMaterials(mats)`: TechMats/Core 획득 시 상태 누적
|
||||
- `addTechPart(part)`: 드롭된 TechPart 인벤토리 추가
|
||||
- `disassembleItems(ids)`: 선택 아이템 일괄 분해 → 재료 획득 + 슬롯 해제
|
||||
- `cosmicCastAction()`: 재료(Eternal×50, Destruction×50, Tech×2000) 소모 → SS급 장비 생성
|
||||
- `astralForgeAction(targetId, sacrificeId)`: LEGEND/SS 대상 + S급 희생 → forgeLevel +1
|
||||
- `mergeTechPartAction(targetId, fodderIds)`: 동일 티어/스킬 TechPart 합성 → plusLevel +1
|
||||
|
||||
### B. `HangarOverlay.tsx` — 5탭 크래프팅 UI 전면 재작성
|
||||
| 탭 | 기능 |
|
||||
|----|------|
|
||||
| 🔩 EQUIP | 기존 장착 슬롯 + 인벤토리 |
|
||||
| ⬆ MERGE | 장비 합성(3개) + TechPart 합성(2개) |
|
||||
| 🔧 DISASSEMBLE | 선택 아이템 분해 + 재료 미리보기 |
|
||||
| ✦ COSMIC CAST | SS급 제작 재료 요구량 체크 + 실행 |
|
||||
| ⚒ FORGE | TARGET/SACRIFICE 슬롯 선택 → forgeLevel +1 |
|
||||
|
||||
- 재료 패널(TechMats, Eternal, Destruction, Relic)을 좌측 패널에 항상 표시
|
||||
- Feedback Toast: 성공/실패 3초 표시
|
||||
|
||||
### C. `HangarOverlay.css` — 새 스타일 추가
|
||||
- `.craft-tabs`, `.craft-tab-btn` — 5탭 네비게이션
|
||||
- `.materials-panel`, `.mat-grid` — 재료 표시
|
||||
- `.disassemble-preview` — 분해 미리보기 패널
|
||||
- `.cosmic-recipe`, `.cosmic-result-preview` — 코스믹 캐스트
|
||||
- `.forge-slots`, `.forge-slot-box` — 포지 슬롯 UI
|
||||
- `.craft-feedback` — 피드백 토스트 애니메이션
|
||||
- `.tech-list`, `.tech-row` — TechPart 목록
|
||||
|
||||
### D. `CombatSystem.ts` — 재료 드롭 연결
|
||||
- 일반 적: 3% 확률 TechMats 10~30 획득
|
||||
- 엘리트 적: 10% 확률 TechMats 50~100 획득 + 파란 텍스트 알림
|
||||
- 엘리트 적: 5% 확률 TechPart 드롭 → 보라색 텍스트 알림
|
||||
|
||||
### E. `LootGenerator.ts` — `rollTechPart()` 신규 추가
|
||||
- 6종 스킬 풀: fire_rate / speed_boost / magnet_range / damage_up / shield / missile
|
||||
- 스테이지 연동 티어: Stage 1-2→EXCELLENT, 3-4→EPIC, 5+→LEGEND
|
||||
|
||||
---
|
||||
|
||||
## 3. 경제 흐름 (완성된 파이프라인)
|
||||
|
||||
```
|
||||
적 처치 (일반 3% / 엘리트 10%)
|
||||
↓
|
||||
addMaterials({ techMats })
|
||||
↓
|
||||
HangarOverlay [DISASSEMBLE 탭] → 불필요 장비 분해 → Eternal/Destruction Core 획득
|
||||
↓
|
||||
HangarOverlay [COSMIC CAST 탭] → 코스믹 캐스트 → SS급 장비 생성
|
||||
↓
|
||||
HangarOverlay [FORGE 탭] → SS/LEGEND 장비 forgeLevel +1~5
|
||||
|
||||
엘리트 처치 (5%)
|
||||
↓
|
||||
addTechPart()
|
||||
↓
|
||||
HangarOverlay [MERGE 탭] → TechPart 합성 → plusLevel +1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. TypeScript & Git
|
||||
- `npx tsc --noEmit`: **에러 0개 ✅**
|
||||
- Commit: `feat_crafting_full_ui_economy` (`9e0110d`)
|
||||
- Push: `main` ✅
|
||||
|
||||
---
|
||||
|
||||
## 5. 다음 과제 (Next Steps)
|
||||
1. **보스 처치 시 Eternal/Destruction Core 보장 드롭** 추가
|
||||
2. **코스믹 캐스트 결과 다양화** — Twin Lance 외 랜덤 SS급 풀 확장
|
||||
3. **TechPart 효과 실제 반영** — 인게임 스탯에 plusLevel 반영 로직
|
||||
4. **UI 시각 검증** — `http://localhost:5174/` 5탭 동작 확인
|
||||
@@ -0,0 +1,27 @@
|
||||
# [LOG] Git Operation Mapping Protocol & Work Log System Setup
|
||||
|
||||
- **작업 일시**: 2026-04-22
|
||||
- **작업 내용**: 구역별 Git 명령어 맵핑(Wiki, Skybound, Legal, Agent) 및 작업 자동 기록 시스템(Work Log) 수립.
|
||||
- **이유/목적**: 대표님의 명령 한마디로 복잡한 Git 작업을 정확한 경로와 저장소에 수행하고, 모든 AI 작업 과정을 체계적으로 문서화하여 누락 없는 히스토리 관리를 하기 위함.
|
||||
- **기대값**:
|
||||
1. Git 작업 시 경로 혼선 및 저장소 오류 0건 달성.
|
||||
2. 모든 작업의 의도, 지식, 결과가 md 파일로 축적되어 추후 지식 베이스 강화에 기여.
|
||||
- **처리 과정**:
|
||||
1. 각 프로젝트별(`2nd`, `skybound`, `Legal`, `Agent`) 현재 Git 설정 확인.
|
||||
2. 대표님 지시 URL과 로컬 설정 대조 및 필요 시 `set-url`로 업데이트.
|
||||
3. 각 폴더에 `GIT_PROTOCOL.md`를 생성하여 명문화.
|
||||
4. `E:\Wiki\2nd\00_Raw` 경로에 작업 일지 작성 시스템 가동.
|
||||
- **사용 지식**:
|
||||
* Git Remote Management (`git remote set-url`)
|
||||
* Organizational Process Assets (OPA) 구축 방법론
|
||||
* Markdown 기반 기술 문서 표준화
|
||||
- **결과**:
|
||||
* 4개 주요 거점의 Git 맵핑 완료 및 승인 대기.
|
||||
* 첫 번째 작업 로그(`2026-04-22_Git_Protocol_Setup.md`) 생성 완료.
|
||||
- **연결 지식 (Relevant Knowledge)**:
|
||||
* [[E:\Wiki\2nd\10_Wiki\Topics\04_Governance_Reliability]] (거버넌스 및 신뢰성)
|
||||
* [[E:\Wiki\2nd\10_Wiki\Topics\Automation]] (자동화)
|
||||
* [[E:\Wiki\2nd\10_Wiki\Topics\Skybound]] (프로젝트 연계)
|
||||
|
||||
---
|
||||
**작성자**: AI 개발부장 코다리 🫡
|
||||
@@ -0,0 +1,70 @@
|
||||
# 작업 로그: In-Game Level-Up & Evolution System (Phase 1~4) 전체 구현
|
||||
|
||||
## 📋 작업 내용 (What)
|
||||
Skybound 프로젝트의 인게임 레벨업 및 진화 시스템을 4개 핵심 파일에 걸쳐 완전 구현.
|
||||
|
||||
## 🎯 왜 했는지 (Why)
|
||||
기존 `ProgressionSystem.ts`에 EXP 수집, 레벨업, 진화 구조가 골격만 있었고:
|
||||
- 게임 Pause 연동이 없어 카드 선택 중에도 전투가 진행됨
|
||||
- 스킬 선택 후 엔진 내부 상태에 `(engine as any).state` 해킹으로 불완전 반영
|
||||
- EVO 스탯 적용 로직 없음, 패시브 스킬 확장 불가
|
||||
- 카드 풀 생성이 UI에서 무작위 생성되어 엔진 로직과 분리됨
|
||||
|
||||
## 💡 기대값 (Expected Value)
|
||||
- 레벨업 시 게임 완전 Pause + 3지선다 카드 표시 → 선택 후 재개
|
||||
- 스킬이 엔진 내부 state에 정확히 반영됨 (단방향 플로우)
|
||||
- 진화 조건 달성 시 EVO 이펙트 + 스탯 즉시 반영
|
||||
- TypeScript 타입 에러 0개
|
||||
|
||||
## 🔧 처리 과정 (How)
|
||||
|
||||
### 1. ProgressionSystem.ts (전면 재작성)
|
||||
- `handleLevelUp()`: ctx.setPaused(true) 호출 후 `generateSkillCards()` 결과를 LEVEL_UP 이벤트에 포함
|
||||
- `generateSkillCards()`: MAX_SKILL_SLOTS 가드, 소유 스킬 2x 가중치 Fisher-Yates 셔플
|
||||
- `applySkillSelection(ctx, skillId)`: 외부 콜백 포트 — UI에서 호출 → 엔진 state.skills 직접 업데이트 → setPaused(false)
|
||||
- `processEvolution()`: EVOLUTION_RECIPES 레지스트리 기반 스캔으로 EVO 트리거
|
||||
- `syncPassives()`: magnetRadius, speedBoost, fireRateBoost 패시브 스탯 매 프레임 동기화
|
||||
|
||||
### 2. useGameEngine.ts
|
||||
- `skillUpdaterRef` 추가: React UI → 엔진 단방향 주입 포트
|
||||
- `ctx` 선언 전 클로저 TDZ 방지를 위해 `let ctx` 패턴 사용
|
||||
- `applySkill()` 메서드 훅 반환에 추가
|
||||
|
||||
### 3. GameSceneRenderer.tsx (전면 재작성)
|
||||
- `engineRef` 패턴으로 hoisting 에러 제거
|
||||
- `handleEngineEvent`에서 `e.cards` 수신 → `levelUpCards` state 저장
|
||||
- `handleSkillSelect`: addSkill(store) + engine.applySkill(engine) 순서 보장
|
||||
- LevelUpModal에 `preGeneratedCards` prop 전달
|
||||
|
||||
### 4. LevelUpModal.tsx (전면 재작성)
|
||||
- `preGeneratedCards` prop 우선 사용 (엔진 결정론적 생성)
|
||||
- 레벨 업그레이드 표시 (Lv.N → Lv.N+1)
|
||||
- 빈 풀 처리 (Skip 옵션)
|
||||
|
||||
### 5. 타입 시스템 업데이트
|
||||
- `EffectiveStats`: `magnetRadius: number` 추가
|
||||
- `GameEvent.LEVEL_UP`: `cards: string[]` 추가
|
||||
- `createDefaultState`: `magnetRadius: 180` 초기화
|
||||
- `calculateEffectiveStats`: `magnetRadius: 180` 반환
|
||||
|
||||
### 6. AudioManager.ts
|
||||
- `playLevelUp()`: C5→E5→G5→C6 상승 아르페지오 절차형 사운드
|
||||
- `playEvoSuccess()`: 베이스 충격파 + 5음 하모닉 버스트 + 시머 레이어
|
||||
- `playSFX()` 라우팅: 'level-up', 'evo-success' → 전용 메서드
|
||||
|
||||
## 🧠 사용한 지식 (Knowledge Used)
|
||||
- JavaScript TDZ (Temporal Dead Zone): `let ctx` + closure 패턴
|
||||
- Fisher-Yates 셔플 알고리즘 (결정론적 랜덤)
|
||||
- Game Engine State-Driven Architecture (Pause Gate Pattern)
|
||||
- React useRef 패턴 (closure staleness 방지)
|
||||
- Web Audio API: OscillatorNode, BiquadFilterNode, GainNode 절차형 합성
|
||||
- TypeScript 인터페이스 확장 원칙
|
||||
|
||||
## ✅ 결과 (Result)
|
||||
**TypeScript 타입 에러 0개** — `npx tsc --noEmit` 클린 통과
|
||||
|
||||
## 🔗 연결 지식 (Relevant Knowledge)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (State Machine, Loop Design)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\TypeScript-Patterns (Closure, TDZ, Ref Pattern)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Audio-Engineering (Procedural Sound Design)
|
||||
- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Unidirectional Data Flow)
|
||||
Vendored
+37
-31
@@ -178,37 +178,43 @@
|
||||
},
|
||||
"active": "ab02d962d4144213",
|
||||
"lastOpenFiles": [
|
||||
"Topics/AI/Indian-Innovation-Models.md",
|
||||
"Topics/AI/Index-Fragmentation-Analysis.md",
|
||||
"Topics/AI/In-Context-Learning.md",
|
||||
"Topics/AI/Immersive-Sims-Deus-Ex-Thief.md",
|
||||
"Topics/AI/Immersive-Sims-Deus-Ex-Dishonored.md",
|
||||
"Topics/AI/Immersive-Sim-Design.md",
|
||||
"Topics/AI/IEEE-P36521.md",
|
||||
"Topics/AI/Hyperinflation-in-Closed-Loop-Systems.md",
|
||||
"Topics/AI/High-Performance-Organizations.md",
|
||||
"Topics/AI/High-Frequency-Trading-Models.md",
|
||||
"Topics/AI/HHH.md",
|
||||
"Topics/AI/Hebbian-Theory.md",
|
||||
"Topics/AI/Health-Informatics.md",
|
||||
"Topics/AI/HBO-Prestige-Television.md",
|
||||
"Topics/AI/GRPO.md",
|
||||
"Topics/AI/Growth-Mindset-Intervention.md",
|
||||
"Topics/AI/Goal-Misgeneralization.md",
|
||||
"Topics/AI/Geographic-Information-Systems.md",
|
||||
"Topics/AI/Gamification-Theory.md",
|
||||
"Topics/AI/Experience-Sampling-Method.md",
|
||||
"Topics/AI/Expectation-Maximization.md",
|
||||
"Topics/AI/Evolutionary-Algorithm-Design.md",
|
||||
"Topics/AI/Eudaimonia-and-Well-being.md",
|
||||
"Topics/AI/Etiology-of-Disease.md",
|
||||
"Topics/AI/Ethnographic-Research.md",
|
||||
"Topics/AI/Ethical-Decision-Making.md",
|
||||
"Topics/Design & Experience/Behavior-Driven-Development (BDD).md",
|
||||
"Topics/AI/Wicked-Problems.md",
|
||||
"Topics/AI/What-is-AI.md",
|
||||
"Topics/AI/Vocabulary-Expansion.md",
|
||||
"Topics/AI/Visual-Effects-VFX.md",
|
||||
"Topics/AI/Viral-Dynamics-and-Network-Effects.md",
|
||||
"Topics/AI/Victimhood-Narratives.md",
|
||||
"Topics/AI/Variational Autoencoders (VAE).md",
|
||||
"Topics/AI/Universal-Grammar.md",
|
||||
"Topics/AI/Universal Basic Income (UBI).md",
|
||||
"Topics/AI/Task-Management.md",
|
||||
"Topics/AI/Target-Function-Profiling.md",
|
||||
"Topics/AI/TS-Declaration-Files.md",
|
||||
"Topics/AI/TDD.md",
|
||||
"Topics/AI/Systems-Thinking.md",
|
||||
"Topics/AI/System-Theory.md",
|
||||
"Topics/AI/Synthetic-Data.md",
|
||||
"Topics/AI/Synthesized Intelligence.md",
|
||||
"Topics/AI/Synergy.md",
|
||||
"Topics/AI/Symmetry-and-Invariance.md",
|
||||
"Topics/AI/Symbols.md",
|
||||
"Topics/AI/Swarm Intelligence.md",
|
||||
"Topics/AI/Sustainability.md",
|
||||
"Topics/AI/Support.md",
|
||||
"Topics/AI/Supply-Chain.md",
|
||||
"Topics/AI/Supervised-Learning.md",
|
||||
"Topics/Web & Performance",
|
||||
"Topics/Systemic Modeling & Fun",
|
||||
"Topics/System Design & Modeling",
|
||||
"Topics/System Architecture & Simulation",
|
||||
"Topics/System Architecture & Reliability",
|
||||
"Topics/Software Reliability",
|
||||
"Topics/Software Architecture",
|
||||
"Topics/Sociology & Tech",
|
||||
"Topics/Simulation & Math",
|
||||
"Topics/Security & Reliability",
|
||||
"Topics/무제 1.canvas",
|
||||
"2nd/무제.canvas",
|
||||
"2nd/무제.base",
|
||||
"2nd",
|
||||
"10_Wiki/💡 Topics",
|
||||
"10_Wiki"
|
||||
"2nd/무제.canvas"
|
||||
]
|
||||
}
|
||||
Vendored
+1
-1
@@ -17,6 +17,6 @@
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 0.05932617187499923,
|
||||
"scale": 0.015355906606692529,
|
||||
"close": true
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
# Stat Injection and Visual Renderer Pipeline
|
||||
|
||||
Skybound 엔진은 데이터(Stats)와 로직(Systems), 그리고 표현(Renderer)을 분리하여 유연한 확장성을 제공하는 **Signal-Renderer Pattern**과 **Stat Injection Engine**을 핵심 아키텍처로 사용합니다.
|
||||
|
||||
## 1. Stat Injection Engine (V12.0)
|
||||
게임 엔진이 시작될 때나 장비를 교체할 때, 다양한 소스(기본치, 장비, 영구 업그레이드)의 데이터를 하나로 통합하여 `EffectiveStats` 객체를 생성하는 파이프라인입니다.
|
||||
|
||||
- **Data Sources**:
|
||||
- `BaseStats`: 기체별 고유 수치.
|
||||
- `EquippedItems`: 인벤토리에서 장착한 모듈의 효과.
|
||||
- `PermanentUpgrades`: 격납고에서 구매한 영구 강화 수치.
|
||||
- **Processing**: `calculateEffectiveStats` 함수가 이 모든 소스를 결합하여 런타임에 즉시 사용 가능한 최종 스탯을 산출합니다.
|
||||
|
||||
## 2. Signal-Renderer Pattern
|
||||
시스템 로직이 직접 렌더링에 관여하지 않고, 시각적 상태(Signal)를 정의한 객체를 렌더러에 전달하여 화면을 구성하는 방식입니다.
|
||||
|
||||
- **Example: Nova Burst Rendering**:
|
||||
1. `ModularWeaponSystem`에서 충격파 발생 시 `novaBurstRingEffect` 객체를 생성합니다. 이 객체에는 `isGuardian` (EVO 여부), `radius`, `opacity` 등의 데이터가 담깁니다.
|
||||
2. `GameRenderer`는 이 객체들을 순회하며 `isGuardian`이 `true`이면 황금색 팔레트를, `false`이면 기존 청록색 팔레트를 선택하여 렌더링합니다.
|
||||
- **Benefits**: 로직 수정 없이 렌더러의 색상이나 이펙트 레이어만 교체하여 다양한 비주얼 변리에 대응할 수 있습니다.
|
||||
|
||||
## 3. Visual Feedback Enhancements
|
||||
- **Dynamic Color Branching**: 스킬의 상태(Normal vs EVO)에 따라 렌더링 파이프라인에서 색상 팔레트와 파티클 밀도를 동적으로 조절합니다.
|
||||
- **Mid-Layer Rendering**: 단순한 원형 이펙트를 넘어, 3중 링 및 스파이크 레이어를 추가하여 시각적 타격감과 위용을 강화합니다.
|
||||
|
||||
## 4. Implementation Details
|
||||
- `src/features/game/utils/combatUtils.ts`: Stat Injection의 핵심 로직 구현.
|
||||
- `src/features/game/systems/GameRenderer.ts`: Signal 객체를 해석하여 Canvas에 드로잉하는 로직 관리.
|
||||
- `src/features/game/systems/ModularWeaponSystem.ts`: 렌더링용 Signal 객체 생성 및 상태 제어.
|
||||
|
||||
---
|
||||
**Status**: Managed by Skybound Protocol
|
||||
**Context**: Architecture / Graphics Engine / Stat Pipeline
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Meta-Progression and Economy Systems
|
||||
|
||||
Skybound의 성장은 단일 세션의 전투를 넘어, 영구적인 능력치 강화와 이벤트 패스를 통한 보상 획득으로 이어지는 거시적 경제 순환 구조를 가집니다.
|
||||
|
||||
## 1. Permanent Upgrades (Hangar)
|
||||
유저는 획득한 골드를 소비하여 기체의 기본 수치를 영구적으로 강화할 수 있습니다. 이 수치는 모든 새로운 게임 세션 시작 시 `EffectiveStatCalculator`를 통해 기본 스탯에 합산됩니다.
|
||||
|
||||
### 1.1 Upgrade Catalog
|
||||
- **HP_MAX**: 최대 체력을 증가시킵니다. (레벨당 +1)
|
||||
- **ATTACK**: 모든 무기의 기본 공격력을 증폭시킵니다. (레벨당 +5%)
|
||||
- **SPEED**: 기체의 이동 속도를 향상시킵니다. (레벨당 +4%)
|
||||
- **MAGNET**: 아이템 흡입 범위를 확장합니다. (기본 180px + 레벨당 30px)
|
||||
- **GOLD_GAIN**: 세션 종료 후 획득하는 골드량을 추가로 보너스 적용합니다. (레벨당 +10%)
|
||||
|
||||
## 2. Event Pass System
|
||||
특정 미션이나 보스 처치 시 획득하는 **Event Points (EP)**를 통해 단계별 보상을 해제하는 시스템입니다.
|
||||
|
||||
- **Point Acquisition**:
|
||||
- 일반 보스 처치: 500 EP
|
||||
- 미션 클리어: 1,000 EP
|
||||
- **Premium Tier**: 유료 재화나 특정 업적을 통해 활성화되며, 더 희귀한 제작 재료나 독점 외형을 제공합니다.
|
||||
|
||||
## 3. Implementation Details
|
||||
- `src/features/game/utils/combatUtils.ts`: `calculateEffectiveStats` 함수에서 `permanentUpgrades` 데이터를 주입받아 최종 전투 스탯을 산출합니다. (Stat Injection Engine V12.0)
|
||||
- `src/features/game/store/useGameStore.ts`: 유저의 영구 업그레이드 상태 및 이벤트 패스 진행도를 `localStorage`와 동기화하여 관리합니다.
|
||||
- `src/features/game/ui/HangarOverlay.tsx`: 격납고 UI에서 업그레이드 구매 및 이벤트 패스 보상 수령 로직을 처리합니다.
|
||||
|
||||
---
|
||||
**Status**: Managed by Skybound Protocol
|
||||
**Context**: Economy / Meta-Progression / Stat Injection
|
||||
+17
-14
@@ -3,31 +3,34 @@
|
||||
Skybound의 무기 시스템은 단순한 수치 강화를 넘어, 모듈의 조합과 진화(Evolution)를 통해 기체의 특성을 정의합니다. `ModularWeaponSystem`은 이러한 무기 상태의 변화와 트리 형태의 진화 로직을 관리합니다.
|
||||
|
||||
## 1. Evolution Logic (진화 메커니즘)
|
||||
무기는 특정 레벨에 도달하거나 보너스 아이템을 획득했을 때 **Evolution** 단계로 진입할 수 있습니다.
|
||||
무기는 특정 레벨에 도달하거나 보너스 아이템을 획득했을 때 **Evolution** 단계로 진입할 수 있습니다. `evolutions.ts`의 `EVOLUTION_RECIPES` 테이블에 정의된 규칙에 따라 작동합니다.
|
||||
|
||||
- **Prerequisite Check**: 진화를 위해서는 베이스 무기와 보조 모듈(Passive Module)의 조화가 필요합니다.
|
||||
- **Dynamic Max Level**: 모든 무기가 Lv.5에서 진화하는 것은 아닙니다. `SKILL_MAX_LEVEL` 테이블을 통해 무기별 최적화된 진화 지점을 정의합니다.
|
||||
- 예: `aoe_nova`는 Lv.3에서 즉시 `NOVA_GUARDIAN`으로 진화 가능.
|
||||
- **State Transition**: 진화 시 기존의 무기 발사 로직은 폐기되고, 완전히 새로운 `AttackPattern`으로 교체됩니다.
|
||||
- 예: `Plasma Cannon` (기본) -> `Ion Railgun` (진화: 관통 및 폭발 속성 추가)
|
||||
|
||||
## 2. Core Skill Categories
|
||||
### 2.1 Active Weapons
|
||||
### 2.1 Active Weapons (Primary)
|
||||
직접적인 공격을 담당하는 모듈로, `FireRate`, `Damage`, `Piercing` 속성을 가집니다.
|
||||
- **Vortex Missile**: 가장 가까운 적을 추적하며 폭발 시 광역 데미지를 입힙니다.
|
||||
- **Plasma Guard**: 기체 주변을 회전하며 근접한 적과 탄막을 방어합니다.
|
||||
- **Gatling Gun**: 빠른 연사력의 기본 화기.
|
||||
- **Missile Pod**: 적을 추적하는 호밍 미사일.
|
||||
- **Nova Burst (aoe_nova)**: 기체 주변에 강력한 충격파를 발생시켜 적을 밀쳐내고 데미지를 입힙니다. (Max Lv.3)
|
||||
|
||||
### 2.2 Passive Modules (Stats/Utility)
|
||||
Active Weapon의 성능을 간접적으로 강화하는 모듈입니다.
|
||||
- **Cooling System**: 쿨타임(CD)을 감소시킵니다.
|
||||
- **Expansion Logic**: 투사체의 크기 및 감지 범위를 증폭시킵니다.
|
||||
Active Weapon의 성능을 간접적으로 강화하거나 진화의 트리거 역할을 수행합니다.
|
||||
- **Energy Shield**: 기체 주변을 보호하는 플라즈마 배리어. (NOVA_GUARDIAN의 진화 재료)
|
||||
- **Engine Overclock (speed_boost)**: 이동 속도를 증가시킵니다.
|
||||
|
||||
## 3. Tech Tree and Synergy
|
||||
시스템은 상호 연관된 모듈 간의 **Synergy Effect**를 추적합니다.
|
||||
- **Cross-Binding**: 특정 보조 모듈이 여러 Active Weapon에 동시에 영향을 미칠 수 있습니다.
|
||||
- **Hidden Evolution**: 특정 조합(예: Shield + Energy Battery)이 완성될 경우, 일반 트리에서 볼 수 없는 'Hidden Tier' 무기가 개방됩니다.
|
||||
### 2.3 Evolved Skills (EVO)
|
||||
- **HYPER_SONIC_VULCAN**: Gatling Gun + Fire Rate. 관통 빔 공격.
|
||||
- **DIMENSION_SLAYER**: Missile Pod + Magnet. 차원 붕괴 소용돌이 미사일.
|
||||
- **NOVA_GUARDIAN**: Nova Burst + Energy Shield. 황금빛 충격파와 함께 발동 시 **1.5초 무적** 효과를 제공하는 공방 일체형 진화.
|
||||
|
||||
## 4. Implementation Details
|
||||
- `src/features/game/systems/ModularWeaponSystem.ts`: 전체 업그레이드 로직 및 상태 관리.
|
||||
- `src/features/game/data/weaponData.ts`: 무기 스펙 및 진화 조건 데이터 테이블.
|
||||
- `src/features/game/systems/ProgressionSystem.ts`: 전체 업그레이드 로직 및 EVO 스탯 적용 (`applyEvoStats`).
|
||||
- `src/features/game/config/evolutions.ts`: 무기 레지스트리 및 진화 레시피(`EVOLUTION_RECIPES`) 정의.
|
||||
- `src/features/game/systems/ModularWeaponSystem.ts`: 진화된 무기의 실제 인게임 발사 패턴 및 로직 구현.
|
||||
|
||||
---
|
||||
**Status**: Managed by Skybound Protocol
|
||||
|
||||
@@ -7,6 +7,7 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습
|
||||
## 🏷️ Keyword Cluster: #Core_Logic (엔진 및 인프라)
|
||||
프로젝트의 뼈대와 런타임 제어 메커니즘입니다.
|
||||
- **Master Plan**: [[01_Core_Engine/Skybound-Modular-Game-Architecture|Modular Architecture]]
|
||||
- **Data Flow**: [[01_Core_Engine/Stat-Injection-and-Visual-Renderer-Pipeline|Stat Injection & Renderer Pipeline]]
|
||||
- **Engine Loop**: [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Runtime Pipeline]]
|
||||
- **State Control**: [[01_Core_Engine/State-Machine-and-Phase-Transition-Events|Global State Machine]]
|
||||
- **Recent Reports**:
|
||||
@@ -23,12 +24,14 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습
|
||||
## 🏷️ Keyword Cluster: #Dopamine_UX (피드백 및 텐션)
|
||||
유저가 느끼는 '재미'의 수치화 및 연출 기법입니다.
|
||||
- **Feedback**: [[05_Project_Issues/2026-04-21-UX-Dopamine-Feedback-Upgrade|Dopamine Feedback Engine]]
|
||||
- **Visuals**: [[01_Core_Engine/Stat-Injection-and-Visual-Renderer-Pipeline|Dynamic Color & Renderer Signal]]
|
||||
- **Tension**: [[02_Combat_AI/Stage-Director-and-World-Tension-Scaling|World Tension Scaling]]
|
||||
- **Patterns**: [[03_Boss_Systems/Boss-Orchestration-and-Gimmick-Management|Telegraphing & Gimmicks]]
|
||||
|
||||
## 🏷️ Keyword Cluster: #Growth_Loop (성장 및 자원)
|
||||
루프물로서의 지속 가능성을 담보하는 시스템입니다.
|
||||
- **Evolution**: [[04_Mechanics_Progression/Modular-Weapon-Evolution-and-Skill-Trees|Weapon Synergy & Evo-Tree]]
|
||||
- **Economy**: [[04_Mechanics_Progression/Meta-Progression-and-Economy-Systems|Meta-Progression & Event Pass]]
|
||||
- **Crafting**: [[04_Mechanics_Progression/Equipment-Crafting-and-Synthesis-Engine|Equipment Crafting & Merge]]
|
||||
- **Logistics**: [[04_Mechanics_Progression/Tactical-Air-Drop-and-Supply-Logistics|Tactical Air-Drop & Supply]]
|
||||
- **Progression**: [[05_Project_Issues/2026-04-21-Implementation-and-Architecture-Report|Meta-Game Economy Section]]
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,16 @@
|
||||
# 🚩 Agent Git Operation Mapping Protocol
|
||||
|
||||
| 유저 명령어 | 실행 액션 | 대상 리모트/브랜치 |
|
||||
| :--- | :--- | :--- |
|
||||
| **"Agent 최신화해"** | `git pull origin <current_branch>` | https://github.com/g1nations/TeamG1.git |
|
||||
| **"Agent 커밋해"** | `git add .` <br> `git commit -m "Update Agent Systems"` <br> `git push origin <current_branch>` | https://github.com/g1nations/TeamG1.git |
|
||||
|
||||
## 🛠️ 세부 수칙
|
||||
1. **Target Directory**: `E:\Wiki\2nd\Agent`
|
||||
2. **Git Address**: `https://github.com/g1nations/TeamG1.git`
|
||||
3. **Auto-Pilot**: 해당 명령어가 입력되면 추가 질문 없이 즉시 실행 후 보고한다.
|
||||
4. **Note**: `2nd` 프로젝트 하위에 있으나, 별도의 리모트 주소를 가진 독립 구역으로 취급한다.
|
||||
|
||||
---
|
||||
**승인인**: AI 개발부장 코다리 🫡
|
||||
**일시**: 2026-04-22
|
||||
@@ -0,0 +1,15 @@
|
||||
# 🚩 Git Operation Mapping Protocol
|
||||
|
||||
| 유저 명령어 | 실행 액션 | 대상 리모트/브랜치 |
|
||||
| :--- | :--- | :--- |
|
||||
| **"위키 최신화해줘"** | `git pull lm_sync <current_branch>` | https://github.com/g1nations/2nd.git |
|
||||
| **"커밋해"** | `git add .` <br> `git commit -m "Update Wiki"` <br> `git push lm_sync <current_branch>` | https://github.com/g1nations/2nd.git |
|
||||
|
||||
## 🛠️ 세부 수칙
|
||||
1. **Remote Target**: 모든 작업은 `lm_sync` (`https://github.com/g1nations/2nd.git`)를 기준으로 수행한다.
|
||||
2. **Auto-Pilot**: 해당 명령어가 입력되면 추가 질문 없이 즉시 실행 후 보고한다.
|
||||
3. **Conflict Management**: Pull 시 충돌 발생 시 즉시 작업을 중단하고 [코다리] 부장에게 보고하여 지시를 받는다.
|
||||
|
||||
---
|
||||
**승인인**: AI 개발부장 코다리 🫡
|
||||
**일시**: 2026-04-22
|
||||
@@ -0,0 +1,18 @@
|
||||
# 🚩 Wikification (위키화) 작전 지침
|
||||
|
||||
본 문서는 대표님의 명령에 따른 위키 문서 생성 및 데이터 정제 프로세스를 규정한다.
|
||||
|
||||
## 🛠️ 위키화 프로세스
|
||||
1. **트리거**: "위키화해" 또는 "위키화 작업 진행해"
|
||||
2. **데이터 소스 (Input)**: `E:\Wiki\2nd\00_Raw` 폴더의 모든 `.md` 파일
|
||||
3. **작성 규칙**: `p-reinforce` 스킬의 규칙을 준수하여 작성
|
||||
4. **출력 경로 (Output)**: `E:\Wiki\2nd\10_Wiki\Topics` 하위 관련 카테고리
|
||||
5. **사후 처리**: 위키 생성이 완료된 Raw 파일은 **영구 삭제**하여 중복 방지
|
||||
|
||||
## 📚 p-reinforce 작성 원칙 (준수 사항)
|
||||
* *대표님께 상세 가이드 재확인 필요* (현재 본진에서 검색되지 않음)
|
||||
* 일반적으로 지식의 고도화, 구조화, 연결성 강화를 목표로 한다.
|
||||
|
||||
---
|
||||
**승인인**: AI 개발부장 코다리 🫡
|
||||
**일시**: 2026-04-22
|
||||
Reference in New Issue
Block a user