// ─── Spell Enchantment Effects ──────────────────────────────────────────────── // All spell-related enchantment effects that can be applied to equipment import type { EquipmentCategory } from '../equipment' import type { EnchantmentEffectDef } from '../enchantment-types' // Helper to define allowed equipment categories for each effect type const ALL_CASTER: EquipmentCategory[] = ['caster'] export const SPELL_EFFECTS: Record = { // ═══════════════════════════════════════════════════════════════════════════ // SPELL EFFECTS - Only for CASTER equipment (staves, wands, rods, orbs) // ═══════════════════════════════════════════════════════════════════════════ // 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_iceShard: { id: 'spell_iceShard', name: 'Ice Shard', description: 'Grants the ability to cast Ice Shard (14 water damage)', category: 'spell', baseCapacityCost: 75, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'iceShard' } }, 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' } }, // Tier 2 - Advanced Spells spell_inferno: { id: 'spell_inferno', name: 'Inferno', description: 'Grants the ability to cast Inferno (60 fire damage)', category: 'spell', baseCapacityCost: 180, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'inferno' } }, spell_tidalWave: { id: 'spell_tidalWave', name: 'Tidal Wave', description: 'Grants the ability to cast Tidal Wave (55 water damage)', category: 'spell', baseCapacityCost: 175, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'tidalWave' } }, spell_hurricane: { id: 'spell_hurricane', name: 'Hurricane', description: 'Grants the ability to cast Hurricane (50 air damage)', category: 'spell', baseCapacityCost: 170, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'hurricane' } }, spell_earthquake: { id: 'spell_earthquake', name: 'Earthquake', description: 'Grants the ability to cast Earthquake (70 earth damage)', category: 'spell', baseCapacityCost: 200, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'earthquake' } }, spell_solarFlare: { id: 'spell_solarFlare', name: 'Solar Flare', description: 'Grants the ability to cast Solar Flare (65 light damage)', category: 'spell', baseCapacityCost: 190, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'solarFlare' } }, spell_voidRift: { id: 'spell_voidRift', name: 'Void Rift', description: 'Grants the ability to cast Void Rift (55 dark damage)', category: 'spell', baseCapacityCost: 175, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'voidRift' } }, // 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' } }, // Additional Tier 2 Spells spell_flameWave: { id: 'spell_flameWave', name: 'Flame Wave', description: 'Grants the ability to cast Flame Wave (45 fire damage)', category: 'spell', baseCapacityCost: 165, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'flameWave' } }, spell_iceStorm: { id: 'spell_iceStorm', name: 'Ice Storm', description: 'Grants the ability to cast Ice Storm (50 water damage)', category: 'spell', baseCapacityCost: 170, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'iceStorm' } }, spell_windBlade: { id: 'spell_windBlade', name: 'Wind Blade', description: 'Grants the ability to cast Wind Blade (40 air damage)', category: 'spell', baseCapacityCost: 155, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'windBlade' } }, spell_stoneBarrage: { id: 'spell_stoneBarrage', name: 'Stone Barrage', description: 'Grants the ability to cast Stone Barrage (55 earth damage)', category: 'spell', baseCapacityCost: 175, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'stoneBarrage' } }, spell_divineSmite: { id: 'spell_divineSmite', name: 'Divine Smite', description: 'Grants the ability to cast Divine Smite (55 light damage)', category: 'spell', baseCapacityCost: 175, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'divineSmite' } }, spell_shadowStorm: { id: 'spell_shadowStorm', name: 'Shadow Storm', description: 'Grants the ability to cast Shadow Storm (48 dark damage)', category: 'spell', baseCapacityCost: 168, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'shadowStorm' } }, // Tier 3 - Master Spells spell_pyroclasm: { id: 'spell_pyroclasm', name: 'Pyroclasm', description: 'Grants the ability to cast Pyroclasm (250 fire damage)', category: 'spell', baseCapacityCost: 400, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'pyroclasm' } }, spell_tsunami: { id: 'spell_tsunami', name: 'Tsunami', description: 'Grants the ability to cast Tsunami (220 water damage)', category: 'spell', baseCapacityCost: 380, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'tsunami' } }, spell_meteorStrike: { id: 'spell_meteorStrike', name: 'Meteor Strike', description: 'Grants the ability to cast Meteor Strike (280 earth damage)', category: 'spell', baseCapacityCost: 420, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'meteorStrike' } }, // ═══════════════════════════════════════════════════════════════════════════ // LIGHTNING SPELL EFFECTS - Fast, armor-piercing, harder to dodge // ═══════════════════════════════════════════════════════════════════════════ spell_spark: { id: 'spell_spark', name: 'Spark', description: 'Grants the ability to cast Spark (8 lightning damage, very fast, armor pierce)', category: 'spell', baseCapacityCost: 70, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'spark' } }, spell_lightningBolt: { id: 'spell_lightningBolt', name: 'Lightning Bolt', description: 'Grants the ability to cast Lightning Bolt (14 lightning damage, armor pierce)', category: 'spell', baseCapacityCost: 90, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'lightningBolt' } }, spell_chainLightning: { id: 'spell_chainLightning', name: 'Chain Lightning', description: 'Grants the ability to cast Chain Lightning (25 lightning damage, hits 3 targets)', category: 'spell', baseCapacityCost: 160, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'chainLightning' } }, spell_stormCall: { id: 'spell_stormCall', name: 'Storm Call', description: 'Grants the ability to cast Storm Call (40 lightning damage, hits 2 targets)', category: 'spell', baseCapacityCost: 190, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'stormCall' } }, spell_thunderStrike: { id: 'spell_thunderStrike', name: 'Thunder Strike', description: 'Grants the ability to cast Thunder Strike (150 lightning damage, 50% armor pierce)', category: 'spell', baseCapacityCost: 350, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'thunderStrike' } }, // ═══════════════════════════════════════════════════════════════════════════ // METAL SPELL EFFECTS - Fire + Earth compound, armor pierce focus // ═══════════════════════════════════════════════════════════════════════════ spell_metalShard: { id: 'spell_metalShard', name: 'Metal Shard', description: 'Grants the ability to cast Metal Shard (16 metal damage, 25% armor pierce)', category: 'spell', baseCapacityCost: 85, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'metalShard' } }, spell_ironFist: { id: 'spell_ironFist', name: 'Iron Fist', description: 'Grants the ability to cast Iron Fist (28 metal damage, 35% armor pierce)', category: 'spell', baseCapacityCost: 120, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'ironFist' } }, spell_steelTempest: { id: 'spell_steelTempest', name: 'Steel Tempest', description: 'Grants the ability to cast Steel Tempest (55 metal damage, 45% armor pierce)', category: 'spell', baseCapacityCost: 190, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'steelTempest' } }, spell_furnaceBlast: { id: 'spell_furnaceBlast', name: 'Furnace Blast', description: 'Grants the ability to cast Furnace Blast (200 metal damage, 60% armor pierce)', category: 'spell', baseCapacityCost: 400, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'furnaceBlast' } }, // ═══════════════════════════════════════════════════════════════════════════ // SAND SPELL EFFECTS - Earth + Water compound, AOE focus // ═══════════════════════════════════════════════════════════════════════════ spell_sandBlast: { id: 'spell_sandBlast', name: 'Sand Blast', description: 'Grants the ability to cast Sand Blast (11 sand damage, very fast)', category: 'spell', baseCapacityCost: 72, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'sandBlast' } }, spell_sandstorm: { id: 'spell_sandstorm', name: 'Sandstorm', description: 'Grants the ability to cast Sandstorm (22 sand damage, hits 2 enemies)', category: 'spell', baseCapacityCost: 100, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'sandstorm' } }, spell_desertWind: { id: 'spell_desertWind', name: 'Desert Wind', description: 'Grants the ability to cast Desert Wind (38 sand damage, hits 3 enemies)', category: 'spell', baseCapacityCost: 155, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'desertWind' } }, spell_duneCollapse: { id: 'spell_duneCollapse', name: 'Dune Collapse', description: 'Grants the ability to cast Dune Collapse (100 sand damage, hits 5 enemies)', category: 'spell', baseCapacityCost: 300, maxStacks: 1, allowedEquipmentCategories: ALL_CASTER, effect: { type: 'spell', spellId: 'duneCollapse' } }, };