From d51f0ff35f6f3dc8bf0d028141fb39fa325d3706 Mon Sep 17 00:00:00 2001 From: Antigravity Agent Date: Sat, 25 Apr 2026 12:54:56 +0900 Subject: [PATCH] docs: wikify Accordion component --- ...re_Gameplay_Rebalance_and_Purpose_Reset.md | 173 ++++++++++++++++++ ...frame_and_8Stage_Boss_Continuity_Rework.md | 103 +++++++++++ ...l_Concept_and_Hangar_Layout_Overlap_Fix.md | 75 ++++++++ ...p_DirectKill_and_UI_Productization_Pass.md | 105 +++++++++++ .../Development/UI_Components}/Accordion.md | 0 5 files changed, 456 insertions(+) create mode 100644 00_Raw/2026-04-25-Skybound_Core_Gameplay_Rebalance_and_Purpose_Reset.md create mode 100644 00_Raw/2026-04-25-Skybound_Player_Airframe_and_8Stage_Boss_Continuity_Rework.md create mode 100644 00_Raw/2026-04-25-Skybound_Skill_Concept_and_Hangar_Layout_Overlap_Fix.md create mode 100644 00_Raw/2026-04-25-Skybound_TacExp_DirectKill_and_UI_Productization_Pass.md rename {00_Raw/2026-04-24 => 10_Wiki/Development/UI_Components}/Accordion.md (100%) diff --git a/00_Raw/2026-04-25-Skybound_Core_Gameplay_Rebalance_and_Purpose_Reset.md b/00_Raw/2026-04-25-Skybound_Core_Gameplay_Rebalance_and_Purpose_Reset.md new file mode 100644 index 00000000..ff97ef00 --- /dev/null +++ b/00_Raw/2026-04-25-Skybound_Core_Gameplay_Rebalance_and_Purpose_Reset.md @@ -0,0 +1,173 @@ +# Skybound Core Gameplay Rebalance and Purpose Reset + +**Date**: 2026-04-25 +**Project**: Skybound Protocol +**Author**: Codex +**Status**: Raw corrective gameplay pass after balance regression + +## 1. User Playtest Feedback + +The previous balance pass made the game worse. + +Observed issues: + +- TAC Level Up triggered repeatedly and too quickly. +- Campaign and Blitz did not communicate a clear purpose. +- It was unclear whether the player should dodge bullets, collect upgrades, survive waves, or simply idle. +- Standing near the center could clear the stage with little interaction. +- Skill choice did not feel strategic because almost any pickup worked. +- The foundation felt like it had grown without a clear gameplay plan. + +## 2. Diagnosis + +The previous pass overcorrected toward reward frequency and enemy density. + +Main problems: + +- initial EXP requirement was too low +- EXP gem values were too high +- level-up carryover allowed too much momentum +- no cooldown existed between TAC Level Up events +- base magnet radius was too generous +- base damage multiplier was too high +- weapon cooldowns became too generous +- enemy caps became too high for the current combat model +- enemies were too weak for the amount of automatic player damage + +The result was a reward flood without enough danger, movement, or tactical pressure. + +## 3. New Gameplay Purpose + +Skybound should not be a pure bullet hell and should not be an idle auto-clear game. + +The intended player loop should be: + +1. Survive incoming enemy formations and hazard pressure. +2. Move deliberately to collect EXP gems and supply rewards. +3. Choose upgrades that solve the current pressure pattern. +4. Build toward synergies and evolutions. +5. Enter boss or spike phases with a build that feels earned. + +The main fun should come from: + +- movement under pressure +- risk-reward EXP collection +- tactical skill choices +- visible power growth +- stage pressure that asks for different answers + +The player should not be able to win reliably by standing still. + +## 4. Corrective Fixes Applied + +### TAC Level Up Flood Control + +Applied: + +- initial required EXP increased from `45` to `90` +- normal enemy EXP reduced from `7` to `4` +- elite EXP reduced from `32` to `20` +- level-up multiplier increased to `1.42 / 1.48 / 1.55 / 1.62` +- added a `360 frame` TAC Level Up lockout after each level-up +- EXP carryover is capped to `35%` of the next requirement + +Expected result: + +- level-up moments become meaningful beats +- no rapid-fire modal spam +- players must keep playing between upgrades + +### Movement Incentive + +Applied: + +- base magnet radius reduced from `180` to `90` +- magnet passive now adds `35` per level instead of `60` + +Expected result: + +- EXP collection requires movement +- standing still misses more progression +- magnet becomes a strategic comfort/passive choice rather than free global collection + +### Idle-Clear Reduction + +Applied: + +- base effective damage reduced from `1.5` to `1.0` +- damage passive now provides growth from deliberate investment +- several weapon cooldowns were pulled back from the previous overly generous pass +- Nova Burst was returned closer to a periodic tactical tool rather than constant auto-clear + +Expected result: + +- early weapons no longer erase all pressure automatically +- skill investment matters more +- AoE tools help but do not replace positioning + +### Enemy Pressure Recentered + +Applied: + +- hard enemy cap reduced from `90` to `56` +- phase caps reduced from the previous overcorrection +- enemy HP increased from the previous too-low values +- enemies enter deeper into the playfield +- enemy speed and bullet pressure were slightly restored +- procedural spawn cadence reduced from the flood state + +Expected result: + +- fewer meaningless bodies +- enemies apply actual positional pressure +- player must dodge, reposition, and collect intentionally + +## 5. Design Rule Going Forward + +Future balance changes should follow this rule: + +Do not increase rewards unless a matching risk or movement requirement exists. + +Examples: + +- faster level-up needs harder collection or less carryover +- more enemies need weaker auto-clear or stronger enemy pathing +- stronger skills need clearer spike counters or enemy behaviors +- more pickups need better pickup affordance and danger around pickup zones + +## 6. Changed Runtime Paths + +Important changed paths: + +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/store/useGameStore.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts` +- `/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/config/CombatTimeline.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/balance.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/weaponBehaviors.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ModularWeaponSystem.ts` + +## 7. Verification + +Production build completed successfully with: + +```bash +npm run build +``` + +The existing `/sprites/player.png` static asset warning remains non-blocking. + +## 8. Next Necessary Design Work + +This corrective patch stabilizes the worst problems, but the project still needs a stronger core design pass. + +Recommended next work: + +- define Campaign as objective-based stages with unique pressure patterns +- define Blitz as score/survival mode with explicit risk-reward scoring +- add clear stage objectives to HUD +- add enemy archetypes that force movement differently +- add pickup-risk zones so rewards are not free +- review every skill for role identity: damage, crowd control, defense, mobility, economy diff --git a/00_Raw/2026-04-25-Skybound_Player_Airframe_and_8Stage_Boss_Continuity_Rework.md b/00_Raw/2026-04-25-Skybound_Player_Airframe_and_8Stage_Boss_Continuity_Rework.md new file mode 100644 index 00000000..178ceef1 --- /dev/null +++ b/00_Raw/2026-04-25-Skybound_Player_Airframe_and_8Stage_Boss_Continuity_Rework.md @@ -0,0 +1,103 @@ +# Skybound Player Airframe and 8 Stage Boss Continuity Rework + +작성일: 2026-04-25 09:51 KST + +## 요청 요약 + +- 사용자 기체가 엔진에서 그린 도형 조립처럼 보여 시각적 완성도가 낮아 보이는 문제를 개선한다. +- Stage 1 클리어 후 Stage 2로 넘어가는 흐름이 결과 화면으로 끊겨 게임이 단절되는 문제를 개선한다. +- Aero Fighters처럼 보스를 처치하고 같은 런 안에서 다음 스테이지로 자연스럽게 이어지는 구조를 만든다. +- 총 8개 스테이지를 유지하고, 스테이지가 올라갈수록 난이도가 올라가도록 보스 HP, 파츠, 패턴을 재조정한다. +- 각 스테이지 보스가 서로 다른 공격 패턴을 체감할 수 있도록 실행부를 보강한다. + +## 확인한 문제 + +### 플레이어 기체 렌더링 + +- `GameRenderer.renderPlayer()`에서 플레이어 스프라이트 위에 랜덤 원형 엔진 글로우를 직접 그려서, 기체 뒤쪽이 매 프레임 흔들리는 임시 도형처럼 보였다. +- `renderWeaponAttachments()`에서 일부 장착 무기를 `fillRect`, `strokeRect`, 랜덤 원형 플래시로 그려서 톤앤매너에 맞는 완성형 파츠가 아니라 디버그 박스처럼 보일 수 있었다. +- 특히 Hyper Sonic Vulcan, Gatling fallback, Missile Pod fallback이 사용자 기체 실루엣과 잘 섞이지 않았다. + +### 스테이지 전환 + +- 보스 처치 후 `STAGE_CLEAR`가 되고, 300프레임 뒤 `BOSS_ACTION NEXT_STAGE` 이벤트가 발생한다. +- 기존 `useGameEngine`은 이 이벤트를 곧바로 `finishMission('CLEAR')`로 연결했다. +- 그 결과 Standard 캠페인에서도 Stage 1 보스 처치 후 결과 화면으로 끊기고, 다음 스테이지는 별도 런처럼 느껴졌다. + +### 보스 패턴 + +- `bossActions.ts`에는 Stage 1부터 Stage 8까지 액션 테이블이 있다. +- 하지만 `BossSystem.executePattern()`은 일부 액션만 처리하고 있었기 때문에, 실제 전투에서는 많은 액션이 기본 단발 탄으로 떨어질 수 있었다. +- `StageDirectorSystem.instantiateBoss()`의 보스 파츠 turretId가 `T-CORE`, `T-WING`, `T-HEAVY`처럼 실제 `TURRET_CATALOG`에 없는 값이라 파츠 포탑이 의도대로 발사되지 않을 수 있었다. +- 기존 보스 HP는 Stage 2부터 `5000 * currentStage`로 급격히 올라가 캠페인 커브가 자연스럽지 않았다. + +## 적용한 변경 + +### 플레이어 기체 완성도 개선 + +- 플레이어 엔진 글로우를 랜덤 원형에서 고정된 마기테크 추진 플룸으로 변경했다. +- 스프라이트 크기를 72px에서 78px로 약간 키워 중심 기체의 존재감을 높였다. +- `drawMagitechPod()` 헬퍼를 추가해 장착 무기를 작은 마기테크 포드 형태로 통일했다. +- Vulcan, Gatling fallback, Missile Pod fallback을 박스 도형 대신 다크 블루 메탈 바디, 시안/옐로/핑크 액센트, 라운드 포드 실루엣으로 렌더링한다. +- 장착 파츠의 랜덤 플래시를 줄이고 프레임 기반 pulse로 바꿔 덜 튀고 더 의도적으로 보이게 했다. + +### 연속 캠페인 전환 + +- Standard 캠페인에서 Stage 1-7 보스 처치 후 `finishMission`을 호출하지 않고, 같은 엔진 런 안에서 다음 스테이지로 전환하도록 변경했다. +- 전환 시 다음 작업을 수행한다. +- `currentStage` 증가 +- `campaignStageIndex` 저장 +- `StageDirectorSystem.advanceToStage()`로 새 타임라인 로드 +- 활성 총알, 적, 파티클 풀 정리 +- 스포너 큐 초기화 +- 보스, 탄막, hazard, airdrop, exp gem, vortex 정리 +- `INTRO` 페이즈로 재시작 +- 체력 25% 회복과 120프레임 무적 부여 +- Stage 안내 텍스트와 HQ comms 출력 +- Stage 8 보스 처치 시에는 `GAME_COMPLETE`로 결과 화면에 진입한다. +- Blitz 모드는 기존처럼 단일 전투 클리어로 유지한다. + +### 8스테이지 보스 커브 + +- 보스 HP를 선형 폭증에서 완만한 곡선형 성장으로 변경했다. +- Stage 1은 낮게 시작하고, Stage 8은 누적 성장과 보스 패턴 난이도를 고려해 높은 난이도를 갖도록 설계했다. +- 보스 파츠 HP도 같은 stage curve를 사용해 코어, 날개, 포탑이 함께 성장한다. +- 각 스테이지에 실제 `TURRET_CATALOG`에 존재하는 turretId loadout을 지정했다. + +### 보스 패턴 실행 보강 + +- 다음 액션들이 실제 탄막/기믹으로 실행되도록 매핑했다. +- `FAN_PART`, `DASH_PART`: 부채꼴 조준 사격 +- `SIDE_WAVE`: 좌우 측면 웨이브 +- `ZONE_BOMB`: 안전 구역 압박과 링 탄막 +- `WALL_WAVE`: 틈이 있는 벽 형태 탄막 +- `MISSILE_BARRAGE`, `HOMING_CHASE`: 유도성 탄막 +- `CROSS_CHASE`: 네 방향 교차 추격 탄 +- `SPIRAL_WEB`, `REVOLVING_FLAME`: 나선 탄막 +- `BURST_SPLITTER`: 분열형 부채 탄 +- `GEAR_STORM`: 고밀도 나선과 링 조합 +- `PRECISION_LOCK`, `SNIPE_GRID`, `LASER_AIM`, `LASER_SWEEP`: 크로스헤어 기반 고속 압박 +- `TELEPORT_STRIKE`: 보스 위치 변경 후 기습 사격 +- `GIMMICK_PULSE`, `CC_REVERSE`, `ZONE_COLLAPSE`: 중력장/페이즈존 기믹과 링 탄막 +- `ULTIMATE_SYMPHONY`: 기존 고난도 복합 패턴 유지 + +## 수정 파일 + +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/GameRenderer.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/hooks/useGameEngine.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/StageDirectorSystem.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/BossSystem.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/EntityManager.ts` + +## 검증 + +- `npm run build` 성공 +- Vite 경고: `/sprites/player.png referenced in /sprites/player.png didn't resolve at build time` +- 위 경고는 기존 런타임 경로 관련 경고이며 이번 변경으로 인한 빌드 실패는 아니다. + +## 후속 플레이테스트 포인트 + +- Stage 1 보스 처치 후 결과 화면 없이 Stage 2 INTRO로 자연스럽게 이어지는지 확인한다. +- Stage 8 보스 처치 후 `GAME_COMPLETE` 결과로 진입하는지 확인한다. +- 장착 무기 파츠가 기체와 과하게 분리되어 보이지 않는지 확인한다. +- Stage 3 이후 `ZONE_BOMB`, `WALL_WAVE`, `HOMING_CHASE`, `PRECISION_LOCK` 계열이 회피 목적을 명확히 만드는지 확인한다. diff --git a/00_Raw/2026-04-25-Skybound_Skill_Concept_and_Hangar_Layout_Overlap_Fix.md b/00_Raw/2026-04-25-Skybound_Skill_Concept_and_Hangar_Layout_Overlap_Fix.md new file mode 100644 index 00000000..9738707b --- /dev/null +++ b/00_Raw/2026-04-25-Skybound_Skill_Concept_and_Hangar_Layout_Overlap_Fix.md @@ -0,0 +1,75 @@ +# Skybound Skill Concept and Hangar Layout Overlap Fix + +작성일: 2026-04-25 10:09 KST + +## 요청 요약 + +- 스킬 업그레이드 후 화면에 긴 라이트 기둥만 보이는 문제가 있어 스킬 개념과 연출을 수정한다. +- HUD/UI 관점에서 왼쪽에 여러 UI가 겹쳐 나오는 문제가 있어 필요하면 전체적으로 재설계한다. + +## 확인한 문제 + +### Hyper-Sonic Vulcan 컨셉 불일치 + +- `Hyper-Sonic Vulcan`은 이름상 고속 벌컨/캐논 계열인데 실제 구현은 영구 지속되는 긴 레이저 빔이었다. +- `GameRenderer`가 플레이어 기준으로 화면 끝까지 이어지는 두꺼운 시안 빔을 그려서, 스킬이 무기라기보다 긴 조명처럼 보였다. +- `ModularWeaponSystem.updateHyperLaser()`도 라인 판정으로 지속 데미지를 넣고 있어 플레이어가 발사/탄막을 체감하기 어려웠다. + +### Hangar UI 겹침 + +- `HangarOverlay.tsx`에서 `UPGRADE`와 `PASS` 탭 콘텐츠가 오른쪽 `craft-area` 패널 밖에 렌더링되고 있었다. +- 그 결과 CSS Grid의 세 번째 아이템처럼 배치되어 왼쪽 패널/재료 영역과 겹쳐 보였다. +- 특히 `UPGRADE` 탭 선택 시 `PERMANENT UPGRADES` 콘텐츠가 왼쪽 재료 패널 위로 올라오는 문제가 발생했다. + +### 전투 보상 텍스트 겹침 + +- 적 처치 보상 텍스트가 화면 가장자리에서 생성될 경우 `TechMats`, `+TAC` 같은 텍스트가 잘리거나 서로 겹쳐 보일 수 있었다. + +## 적용한 변경 + +### Twin Arc Vulcan으로 스킬 컨셉 변경 + +- `HYPER_SONIC_VULCAN` 메타데이터 이름을 `Twin Arc Vulcan`으로 변경했다. +- 설명도 `Twin magitech cannons fire rapid piercing arc rounds.`로 바꿔 실제 플레이 감각과 맞췄다. +- 기존의 영구 레이저 빔 컨셉을 제거하고, 전방 관통 아크 탄환을 빠르게 발사하는 무기로 재설계했다. +- 플레이어 좌우 포드에서 3갈래 관통탄을 빠르게 발사해 “벌컨 업그레이드” 느낌을 강화했다. +- 스킬이 화면을 덮는 긴 빛이 아니라, 방향성과 탄막 밀도가 있는 공격으로 보이게 했다. + +### 긴 라이트 렌더링 제거 + +- `GameRenderer`의 full-screen beam `fillRect()` 렌더링을 제거했다. +- 대신 기체 앞쪽 포드에 짧은 muzzle bloom과 짧은 시안 streak만 표시하도록 변경했다. +- 화면 전체를 가리는 시각 노이즈를 줄이고, 실제 공격은 projectile 렌더링이 담당하게 했다. + +### Hangar 탭 레이아웃 수정 + +- `UPGRADE`와 `PASS` 탭 콘텐츠를 오른쪽 `craft-area` 내부로 이동했다. +- 이제 탭 콘텐츠가 왼쪽 `Airframe Telemetry`/`Materials` 패널과 겹치지 않는다. +- 기존 스타일을 유지하면서 구조적 렌더링 오류를 먼저 제거했다. + +### Floating Text 안전 영역 처리 + +- `ctx.spawnText()`에서 텍스트 생성 위치를 화면 안전 영역 안으로 clamp한다. +- 왼쪽 끝/오른쪽 끝에서 적이 죽어도 보상 텍스트가 화면 밖으로 잘리거나 HUD 영역에 과하게 겹치는 현상을 줄였다. + +## 수정 파일 + +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ModularWeaponSystem.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/GameRenderer.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/evolutions.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/weaponBehaviors.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HangarOverlay.tsx` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/hooks/useGameEngine.ts` + +## 검증 + +- `npm run build` 성공 +- Vite 경고: `/sprites/player.png referenced in /sprites/player.png didn't resolve at build time` +- 위 경고는 기존 런타임 경로 경고이며 이번 변경으로 인한 빌드 실패는 아니다. + +## 후속 플레이테스트 포인트 + +- Gatling 진화 후 더 이상 긴 레이저 기둥이 보이지 않는지 확인한다. +- `Twin Arc Vulcan`이 빠른 관통 탄막 무기로 체감되는지 확인한다. +- Hangar에서 `UPGRADES`, `EVENT PASS` 탭 선택 시 왼쪽 패널과 콘텐츠가 겹치지 않는지 확인한다. +- 전투 보상 텍스트가 화면 가장자리에서 잘리지 않는지 확인한다. diff --git a/00_Raw/2026-04-25-Skybound_TacExp_DirectKill_and_UI_Productization_Pass.md b/00_Raw/2026-04-25-Skybound_TacExp_DirectKill_and_UI_Productization_Pass.md new file mode 100644 index 00000000..b62e2118 --- /dev/null +++ b/00_Raw/2026-04-25-Skybound_TacExp_DirectKill_and_UI_Productization_Pass.md @@ -0,0 +1,105 @@ +# Skybound Tac EXP Direct Kill and UI Productization Pass + +작성일: 2026-04-25 10:01 KST + +## 요청 요약 + +- Tac Level 경험치는 적기를 처치했을 때 바로 획득하게 한다. +- 바닥에 경험치 파티클/젬이 떨어져 화면을 어지럽히지 않게 한다. +- 너무 빠른 레벨업으로 난이도 밸런스가 무너지는 문제를 완화한다. +- Hangar, HUD, Tac Level Up 등 아직 남아 있는 예전 UI 톤을 Stylized Casual Magitech 톤앤매너에 맞게 통일한다. +- `THRUST_OUTPUT`처럼 작동하지 않거나 내부 시스템 문자열처럼 보이는 UI 문구를 상품성 있게 정리한다. + +## 확인한 문제 + +### Tac EXP + +- `CombatSystem`이 적 사망 시 `spawnExpGem()`을 호출해 바닥에 경험치 젬을 생성하고 있었다. +- `ProgressionSystem`은 바닥 젬의 이동, 자석 흡수, 수집을 통해 경험치를 지급했다. +- 적 밀도가 올라갈수록 젬이 많이 쌓이고, 화면 가독성과 레벨업 속도 모두 불안정해질 수 있었다. +- 기존 젬 값은 일반몹/엘리트몹 기준으로 레벨업을 빠르게 밀어 올리는 구조였다. + +### HUD 문구 + +- `SYSTEM_ACTIVE`, `TAC_LEVEL`, `HIGH_SCORE_SYNC`, `COMBO_LINK`, `ENERGY_CELL`, `LOCK_ON`, `HEAT_SIG`, `SHIELD_OS`, `THRUST_OUTPUT` 같은 내부 변수명 스타일 문구가 사용자에게 그대로 노출되고 있었다. +- `THRUST_OUTPUT`은 `dodgeCooldownPct`를 읽지만 엔진에서 값을 갱신하지 않아 실질적으로 반응하지 않는 상태였다. + +### Hangar UI + +- 장비 카드가 빈 박스처럼 보이며 아이템명/레벨/스탯 정보가 충분히 드러나지 않았다. +- 탭 이름과 슬롯 이름이 기능적이지만 상품 화면처럼 자연스럽지는 않았다. +- 전체 스타일이 이전의 얇은 선, 어두운 반투명 박스 중심이라 현재 게임의 굵은 외곽선/밝은 마법 액센트 톤과 어긋났다. + +## 적용한 변경 + +### Tac EXP 직접 지급 + +- `CombatSystem`에서 적 사망 시 더 이상 `spawnExpGem()`을 호출하지 않는다. +- 대신 `ctx.grantTacExp()`를 통해 처치 즉시 경험치를 지급한다. +- 일반 적: `+1 TAC` +- 엘리트 적: `+5 TAC` +- 미드 보스: `+16 TAC` +- 엘리트 이상만 짧은 `+TAC` 텍스트 피드백을 표시해 화면 노이즈를 줄였다. +- 바닥 경험치 젬은 신규 생성되지 않으므로, 플레이 중 먹을 수 없는 파란 점/구슬이 쌓이는 문제가 사라진다. + +### 레벨업 속도 완화 + +- `ProgressionSystem.grantExp()`를 추가해 직접 경험치 지급과 기존 젬 수집 지급을 한 곳에서 처리한다. +- Spike 전 EXP 부스트는 최대 `x1.25`로 제한했다. +- 기존 레벨업 lockout과 carryover cap은 유지해 연속 레벨업 폭주를 방지한다. + +### HUD 상품성 개선 + +- `HIGH_SCORE_SYNC` → `Best Run` +- `SYSTEM_ACTIVE` → `Falcon Online` +- `TAC_LEVEL` → `Tactical Level` +- `THRUST_OUTPUT` → `Afterburner` +- `ENERGY_CELL` → `Hull Core` +- `COMBO_LINK` → `Chain Bonus` +- `LOCK_ON` → `Lock-On` +- `HEAT_SIG` → `Heat Trace` +- `SHIELD_OS` → `Guard Field` +- 페이즈 표시도 `BOSS_WARNING` 같은 내부 enum 대신 `Boss Incoming`, `Horde Surge`, `Route Secured` 같은 플레이어용 문구로 매핑했다. +- 엔진에서 `setDodgeCooldownPct()`를 실제 dodge 상태에 맞게 갱신해 Afterburner 게이지가 부스트 중 반응하도록 연결했다. + +### Hangar UI 톤 통일 + +- Hangar 배경과 패널을 Stylized Casual Magitech 톤으로 보강했다. +- 굵은 네이비 외곽선, 청록/민트/골드 마법 액센트, 둥근 카드, 명확한 hover 피드백을 적용했다. +- 장비 카드에 아이템 타입, 이름, 레벨, ATK, HP가 보이도록 개선했다. +- 탭 이름을 `LOADOUT`, `SYNTHESIS`, `SALVAGE`, `ASTRAL FORGE`, `UPGRADES` 등 더 자연스러운 메뉴명으로 바꿨다. +- 빈 슬롯 문구를 `NO MODULE`에서 `Available mount`로 바꿨다. +- `SYSTEM MOUNTS`, `MODULE STORAGE`를 각각 `Mount Bays`, `Module Storage`로 정리했다. + +### Level Up 모달 문구 개선 + +- `TAC LV`, `TAC LEVEL UP!`, `SELECT TACTICAL ENHANCEMENT` 중심의 시스템 문자열 느낌을 줄였다. +- 일반 레벨업: `Tactical Upgrade` +- 시작 선택: `Choose First Weapon` +- 보급 선택: `Emergency Supply` +- 카드 문구도 `NEW ACQUISITION`에서 `New module`로 완화했다. + +## 수정 파일 + +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/CombatSystem.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/hooks/useGameEngine.ts` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HUDOverlay.tsx` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HangarOverlay.tsx` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/HangarOverlay.css` +- `/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/LevelUpModal.tsx` + +## 검증 + +- `npm run build` 성공 +- Vite 경고: `/sprites/player.png referenced in /sprites/player.png didn't resolve at build time` +- 위 경고는 기존 런타임 경로 경고이며 이번 변경으로 인한 빌드 실패는 아니다. +- 주요 내부 문자열 검색 결과, 요청에서 지적된 `SYSTEM_ACTIVE`, `THRUST_OUTPUT`, `TAC_LEVEL`, `HIGH_SCORE_SYNC`, `COMBO_LINK`, `ENERGY_CELL`, `LOCK_ON`, `HEAT_SIG`, `SHIELD_OS`는 현재 게임 UI 코드에서 제거되었다. + +## 후속 플레이테스트 포인트 + +- 적 처치 후 바닥에 경험치 젬이 신규로 생성되지 않는지 확인한다. +- 일반몹을 많이 잡아도 Tac Level이 연속 폭주하지 않는지 확인한다. +- Afterburner 게이지가 회피/부스트 중 시각적으로 반응하는지 확인한다. +- Hangar 장비 카드가 더 이상 빈 회색 박스처럼 보이지 않고 아이템 정보를 명확히 보여주는지 확인한다. diff --git a/00_Raw/2026-04-24/Accordion.md b/10_Wiki/Development/UI_Components/Accordion.md similarity index 100% rename from 00_Raw/2026-04-24/Accordion.md rename to 10_Wiki/Development/UI_Components/Accordion.md