# stat_txt.tbl entry 1343: Protoss Expansion Custom Level<0>
PMCx(1343, 101, aiscript):


# This line and the following are comments
# Starting headers

start_town()
transports_off()
farms_notiming()


# Maximum number of units

define_max(80, Protoss Probe)
define_max(20, Protoss Zealot)
define_max(20, Protoss Dragoon)
define_max(6, Protoss High Templar)
define_max(10, Protoss Dark Templar)
define_max(6, Protoss Archon)
define_max(2, Protoss Dark Archon)
define_max(1, Protoss Shuttle)
define_max(255, Protoss Reaver)
define_max(6, Protoss Observer)
define_max(255, Protoss Scout)
define_max(15, Protoss Carrier)
define_max(4, Protoss Arbiter)
define_max(4, Protoss Corsair)


# Debugging used to display messages

debug(g_MainBuilding, Hello world I'm a new born Protoss AI)
    --g_MainBuilding--
    
    
# Main start building
    
build(7, Protoss Probe, 80)
wait_buildstart(7, Protoss Probe)
build(1, Protoss Pylon, 80)
wait_buildstart(1, Protoss Pylon)
build(13, Protoss Probe, 80)
wait_buildstart(13, Protoss Probe)


# Main start expanding

expand(99, e_FastExpand)


build(14, Protoss Probe, 80)
wait_buildstart(14, Protoss Probe)
build(1, Protoss Forge, 80)
wait_buildstart(1, Protoss Forge)
build(15, Protoss Probe, 80)
wait_buildstart(15, Protoss Probe)
build(1, Protoss Assimilator, 80)
wait_buildstart(1, Protoss Assimilator)
build(16, Protoss Probe, 80)
wait_buildstart(16, Protoss Probe)
build(1, Protoss Gateway, 80)
wait_build(1, Protoss Gateway)


# Main start training

train(2, Protoss Zealot)
build(1, Protoss Cybernetics Core, 80)
build(2, Protoss Pylon, 80)

farms_timing()

defensebuild_gg(1, Protoss Zealot)
defenseuse_gg(1, Protoss Zealot)


# Main start researching

multirun(r_Global)

build(1, Protoss Stargate, 80)
wait_build(1, Protoss Stargate)
build(1, Protoss Fleet Beacon, 80)
wait_buildstart(1, Protoss Fleet Beacon)
build(2, Protoss Stargate, 80)
build(2, Protoss Photon Cannon, 80)

defenseuse_gg(1, Protoss Carrier)
defenseuse_ag(1, Protoss Carrier)
defenseuse_ga(1, Protoss Carrier)
defenseuse_aa(1, Protoss Carrier)

train(4, Protoss Carrier)
build(3, Protoss Stargate, 80)
wait_buildstart(3, Protoss Stargate)
train(10, Protoss Carrier)


# Main start attacking

attack_add(10, Protoss Carrier)
wait(1000)
debug(s_MainStep1, Let's try these brand new spaceships)
    --s_MainStep1--
attack_do()


# Main Final Loop

    --l_FinalLoop--
wait(4500)
send_suicide(0)
wait(500)
expand(99, e_FastExpand)
goto(l_FinalLoop)


# Expanding part

    --e_FastExpand--
start_town()
build(1, Protoss Nexus, 80)
wait_buildstart(1, Protoss Nexus)
wait(500)
build(1, Protoss Pylon, 80)
wait_buildstart(1, Protoss Pylon)
wait_build(1, Protoss Nexus)
build(6, Protoss Probe, 80)
wait_buildstart(6, Protoss Probe)
build(2, Protoss Photon Cannon, 70)
build(9, Protoss Probe, 70)
wait_buildstart(9, Protoss Probe)
build(2, Protoss Pylon, 70)
wait_buildstart(2, Protoss Pylon)
build(1, Protoss Assimilator, 70)
build(13, Protoss Probe, 70)
wait_buildstart(13, Protoss Probe)
build(6, Protoss Photon Cannon, 70)
stop()


# Researching part

    --r_Global--
multirun(r_Cyber)
goto(r_Fleet)


# Research in cybernetics core

    --r_Cyber--
wait_build(1, Protoss Cybernetics Core)
upgrade(1, Protoss Air Weapons, 30)
# This is not the right research time
wait(2500)
upgrade(1, Protoss Plating, 30)
stop()


# Research in cybernetics core

    --r_Fleet--
wait_build(1, Protoss Fleet Beacon)
upgrade(1, Carrier Capacity, 30)
# This is not the right research time
wait(2500)
tech(Disruption Web, 20)
stop()