// ─── Tier 0 & 1 Basic Spells ───────────────────────────────────

import type { EnchantmentEffectDef } from './types';
import { ALL_CASTER } from './types';

export const BASIC_SPELL_EFFECTS: Record<string, EnchantmentEffectDef> = {
  // Tier 0 - Basic Spells
  spell_manaBolt: {
    id: 'spell_manaBolt',
    name: 'Mana Bolt',
    description: 'Grants the ability to cast Mana Bolt (5 base damage, raw mana cost)',
    category: 'spell',
    baseCapacityCost: 50,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'manaBolt' }
  },
  spell_manaStrike: {
    id: 'spell_manaStrike',
    name: 'Mana Strike',
    description: 'Grants the ability to cast Mana Strike (8 base damage, raw mana cost)',
    category: 'spell',
    baseCapacityCost: 40,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'manaStrike' }
  },

  // Tier 1 - Basic Elemental Spells
  spell_fireball: {
    id: 'spell_fireball',
    name: 'Fireball',
    description: 'Grants the ability to cast Fireball (15 fire damage)',
    category: 'spell',
    baseCapacityCost: 80,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'fireball' }
  },
  spell_emberShot: {
    id: 'spell_emberShot',
    name: 'Ember Shot',
    description: 'Grants the ability to cast Ember Shot (10 fire damage, fast cast)',
    category: 'spell',
    baseCapacityCost: 60,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'emberShot' }
  },
  spell_waterJet: {
    id: 'spell_waterJet',
    name: 'Water Jet',
    description: 'Grants the ability to cast Water Jet (12 water damage)',
    category: 'spell',
    baseCapacityCost: 70,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'waterJet' }
  },
  spell_gust: {
    id: 'spell_gust',
    name: 'Gust',
    description: 'Grants the ability to cast Gust (10 air damage, fast cast)',
    category: 'spell',
    baseCapacityCost: 60,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'gust' }
  },
  spell_stoneBullet: {
    id: 'spell_stoneBullet',
    name: 'Stone Bullet',
    description: 'Grants the ability to cast Stone Bullet (16 earth damage)',
    category: 'spell',
    baseCapacityCost: 80,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'stoneBullet' }
  },
  spell_lightLance: {
    id: 'spell_lightLance',
    name: 'Light Lance',
    description: 'Grants the ability to cast Light Lance (18 light damage)',
    category: 'spell',
    baseCapacityCost: 95,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'lightLance' }
  },
  spell_shadowBolt: {
    id: 'spell_shadowBolt',
    name: 'Shadow Bolt',
    description: 'Grants the ability to cast Shadow Bolt (16 dark damage)',
    category: 'spell',
    baseCapacityCost: 95,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'shadowBolt' }
  },
  spell_drain: {
    id: 'spell_drain',
    name: 'Drain',
    description: 'Grants the ability to cast Drain (10 death damage)',
    category: 'spell',
    baseCapacityCost: 85,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'drain' }
  },
  spell_rotTouch: {
    id: 'spell_rotTouch',
    name: 'Rot Touch',
    description: 'Grants the ability to cast Rot Touch (14 death damage)',
    category: 'spell',
    baseCapacityCost: 80,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'rotTouch' }
  },

  // Additional Tier 1 Spells
  spell_windSlash: {
    id: 'spell_windSlash',
    name: 'Wind Slash',
    description: 'Grants the ability to cast Wind Slash (12 air damage)',
    category: 'spell',
    baseCapacityCost: 72,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'windSlash' }
  },
  spell_rockSpike: {
    id: 'spell_rockSpike',
    name: 'Rock Spike',
    description: 'Grants the ability to cast Rock Spike (18 earth damage)',
    category: 'spell',
    baseCapacityCost: 88,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'rockSpike' }
  },
  spell_radiance: {
    id: 'spell_radiance',
    name: 'Radiance',
    description: 'Grants the ability to cast Radiance (14 light damage)',
    category: 'spell',
    baseCapacityCost: 80,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'radiance' }
  },
  spell_darkPulse: {
    id: 'spell_darkPulse',
    name: 'Dark Pulse',
    description: 'Grants the ability to cast Dark Pulse (12 dark damage)',
    category: 'spell',
    baseCapacityCost: 68,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'darkPulse' }
  },
  spell_iceShard: {
    id: 'spell_iceShard',
    name: 'Ice Shard',
    description: 'Grants the ability to cast Ice Shard (14 water/ice damage)',
    category: 'spell',
    baseCapacityCost: 75,
    maxStacks: 1,
    allowedEquipmentCategories: ALL_CASTER,
    effect: { type: 'spell', spellId: 'iceShard' }
  },
};
