mirror of
https://gitlab.com/the-no-frauds-club/cosmonarchy-bw-prerelease.git
synced 2026-09-22 23:01:42 +00:00
180 lines
5.8 KiB
Lua
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
|