local Basic = require("melee.protoss.build.basic") local Openers = require("melee.protoss.build.openers") local Tier1 = require("melee.protoss.build.tier1") local Tier2 = require("melee.protoss.build.tier2") local Tier3 = require("melee.protoss.build.tier3") local Tier4 = require("melee.protoss.build.tier4") local expansion_build_order = { Basic.build_expansion, Tier4.skylord_expansion, } local attack_wave_cost_bias = 0.6 return { ---@type AIPersonality solar_escort = { name = "Skylord: Solar Escort", unit_composition = { -- signature units [UnitId.ProtossSolarion] = 2, [UnitId.ProtossLegionnaire] = 2, [UnitId.ProtossVassal] = 2, -- filler units [UnitId.ProtossEcclesiast] = 1, [UnitId.ProtossPanoptus] = 1, [UnitId.ProtossGladius] = 1, [UnitId.ProtossEmpyrean] = 1, }, main_build_order = { Openers.solar_escort, Tier1.solar_escort, Tier2.escort_stargate_buildup, Tier3.escort_argosy_buildup, Tier4.skylord_monument_acquire, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, ---@type AIPersonality deadly_omen = { name = "Skylord: Deadly Omen", unit_composition = { -- signature units [UnitId.ProtossZealot] = 2, [UnitId.ProtossVassal] = 2, -- filler units [UnitId.ProtossPanoptus] = 1, [UnitId.ProtossExemplar] = 1, }, main_build_order = { Openers.deadly_omen, Tier1.deadly_omen, Tier2.acquire, Tier3.acquire, Tier4.skylord_monument_acquire, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, ---@type AIPersonality two_gate_panoptus = { name = "Skylord: 2 Gate Panoptus", unit_composition = { -- signature units [UnitId.ProtossPanoptus] = 3, [UnitId.ProtossVassal] = 2, -- filler units [UnitId.ProtossHierophant] = 1, }, main_build_order = { Openers.two_gate_panoptus, Tier1.two_gate_panoptus, Tier2.acquire, Tier3.acquire, Tier4.skylord_monument_acquire, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, ---@type AIPersonality exalted = { name = "Skylord: Exalted", unit_composition = { -- signature units (Monument of Sin) [UnitId.ProtossVassal] = 2, [UnitId.ProtossStarSovereign] = 2, [UnitId.ProtossAnthelion] = 2, -- filler units [UnitId.ProtossPanoptus] = 1, [UnitId.ProtossExemplar] = 1, [UnitId.ProtossDidact] = 1, }, main_build_order = { Openers.exalted, Tier1.exalted, Tier2.acquire, Tier3.exalted_argosy_crucible, Tier4.exalted_monument_of_sin, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, ---@type AIPersonality sorrow_fleet = { name = "Skylord: Sorrow Fleet", unit_composition = { -- signature units (Monument of Sin) [UnitId.ProtossVassal] = 2, [UnitId.ProtossStarSovereign] = 2, [UnitId.ProtossAnthelion] = 1.5, -- filler units [UnitId.ProtossPanoptus] = 1, [UnitId.ProtossGladius] = 1, [UnitId.ProtossEmpyrean] = 1, }, main_build_order = { Openers.sorrow_fleet, Tier2.acquire, Tier3.fleet_argosy_buildup, Tier4.fleet_monument_of_sin, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, ---@type AIPersonality ships_and_swords = { name = "Skylord: Ships and Swords", unit_composition = { -- signature units [UnitId.ProtossVassal] = 2, [UnitId.ProtossAurora] = 1.5, [UnitId.ProtossMagister] = 1.5, -- filler units [UnitId.ProtossGladius] = 1, [UnitId.ProtossStarSovereign] = 1, }, main_build_order = { Openers.ships_and_swords, Tier1.ships_and_swords, Tier2.acquire, Tier3.acquire, Tier4.skylord_monument_acquire, }, expansion_build_order = expansion_build_order, build_anti_ground_defenses = Basic.build_anti_ground, build_anti_air_defenses = Basic.build_anti_air, attack_wave_cost_bias = attack_wave_cost_bias, }, }