export interface Spell {
  id: number;
  isCustom: boolean;
  german: string;
  english: string;
  image: string;
  classes: string[];
  level: number;
  timeToCast: number;
  cost:
    | 'action'
    | 'bonus'
    | 'reaction'
    | 'rounds'
    | 'minutes'
    | 'hours'
    | 'days';
  duration: number;
  durationType:
    | 'instant'
    | 'rounds'
    | 'minutes'
    | 'hours'
    | 'days'
    | 'permanent';
  isRitual: boolean;
  needsConcentration: boolean;
  needsVerbal: boolean;
  needsSomatic: boolean;
  needsMaterial: boolean;
  school: string;
  description_de: string;
  description_en: string;
  needsAttackRoll: boolean;
  needsSavingThrow: boolean;
  savingThrowAttribute?: string;
  isRanged: boolean;
  range?: number;
  hasAreaOfEffect: boolean;
  length?: number;
  areaOfEffectType?: string;
  doesDamage: boolean;
  damage?: Damage[];
  doesHeal: boolean;
  heal?: Heal;
}

// Possible Additions

// Number of targets
// Material

interface Damage {
  diceNumber: number;
  diceType: number;
  damageType: string;
  additionalDamage?: number;
}

// additions

interface Heal {
  diceNumber: number;
  diceType: number;
  additionalHeal?: number;
}

// export interface Spell1 {
//   id: number;
//   isCustom: boolean;
//   german: string;
//   english: string;
//   image: string;
//   classes: string[];
//   level: number;
//   timeToCast: number;
//   cost:
//     | 'action'
//     | 'bonus'
//     | 'reaction'
//     | 'rounds'
//     | 'minutes'
//     | 'hours'
//     | 'days';
//   duration: number;
//   durationType: 'rounds' | 'minutes' | 'hours' | 'days' | 'permanent';
//   isRitual: boolean;
//   needsConcentration: boolean;
//   needsVerbal: boolean;
//   needsSomatic: boolean;
//   needsMaterial: boolean;
//   school: string;
//   description_de: string;
//   description_en: string;
//   needsAttackRoll: boolean;
//   needsSavingThrow: boolean;
//   savingThrowAttribute?: string;
//   isRanged: boolean;
//   range?: number;
//   hasAreaOfEffect: boolean;
//   length?: number;
//   areaOfEffectType?: string;
//   doesDamage: boolean;
//   damage?: Damage[];
//   doesHeal: boolean;
//   heal?: Heal;
// }
