---@class ProtossTier1 local Tier1 = {} -- Ranger ---@param melee_ai MeleeAI ---@param town Town function Tier1.two_gate_strider(melee_ai, town) melee_ai:dynamic_wait(secs(45)) town:build(4, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(5)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.one_gate_authority(melee_ai, town) melee_ai:dynamic_wait(secs(25)) town:build(2, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(45)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(25)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.simulant_swarm(melee_ai, town) melee_ai:dynamic_wait(secs(20)) town:build(5, UnitId.ProtossLattice, 90) melee_ai:dynamic_wait(secs(20)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.the_registry(melee_ai, town) melee_ai:dynamic_wait(secs(40)) town:build(2, UnitId.ProtossPylon, 90) melee_ai:dynamic_wait(secs(40)) town:wait_build(2, UnitId.ProtossPylon) town:build(4, UnitId.ProtossLattice, 90) melee_ai:dynamic_wait(secs(30)) end -- Templar ---@param melee_ai MeleeAI ---@param town Town function Tier1.three_gate_strider(melee_ai, town) melee_ai:dynamic_wait(secs(30)) town:build(2, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(mins(1)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(15)) town:build(4, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(45)) town:build(5, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(15)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.suffocating_shadow(melee_ai, town) melee_ai:dynamic_wait(secs(20)) town:build(2, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(45)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.legion(melee_ai, town) melee_ai:dynamic_wait(secs(40)) town:build(9, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.initiates(melee_ai, town) melee_ai:dynamic_wait(secs(20)) town:build(4, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(25)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.legions_heralds(melee_ai, town) melee_ai:dynamic_wait(secs(20)) town:build(2, UnitId.ProtossPylon, 90) melee_ai:dynamic_wait(secs(15)) town:wait_build(1, UnitId.ProtossPylon) town:build(2, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(20)) end -- Skylord ---@param melee_ai MeleeAI ---@param town Town function Tier1.solar_escort(melee_ai, town) melee_ai:dynamic_wait(secs(45)) town:wait_build(1, UnitId.ProtossPylon) town:build(1, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.deadly_omen(melee_ai, town) melee_ai:dynamic_wait(secs(40)) town:build(3, UnitId.ProtossStargate, 90) melee_ai:dynamic_wait(mins(1)) town:build(4, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(50)) town:build(5, UnitId.ProtossStargate, 90) melee_ai:dynamic_wait(mins(1) + secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.two_gate_panoptus(melee_ai, town) melee_ai:dynamic_wait(mins(1) + secs(35)) town:build(3, UnitId.ProtossGateway, 90) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.exalted(melee_ai, town) melee_ai:dynamic_wait(mins(1)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(mins(1)) town:build(3, UnitId.ProtossStargate, 90) melee_ai:dynamic_wait(secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.ships_and_swords(melee_ai, town) melee_ai:dynamic_wait(mins(1)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(25)) town:build(2, UnitId.ProtossStargate, 90) melee_ai:dynamic_wait(secs(55)) town:build(3, UnitId.ProtossStargate, 90) melee_ai:dynamic_wait(secs(50)) end -- General ---@param melee_ai MeleeAI ---@param town Town function Tier1.matriarchy(melee_ai, town) melee_ai:dynamic_wait(secs(40)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(25)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.robotics_fe(melee_ai, town) melee_ai:dynamic_wait(secs(15)) town:wait_build(1, UnitId.ProtossPylon) town:build(1, UnitId.ProtossLattice, 90) melee_ai:dynamic_wait(secs(15)) town:build(2, UnitId.ProtossPylon, 90) melee_ai:dynamic_wait(secs(15)) town:build(2, UnitId.ProtossLattice, 90) melee_ai:dynamic_wait(secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.strident_striders(melee_ai, town) melee_ai:dynamic_wait(secs(20)) town:build(2, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(15)) town:build(2, UnitId.ProtossPylon, 90) melee_ai:dynamic_wait(secs(50)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(mins(1) + secs(45)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.the_swordsmiths(melee_ai, town) melee_ai:dynamic_wait(secs(15)) town:build(2, UnitId.ProtossPylon, 90) melee_ai:dynamic_wait(secs(40)) end ---@param melee_ai MeleeAI ---@param town Town function Tier1.worship(melee_ai, town) melee_ai:dynamic_wait(secs(25)) town:build(3, UnitId.ProtossGateway, 90) melee_ai:dynamic_wait(secs(25)) town:build(2, UnitId.ProtossLattice, 90) melee_ai:dynamic_wait(secs(15)) end return Tier1