cosmonarchy-bw-prerelease/mpq/lua/melee/protoss/build/tier3.lua
2026-09-09 10:52:21 -04:00

87 lines
2.6 KiB
Lua

---@class ProtossTier3
local Tier3 = {}
--- Requests a Prostration Stage and waits for it. The generic tier-3 tech
--- transition, for personalities without bespoke tier-3 content.
---@param melee_ai MeleeAI
---@param town Town
function Tier3.acquire(melee_ai, town)
town:build(1, UnitId.ProtossProstrationStage, 65)
melee_ai:dynamic_wait(secs(50))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.authority_prostration_ardent2(melee_ai, town)
town:build(1, UnitId.ProtossProstrationStage, 65)
melee_ai:dynamic_wait(secs(50))
town:build(2, UnitId.ProtossArdentAuthority, 50)
melee_ai:dynamic_wait(mins(1) + secs(15))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.martyrdom_prostration_crucible(melee_ai, town)
town:build(1, UnitId.ProtossProstrationStage, 65)
melee_ai:dynamic_wait(secs(50))
town:build(1, UnitId.ProtossCrucible, 50)
melee_ai:dynamic_wait(secs(50))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.escort_argosy_buildup(melee_ai, town)
town:build(1, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(secs(40))
town:build(3, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(secs(25))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.exalted_argosy_crucible(melee_ai, town)
town:build(1, UnitId.ProtossArgosy, 50)
town:wait_build(1, UnitId.ProtossArgosy, false)
melee_ai:dynamic_wait(secs(50))
town:build(1, UnitId.ProtossCrucible, 50)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(mins(1) + secs(15))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.fleet_argosy_buildup(melee_ai, town)
town:build(1, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(mins(1))
town:build(2, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(secs(40))
town:build(3, UnitId.ProtossArgosy, 50)
melee_ai:dynamic_wait(mins(1) + secs(15))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.legion_argosy_only(melee_ai, town)
town:build(1, UnitId.ProtossArgosy, 50)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.matriarchy_prostration(melee_ai, town)
town:build(1, UnitId.ProtossProstrationStage, 65)
melee_ai:dynamic_wait(mins(1) + secs(40))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier3.robotics_prostration(melee_ai, town)
town:build(1, UnitId.ProtossProstrationStage, 65)
melee_ai:dynamic_wait(mins(2) + secs(20))
end
return Tier3