cosmonarchy-bw-prerelease/mpq/lua/melee/protoss/templar.lua

164 lines
5.5 KiB
Lua
Raw Normal View History

2026-09-09 14:52:21 +00:00
local Basic = require("melee.protoss.build.basic")
local Openers = require("melee.protoss.build.openers")
local Tier1 = require("melee.protoss.build.tier1")
local Tier2 = require("melee.protoss.build.tier2")
local Tier3 = require("melee.protoss.build.tier3")
local Tier4 = require("melee.protoss.build.tier4")
local expansion_build_order = {
Basic.build_expansion,
Tier4.templar_expansion,
}
local attack_wave_cost_bias = 0.4
return {
---@type AIPersonality
three_gate_strider = {
name = "Templar: 3 Gate Strider",
unit_composition = {
-- signature unit
[UnitId.ProtossLegionnaire] = 2,
-- filler units
[UnitId.ProtossAccantor] = 1,
[UnitId.ProtossDracadin] = 1,
[UnitId.ProtossArchon] = 1,
},
main_build_order = {
Openers.three_gate_strider,
Tier1.three_gate_strider,
Tier2.strider3_library_expand,
Tier3.acquire,
Tier4.templar_archives_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
suffocating_shadow = {
name = "Templar: Suffocating Shadow",
unit_composition = {
-- signature units (Rogue Gallery)
[UnitId.ProtossVagrant] = 2,
[UnitId.ProtossCabalist] = 2,
[UnitId.ProtossCharlatan] = 2,
[UnitId.ProtossBarghest] = 2,
[UnitId.ProtossZealot] = 2,
-- filler units
[UnitId.ProtossAtreus] = 1,
[UnitId.ProtossEcclesiast] = 1,
},
main_build_order = {
Openers.suffocating_shadow,
Tier1.suffocating_shadow,
Tier2.shadow_roguegallery_expand_library,
Tier3.acquire,
Tier4.templar_archives_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
legion = {
name = "Templar: Legion",
unit_composition = {
-- signature unit
[UnitId.ProtossLegionnaire] = 2,
-- filler units
[UnitId.ProtossEcclesiast] = 1,
[UnitId.ProtossArchon] = 1,
},
main_build_order = {
Openers.legion,
Tier1.legion,
Tier2.legion_library_x2,
Tier3.acquire,
Tier4.templar_archives_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
initiates = {
name = "Templar: Initiates",
unit_composition = {
-- signature unit
[UnitId.ProtossZealot] = 2,
-- filler units
[UnitId.ProtossEcclesiast] = 1,
[UnitId.ProtossCantavis] = 1,
[UnitId.ProtossAccantor] = 1,
[UnitId.ProtossArchon] = 1,
},
main_build_order = {
Openers.initiates,
Tier1.initiates,
Tier2.acquire,
Tier3.acquire,
Tier4.templar_archives_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
martyrdom = {
name = "Templar: Martyrdom",
unit_composition = {
-- signature units (Ancestral Archives x4)
[UnitId.ProtossArchon] = 2,
[UnitId.ProtossLegionnaire] = 2,
-- filler units
[UnitId.ProtossAtreus] = 1,
[UnitId.ProtossMindTyrant] = 1,
[UnitId.ProtossOptecton] = 1,
[UnitId.ProtossPatriarch] = 1,
},
main_build_order = {
Openers.martyrdom,
Tier2.martyrdom_pylon_roguegallery,
Tier3.martyrdom_prostration_crucible,
Tier4.martyrdom_ancestral_archives_scaling,
},
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
legions_heralds = {
name = "Templar: Legion's Heralds",
unit_composition = {
-- signature unit
[UnitId.ProtossLegionnaire] = 2,
-- filler units
[UnitId.ProtossEcclesiast] = 1,
[UnitId.ProtossAtreus] = 1,
[UnitId.ProtossHerald] = 1,
[UnitId.ProtossPatriarch] = 1,
},
main_build_order = {
Openers.legions_heralds,
Tier1.legions_heralds,
Tier2.heralds_library_gateway_buildup,
Tier3.acquire,
Tier4.templar_archives_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,
},
}