From 7835487b0ad007de1c4c3677b7878b61314873d5 Mon Sep 17 00:00:00 2001 From: yesung Date: Wed, 22 Apr 2026 13:40:44 +0900 Subject: [PATCH] docs: add RAW log for NOVA_GUARDIAN EVO and permanent upgrade stat injection --- ..._NovaGuardian_PermUpgrade_StatInjection.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md diff --git a/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md b/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md new file mode 100644 index 00000000..94b0df99 --- /dev/null +++ b/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md @@ -0,0 +1,69 @@ +# ์ž‘์—… ๋กœ๊ทธ: NOVA_GUARDIAN EVO + Permanent Upgrade Stat Injection + +## ๐Ÿ“‹ ์ž‘์—… ๋‚ด์šฉ (What) +1. **NOVA_GUARDIAN EVO ๋ ˆ์‹œํ”ผ**: `aoe_nova(Lv3 MAX) + energy_shield(Lv1+)` ์กฐํ•ฉ์œผ๋กœ ํ™ฉ๊ธˆ ์ถฉ๊ฒฉํŒŒ ์ˆ˜ํ˜ธ์ž ์ง„ํ™” ๊ตฌํ˜„. +2. **Permanent Upgrade โ†’ EffectiveStats ์‹ค๋ฐ˜์˜**: ์˜๊ตฌ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ตฌ๋งค ์‹œ ์‹ค์ œ ์ธ๊ฒŒ์ž„ ์Šคํƒฏ(HP, ATK, SPD, MAGNET, GOLD)์— ์ฆ‰์‹œ ๋ฐ˜์˜. + +## ๐ŸŽฏ ์™œ ํ–ˆ๋Š”์ง€ (Why) +- **Nova Burst์˜ EVO ๋ชฉ์ ์ง€ ๋ถ€์žฌ**: `aoe_nova` ์Šคํ‚ฌ์ด ์ตœ๋Œ€ ๋ ˆ๋ฒจ ๋‹ฌ์„ฑ ํ›„ ๋” ์ด์ƒ ์„ฑ์žฅ์ด ์—†์–ด ์žฅ๊ธฐ ๋™๊ธฐ๋ถ€์—ฌ ์•ฝํ™”. +- **Permanent Upgrade ๊ตฌ์กฐ์  ๊ฒฐํ•จ**: ๊ณจ๋“œ๋ฅผ ์†Œ๋น„ํ•ด ์˜๊ตฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ตฌ๋งคํ•ด๋„ ์‹ค์ œ ์ธ๊ฒŒ์ž„ ์„ธ์…˜์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์ด ์—†๋Š” "๋นˆ ๊ป๋ฐ๊ธฐ" ์ƒํƒœ์˜€์Œ. + +## ๐Ÿ”ง ์ฒ˜๋ฆฌ ๊ณผ์ • (How) + +### 1. evolutions.ts โ€” ๋ ˆ์‹œํ”ผ ๋“ฑ๋ก + ์Šคํ‚ฌ ์ตœ๋Œ€ ๋ ˆ๋ฒจ ํ…Œ์ด๋ธ” +- `aoe_nova`๋ฅผ `SKILL_REGISTRY`์— PRIMARY ์Šคํ‚ฌ๋กœ ๋“ฑ๋ก (๊ธฐ์กด์— ์—†์—ˆ์Œ). +- `SKILL_MAX_LEVEL` ํ…Œ์ด๋ธ” ์ถ”๊ฐ€: `aoe_nova`์˜ ์ตœ๋Œ€ ๋ ˆ๋ฒจ์„ 3์œผ๋กœ ๋ช…์‹œ์  ์ •์˜. +- `checkEvolutionPossible()` ๋กœ์ง์„ ํ•˜๋“œ์ฝ”๋”ฉ `>= 5` โ†’ `SKILL_MAX_LEVEL[baseId]` ์กฐํšŒ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ **์Šคํ‚ฌ๋ณ„ ์ƒ์ดํ•œ ์ตœ๋Œ€ ๋ ˆ๋ฒจ ์ง€์›** ํ™•๋ณด. +- NOVA_GUARDIAN ๋ ˆ์‹œํ”ผ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (icon: โœจ). + +### 2. ProgressionSystem.ts โ€” NOVA_GUARDIAN EVO ์Šคํƒฏ +- `applyEvoStats()` switch์— `NOVA_GUARDIAN` ์ผ€์ด์Šค ์ถ”๊ฐ€: + - ์ฟจ๋‹ค์šด: 5s โ†’ 2.5s (`novaBurstCooldown` = 150ํ”„๋ ˆ์ž„) + - ๋ฐ˜๊ฒฝ: +50% (`novaBurstRadiusBonus` = 0.5) + - ๋ฐ๋ฏธ์ง€: ๊ธฐ์กด ๋Œ€๋น„ ร—2.5 + - ๋ฒ„์ŠคํŠธ ๋ฐœ๋™ ์‹œ 1.5์ดˆ(90ํ”„๋ ˆ์ž„) ๋ฌด์  ํ”Œ๋ž˜๊ทธ (`novaGuardianShield: true`) + +### 3. ModularWeaponSystem.ts โ€” ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ + ํ™ฉ๊ธˆ ์ƒ‰์ƒ ์—ฐ์ถœ +- `update()`: `evolved.has('NOVA_GUARDIAN')` ๋ถ„๊ธฐ ์ถ”๊ฐ€ โ†’ `isGuardian=true`๋กœ `updateNovaBurst()` ํ˜ธ์ถœ. +- `updateNovaBurst(isGuardian)` ํŒŒ๋ผ๋ฏธํ„ฐ ์ถ”๊ฐ€: + - `eff.novaBurstCooldown` ์˜ค๋ฒ„๋ผ์ด๋“œ (EVO ์Šคํƒฏ ๋ฐ˜์˜) + - `eff.novaBurstRadiusBonus`๋กœ ๋ฐ˜๊ฒฝ ํ™•์žฅ + - Guardian ๋ฐœ๋™ ์‹œ: 90ํ”„๋ ˆ์ž„ ๋ฌด์ , ํ™ฉ๊ธˆ ํŒŒํ‹ฐํด 3์ค‘ ๋ง, "โœจ SHIELD BURST โœจ" ํ…์ŠคํŠธ + - `novaBurstRingEffect.isGuardian` ํ”Œ๋ž˜๊ทธ โ†’ GameRenderer์— ์ƒ‰์ƒ ์ „๋‹ฌ + +### 4. GameRenderer.ts โ€” ํ™ฉ๊ธˆ/์ฒญ๋ก ์ด์ค‘ ์ƒ‰์ƒ ๋ถ„๊ธฐ +- `renderNovaBurstEffect()`: `ring.isGuardian` ๊ธฐ๋ฐ˜ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ๋ถ„๊ธฐ: + - Guardian: `#ffd700` ํ™ฉ๊ธˆ ์™ธ๋ถ€ ๋ง, `#ffab40` ์ค‘๊ฐ„ ๋ง(75%), `#ff8f00` ๊ธ€๋กœ์šฐ, 12๋ฐฉํ–ฅ ์ŠคํŒŒ์ดํฌ + - Nova: ๊ธฐ์กด ์ฒญ๋ก ํŒ”๋ ˆํŠธ ์œ ์ง€ +- Guardian ์ „์šฉ 3๋ฒˆ์งธ ์ค‘๊ฐ„ ๋ง ๋ ˆ์ด์–ด ์ถ”๊ฐ€ (ํ™•์žฅ๊ฐ๊ณผ ์œ„์šฉ ๊ฐ•ํ™”). + +### 5. combatUtils.ts โ€” V12.0 Stat Injection Engine +- `calculateEffectiveStats()` ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๋ณ€๊ฒฝ: + - 3๋ฒˆ์งธ ์ธ์ž: `PermanentUpgradeState | any[]` (ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ์œ ์ง€) + - 4๋ฒˆ์งธ ์ธ์ž: `inventory?: any[]` (์˜ต์…”๋„) +- Permanent Upgrade ํŒŒ์ดํ”„๋ผ์ธ: + - HP_MAX: `eff.maxHp += level` (๋ ˆ๋ฒจ๋‹น +1 HP) + - ATTACK: `eff.dmg *= (1 + level * 0.05)` (๋ ˆ๋ฒจ๋‹น +5%) + - SPEED: `eff.speed *= (1 + level * 0.04)` (๋ ˆ๋ฒจ๋‹น +4%) + - MAGNET: `magnetRadius = 180 + level * 30` (๋ ˆ๋ฒจ๋‹น +30px) + - GOLD_GAIN: `eff.goldGainBonus = level * 0.10` (๊ฒฝ์ œ ์‹œ์Šคํ…œ์šฉ ๊ณ„์ˆ˜) + +### 6. ํ˜ธ์ถœ๋ถ€ ๋™๊ธฐํ™” +- `useGameEngine.ts` L110: `calculateEffectiveStats('FALCON', equipped, permanentUpgrades, inventory)` +- `HangarOverlay.tsx` L27: `useMemo` ์˜์กด์„ฑ ๋ฐฐ์—ด์— `permanentUpgrades` ์ถ”๊ฐ€ โ†’ ๊ตฌ๋งค ์ฆ‰์‹œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ฐฑ์‹  + +## ๐Ÿง  ์‚ฌ์šฉํ•œ ์ง€์‹ (Knowledge Used) +- **ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ํŒจํ„ด**: 3๋ฒˆ์งธ ์ธ์ž ํƒ€์ž… ๋ถ„๊ธฐ(`Array.isArray`)๋กœ ๊ธฐ์กด HangarOverlay ํ˜ธ์ถœ๋„ ์—๋Ÿฌ ์—†์ด ์œ ์ง€. +- **EVO ์„ค๊ณ„ ์›์น™**: ๊ธฐ๋ฐ˜ ์Šคํ‚ฌ(aoe_nova)์˜ ์ตœ๋Œ€ ๋ ˆ๋ฒจ ๋„๋‹ฌ + ๋ณด์กฐ ์Šคํ‚ฌ(energy_shield) ๋ณด์œ ๋ฅผ EVO ์กฐ๊ฑด์œผ๋กœ ํ•˜์—ฌ ์กฐํ•ฉ ์ „๋žต์„ฑ ๋ถ€์—ฌ. +- **Signal Pattern**: `eff.novaGuardianShield`, `eff.novaBurstCooldown`, `eff.novaBurstRadiusBonus`๋ฅผ EffectiveStats์— ํ”Œ๋ž˜๊ทธ๋กœ ์ „๋‹ฌํ•˜์—ฌ WeaponSystem์ด ๋ Œ๋”๋Ÿฌ/๋กœ์ง์— ๊ฒฐํ•ฉ ์—†์ด EVO ์ƒํƒœ๋ฅผ ์ธ์‹. + +## โœ… ๊ฒฐ๊ณผ (Result) +- TypeScript ์—๋Ÿฌ 0๊ฐœ +- ์ˆ˜์ • ํŒŒ์ผ: 7๊ฐœ (evolutions.ts, ProgressionSystem.ts, ModularWeaponSystem.ts, GameRenderer.ts, combatUtils.ts, useGameEngine.ts, HangarOverlay.tsx) +- Git Commit: `cefd1a2` (feat_nova_guardian_evo_permanent_upgrade_stat_injection) +- Push ์™„๋ฃŒ: `origin/main` + +## ๐Ÿ”— ์—ฐ๊ฒฐ ์ง€์‹ (Relevant Knowledge) +- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (EVO Design, Skill Max Level, Meta-Progression) +- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Signal Pattern, Backward Compatibility, Pipeline Design) +- E:\Wiki\2nd\10_Wiki\Topics\UI-UX (Canvas Ring Rendering, Color Palette Branching)