// ─── Golem Types ─────────────────────────────────────────────────

import type { SpellCost } from '../types';

// Golem mana cost helper
export function elemCost(element: string, amount: number): SpellCost {
  return { type: 'element', element, amount };
}

export function rawCost(amount: number): SpellCost {
  return { type: 'raw', amount };
}

export interface GolemManaCost {
  type: 'raw' | 'element';
  element?: string;
  amount: number;
}

export interface GolemDef {
  id: string;
  name: string;
  description: string;
  baseManaType: string;          // The primary mana type this golem uses
  summonCost: GolemManaCost[];   // Cost to summon (can be multiple types)
  maintenanceCost: GolemManaCost[]; // Cost per hour to maintain
  damage: number;                // Base damage per attack
  attackSpeed: number;           // Attacks per hour
  hp: number;                    // Golem HP (for display, they don't take damage)
  armorPierce: number;           // Armor piercing (0-1)
  isAoe: boolean;                // Whether golem attacks are AOE
  aoeTargets: number;            // Number of targets for AOE
  unlockCondition: {
    type: 'attunement_level' | 'mana_unlocked' | 'dual_attunement';
    attunement?: string;
    level?: number;
    manaType?: string;
    attunements?: string[];
    levels?: number[];
  };
  tier: number;                  // Power tier (1-4)
}
