// ─── Special Effect IDs ────────────────────────────────────────────────────────
// These are the IDs used in the 'specialId' field of special effects

import type { ComputedEffects } from './upgrade-effects.types';

export const SPECIAL_EFFECTS = {
  // Mana Flow special effects
  MANA_CASCADE: 'manaCascade',
  STEADY_STREAM: 'steadyStream',
  MANA_TORRENT: 'manaTorrent',
  FLOW_SURGE: 'flowSurge',
  MANA_OVERFLOW: 'manaOverflow',
  MANA_WATERFALL: 'manaWaterfall',
  ETERNAL_FLOW: 'eternalFlow',
  
  // Mana Well special effects
  DESPAIR_WELLS: 'despairWells',
  DESPERATE_WELLS: 'desperateWells',
  MANA_ECHO: 'manaEcho',
  EMERGENCY_RESERVE: 'emergencyReserve',
  MANA_THRESHOLD: 'manaThreshold',
  MANA_CONVERSION: 'manaConversion',
  PANIC_RESERVE: 'panicReserve',
  MANA_CONDENSE: 'manaCondense',
  DEEP_RESERVE: 'deepReserve',
  MANA_TIDE: 'manaTide',
  VOID_STORAGE: 'voidStorage',
  MANA_CORE: 'manaCore',
  MANA_HEART: 'manaHeart',
  MANA_GENESIS: 'manaGenesis',
  
  // Mana Overflow special effects
  CLICK_SURGE: 'clickSurge',
  MANA_FLOOD: 'manaFlood',
  
  // Combat special effects
  FIRST_STRIKE: 'firstStrike',
  OVERPOWER: 'overpower',
  BERSERKER: 'berserker',
  EXECUTIONER: 'executioner',
  COMBO_MASTER: 'comboMaster',
  ADRENALINE_RUSH: 'adrenalineRush',
  
  // Study special effects
  QUICK_GRASP: 'quickGrasp',
  DEEP_CONCENTRATION: 'deepConcentration',
  QUICK_MASTERY: 'quickMastery',
  PARALLEL_STUDY: 'parallelStudy',
  STUDY_MOMENTUM: 'studyMomentum',
  KNOWLEDGE_ECHO: 'knowledgeEcho',
  KNOWLEDGE_TRANSFER: 'knowledgeTransfer',
  MENTAL_CLARITY: 'mentalClarity',
  STUDY_REFUND: 'studyRefund',
  DEEP_UNDERSTANDING: 'deepUnderstanding',
  STUDY_RUSH: 'studyRush',
  CHAIN_STUDY: 'chainStudy',
  
  // Element special effects
  ELEMENTAL_AFFINITY: 'elementalAffinity',
  EXOTIC_MASTERY: 'exoticMastery',
  ELEMENTAL_RESONANCE: 'elementalResonance',
  MANA_CONDUIT: 'manaConduit',
  
  // Enchanting special effects
  ENCHANT_MASTERY: 'enchantMastery',
  ENCHANT_PRESERVATION: 'enchantPreservation',
  THRIFTY_ENCHANTER: 'thriftyEnchanter',
  OPTIMIZED_ENCHANTING: 'optimizedEnchanting',
  HASTY_ENCHANTER: 'hastyEnchanter',
  INSTANT_DESIGNS: 'instantDesigns',
  PURE_ESSENCE: 'pureEssence',
  
  // Crafting special effects
  BATCH_CRAFTING: 'batchCrafting',
  MASS_PRODUCTION: 'massProduction',
  SCAVENGE: 'scavenge',
  RECLAIM: 'reclaim',
  
  // Golemancy special effects
  GOLEM_FURY: 'golemFury',
  GOLEM_RESONANCE: 'golemResonance',
  RAPID_STRIKES: 'rapidStrikes',
  BLITZ_ATTACK: 'blitzAttack',
  
  // Ascension special effects
  INSIGHT_BOUNTY: 'insightBounty',
} as const;

/**
 * Check if a special effect is active
 */
export function hasSpecial(effects: ComputedEffects, specialId: string): boolean {
  return effects?.specials?.has(specialId) ?? false;
}
