// ─── Upgrade Effect Types ────────────────────────────────────────────────────
// Type interfaces for upgrade effects

export interface ActiveUpgradeEffect {
  upgradeId: string;
  skillId: string;
  milestone: 5 | 10;
  effect: string;
  name: string;
  desc: string;
}

export interface ComputedEffects {
  // Mana effects
  maxManaMultiplier: number;
  maxManaBonus: number;
  regenMultiplier: number;
  regenBonus: number;
  clickManaMultiplier: number;
  clickManaBonus: number;
  meditationEfficiency: number;
  spellCostMultiplier: number;
  conversionEfficiency: number;

  // Combat effects
  baseDamageMultiplier: number;
  baseDamageBonus: number;
  attackSpeedMultiplier: number;
  critChanceBonus: number;
  critDamageMultiplier: number;
  elementalDamageMultiplier: number;

  // Study effects
  studySpeedMultiplier: number;
  studyCostMultiplier: number;
  progressRetention: number;
  instantStudyChance: number;
  freeStudyChance: number;

  // Element effects
  elementCapMultiplier: number;
  elementCapBonus: number;
  perElementCapBonus: Record<string, number>;
  perElementRegenBonus: Record<string, number>;
  conversionCostMultiplier: number;
  doubleCraftChance: number;

  // Special values
  permanentRegenBonus: number;

  // Special effect flags
  specials: Set<string>;

  // All active upgrades for display
  activeUpgrades: ActiveUpgradeEffect[];

  // DEEP_UNDERSTANDING: +10% bonus from all skill levels
  skillLevelMultiplier: number;

  // Enchantment Power
  enchantmentPowerMultiplier: number;
}
