// ─── Invoker Discipline Files ─────────────────────────────────────────────────
// Attunement-focused disciplines for Invoker role
// The Invoker forms pacts with guardians and channels their elemental boons.

import { DisciplinesAttunementType } from '../../types/disciplines';
import type { DisciplineDefinition } from '../../types/disciplines';

export const invokerDisciplines: DisciplineDefinition[] = [
  {
    id: 'guardian-invocation',
    name: 'Guardian Invocation',
    attunement: DisciplinesAttunementType.INVOKER,
    manaType: 'raw',
    baseCost: 20,
    description:
      'Channel the power of pacted guardians in combat. Faster invocation charge, cheaper invocation spells, longer-lasting charge.',
    statBonus: { stat: 'invocationChargeRateBonus', baseValue: 0.10, label: 'Invocation Charge Rate' },
    difficultyFactor: 250,
    scalingFactor: 120,
    drainBase: 8,
    requires: ['signed_pact'],
    perks: [
      {
        id: 'invocation-efficiency',
        type: 'once',
        threshold: 100,
        value: 0,
        description: 'Invocation spells cost 20% less mana (cost multiplier 0.1 → 0.08)',
        bonus: { stat: 'invocationCostReduction', amount: 0.02 },
      },
      {
        id: 'invocation-speed',
        type: 'infinite',
        threshold: 200,
        value: 150,
        description: 'Every 150 XP: +0.05 invocation charge rate bonus',
        bonus: { stat: 'invocationChargeRateBonus', amount: 0.05 },
      },
      {
        id: 'invocation-sustain',
        type: 'capped',
        threshold: 400,
        value: 200,
        maxTier: 3,
        description: 'Every 200 XP: drain rate multiplier −0.1 (minimum 0.7)',
        bonus: { stat: 'drainRateMultiplier', amount: -0.1 },
      },
      {
        id: 'invocation-mastery',
        type: 'capped',
        threshold: 500,
        value: 250,
        maxTier: 3,
        description: 'Every 250 XP: cost multiplier −0.01 (minimum 0.05)',
        bonus: { stat: 'invocationCostReduction', amount: 0.01 },
      },
    ],
  },
  {
    id: 'pact-attunement',
    name: 'Pact Attunement',
    attunement: DisciplinesAttunementType.INVOKER,
    manaType: 'raw',
    baseCost: 12,
    description:
      'Deepen your bond with guardian spirits. Reduces pact signing time and amplifies pact power.',
    statBonus: { stat: 'pactAffinityBonus', baseValue: 0.05, label: 'Pact Affinity' },
    difficultyFactor: 150,
    scalingFactor: 80,
    drainBase: 4,
    requires: ['signed_pact'],
    perks: [
      {
        id: 'pact-affinity-scaling',
        type: 'once',
        threshold: 100,
        value: 0,
        description: 'Unlock pact affinity scaling — pact bonuses grow with XP.',
      },
      {
        id: 'pact-affinity-infinite',
        type: 'infinite',
        threshold: 200,
        value: 100,
        description: 'Every 100 XP: +5% pact affinity',
        bonus: { stat: 'pactAffinityBonus', amount: 0.05 },
      },
      {
        id: 'pact-power-boost',
        type: 'capped',
        threshold: 500,
        value: 200,
        maxTier: 5,
        description: 'Every 200 XP: +3% guardian pact boon strength (max +15%)',
        bonus: { stat: 'guardianBoonMultiplier', amount: 0.03 },
      },
    ],
  },
  {
    id: 'guardians-boon',
    name: "Guardian's Boon",
    attunement: DisciplinesAttunementType.INVOKER,
    manaType: 'raw',
    baseCost: 18,
    description:
      'Channel the unique blessings of every guardian you have bonded with. Amplifies all guardian unique perks.',
    statBonus: { stat: 'guardianBoonMultiplier', baseValue: 0.10, label: 'Guardian Boon Power' },
    difficultyFactor: 200,
    scalingFactor: 100,
    drainBase: 6,
    requires: ['signed_pact'],
    perks: [
      {
        id: 'boon-1',
        type: 'once',
        threshold: 100,
        value: 0,
        description: 'Active guardian boons gain +10% effectiveness',
        bonus: { stat: 'guardianBoonMultiplier', amount: 0.10 },
      },
      {
        id: 'boon-2',
        type: 'capped',
        threshold: 200,
        value: 350,
        maxTier: 5,
        description: 'Every 350 XP: +5% guardian boon effectiveness (max +25%)',
        bonus: { stat: 'guardianBoonMultiplier', amount: 0.05 },
      },
    ],
  },
];
