export type Iwt2PlayerClassId = 'healer' | 'paladin' | 'ranger' | 'mage' | 'rogue' | 'warrior'

export type Iwt2PlayerClassRole = 'healer' | 'tank' | 'damage'

export type Iwt2ClassMetadata = {
  id: Iwt2PlayerClassId
  name: string
  role: Iwt2PlayerClassRole
  icon: string
  color: string
  accentColor: string
  maxHealth: number
  moveSpeed: number
  radius: number
  attackRange: number
  attackDamage: number
  attackCooldown: number
  castTime: number
  projectileSpeed: number
}

export const IWT2_CLASS_METADATA: Record<Iwt2PlayerClassId, Iwt2ClassMetadata> = {
  healer: {
    id: 'healer',
    name: 'Player Healer',
    role: 'healer',
    icon: '+',
    color: '#2fbf71',
    accentColor: '#b7f7cf',
    maxHealth: 125,
    moveSpeed: 210,
    radius: 15,
    attackRange: 0,
    attackDamage: 0,
    attackCooldown: 1,
    castTime: 0,
    projectileSpeed: 0,
  },
  paladin: {
    id: 'paladin',
    name: 'Paladin Tank',
    role: 'tank',
    icon: '🛡',
    color: '#f2c94c',
    accentColor: '#fff0a8',
    maxHealth: 190,
    moveSpeed: 165,
    radius: 17,
    attackRange: 44,
    attackDamage: 7,
    attackCooldown: 0.85,
    castTime: 0,
    projectileSpeed: 0,
  },
  ranger: {
    id: 'ranger',
    name: 'Ranger',
    role: 'damage',
    icon: '🏹',
    color: '#4aa3df',
    accentColor: '#b9e3ff',
    maxHealth: 115,
    moveSpeed: 185,
    radius: 14,
    attackRange: 245,
    attackDamage: 8,
    attackCooldown: 0.62,
    castTime: 0.32,
    projectileSpeed: 410,
  },
  mage: {
    id: 'mage',
    name: 'Mage',
    role: 'damage',
    icon: '⚚',
    color: '#c56cf0',
    accentColor: '#efc4ff',
    maxHealth: 100,
    moveSpeed: 175,
    radius: 14,
    attackRange: 220,
    attackDamage: 11,
    attackCooldown: 0.78,
    castTime: 0.42,
    projectileSpeed: 330,
  },
  rogue: {
    id: 'rogue',
    name: 'Rogue',
    role: 'damage',
    icon: '††',
    color: '#55efc4',
    accentColor: '#c8fff2',
    maxHealth: 110,
    moveSpeed: 230,
    radius: 14,
    attackRange: 38,
    attackDamage: 6,
    attackCooldown: 0.38,
    castTime: 0,
    projectileSpeed: 0,
  },
  warrior: {
    id: 'warrior',
    name: 'Warrior',
    role: 'damage',
    icon: '⚔',
    color: '#ff7675',
    accentColor: '#ffd0d0',
    maxHealth: 150,
    moveSpeed: 180,
    radius: 16,
    attackRange: 42,
    attackDamage: 9,
    attackCooldown: 0.52,
    castTime: 0,
    projectileSpeed: 0,
  },
}

export const IWT2_PARTY_ORDER: Iwt2PlayerClassId[] = ['healer', 'paladin', 'ranger', 'mage', 'rogue', 'warrior']
