import type { HealOverTimeFrame, PartyRole, SpellSlot } from './actionCombatCore'

export type BossPhase = 'tracking' | 'windup' | 'charging' | 'recovering' | 'mauling' | 'slamWindup' | 'circling' | 'defeated' | 'victory'

export type Point = {
  x: number
  y: number
}

export type Telegraph = {
  active: boolean
  start: Point
  end: Point
  width: number
}

export type ArcTelegraph = {
  active: boolean
  center: Point
  radius: number
  startAngle: number
  endAngle: number
  width: number
}

export type RaidFrame = {
  id: string
  name: string
  role: PartyRole
  specLabel?: string
  damageDone?: number
  hp: number
  maxHp: number
  healOverTimes: HealOverTimeFrame[]
  renewTimer: number
  burnTimer: number
  bleedTimer: number
  selected: boolean
  shield: number
}

export type BossInput = {
  xAxis: number
  yAxis: number
  reset: boolean
  targetDelta: -1 | 0 | 1
  targetId: string | null
  castSpell: SpellSlot | null
  aimX?: number
  aimY?: number
}
