cosmonarchy-bw-prerelease/mpq/lua/melee/terran/armor.lua

165 lines
5.3 KiB
Lua
Raw Normal View History

2026-09-09 14:52:21 +00:00
local Basic = require("melee.terran.build.basic")
local Openers = require("melee.terran.build.openers")
local Tier1 = require("melee.terran.build.tier1")
local Tier2 = require("melee.terran.build.tier2")
local Tier3 = require("melee.terran.build.tier3")
local expansion_build_order = {
Basic.build_expansion,
Tier2.acquire,
Tier2.fulcrum_buildup,
Tier3.acquire,
}
local attack_wave_cost_bias = 0.6
return {
---@type AIPersonality
tank_push = {
name = "Armor: Tank Push",
unit_composition = {
-- signature units
[UnitId.TerranMatadorTankMode] = 2,
[UnitId.TerranPhalanxTankMode] = 2,
-- healers
[UnitId.TerranCleric] = 1,
-- filler units
[UnitId.TerranCyprian] = 1,
[UnitId.TerranBlackjack] = 1,
[UnitId.TerranMadrigalImperiosoMode] = 1,
},
main_build_order = {
Openers.tank_push,
Tier2.acquire,
Tier2.stockade_requeue,
Tier3.acquire,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
---@type AIPersonality
two_fulc_vulture = {
name = "Armor: 2Fulc Vulture",
unit_composition = {
-- signature unit
[UnitId.TerranVulture] = 3,
-- filler units
[UnitId.TerranMaverick] = 1,
[UnitId.TerranCyclops] = 1,
},
main_build_order = {
Openers.two_fulc_vulture,
Tier1.two_fulc_vulture,
Tier2.acquire,
Tier3.acquire,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
---@type AIPersonality
fe_five_fulc = {
name = "Armor: FE 5Fulc",
unit_composition = {
-- signature units
[UnitId.TerranVulture] = 2,
[UnitId.TerranBlackjack] = 2,
[UnitId.TerranPhalanxTankMode] = 2,
-- filler units
[UnitId.TerranMaverick] = 1,
[UnitId.TerranAzazel] = 1,
[UnitId.TerranSeraph] = 1,
},
main_build_order = {
Openers.fe_five_fulc,
Tier1.fe_five_fulc,
Tier2.starport_commandment_buildup,
Tier2.acquire,
Tier3.acquire,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
---@type AIPersonality
david_and_goliath = {
name = "Armor: David and Goliath",
unit_composition = {
-- signature units
[UnitId.TerranGoliath] = 3,
[UnitId.TerranMaverick] = 2,
-- filler units
[UnitId.TerranMatadorTankMode] = 1,
[UnitId.TerranPhalanxTankMode] = 1,
[UnitId.TerranWraith] = 1,
[UnitId.TerranBlackjack] = 1,
},
main_build_order = {
Openers.david_and_goliath,
Tier1.david_and_goliath,
Tier2.acquire,
Tier2.fulcrum_scaling,
Tier3.acquire,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
---@type AIPersonality
iron_crusade = {
name = "Armor: Iron Crusade",
unit_composition = {
-- signature units (Iron Foundry x4 is the real investment of this build)
[UnitId.TerranPaladin] = 3,
[UnitId.TerranCuirassTankMode] = 2,
[UnitId.TerranPazuzu] = 2,
-- filler units
[UnitId.TerranVulture] = 1,
[UnitId.TerranWraith] = 1,
},
main_build_order = {
Openers.expand_first,
Tier1.iron_crusade,
Tier2.acquire,
Tier2.fulcrum_buildup,
Tier3.acquire,
Tier3.iron_foundries,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
---@type AIPersonality
walker_power = {
name = "Armor: Walker Power",
unit_composition = {
-- signature units (walkers)
[UnitId.TerranGoliath] = 3,
[UnitId.TerranCyclops] = 2,
[UnitId.TerranBlackjack] = 2,
-- filler units
[UnitId.TerranPhalanxTankMode] = 1,
[UnitId.TerranMaverick] = 1,
},
main_build_order = {
Openers.walker_power,
Tier2.acquire,
Tier3.acquire,
},
expansion_build_order = expansion_build_order,
build_anti_ground_defenses = Basic.build_anti_ground,
build_anti_air_defenses = Basic.build_anti_air,
attack_wave_cost_bias = attack_wave_cost_bias,
},
}