mirror of
https://gitlab.com/the-no-frauds-club/cosmonarchy-bw-prerelease.git
synced 2026-09-17 01:01:12 +00:00
169 lines
6.1 KiB
Lua
169 lines
6.1 KiB
Lua
---@class ZergTier3
|
|
local Tier3 = {}
|
|
|
|
--- Requests Othstol Oviform 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.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.hydrith_othstol_hachirosk(melee_ai, town)
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(4, UnitId.ZergHachirosk, 115)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.potency_othstol_settle(melee_ai, town)
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.horizon_othstol(melee_ai, town)
|
|
town:multirun(function()
|
|
melee_ai:dynamic_wait(mins(1) + secs(15))
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
end)
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.giant_othstol_gathtelosk(melee_ai, town)
|
|
town:multirun(function()
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
end)
|
|
melee_ai:dynamic_wait(secs(50))
|
|
town:build(1, UnitId.ZergGathtelosk, 50)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
end
|
|
|
|
-- Category expansion tails: reuse the same shared node-acquisition pattern per
|
|
-- category, run once a new town is expanded into.
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.assault_expansion(melee_ai, town)
|
|
town:build(1, UnitId.ZergIrolIris, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergCaphrolosk, 70)
|
|
town:build(1, UnitId.ZergQuazethPool, 70, true)
|
|
town:build(1, UnitId.ZergKalkiirLake, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergHachirosk, 70)
|
|
melee_ai:dynamic_wait(secs(5))
|
|
town:build(1, UnitId.ZergHydrithDen, 70, true)
|
|
town:build(1, UnitId.ZergTethvithSwamp, 70, true)
|
|
melee_ai:dynamic_wait(secs(20))
|
|
town:build(1, UnitId.ZergMutathSpire, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergMatravilNest, 70, true)
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergZorkizShroud, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergGathtelosk, 50)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergAlmakisAntre, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergUlgorgCavern, 70, true)
|
|
melee_ai:dynamic_wait(secs(40))
|
|
town:build(1, UnitId.ZergTosvrolHaunt, 70, true)
|
|
melee_ai:dynamic_wait(secs(50))
|
|
town:build(1, UnitId.ZergGeszkathGrotto, 50, true)
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.swarm_expansion(melee_ai, town)
|
|
melee_ai:dynamic_wait(secs(5))
|
|
town:build(1, UnitId.ZergIrolIris, 70, true)
|
|
town:build(1, UnitId.ZergMutathSpire, 70, true)
|
|
melee_ai:dynamic_wait(secs(50))
|
|
town:build(1, UnitId.ZergMatravilNest, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergHydrithDen, 70, true)
|
|
town:build(1, UnitId.ZergTethvithSwamp, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergZorkizShroud, 70, true)
|
|
melee_ai:dynamic_wait(secs(5))
|
|
town:build(1, UnitId.ZergTosvrolHaunt, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
town:build(1, UnitId.ZergGathtelosk, 50)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergAlmakisAntre, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergUlgorgCavern, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergGeszkathGrotto, 50, true)
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.sunblot_expansion(melee_ai, town)
|
|
town:build(1, UnitId.ZergIrolIris, 70, true)
|
|
town:build(1, UnitId.ZergQuazethPool, 70, true)
|
|
town:build(1, UnitId.ZergMutathSpire, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergHydrithDen, 70, true)
|
|
town:build(1, UnitId.ZergTethvithSwamp, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergTosvrolHaunt, 70, true)
|
|
town:build(1, UnitId.ZergKalkiirLake, 70, true)
|
|
melee_ai:dynamic_wait(secs(40))
|
|
town:build(1, UnitId.ZergMatravilNest, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergAlmakisAntre, 70, true)
|
|
melee_ai:dynamic_wait(secs(5))
|
|
town:build(1, UnitId.ZergGathtelosk, 50)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergGeszkathGrotto, 50, true)
|
|
melee_ai:dynamic_wait(secs(20))
|
|
town:build(1, UnitId.ZergZorkizShroud, 70, true)
|
|
melee_ai:dynamic_wait(secs(40))
|
|
town:build(1, UnitId.ZergUlgorgCavern, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
end
|
|
|
|
---@param melee_ai MeleeAI
|
|
---@param town Town
|
|
function Tier3.general_expansion(melee_ai, town)
|
|
town:build(1, UnitId.ZergHydrithDen, 70, true)
|
|
melee_ai:dynamic_wait(secs(20))
|
|
town:build(1, UnitId.ZergQuazethPool, 70, true)
|
|
town:build(1, UnitId.ZergKalkiirLake, 70, true)
|
|
town:build(1, UnitId.ZergIrolIris, 70, true)
|
|
melee_ai:dynamic_wait(secs(5))
|
|
town:build(1, UnitId.ZergMutathSpire, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergZorkizShroud, 70, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergTethvithSwamp, 70, true)
|
|
melee_ai:dynamic_wait(secs(40))
|
|
town:build(1, UnitId.ZergOthstolOviform, 65, true)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergGathtelosk, 50)
|
|
melee_ai:dynamic_wait(secs(15))
|
|
town:build(1, UnitId.ZergUlgorgCavern, 70, true)
|
|
melee_ai:dynamic_wait(secs(40))
|
|
town:build(1, UnitId.ZergTosvrolHaunt, 70, true)
|
|
melee_ai:dynamic_wait(secs(25))
|
|
town:build(1, UnitId.ZergMatravilNest, 70, true)
|
|
town:build(1, UnitId.ZergAlmakisAntre, 70, true)
|
|
melee_ai:dynamic_wait(secs(50))
|
|
town:build(1, UnitId.ZergGeszkathGrotto, 50, true)
|
|
end
|
|
|
|
return Tier3
|