from typing import List

grass_land_1_a1 = "Grass Land 1 - Animal 1"  # Nago
grass_land_1_a2 = "Grass Land 1 - Animal 2"  # Rick
grass_land_2_a1 = "Grass Land 2 - Animal 1"  # ChuChu
grass_land_2_a2 = "Grass Land 2 - Animal 2"  # Pitch
grass_land_3_a1 = "Grass Land 3 - Animal 1"  # Kine
grass_land_3_a2 = "Grass Land 3 - Animal 2"  # Coo
grass_land_4_a1 = "Grass Land 4 - Animal 1"  # ChuChu
grass_land_4_a2 = "Grass Land 4 - Animal 2"  # Nago
grass_land_5_a1 = "Grass Land 5 - Animal 1"  # Coo
grass_land_5_a2 = "Grass Land 5 - Animal 2"  # Kine
grass_land_5_a3 = "Grass Land 5 - Animal 3"  # Nago
grass_land_5_a4 = "Grass Land 5 - Animal 4"  # Rick
grass_land_6_a1 = "Grass Land 6 - Animal 1"  # Rick
grass_land_6_a2 = "Grass Land 6 - Animal 2"  # ChuChu
grass_land_6_a3 = "Grass Land 6 - Animal 3"  # Nago
grass_land_6_a4 = "Grass Land 6 - Animal 4"  # Coo
ripple_field_1_a1 = "Ripple Field 1 - Animal 1"  # Pitch
ripple_field_1_a2 = "Ripple Field 1 - Animal 2"  # Nago
ripple_field_2_a1 = "Ripple Field 2 - Animal 1"  # Kine
ripple_field_2_a2 = "Ripple Field 2 - Animal 2"  # ChuChu
ripple_field_2_a3 = "Ripple Field 2 - Animal 3"  # Rick
ripple_field_2_a4 = "Ripple Field 2 - Animal 4"  # Coo
ripple_field_3_a1 = "Ripple Field 3 - Animal 1"  # Kine
ripple_field_3_a2 = "Ripple Field 3 - Animal 2"  # Rick
ripple_field_4_a1 = "Ripple Field 4 - Animal 1"  # ChuChu
ripple_field_4_a2 = "Ripple Field 4 - Animal 2"  # Kine
ripple_field_4_a3 = "Ripple Field 4 - Animal 3"  # Nago
ripple_field_5_a1 = "Ripple Field 5 - Animal 1"  # Kine
ripple_field_5_a2 = "Ripple Field 5 - Animal 2"  # Pitch
ripple_field_6_a1 = "Ripple Field 6 - Animal 1"  # Nago
ripple_field_6_a2 = "Ripple Field 6 - Animal 2"  # Pitch
ripple_field_6_a3 = "Ripple Field 6 - Animal 3"  # Rick
ripple_field_6_a4 = "Ripple Field 6 - Animal 4"  # Coo
sand_canyon_1_a1 = "Sand Canyon 1 - Animal 1"  # Rick
sand_canyon_1_a2 = "Sand Canyon 1 - Animal 2"  # Pitch
sand_canyon_2_a1 = "Sand Canyon 2 - Animal 1"  # ChuChu
sand_canyon_2_a2 = "Sand Canyon 2 - Animal 2"  # Coo
sand_canyon_3_a1 = "Sand Canyon 3 - Animal 1"  # Pitch
sand_canyon_3_a2 = "Sand Canyon 3 - Animal 2"  # Coo
sand_canyon_3_a3 = "Sand Canyon 3 - Animal 3"  # ChuChu
sand_canyon_4_a1 = "Sand Canyon 4 - Animal 1"  # Rick
sand_canyon_4_a2 = "Sand Canyon 4 - Animal 2"  # Pitch
sand_canyon_4_a3 = "Sand Canyon 4 - Animal 3"  # Nago
sand_canyon_5_a1 = "Sand Canyon 5 - Animal 1"  # Rick
sand_canyon_5_a2 = "Sand Canyon 5 - Animal 2"  # ChuChu
sand_canyon_6_a1 = "Sand Canyon 6 - Animal 1"  # Coo
sand_canyon_6_a2 = "Sand Canyon 6 - Animal 2"  # Kine
sand_canyon_6_a3 = "Sand Canyon 6 - Animal 3"  # Rick
sand_canyon_6_a4 = "Sand Canyon 6 - Animal 4"  # ChuChu
sand_canyon_6_a5 = "Sand Canyon 6 - Animal 5"  # Nago
sand_canyon_6_a6 = "Sand Canyon 6 - Animal 6"  # Pitch
cloudy_park_1_a1 = "Cloudy Park 1 - Animal 1"  # Rick
cloudy_park_1_a2 = "Cloudy Park 1 - Animal 2"  # Nago
cloudy_park_1_a3 = "Cloudy Park 1 - Animal 3"  # Coo
cloudy_park_1_a4 = "Cloudy Park 1 - Animal 4"  # Kine
cloudy_park_1_a5 = "Cloudy Park 1 - Animal 5"  # ChuChu
cloudy_park_1_a6 = "Cloudy Park 1 - Animal 6"  # Pitch
cloudy_park_2_a1 = "Cloudy Park 2 - Animal 1"  # Nago
cloudy_park_2_a2 = "Cloudy Park 2 - Animal 2"  # Pitch
cloudy_park_2_a3 = "Cloudy Park 2 - Animal 3"  # ChuChu
cloudy_park_3_a1 = "Cloudy Park 3 - Animal 1"  # Kine
cloudy_park_3_a2 = "Cloudy Park 3 - Animal 2"  # Rick
cloudy_park_3_a3 = "Cloudy Park 3 - Animal 3"  # ChuChu
cloudy_park_4_a1 = "Cloudy Park 4 - Animal 1"  # Coo
cloudy_park_4_a2 = "Cloudy Park 4 - Animal 2"  # ChuChu
cloudy_park_5_a1 = "Cloudy Park 5 - Animal 1"  # Rick
cloudy_park_5_a2 = "Cloudy Park 5 - Animal 2"  # Coo
cloudy_park_6_a1 = "Cloudy Park 6 - Animal 1"  # Nago
cloudy_park_6_a2 = "Cloudy Park 6 - Animal 2"  # Coo
cloudy_park_6_a3 = "Cloudy Park 6 - Animal 3"  # Rick
iceberg_1_a1 = "Iceberg 1 - Animal 1"  # Pitch
iceberg_1_a2 = "Iceberg 1 - Animal 2"  # Rick
iceberg_2_a1 = "Iceberg 2 - Animal 1"  # Nago
iceberg_2_a2 = "Iceberg 2 - Animal 2"  # Pitch
iceberg_3_a1 = "Iceberg 3 - Animal 1"  # Pitch
iceberg_3_a2 = "Iceberg 3 - Animal 2"  # Coo
iceberg_3_a3 = "Iceberg 3 - Animal 3"  # Nago
iceberg_3_a4 = "Iceberg 3 - Animal 4"  # Rick
iceberg_3_a5 = "Iceberg 3 - Animal 5"  # Kine
iceberg_4_a1 = "Iceberg 4 - Animal 1"  # ChuChu
iceberg_4_a2 = "Iceberg 4 - Animal 2"  # Coo
iceberg_4_a3 = "Iceberg 4 - Animal 3"  # Pitch
iceberg_4_a4 = "Iceberg 4 - Animal 4"  # Coo
iceberg_4_a5 = "Iceberg 4 - Animal 5"  # Rick
iceberg_5_a1 = "Iceberg 5 - Animal 1"  # Kine
iceberg_5_a2 = "Iceberg 5 - Animal 2"  # Rick
iceberg_5_a3 = "Iceberg 5 - Animal 3"  # Pitch
iceberg_5_a4 = "Iceberg 5 - Animal 4"  # ChuChu
iceberg_5_a5 = "Iceberg 5 - Animal 5"  # Kine
iceberg_5_a6 = "Iceberg 5 - Animal 6"  # Coo
iceberg_5_a7 = "Iceberg 5 - Animal 7"  # Rick
iceberg_5_a8 = "Iceberg 5 - Animal 8"  # ChuChu
iceberg_6_a1 = "Iceberg 6 - Animal 1"  # Rick
iceberg_6_a2 = "Iceberg 6 - Animal 2"  # Coo
iceberg_6_a3 = "Iceberg 6 - Animal 3"  # Nago
iceberg_6_a4 = "Iceberg 6 - Animal 4"  # Kine
iceberg_6_a5 = "Iceberg 6 - Animal 5"  # ChuChu
iceberg_6_a6 = "Iceberg 6 - Animal 6"  # Nago

animal_friend_spawns = {
    grass_land_1_a1: "Nago Spawn",
    grass_land_1_a2: "Rick Spawn",
    grass_land_2_a1: "ChuChu Spawn",
    grass_land_2_a2: "Pitch Spawn",
    grass_land_3_a1: "Kine Spawn",
    grass_land_3_a2: "Coo Spawn",
    grass_land_4_a1: "ChuChu Spawn",
    grass_land_4_a2: "Nago Spawn",
    grass_land_5_a1: "Coo Spawn",
    grass_land_5_a2: "Kine Spawn",
    grass_land_5_a3: "Nago Spawn",
    grass_land_5_a4: "Rick Spawn",
    grass_land_6_a1: "Rick Spawn",
    grass_land_6_a2: "ChuChu Spawn",
    grass_land_6_a3: "Nago Spawn",
    grass_land_6_a4: "Coo Spawn",
    ripple_field_1_a1: "Pitch Spawn",
    ripple_field_1_a2: "Nago Spawn",
    ripple_field_2_a1: "Kine Spawn",
    ripple_field_2_a2: "ChuChu Spawn",
    ripple_field_2_a3: "Rick Spawn",
    ripple_field_2_a4: "Coo Spawn",
    ripple_field_3_a1: "Kine Spawn",
    ripple_field_3_a2: "Rick Spawn",
    ripple_field_4_a1: "ChuChu Spawn",
    ripple_field_4_a2: "Kine Spawn",
    ripple_field_4_a3: "Nago Spawn",
    ripple_field_5_a1: "Kine Spawn",
    ripple_field_5_a2: "Pitch Spawn",
    ripple_field_6_a1: "Nago Spawn",
    ripple_field_6_a2: "Pitch Spawn",
    ripple_field_6_a3: "Rick Spawn",
    ripple_field_6_a4: "Coo Spawn",
    sand_canyon_1_a1: "Rick Spawn",
    sand_canyon_1_a2: "Pitch Spawn",
    sand_canyon_2_a1: "ChuChu Spawn",
    sand_canyon_2_a2: "Coo Spawn",
    sand_canyon_3_a1: "Pitch Spawn",
    sand_canyon_3_a2: "Coo Spawn",
    sand_canyon_3_a3: "ChuChu Spawn",
    sand_canyon_4_a1: "Rick Spawn",
    sand_canyon_4_a2: "Pitch Spawn",
    sand_canyon_4_a3: "Nago Spawn",
    sand_canyon_5_a1: "Rick Spawn",
    sand_canyon_5_a2: "ChuChu Spawn",
    sand_canyon_6_a1: "Coo Spawn",
    sand_canyon_6_a2: "Kine Spawn",
    sand_canyon_6_a3: "Rick Spawn",
    sand_canyon_6_a4: "ChuChu Spawn",
    sand_canyon_6_a5: "Nago Spawn",
    sand_canyon_6_a6: "Pitch Spawn",
    cloudy_park_1_a1: "Rick Spawn",
    cloudy_park_1_a2: "Nago Spawn",
    cloudy_park_1_a3: "Coo Spawn",
    cloudy_park_1_a4: "Kine Spawn",
    cloudy_park_1_a5: "ChuChu Spawn",
    cloudy_park_1_a6: "Pitch Spawn",
    cloudy_park_2_a1: "Nago Spawn",
    cloudy_park_2_a2: "Pitch Spawn",
    cloudy_park_2_a3: "ChuChu Spawn",
    cloudy_park_3_a1: "Kine Spawn",
    cloudy_park_3_a2: "Rick Spawn",
    cloudy_park_3_a3: "ChuChu Spawn",
    cloudy_park_4_a1: "Coo Spawn",
    cloudy_park_4_a2: "ChuChu Spawn",
    cloudy_park_5_a1: "Rick Spawn",
    cloudy_park_5_a2: "Coo Spawn",
    cloudy_park_6_a1: "Nago Spawn",
    cloudy_park_6_a2: "Coo Spawn",
    cloudy_park_6_a3: "Rick Spawn",
    iceberg_1_a1: "Pitch Spawn",
    iceberg_1_a2: "Rick Spawn",
    iceberg_2_a1: "Nago Spawn",
    iceberg_2_a2: "Pitch Spawn",
    iceberg_3_a1: "Pitch Spawn",
    iceberg_3_a2: "Coo Spawn",
    iceberg_3_a3: "Nago Spawn",
    iceberg_3_a4: "Rick Spawn",
    iceberg_3_a5: "Kine Spawn",
    iceberg_4_a1: "ChuChu Spawn",
    iceberg_4_a2: "Coo Spawn",
    iceberg_4_a3: "Pitch Spawn",
    iceberg_4_a4: "Coo Spawn",
    iceberg_4_a5: "Rick Spawn",
    iceberg_5_a1: "Kine Spawn",
    iceberg_5_a2: "Rick Spawn",
    iceberg_5_a3: "Pitch Spawn",
    iceberg_5_a4: "ChuChu Spawn",
    iceberg_5_a5: "Kine Spawn",
    iceberg_5_a6: "Coo Spawn",
    iceberg_5_a7: "Rick Spawn",
    iceberg_5_a8: "ChuChu Spawn",
    iceberg_6_a1: "Rick Spawn",
    iceberg_6_a2: "Coo Spawn",
    iceberg_6_a3: "Nago Spawn",
    iceberg_6_a4: "Kine Spawn",
    iceberg_6_a5: "ChuChu Spawn",
    iceberg_6_a6: "Nago Spawn",
}

problematic_sets: List[List[str]] = [
    # Animal groups that must be guaranteed unique. Potential for softlocks on future-ER if not.
    [ripple_field_4_a1, ripple_field_4_a2, ripple_field_4_a3],
    [sand_canyon_3_a1, sand_canyon_3_a2, sand_canyon_3_a3],
    [cloudy_park_6_a1, cloudy_park_6_a2, cloudy_park_6_a3],
    [iceberg_6_a1, iceberg_6_a2, iceberg_6_a3],
    [iceberg_6_a4, iceberg_6_a5, iceberg_6_a6]
]
