32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# Context: upgrade-effects.ts
|
|
|
|
- Total line count: 191
|
|
|
|
## Top-Level Exports
|
|
|
|
1. **`getActiveUpgrades`** (lines ~28-51)
|
|
- Returns all selected upgrades with full effect definitions from the skill upgrades record
|
|
- Builds cache of upgrade definitions on first access, iterates over SKILL_EVOLUTION_PATHS
|
|
|
|
2. **`computeEffects`** (lines ~54-188)
|
|
- Computes all active effects from selected upgrades into a ComputedEffects object
|
|
- Applies multipliers, bonuses, and special effects from upgrades; handles DEEP_UNDERSTANDING and MANA_THRESHOLD
|
|
|
|
3. **`upgradeDefinitionsById`** (line ~15)
|
|
- Cache Map for quick lookup of upgrade definitions by ID
|
|
|
|
4. **`buildUpgradeCache`** (lines ~18-25)
|
|
- Initializes the upgrade definition cache from SKILL_EVOLUTION_PATHS
|
|
|
|
## Imports
|
|
|
|
- `SkillUpgradeChoice`, `SkillUpgradeEffect` from './types'
|
|
- `getUpgradesForSkillAtMilestone`, `SKILL_EVOLUTION_PATHS` from './skill-evolution'
|
|
- `ActiveUpgradeEffect`, `ComputedEffects` from './upgrade-effects.types'
|
|
- `SPECIAL_EFFECTS`, `hasSpecial` from './special-effects'
|
|
- `computeDynamicRegen`, `computeDynamicClickMana`, `computeDynamicDamage` from './dynamic-compute'
|
|
|
|
## Assessment
|
|
|
|
This file is already **191 lines** (well under 400). No refactoring needed. The exports are cleanly separated - `getActiveUpgrades` handles data gathering, `computeEffects` handles computation. The module is focused on a single concern (upgrade effects) and is not a candidate for splitting.
|