// ─── Frost Spells ────────────────────────────────────────────────────────────
// Frost magic - Air + Water compound, freeze/slow focus
import type { SpellDef } from '../../types';
import { elemCost } from '../elements';

export const FROST_SPELLS: Record<string, SpellDef> = {
  // Tier 1 - Basic Frost
  frostBite: {
    name: "Frost Bite",
    elem: "frost",
    dmg: 10,
    cost: elemCost("frost", 2),
    tier: 1,
    castSpeed: 2.5,
    unlock: 180,
    studyTime: 3,
    desc: "A chilling bite of frost. Fast casting with freeze chance.",
    effects: [{ type: 'freeze', value: 0.15 }],
    onHitEffect: { type: 'freeze', duration: 3, magnitude: 0.15 },
  },
  iceShard: {
    name: "Ice Shard",
    elem: "frost",
    dmg: 18,
    cost: elemCost("frost", 3),
    tier: 1,
    castSpeed: 2,
    unlock: 250,
    studyTime: 4,
    desc: "A sharp shard of ice. Moderate speed, freeze effect.",
    effects: [{ type: 'freeze', value: 0.2 }],
    onHitEffect: { type: 'freeze', duration: 3, magnitude: 0.2 },
  },

  // Tier 2 - Advanced Frost
  frostNova: {
    name: "Frost Nova",
    elem: "frost",
    dmg: 30,
    cost: elemCost("frost", 5),
    tier: 2,
    castSpeed: 1.5,
    unlock: 800,
    studyTime: 8,
    desc: "An explosion of freezing cold. Slows all enemies.",
    isAoe: true,
    aoeTargets: 3,
    effects: [{ type: 'slow', value: 0.3 }, { type: 'freeze', value: 0.15 }]
  },
  glacialSpike: {
    name: "Glacial Spike",
    elem: "frost",
    dmg: 45,
    cost: elemCost("frost", 7),
    tier: 2,
    castSpeed: 1.2,
    unlock: 1200,
    studyTime: 10,
    desc: "A massive spike of ice. High damage with guaranteed freeze.",
    effects: [{ type: 'freeze', value: 0.35 }]
  },

  // Tier 3 - Master Frost
  absoluteZero: {
    name: "Absolute Zero",
    elem: "frost",
    dmg: 120,
    cost: elemCost("frost", 18),
    tier: 3,
    castSpeed: 0.6,
    unlock: 12000,
    studyTime: 28,
    desc: "Freeze the very air. Devastating cold that stops all movement.",
    effects: [{ type: 'freeze', value: 0.5 }, { type: 'slow', value: 0.4 }]
  },
};
