728x90
이번에 구현하고자 하는 것은 유닛 생산입니다.
사실 유닛 생산하는 것과 공격하는 것까지 구현했다면 스타크래프트에서는
반은 완성했다고 생각하면 됩니다. 개인적으로 광전사들을 뽑기를 생각하였으나, 난이도 어려움을 이기기에서 광전사들로 만 하여 이기는 것은 꽤 어려움이 있을 것이라고 판단하였습니다.(물론 광전사의 돌진과 컨트롤들을 만들면 안 될 거야 없긴 하지만 귀찮으니까요)
그래서 어떤 유닛을 생산할지를 고민하다가 가장 적절한 유닛이 떠올랐습니다. 추적자입니다. 원거리 유닛이고 중장갑한테도 나름 큰 피해를 줄 수 있기 때문에 추적자만을 뽑도록 하였습니다.(귀차니즘이 위험한 이유)
로직도 대충 생각하는 데로 적어도 작동하는 데에는 큰 문제가 없습니다. 게이트가 있고, 게이트가 아무것도 생산 중이 아니라면 추적자를 생산하도록 하는 것이 전부입니다.
async def train_stalkers(self):
for gate in self.structures(UnitTypeId.GATEWAY).ready:
if (
self.can_afford(UnitTypeId.STALKER)
and gate.is_idle
):
gate.train(UnitTypeId.STALKER)
추가로 게이트가 하나밖에 없기 때문에
4개까지 늘려주도록 합니다.
async def build_four_gates(self):
if (
self.structures(UnitTypeId.PYLON).ready
and self.can_afford(UnitTypeId.GATEWAY)
and self.structures(UnitTypeId.GATEWAY).amount < 4
):
pylon = self.structures(UnitTypeId.PYLON).ready.random
await self.build(UnitTypeId.GATEWAY, near=pylon)
다음번에는 연결체에서 사용할 수 있는 능력인 시간 증폭을 구현할 것입니다.
'스타크래프트2 봇' 카테고리의 다른 글
압생트(Absinthe)봇 만들기 (#7) (0) | 2021.08.16 |
---|---|
압생트(Absinthe)봇 만들기 (#6) (0) | 2021.08.15 |
압생트(Absinthe)봇 만들기 (#4) (0) | 2021.08.13 |
압생트(Absinthe)봇 만들기 (#3) (0) | 2021.08.12 |
압생트(Absinthe)봇 만들기 (#2) (0) | 2021.08.11 |