/**
 * @copyright nhcarrigan
 * @license Naomi's Public License
 * @author Naomi Carrigan
 */
import { join } from "node:path";
import type { PrecipitationName }
  from "../../interfaces/weather/names/precipitationName.js";
import type { SpecialName }
  from "../../interfaces/weather/names/specialName.js";

/**
 * Checks if the current weather conditions have an overlay.
 * @param name - The name of the weather condition to look for.
 * @returns The file path to the overlay, or null if there is no overlay.
 */
export const getOverlayImage = (
  name: SpecialName | PrecipitationName | null,
): string | null => {
  let fileName: string | null = null;
  switch (name) {
    case "Blight Rain":
      fileName = "ROOTS-blightrain.png";
      break;
    case "Blizzard":
      fileName = "ROOTS-blizzard.png";
      break;
    case "Cinder Storm":
      fileName = "ROOTS-cinderstorm.png";
      break;
    case "Cloudy":
    case "Partly Cloudy":
      fileName = "ROOTS-cloudy.png";
      break;
    case "Fog":
      fileName = "ROOTS-fog.png";
      break;
    case "Hail":
      fileName = "ROOTS-hail.png";
      break;
    case "Heat Lightning":
      fileName = "ROOTS-heatlightning.png";
      break;
    case "Rain":
    case "Light Rain":
    case "Heavy Rain":
      fileName = "ROOTS-rain.png";
      break;
    case "Rainbow":
      fileName = "ROOTS-rainbow.png";
      break;
    case "Sleet":
      fileName = "ROOTS-sleet.png";
      break;
    case "Snow":
    case "Light Snow":
    case "Heavy Snow":
      fileName = "ROOTS-snow.png";
      break;
    case "Thundersnow":
      fileName = "ROOTS-thundersnow.png";
      break;
    case "Thunderstorm":
      fileName = "ROOTS-thunderstorm.png";
      break;
    default:
      fileName = null;
  }
  if (fileName === null) {
    return null;
  }

  const filePath = join(process.cwd(), "src", "assets", "overlays", fileName);
  return filePath;
};
