1
0
mirror of https://gitlab.com/the-no-frauds-club/cosmonarchy-bw-prerelease.git synced 2026-09-22 23:01:42 +00:00
cosmonarchy-bw-prerelease/mpq/lua/melee/protoss/build/tier2.lua
2026-09-09 10:52:21 -04:00

180 lines
5.8 KiB
Lua

---@class ProtossTier2
local Tier2 = {}
--- Requests a Lattice and an extra Gateway. The generic tier-2 scale-up, for
--- personalities without bespoke tier-2 content.
---@param melee_ai MeleeAI
---@param town Town
function Tier2.acquire(melee_ai, town)
town:build(1, UnitId.ProtossLattice, 70, true)
melee_ai:dynamic_wait(secs(25))
town:build(2, UnitId.ProtossGateway, 70)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.strider_lattice_library_gateway(melee_ai, town)
town:build(1, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(20))
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(15))
town:build(5, UnitId.ProtossGateway, 70)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.emissary_ardent_lattice_gateway(melee_ai, town)
town:build(1, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossLattice, 70)
wait(secs(3))
town:build(2, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(15))
town:build(4, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(25))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.authority_ardent_gateway_expand_lattice(melee_ai, town)
town:build(1, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(15))
town:build(4, UnitId.ProtossGateway, 70)
wait(secs(1))
melee_ai:dynamic_wait(secs(25))
town:build(2, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(5))
town:build(4, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(15))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.expo_ardent_authority(melee_ai, town)
town:build(1, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(50))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.strider3_library_expand(melee_ai, town)
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(20) + secs(40))
town:build(2, UnitId.ProtossGrandLibrary, 70)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.shadow_roguegallery_expand_library(melee_ai, town)
town:build(1, UnitId.ProtossRogueGallery, 70)
town:build(2, UnitId.ProtossRogueGallery, 70)
melee_ai:dynamic_wait(secs(30) + secs(40))
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(mins(1) + secs(5))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.legion_library_x2(melee_ai, town)
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(15))
town:build(2, UnitId.ProtossGrandLibrary, 70)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.martyrdom_pylon_roguegallery(melee_ai, town)
town:build(4, UnitId.ProtossPylon, 70)
wait(secs(3))
town:build(2, UnitId.ProtossRogueGallery, 70)
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.heralds_library_gateway_buildup(melee_ai, town)
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(20))
town:build(3, UnitId.ProtossPylon, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(40) + mins(1))
town:build(5, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(mins(1))
town:build(9, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(mins(1) + secs(55))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.escort_stargate_buildup(melee_ai, town)
town:build(1, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(5))
town:build(2, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(45))
town:build(3, UnitId.ProtossStargate, 70)
wait(secs(1))
melee_ai:dynamic_wait(mins(1))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.legion_stargate_gateway_library(melee_ai, town)
town:build(1, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(20))
town:build(2, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(40) + secs(5))
town:build(3, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(20))
town:build(4, UnitId.ProtossGateway, 70)
melee_ai:dynamic_wait(secs(15))
town:build(4, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(15))
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(15))
town:build(2, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(15))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.matriarchy_library_lattice(melee_ai, town)
town:build(1, UnitId.ProtossGrandLibrary, 70)
melee_ai:dynamic_wait(secs(15))
town:build(3, UnitId.ProtossLattice, 70)
melee_ai:dynamic_wait(secs(25))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.robotics_ardent_x2(melee_ai, town)
town:build(1, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(40))
end
---@param melee_ai MeleeAI
---@param town Town
function Tier2.swordsmiths_ardent_stargate(melee_ai, town)
town:build(1, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(50))
town:build(1, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossStargate, 70)
melee_ai:dynamic_wait(secs(40))
town:build(2, UnitId.ProtossArdentAuthority, 70)
melee_ai:dynamic_wait(secs(25))
end
return Tier2