export type IngredientId =
  | 'batter'
  | 'butter'
  | 'egg'
  | 'bacon'
  | 'bun'
  | 'patty'
  | 'cheese'
  | 'pie'
  | 'coffee'
  | 'tomato'
  | 'pickle';

export interface Recipe {
  id: string;
  name: string;
  dishAsset: string;
  emoji: string;
  ingredients: IngredientId[];
  coins: number;
}

export type GuestState = 'arriving' | 'waiting' | 'leaving-happy' | 'leaving-angry';

export interface Guest {
  id: number;
  slot: number;
  recipeIdx: number;
  state: GuestState;
  x: number;
  patience: number;
  patienceMax: number;
  spriteIdx: number;
  bob: number;
  leaveT: number;
}

export type Phase = 'title' | 'dayintro' | 'playing' | 'recap' | 'win';

export interface DayConfig {
  target: number;
  spawnMin: number;
  spawnMax: number;
  patience: number;
  recipes: number[];
  cookSpeed: number;
}

export interface FlyingDish {
  asset: string;
  emoji: string;
  x: number;
  y: number;
  fromX: number;
  fromY: number;
  toX: number;
  toY: number;
  t: number;
}
