cosmonarchy-bw-prerelease/mpq/lua/melee/terran/raider.lua
2026-09-09 10:52:21 -04:00

154 lines
4.8 KiB
Lua

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,
Tier1.vestry_request,
Tier2.acquire,
Tier1.covenant_request,
Tier3.acquire,
}
local attack_wave_cost_bias = 0.4
return {
---@type AIPersonality
eight_rax = {
name = "Raider: 8Rax",
unit_composition = {
-- signature unit
[UnitId.TerranMaverick] = 3,
-- healers
[UnitId.TerranCleric] = 1.5,
-- filler units
[UnitId.TerranHarakan] = 1,
[UnitId.TerranCyprian] = 1,
},
main_build_order = {
Openers.eight_rax,
Tier1.eight_rax,
Tier2.acquire,
Tier2.raider_vestry_covenant_buildup,
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
three_rax_bio = {
name = "Raider: 3Rax Maverick & Cleric",
unit_composition = {
-- signature units
[UnitId.TerranMaverick] = 3,
-- healers
[UnitId.TerranCleric] = 2,
-- filler units
[UnitId.TerranEidolon] = 1,
},
main_build_order = {
Openers.three_rax_bio,
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
fast_anvil = {
name = "Raider: Fast Anvil",
unit_composition = {
-- signature units
[UnitId.TerranCyprian] = 2,
[UnitId.TerranEidolon] = 2,
-- filler units
[UnitId.TerranMaverick] = 1,
},
main_build_order = {
Openers.fast_anvil,
Tier1.fast_anvil,
Tier2.acquire,
Tier2.raider_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
four_rax_pressure = {
name = "Raider: 4Rax Pressure",
unit_composition = {
-- healers
[UnitId.TerranShamanSupportMode] = 2,
-- filler units
[UnitId.TerranSavantEntropyGauntlets] = 1,
[UnitId.TerranCyprian] = 1,
},
main_build_order = {
Openers.four_rax_pressure,
Tier1.four_rax_pressure,
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
uprising = {
name = "Raider: Uprising",
unit_composition = {
-- signature units
[UnitId.TerranCyprian] = 3,
-- healers
[UnitId.TerranCleric] = 1.5,
-- filler units
[UnitId.TerranEidolon] = 1,
},
main_build_order = {
Openers.stockade_quick_start,
Tier1.uprising,
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
holy_ackmeds = {
name = "Raider: Holy Ackmeds!",
unit_composition = {
-- signature unit
[UnitId.TerranHarakan] = 3,
-- filler units
[UnitId.TerranSundog] = 1,
[UnitId.TerranSalamander] = 1,
},
main_build_order = {
Openers.holy_ackmeds,
Tier2.acquire,
Tier2.raider_vestry_starport_rotary,
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,
},
}