// <auto-generated />
namespace Model;

public static class Units
{
    public static readonly UnitData CorsairRaiders = new(
        Id: "CorsairRaiders",
        Name: "Corsair Raiders",
        Hexite: 58,
        Flux: 0,
        Supply: 2,
        ProductionTime: 30,
        Health: 175,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 650,
        DamagePerSecond: 8,
        AttackRange: 8,
        Attributes: ["Light Armor", "Biological"],
        Tier: 1,
        Faction: "Corsair",
        Hotkey: "Z",
        BuildAtSameTime: 3,
        Limit: null);

    public static readonly UnitData CorsairRovers = new(
        Id: "CorsairRovers",
        Name: "Corsair Rovers",
        Hexite: 100,
        Flux: 25,
        Supply: 3,
        ProductionTime: 35,
        Health: 320,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 750,
        DamagePerSecond: 17,
        AttackRange: 7,
        Attributes: ["Light Armor"],
        Tier: 1,
        Faction: "Corsair",
        Hotkey: "X",
        BuildAtSameTime: 2,
        Limit: null);

    public static readonly UnitData CorsairSnipers = new(
        Id: "CorsairSnipers",
        Name: "Corsair Snipers",
        Hexite: 38,
        Flux: 100,
        Supply: 4,
        ProductionTime: 30,
        Health: 100,
        Energy: 0,
        Shields: 100,
        ArmorRating: 0,
        MovementSpeed: 425,
        DamagePerSecond: 14,
        AttackRange: 20,
        Attributes: ["Light Armor", "Biological", "Bonus Damage vs Light Armor"],
        Tier: 1,
        Faction: "Corsair",
        Hotkey: "C",
        BuildAtSameTime: 2,
        Limit: null);

    public static readonly UnitData CorsairHovercraft = new(
        Id: "CorsairHovercraft",
        Name: "Corsair Hovercraft",
        Hexite: 100,
        Flux: 62,
        Supply: 4,
        ProductionTime: 20,
        Health: 375,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 550,
        DamagePerSecond: 20,
        AttackRange: 9,
        Attributes: ["Medium Armor"],
        Tier: 2,
        Faction: "Corsair",
        Hotkey: null,
        BuildAtSameTime: 2,
        Limit: null);

    public static readonly UnitData CorsairFlamer = new(
        Id: "CorsairFlamer",
        Name: "Corsair Flamer",
        Hexite: 100,
        Flux: 200,
        Supply: 6,
        ProductionTime: 35,
        Health: 1000,
        Energy: 0,
        Shields: 0,
        ArmorRating: 2,
        MovementSpeed: 450,
        DamagePerSecond: 64,
        AttackRange: 4,
        Attributes: ["Heavy Armor", "Bonus Damage vs Light Armor", "Respawns for free after death"],
        Tier: 3,
        Faction: "Corsair",
        Hotkey: "V",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Gatherer = new(
        Id: "Gatherer",
        Name: "Gatherer",
        Hexite: 100,
        Flux: 0,
        Supply: 0,
        ProductionTime: 18,
        Health: 275,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 510,
        DamagePerSecond: 0,
        AttackRange: 0,
        Attributes: ["Biological", "Respawns for free after death"],
        Tier: 0,
        Faction: "Grell",
        Hotkey: "H",
        BuildAtSameTime: 1,
        Limit: 5);

    public static readonly UnitData BroodGuard = new(
        Id: "BroodGuard",
        Name: "Brood Guard",
        Hexite: 125,
        Flux: 0,
        Supply: 3,
        ProductionTime: 33,
        Health: 250,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 550,
        DamagePerSecond: 15,
        AttackRange: 1,
        Attributes: ["Medium Armor", "Biological"],
        Tier: 1,
        Faction: "Grell",
        Hotkey: "G",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Lasher = new(
        Id: "Lasher",
        Name: "Lasher",
        Hexite: 50,
        Flux: 25,
        Supply: 2,
        ProductionTime: 26,
        Health: 150,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 550,
        DamagePerSecond: 14,
        AttackRange: 8,
        Attributes: ["Light Armor", "Biological", "Bonus Damage vs Medium Armor"],
        Tier: 1,
        Faction: "Grell",
        Hotkey: "R",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Skrell = new(
        Id: "Skrell",
        Name: "Skrell",
        Hexite: 12,
        Flux: 19,
        Supply: 1,
        ProductionTime: 35,
        Health: 50,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 900,
        DamagePerSecond: 5,
        AttackRange: 2,
        Attributes: ["Air unit", "Light Armor", "Biological", "Bonus Damage vs Air"],
        Tier: 1,
        Faction: "Grell",
        Hotkey: "T",
        BuildAtSameTime: 4,
        Limit: null);

    public static readonly UnitData Stinger = new(
        Id: "Stinger",
        Name: "Stinger",
        Hexite: 25,
        Flux: 0,
        Supply: 1,
        ProductionTime: 39,
        Health: 90,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 700,
        DamagePerSecond: 9,
        AttackRange: 1,
        Attributes: ["Light Armor", "Biological"],
        Tier: 1,
        Faction: "Grell",
        Hotkey: "Q",
        BuildAtSameTime: 3,
        Limit: null);

    public static readonly UnitData Harbinger = new(
        Id: "Harbinger",
        Name: "Harbinger",
        Hexite: 75,
        Flux: 50,
        Supply: 4,
        ProductionTime: 35,
        Health: 400,
        Energy: 0,
        Shields: 0,
        ArmorRating: 1,
        MovementSpeed: 475,
        DamagePerSecond: 14,
        AttackRange: 6,
        Attributes: ["Biological", "Medium Armor", "Bonus Damage vs Heavy Armor"],
        Tier: 2,
        Faction: "Grell",
        Hotkey: "W",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Mandragora = new(
        Id: "Mandragora",
        Name: "Mandragora",
        Hexite: 125,
        Flux: 25,
        Supply: 4,
        ProductionTime: 48,
        Health: 450,
        Energy: 0,
        Shields: 0,
        ArmorRating: 1,
        MovementSpeed: 550,
        DamagePerSecond: 22,
        AttackRange: 4,
        Attributes: ["Medium Armor", "Biological"],
        Tier: 2,
        Faction: "Grell",
        Hotkey: "F",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Thresher = new(
        Id: "Thresher",
        Name: "Thresher",
        Hexite: 100,
        Flux: 175,
        Supply: 8,
        ProductionTime: 65,
        Health: 300,
        Energy: 0,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 450,
        DamagePerSecond: 36,
        AttackRange: 27,
        Attributes: ["Biological", "Heavy Armor", "Bonus Damage vs Buildings"],
        Tier: 2,
        Faction: "Grell",
        Hotkey: "S",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Behemoth = new(
        Id: "Behemoth",
        Name: "Behemoth",
        Hexite: 100,
        Flux: 200,
        Supply: 8,
        ProductionTime: 80,
        Health: 625,
        Energy: 5,
        Shields: 0,
        ArmorRating: 1,
        MovementSpeed: 500,
        DamagePerSecond: 15,
        AttackRange: 12,
        Attributes: ["Air unit", "Regains Energy From Attacking", "Biological", "Heavy Armor", "Bonus Damage vs Heavy Armor"],
        Tier: 3,
        Faction: "Grell",
        Hotkey: "D",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Reaver = new(
        Id: "Reaver",
        Name: "Reaver",
        Hexite: 200,
        Flux: 100,
        Supply: 8,
        ProductionTime: 80,
        Health: 900,
        Energy: 15,
        Shields: 0,
        ArmorRating: 3,
        MovementSpeed: 525,
        DamagePerSecond: 51,
        AttackRange: 2,
        Attributes: ["Regains Energy From Attacking", "Biological", "Heavy Armor"],
        Tier: 3,
        Faction: "Grell",
        Hotkey: "A",
        BuildAtSameTime: 1,
        Limit: null);

    public static readonly UnitData Weaver = new(
        Id: "Weaver",
        Name: "Weaver",
        Hexite: 75,
        Flux: 175,
        Supply: 4,
        ProductionTime: 40,
        Health: 200,
        Energy: 80,
        Shields: 0,
        ArmorRating: 0,
        MovementSpeed: 650,
        DamagePerSecond: 10,
        AttackRange: 12,
        Attributes: ["Medium Armor", "Biological", "Bonus Damage vs Air"],
        Tier: 3,
        Faction: "Grell",
        Hotkey: "E",
        BuildAtSameTime: 1,
        Limit: null);

    public static IReadOnlyList<UnitData> All { get; } =
    [
        CorsairRaiders,
        CorsairRovers,
        CorsairSnipers,
        CorsairHovercraft,
        CorsairFlamer,
        Gatherer,
        BroodGuard,
        Lasher,
        Skrell,
        Stinger,
        Harbinger,
        Mandragora,
        Thresher,
        Behemoth,
        Reaver,
        Weaver,
    ];
}
